weblogic server セキュリティのキホン
DESCRIPTION
セキュリティ概論からWebLogic Serverで提供されるフレームワークの説明、セキュリティ情報のユーザの変更管理・運用監視、データアクセス、シングルサインオンなどを具体的に説明します。 WebLogic Server セキュリティ 宣言的セキュリティ セキュリティ・レルム セキュリティ・レルムとは? 認証プロバイダ設定時の考慮事項 デフォルト・グローバル・ロールの利用 管理コンソールのアクセス制限TRANSCRIPT
<Insert Picture Here>
WebLogic Server セキュリティのキホン
日本オラクル株式会社 オラクルユニバーシティ 岡田 大輔 2012年02月22日
Copyright© 2012, Oracle. All rights reserved. 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright© 2012, Oracle. All rights reserved.
Agenda
• WebLogic Server セキュリティ
• 宣言的セキュリティ
• セキュリティ・レルム
• セキュリティ・レルムとは?
• 認証プロバイダ設定時の考慮事項
• デフォルト・グローバル・ロールの利用
• 管理コンソールのアクセス制限
3
Copyright© 2012, Oracle. All rights reserved.
WebLogic Server セキュリティの基本的な考え方
• WebLogic Server セキュリティは標準技術に準拠した柔軟性の高いセキュリティ・アーキテクチャを使用してWebLogic Server上のリソースを統一的に保護する
• 標準技術とは …
• JAAS … 認証(atn)/認可(atz)サービス
• JSSE … SSL実装
• JCA/JCE .. 暗号化仕様
• JACC … 認可プロバイダ・インタフェース for コンテナ
• …
4
Copyright© 2012, Oracle. All rights reserved.
Java EEのセキュリティとは ...
• 宣言的セキュリティ
• WebLogic Serverでは多様なリソースをこの方式で保護する
5
○○というリソースにアクセスできるのは
△△というセキュリティ・ロール
• WebアプリケーションはURL単位、EJBはメソッド単位で指定
•注釈もしくはデプロイメント記述子で宣言
•セキュリティ・ロールはユーザ/グループの集合概念
•デプロイメント記述子で宣言
Copyright© 2012, Oracle. All rights reserved.
Oracle Platform Security Services
6
http://docs.oracle.com/cd/E16340_01/core.1111/b56235/underjps.htm
JAAS / WebLogic Security API
WebLogic Security Framework
Security Provider
API使用 ポリシー宣言
管理者
セキュリティ 設定
開発者
Copyright© 2012, Oracle. All rights reserved.
アクセス時のセキュリティ制御
7
ログイン
サブジェクト
処理要求
ログイン
署名
検証
ロール取得
裁決
LoginModule
プリンシパル 検証
ロール マッパー
アクセス 決定
裁決
WebLogic Server
クライアント セキュリティ フレームワーク
認証
認可
サブジェクト
PERMIT/DENY/ ABSTAIN
リソース呼び出し
リソース
Copyright© 2012, Oracle. All rights reserved.
まとめ: 宣言的セキュリティ
• 開発者: Java EE 仕様に則って開発
• リソース毎にアクセスポリシーを宣言
• 宣言はxmlファイルもしくは@注釈で埋め込み
• アプリケーションで使用するセキュリティ・ロールを宣言
• 宣言はxmlファイル
• 実ユーザ名ではない抽象化したロール名を推奨
• 管理者: セキュリティ・レルムを構成
• 開発者が設定したJava EE宣言的セキュリティが機能するようにWebLogic Serverドメインのセキュリティ設定を行う
• セキュリティ・プロバイダ
• ユーザ, グループ, セキュリティ・ロール
• その他 (SSL …)
8
Copyright© 2012, Oracle. All rights reserved.
Agenda
• WebLogic Server セキュリティ
• 宣言的セキュリティ
• セキュリティ・レルム
• セキュリティ・レルムとは?
• 認証プロバイダ設定時の考慮事項
• デフォルト・グローバル・ロールの利用
• 管理コンソールのアクセス制限
9
Copyright© 2012, Oracle. All rights reserved.
セキュリティ・レルムとは?
• WebLogic Serverリソースを保護する仕組み
• セキュリティ・プロバイダの設定
• ユーザ, グループ, セキュリティ・ロール
• WLSリソースにアクセスできるのはセキュリティ・レルム内のユーザのみ
• セキュリティ・ポリシー
10
デフォルト・グループ セキュリティ・ロール セキュリティ・ポリシー
セキュリティ プロバイダ データベース
定義済みユーザ, グループ
セキュリティ・ロール
セキュリティ プロバイダ
WebLogic Server リソース
スコープ指定 ロール, ポリシー デフォルトセキュリティ・ロール, セキュリティ・ポリシー
定義済みグローバル・ロール
Copyright© 2012, Oracle. All rights reserved.
セキュリティ・プロバイダ・データベース
11
• 一部のセキュリティ・プロバイダがセキュリティ・サービスを提供するためのデータを格納するストア
• ユーザ, グループ (認証プロバイダ)
• セキュリティ・ポリシー (認可プロバイダ)
• セキュリティ・ロール (ロール・マッピング・プロバイダ)
• 資格証明 (資格マッピングプロバイダ)
• 使用可能なセキュリティ・プロバイダ・データベース
• 組み込みLDAPサーバ ... デフォルト設定
• RDBMS … ドメイン作成時(or 作成後)に指定可能 セキュリティ プロバイダ データベース
セキュリティ プロバイダ
Copyright© 2012, Oracle. All rights reserved.
組み込みLDAPサーバ
• ストア先
• $DOMAIN/servers/<server_name>/data/store/ldap
• 管理サーバのデータがマスタ。マルチ・サーバ・ドメインでは管理対象サーバ側にもレプリカが作成される
• 組み込みLDAPサーバの設定は管理コンソールを使用
• バックアップ、キャッシュ、資格など
• 組み込みLDAPサーバは大量のユーザ管理には向かない…
• 管理すべきユーザが多数いる場合は、別のユーザストアが存在するケースが多い
• ユーザ管理はAdministrationコンソール or WLST
12
組み込み LDAP
セキュリティ プロバイダ
Copyright© 2012, Oracle. All rights reserved.
RDBMSセキュリティ・ストア
13
• 次のセキュリティ・プロバイダではデータ・ストアとしてRDBMSを使用可能
• 認可プロバイダ
• ロール・マッピング・プロバイダ
• 資格証明マッピング・プロバイダ
• 証明書レジストリ・プロバイダ
• ドメイン作成時に指定可能
• 事前にデータベースにテーブルを作成しておく
• $WL_HOME/server/lib/rdbms_security_store_XXX.sql
• 複数サーバ構成のドメインではJMS通知を有効にする
RBDMS セキュリティ プロバイダ
JDBC
接続
Copyright© 2012, Oracle. All rights reserved.
セキュリティ・レルムの設定
• デフォルトはmyrealm
• WebLogicセキュリティプロバイダで構成されたレルム
• WebLogic Serverで標準実装として提供されるセキュリティプロバイダ実装のこと
• DefaultXXXという名前で設定されているプロバイダ
• レルムは複数定義可能だがアクティブにできるレルムは一つだけ
• 必要に応じてmyrealmのセキュリティ・プロバイダ定義をカスタマイズするのが現実的
• 構成が大きく異なるセキュリティ・レルム定義を行う場合は新規作成を検討
14
Copyright© 2012, Oracle. All rights reserved.
まとめ: セキュリティ・レルムとは?
• WebLogic Serverのセキュリティ・レルムの構成要素
• セキュリティ・プロバイダ
• プロバイダの設定のストア先は組み込みLDAPとRDBMSを選択可
• ユーザ, グループ, セキュリティ・ロール
• セキュリティ・ポリシー
• セキュリティ・レルムを構成しないとWebLogic
Serverは起動しない
• ドメインにはmyrealmというデフォルト定義がある
• セキュリティ・プロバイダの構成は必要に応じてカスタマイズできる
15
Copyright© 2012, Oracle. All rights reserved.
レルムを構成するセキュリティ・プロバイダ
• セキュリティ・レルムを構成するセキュリティ・プロバイダは任意で追加・削除可能
16
認証プロバイダ 認可プロバイダ 資格証明マッピング
・プロバイダ
証明書の検索と 検証のプロバイダ
裁決プロバイダ
ロール・マッピング ・プロバイダ
プリンシパル検証 プロバイダ
IDアサーション ・プロバイダ
監査プロバイダ
オプション
必須
Copyright© 2012, Oracle. All rights reserved.
セキュリティ・プロバイダの種類
• 認証プロバイダ
• ユーザの認証を行い、信頼を確立する
• 認証プロバイダはセキュリティ・レルム内に1つ以上必要
• IDアサーション・プロバイダ
• トークンを検証してユーザIDにマップする。境界認証用。
• 認可プロバイダ
• セキュリティ・ロールとセキュリティ・ポリシーに基づくアクセス制御
• 監査プロバイダ
• ユーザ操作の記録を否認防止を目的として収集、格納する
• 資格証明マッピング・プロバイダ
• WLS資格証明を他システムで使用される資格証明にマッピング。リモート・システムへのログインを実現
17
Copyright© 2012, Oracle. All rights reserved.
認証プロバイダの設定
• 認証プロバイダは、指定されたユーザ名とパスワードの資格証明ペアに合致するユーザをデータ・ストアから見つけ出す
• データ・ストアの種類によって複数の認証プロバイダを設定可能
• 組み込みLDAP (WebLogic認証プロバイダ)
• LDAP(OpenLDAP, Active Directory, Novell, OID, OVD …)
• Database
• …
18
Copyright© 2012, Oracle. All rights reserved.
JAAS制御フラグ
• 認証プロバイダによる認証処理フローは制御フラグによって制御される
• 複数の認証プロバイダを構成する場合は認証プロバイダ毎に適切な制御フラグ値を設定する
• Default Authenticatorのデフォルト設定はREQUIRED
• 新規作成時のデフォルト設定はOPTIONAL
19
フラグ値 認証成功要否 認証成功時 認証失敗時
REQUIRED ○ 次のプロバイダへ 次のプロバイダへ
REQUISITE ○ 次のプロバイダへ アプリケーションへ
SUFFICIENT × アプリケーションへ 次のプロバイダへ
OPTIONAL × 次のプロバイダへ 次のプロバイダへ
Copyright© 2012, Oracle. All rights reserved.
認証順序の指定
• 複数の認証プロバイダを使用する場合は、認証プロバイダの認証順序に注意する
• 設定を正しく行わないと意図しない動作になる
• 管理コンソールで表示されるリストの順に認証プロバイダが呼び出される
20
認証順
Copyright© 2012, Oracle. All rights reserved.
設定例: LDAP認証
• LDAP認証プロバイダをセキュリティ・レルムに追加定義する
• DefaultAuthenticatorと併用することで組み込みLDAP, 外部LDAP両方のユーザを認証可能
21
WebLogic Server
Default Authenticator
組み込み LDAP
OpenDS Authenticator
ユーザ, グループ 参照
ユーザ, グループ 参照
Copyright© 2012, Oracle. All rights reserved.
認証プロバイダの作成
22
連携対象のLDAPサーバに対応する認証プロバイダを選択
- 各LDAP認証プロバイダ毎に一般的なディレクトリ・スキーマが定義されている
Copyright© 2012, Oracle. All rights reserved.
制御フラグの設定
23
認証成功したらアプリケーションに制御を戻す場合はSUFFICIENTを設定
DefaultAuthenticatorの制御フラグ値(REQUIRED)も変更する
Copyright© 2012, Oracle. All rights reserved.
LDAP検索設定(プロバイダ固有)
24
Copyright© 2012, Oracle. All rights reserved.
認証順の設定
25
• 新しく定義した認証プロバイダはリストの最後に追加される
• 必要に応じて順序を変更する
Copyright© 2012, Oracle. All rights reserved.
設定例: DB認証
• 認証プロバイダのタイプは SQLAuthenticator
• 事前準備:
• データベースにユーザ, グループ用のテーブルを作成
• SQLAuthenticatorが使用するデータソースを事前に作成
26
Copyright© 2012, Oracle. All rights reserved.
参考: DBテーブル作成スクリプト
CREATE TABLE USERS (
U_NAME VARCHAR(200) NOT NULL,
U_PASSWORD VARCHAR(50) NOT NULL,
U_DESCRIPTION VARCHAR(1000));
ALTER TABLE USERS
ADD CONSTRAINT PK_USERS
PRIMARY KEY (U_NAME);
CREATE TABLE GROUPS (
G_NAME VARCHAR(200) NOT NULL,
G_DESCRIPTION VARCHAR(1000));
ALTER TABLE GROUPS
ADD CONSTRAINT PK_GROUPS
PRIMARY KEY (G_NAME);
CREATE TABLE GROUPMEMBERS (
G_NAME VARCHAR(200) NOT NULL,
G_MEMBER VARCHAR(200) NOT NULL);
ALTER TABLE GROUPMEMBERS
ADD CONSTRAINT PK_GROUPMEMS
PRIMARY KEY (
G_NAME, G_MEMBER);
ALTER TABLE GROUPMEMBERS
ADD CONSTRAINT FK1_GROUPMEMBERS
FOREIGN KEY ( G_NAME )
REFERENCES GROUPS (G_NAME)
ON DELETE CASCADE;
27
注: SQLAuthenticatorにデフォルトで設定されている認証処理用SQLを動作させるため簡易スクリプト
Copyright© 2012, Oracle. All rights reserved.
まとめ: 認証プロバイダ設定時の考慮事項
• 認証プロバイダを追加すると組み込みLDAP以外のデータ・ストアに格納されたユーザでも認証できる
• LDAPサーバやRDBなど多様なデータ・ストアを活用できる
• DefaultAuthenticatorは削除しないことを推奨
• 組み込みLDAP(DefaultAuthenticator): 管理ユーザ
• 外部データ・ストア(追加認証プロバイダ): 一般ユーザ
• 複数の認証プロバイダを設定する場合は、認証順と制御フラグの設定に注意する
28
Copyright© 2012, Oracle. All rights reserved.
WebLogic Server (ソース・サイト)
Single Sign Onを行うには?
• サイトの役割に応じてセキュリティ・プロバイダを設定
• 資格証明マッピング・プロバイダ (ソース・サイト)
• WLSセキュリティ資格を外部システムのトークンにマッピング
• IDアサーションプロバイダ (宛先サイト)
• 外部システムのトークンをWLSユーザIDにマッピング
29
資格証明 マッピング・ プロバイダ
認証 プロバイダ
アプリケーションA
WebLogic Server (宛先サイト)
IDアサーション プロバイダ
認証 プロバイダ
アプリケーションB
ユーザ名 パスワード
トークン
サブジェクト サブジェクト
Copyright© 2012, Oracle. All rights reserved.
例: SAMLによるSSO
• ソース・サイト
• SAML資格証明マッピング・プロバイダを設定
• SAML2.0の場合は、セキュリティ・プロバイダ・データベースはRDBを推奨
• 宛先サイト
• SAML IDアサーション・プロバイダを設定
• SAML2.0の場合は、SAML認証プロバイダも設定
30
WebLogic Server (ソース・サイト) SAML アサーティング・パーティ
SAML資格証明 マッピング・ プロバイダ
認証 プロバイダ
WebLogic Server (宛先サイト) SAMLリライイング・パーティ
SAML IDアサーション プロバイダ
認証 プロバイダ
ユーザ名 パスワード
マニュアル参照先: http://docs.oracle.com/cd/E24001_01/web.1111/b61617/saml.htm
SAMLトークン
Copyright© 2012, Oracle. All rights reserved.
まとめ: Single Sign On
• WebLogic ServerではSAML, Kerberosを使用したSingle Sign Onに対応
• 必要に応じてセキュリティ・プロバイダをセキュリティ・レルムに追加定義
• 資格証明マッピング・プロバイダ (ソース・サイト)
• IDアサーション・プロバイダ (宛先サイト)
• SSOに使用する技術の周辺知識の理解が必須
31
Copyright© 2012, Oracle. All rights reserved.
Agenda
• WebLogic Server セキュリティ
• 宣言的セキュリティ
• セキュリティ・レルム
• セキュリティ・レルムとは?
• 認証プロバイダ設定時の考慮事項
• デフォルト・グローバル・ロールの利用
• 管理コンソールのアクセス制限
32
Copyright© 2012, Oracle. All rights reserved.
管理コンソールのアクセス制御
• 管理コンソールはWebアプリケーション
• 宣言的セキュリティが使われている
• デフォルト・グローバル・ロールにアクセスを許可
33
<security-constraint>
<web-resource-collection>
<web-resource-name>console</web-resource-name>
<url-pattern>/</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>Admin</role-name>
<role-name>Operator</role-name>
<role-name>Deployer</role-name>
<role-name>Monitor</role-name>
</auth-constraint>
</security-constraint> 管理コンソール(consoleapp)のweb.xml
Copyright© 2012, Oracle. All rights reserved.
デフォルト・グローバル・ロール
ロール名 グループ名 起動・停止 デプロイ 設定変更 設定表示・モニタ
セキュリティ操作
Admin Administra
tors ○ ○ ○ ○ ○
Deployer Deployers × ○ △
(一部) ○ ×
Operator Operators ○ × × ○ ×
Monitor Monitors × × × ○ ×
34
•AppTester (AppTesters) … 管理チャネルを使用して管理モードで起動したアプリケーションにアクセス可能(プロダクション再デプロイメントなどで使用)
•ドメイン作成時に指定するユーザはAdministratorsグループに所属する = Adminロールに属する
•セキュリティ操作(ユーザロック解除を含む)を実行できるのはAdminロールのみのためAdminロールに属するユーザを複数定義しておくことを推奨
Copyright© 2012, Oracle. All rights reserved.
DefaultAuthenticator以外のユーザで管理コンソールにアクセスするには?
• 次のいずれかを設定
• 認証プロバイダのデータ・ストアにデフォルト・グループ名と同名のグループを作成
• WebLogic Serverドメインのグローバル・ロール定義を変更
35
Copyright© 2012, Oracle. All rights reserved.
グローバル・ロールの定義
• ホーム >セキュリティ・レルムのサマリー >myrealm >ロールとポリシー >レルム・ロール
• グローバルロール→Rolesを選択
36
Copyright© 2012, Oracle. All rights reserved.
管理コンソールでのユーザ管理の注意点
• ユーザの追加・削除・変更は、ドメイン設定時のコンフィグレーション・ロックとは無関係
• ロック取り消し時も変更は反映されたまま
• ユーザ管理は他の管理タスクとは独立して行うことを推奨
• 管理コンソールでユーザ情報の変更ができるのはDefaultAuthenticator, SQLAuthenticatorなど
• LDAPAuthenticatorなどを追加した場合のユーザ情報は表示のみ
• 編集はLDAPサーバ側で行う
37
Copyright© 2012, Oracle. All rights reserved.
参考: WLSTでユーザ/グループを追加
# 認証プロバイダを参照(serverConfig or domainConfig階層)
wls:/domain/serverConfig> atnr=cmo.getSecurityConfiguration().getDefaultReal
m().lookupAuthenticationProvider('DefaultAuthenticator')
# ユーザ追加
wls:/domain/serverConfig> atnr.createUser('user_name', 'password‘, 'description')
# グループ追加
wls:/domain/serverConfig> atnr.createGroup('group_name', 'description')
# グループにユーザを追加
wls:/domain/serverConfig> atnr.addMemberToGroup('group_name', 'user_name')
38
Copyright© 2012, Oracle. All rights reserved.
まとめ: 管理コンソールのアクセス制限
• 管理コンソールもJava EEアプリケーションとしてデプロイされているため、Java EEセキュリティ・ポリシーを使用する
• グローバル・ロール毎にアクセス権限が異なるので作業レベルに応じてロールを使い分けることを推奨
• 管理コンソールを使用したユーザ設定変更はコンフィグレーション・ロックとは無関係
• ユーザ管理は他の管理タスクとは独立して行うことを推奨
39
○○というリソースにアクセスできるのは
△△というセキュリティ・ロール
Copyright© 2012, Oracle. All rights reserved.
まとめ
• WebLogic セキュリティでは標準仕様を使用して統一的にリソースを保護する
• セキュリティ要件に応じた柔軟なセキュリティ・レルムを構成可能
40
Copyright© 2012, Oracle. All rights reserved.
Oracle Universityからのお知らせ
• WebLogic ServerのセキュリティをはじめとしたWebLogic Serverの管理方法を学習したい方に最適な研修コースをご提供しています。 • Classroomトレーニングだけでなく、Live Virtual Class、『Oracle トレーニング・オンデマンド』など多様な受講形態から選択いただけます。
41
Copyright© 2012, Oracle. All rights reserved.
コース内容
■Oracle Fusion Middleware の概要 ■WebLogic Serverのアーキテクチャ
■Oracle WebLogic Serverのインストール ■管理コンソールおよび他の管理ツールの概要
■WebLogic Server ドメインのコンフィグレーション ■Oracle WebLogic Server の管理およびロギングの使用
■アプリケーションのデプロイ ■データソース、JDBCドライバ、接続プールの設定
■JMS アプリケーションのコンフィグレーション ■WebLogic Serverの基本セキュリティのコンフィグレーション
■Oracle HTTP Server のコンフィグレーション ■Oracle WebLogic クラスタのコンフィグレーション
■バックアップおよびリカバリの管理 ■全体バックアップ、増分バックアップ
受講
前提条件
・Linux の基本コマンドおよびデスクトップのナビゲーション
・クライアント/サーバーの概念における TCP/IP ネットワークに関する基本的な知識
・Java EE の基礎知識(サーブレットや JSP など) ※推奨
対象者 ・Oracle WebLogic Server 11g管理者
・Javaアプリケーション開発者
コース日程 5日間 日程の詳細は Oracle University Webサイト にてご確認ください。
受講料 定価¥363,825(税込) ※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。
Oracle Application Gridの基盤を支える
Oracle WebLogic Server 11gの管理コース! このコースでは、Web管理者がOracle WebLogic Server 11gのインストールおよび設定
する方法について説明します。Web管理者が管理コンソールやコマンドライン、および
スクリプトツール(WLST)などを使用して、Java EEアプリケーションをOracle
WebLogic Server 11gにデプロイする方法についても説明します。
その他に、Oracle WebLogic Server のWebインタフェースとしてOracle HTTP Serverを設
定する方法を解説し、またOracle WebLogic Serverクラスタを設定してアプリケーションのフェイルオーバーとロードバランシングをサポートする方法を学習します。また、
WebLogic Server管理者の管理タスクの概要について説明します。
Oracle WebLogic Server 11g: 管理
ミドルウェア
Copyright© 2012, Oracle. All rights reserved.
Copyright© 2012, Oracle. All rights reserved. 44