weblogic serverセキュリティ
Post on 08-May-2015
1.020 Views
Preview:
DESCRIPTION
TRANSCRIPT
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 1
日本オラクル株式会社 オラクルユニバーシティ 岡田 大輔 2014年 3月25日
WebLogic Server セキュリティ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 2
以下の事項は、弊社の一般的な製品の方向性に関する概要を説明するものです。また、情報提供を唯一の目的とするものであり、いかなる契約にも組み込むことはできません。以下の事項は、マテリアルやコード、機能を提供することをコミットメント(確約)するものではないため、購買決定を行う際の判断材料になさらないで下さい。オラクル製品に関して記載されている機能の開発、リリースおよび時期については、弊社の裁量により決定されます。
OracleとJavaは、Oracle Corporation 及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 3
Agenda
WebLogic Server セキュリティ
– 宣言的セキュリティ
セキュリティ・レルム
– セキュリティ・レルムとは?
– 認証プロバイダ設定時の考慮事項
デフォルト・グローバル・ロールの利用
– 管理コンソールのアクセス制限
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 4
WebLogic Server セキュリティ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 5
WebLogic Server セキュリティ
WebLogic Server セキュリティは標準技術に準拠した柔軟性の高いセキュリティ・アーキテクチャを使用してWebLogic Server上のリソースを統一的に保護する
– 標準技術とは …
JAAS … 認証(atn)/認可(atz)サービス
JSSE … SSL実装
JCA/JCE .. 暗号化仕様
JACC … 認可プロバイダ・インタフェース for コンテナ
…
基本的な考え方
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 6
Java EEのセキュリティとは ... 宣言的セキュリティ
○○というリソースにアクセスできるのは
△△というセキュリティ・ロール
• WebアプリケーションはURL単位、EJBはメソッド単位で指定
• 注釈もしくはデプロイメント記述子で宣言
•セキュリティ・ロールはユーザ/グループの集合概念 • デプロイメント記述子で宣言
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 7
WebLogic Server Security Framework
JAAS / WebLogic Security API
WebLogic Security Framework
Security Provider
管理者
セキュリティ 設定
API使用 ポリシー宣言
開発者
Security Service Provider Interface(SSPI)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 8
アクセス時のセキュリティ制御
ログイン
サブジェクト
処理要求
ログイン
署名
検証
ロール取得
裁決
LoginModule
プリンシパル
検証
ロール
マッパー
アクセス
決定
裁決
WebLogic
Server クライアント
セキュリティ
フレームワーク
認証
認可
サブジェクト
PERMIT/DENY/
ABSTAIN
リソース呼び出し
リソース
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 9
まとめ: 宣言的セキュリティ
開発者: Java EE 仕様に則って開発
– リソース毎にアクセスポリシーを宣言
宣言はxmlファイルもしくは@注釈で埋め込み
– アプリケーションで使用するセキュリティ・ロールを宣言
宣言はxmlファイル
実ユーザ名ではない抽象化したロール名を推奨
管理者: セキュリティ・レルムを構成
– 開発者が設定したJava EE宣言的セキュリティが機能するようにWebLogic Serverドメインのセキュリティ設定を行う
– セキュリティ・プロバイダ
– ユーザ, グループ, セキュリティ・ロール
– その他 (SSL …)
開発者と管理者 それぞれの考慮事項
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 10
セキュリティ・レルム
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 11
セキュリティ・レルムとは?
セキュリティ・レルムの構成要素
– セキュリティ・プロバイダの設定
– ユーザ, グループ, セキュリティ・ロール
– セキュリティ・ポリシー
WebLogic Serverリソースを保護する仕組み
デフォルト・グループ
セキュリティ・ロール
セキュリティ・ポリシー セキュリティ
プロバイダ
データベース 定義済み
ユーザ/グループ
セキュリティ・ロール
セキュリティ
プロバイダ WebLogic Server
リソース
スコープ指定
ロール/ポリシー デフォルトセキュリティ・ロール, セキュリティ・ポリシー
定義済みグローバル・ロール
Tips: WLSリソースにアクセスできるのはセキュリティ・レルム内のユーザのみ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 12
セキュリティ・プロバイダ・データベース
一部のセキュリティ・プロバイダがセキュリティ・サービスを提供するためのデータを格納するストア
– ユーザ, グループ (認証プロバイダ)
– セキュリティ・ポリシー (認可プロバイダ)
– セキュリティ・ロール (ロール・マッピング・プロバイダ)
– 資格証明 (資格マッピングプロバイダ)
使用可能なセキュリティ・プロバイダ・データベース
– 組み込みLDAPサーバ ... デフォルト設定
– RDBMS … ドメイン作成時(or 作成後)に指定可能
セキュリティ
プロバイダ
データベース
セキュリティ
プロバイダ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 13
組み込みLDAPサーバ
ストア先
– $DOMAIN/servers/<server_name>/data/store/ldap
– 管理サーバのデータがマスタ。マルチ・サーバ・ドメインでは管理対象サーバ側にもレプリカが作成される
組み込みLDAPの設定は管理コンソールを使用
– バックアップ、キャッシュ、資格など
組み込み
LDAP
セキュリティ
プロバイダ
Tips: 組み込みLDAPサーバは大量のユーザ管理には向かない… • 管理すべきユーザが多数いる場合は、別のユーザストアが存在するケースが多い
• ユーザ管理はAdministrationコンソール or WLST
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 14
RDBMSセキュリティ・ストア
次のセキュリティ・プロバイダではデータ・ストアとしてRDBMSを使用可能
– 認可プロバイダ
– ロール・マッピング・プロバイダ
– 資格証明マッピング・プロバイダ
– 証明書レジストリ・プロバイダ
ドメイン作成時に指定可能 (構成ウィザード)
– 事前にデータベースにテーブルを作成しておく
$WL_HOME/server/lib/rdbms_security_store_XXX.sql
– 複数サーバ構成のドメインではJMS通知を有効にする
RBDMS セキュリティ
プロバイダ
JDBC 接続
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 15
セキュリティ・レルムの設定
デフォルトはmyrealm
– WebLogicセキュリティプロバイダで構成されたレルム
WebLogic Serverで標準実装として提供されるセキュリティプロバイダ実装
DefaultXXXという名前で設定されているプロバイダ
レルムは複数定義可能だがアクティブにできるレルムは一つだけ
– 必要に応じてmyrealmのセキュリティ・プロバイダ定義をカスタマイズ
構成が大きく異なるセキュリティ・レルム定義を行う場合は新規作成を検討
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 16
まとめ: セキュリティ・レルムとは?
WebLogic Serverのセキュリティ・レルムの構成要素
– セキュリティ・プロバイダ
プロバイダの設定のストア先は組み込みLDAPとRDBMSを選択可
– ユーザ, グループ, セキュリティ・ロール
– セキュリティ・ポリシー
セキュリティ・レルムを構成しないとWebLogic Serverは起動しない
– ドメインにはmyrealmというデフォルト定義がある
– セキュリティ・プロバイダの構成は必要に応じてカスタマイズできる
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 17
レルムを構成するセキュリティ・プロバイダ
セキュリティ・レルムを構成するセキュリティ・プロバイダは任意で追加・削除可能
認証プロバイダ 認可プロバイダ 資格証明マッピング
・プロバイダ
証明書の検索と
検証のプロバイダ
裁決プロバイダ
ロール・マッピング
・プロバイダ
プリンシパル検証
プロバイダ
IDアサーション
・プロバイダ 監査プロバイダ
オプション
必須
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 18
セキュリティ・プロバイダの種類
認証プロバイダ
– ユーザの認証を行い、信頼を確立する
– 認証プロバイダはセキュリティ・レルム内に1つ以上必要
IDアサーション・プロバイダ
– トークンを検証してユーザIDにマップする。境界認証用。
認可プロバイダ
– セキュリティ・ロールとセキュリティ・ポリシーに基づくアクセス制御
監査プロバイダ
– ユーザ操作の記録を否認防止を目的として収集、格納する
資格証明マッピング・プロバイダ
– WLS資格証明を他システムで使用される資格証明にマッピング。リモート・システムへのログインを実現
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 19
認証プロバイダの設定
認証プロバイダは、指定されたユーザ名とパスワードの資格証明ペアに合致するユーザをデータ・ストアから見つけ出す
データ・ストアの種類によって複数の認証プロバイダを設定可能
– 組み込みLDAP (WebLogic認証プロバイダ)
– LDAP(OpenLDAP, Active Directory, Novell, OID, OVD …)
– Database
– …
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 20
JAAS制御フラグ
認証プロバイダによる認証処理は制御フラグによって制御される
– 複数の認証プロバイダを構成する場合は認証プロバイダ毎に適切な制御フラグ値を設定する
Default Authenticatorのデフォルト設定はREQUIRED
新規作成時のデフォルト設定はOPTIONAL
フラグ値 認証成功要否 認証成功時 認証失敗時
REQUIRED ○ 次のプロバイダへ 次のプロバイダへ
REQUISITE ○ 次のプロバイダへ アプリケーションへ
SUFFICIENT × アプリケーションへ 次のプロバイダへ
OPTIONAL × 次のプロバイダへ 次のプロバイダへ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 21
認証順序の指定
複数の認証プロバイダを使用する場合は、認証順序に注意
– 認証順は管理コンソールで表示されるリストの順に認証処理される
– 設定を正しく行わないと意図しない動作になる
認証順
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 22
設定例: LDAP認証
LDAP認証プロバイダをセキュリティ・レルムに追加定義する
– DefaultAuthenticatorと併用することで組み込みLDAP, 外部LDAP両方のユーザを認証可能
WebLogic Server
Default
Authenticator
組み込み
LDAP
OpenDS
Authenticator
ユーザ, グループ 参照
ユーザ, グループ 参照
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 23
認証プロバイダの作成
Tips: 連携対象のLDAPサーバに対応する認証プロバイダを選択 - 各LDAP認証プロバイダ毎に一般的なディレクトリ・スキーマが定義されている
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 24
制御フラグの設定
認証成功したらアプリケーションに制御を戻す場合はSUFFICIENTを設定
DefaultAuthenticatorの制御フラグ値(REQUIRED)も変更する
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 25
LDAP検索設定(プロバイダ固有)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 26
認証順の設定
新しく定義した認証プロバイダはリストの最後に追加される
– 必要に応じて順序を変更する
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 27
設定例: DB認証
認証プロバイダのタイプは SQLAuthenticator
– 事前準備:
データベースにユーザ, グループ用のテーブルを作成
SQLAuthenticatorが使用するデータソースを事前に作成
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 28
参考: 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);
注: SQLAuthenticatorにデフォルトで設定されている認証処理用SQLを動作させるため簡易スクリプト
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;
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 29
まとめ: 認証プロバイダ設定時の考慮事項
認証プロバイダを追加すると組み込みLDAP以外のデータ・ストアに格納されたユーザでも認証できる
– LDAPサーバやRDBなど多様なデータ・ストアを活用できる
– DefaultAuthenticatorは削除しないことを推奨
組み込みLDAP(DefaultAuthenticator): 管理ユーザ
外部データ・ストア(追加認証プロバイダ): 一般ユーザ
– 複数の認証プロバイダを設定する場合は、認証順と制御フラグの設定に注意する
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 30
デフォルト・グローバル・ロールの利用
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 31
管理コンソールのアクセス制御
管理コンソールはWebアプリケーション
– 宣言的セキュリティが使われている
– デフォルト・グローバル・ロールにアクセスを許可
<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 © 2014, Oracle and/or its affiliates. All rights reserved. 32
デフォルト・グローバル・ロール
ロール名 グループ名 起動・停止 デプロイ 設定変更 設定表示・モニタ
セキュリティ操作
Admin Administrators ○ ○ ○ ○ ○
Deployer Deployers × ○ △
(一部) ○ ×
Operator Operators ○ × × ○ ×
Monitor Monitors × × × ○ ×
•AppTester (AppTesters) … 管理チャネルを使用して管理モードで起動したアプリケーションにアクセス可能(プロダクション再デプロイメントなどで使用)
•ドメイン作成時に指定するユーザはAdministratorsグループに所属する = Adminロールに属する
•セキュリティ操作(ユーザロック解除を含む)を実行できるのはAdminロールのみのため、Admin
ロールに属するユーザを複数定義しておくことを推奨
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 33
管理コンソールにアクセスするには?
次のいずれかを設定
– 認証プロバイダのデータ・ストアにデフォルト・グループと同名のグループを作成
– WebLogic Serverドメインのグローバル・ロール定義を変更
DefaultAuthenticator以外で定義されたユーザのアクセス
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 34
グローバル・ロールの定義
ホーム >セキュリティ・レルムのサマリー >myrealm >ロールとポリシー >レルム・ロール
– グローバルロール→Rolesを選択
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 35
管理コンソールでのユーザ管理の注意点
ユーザの追加・削除・変更は、ドメイン設定時のコンフィグレーション・ロックとは無関係
– ロック取り消し時も変更は反映されたまま
– ユーザ管理は他の管理タスクとは独立して行うことを推奨
管理コンソールでユーザ情報の変更ができるのはDefaultAuthenticator,
SQLAuthenticatorなど
– LDAPAuthenticatorなどを追加した場合のユーザ情報は表示のみ
編集はLDAPサーバ側で行う
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 36
参考: 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')
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 37
まとめ: 管理コンソールのアクセス制限
管理コンソールもJava EEアプリケーションとしてデプロイされているため、Java EEの宣言的セキュリティを使用する
– グローバル・ロール毎にアクセス権限が異なるので作業レベルに応じてロールを使い分けることを推奨
管理コンソールを使用したユーザ設定変更はコンフィグレーション・ロックとは無関係
– ユーザ管理は他の管理タスクとは独立して行うことを推奨
○○というリソースにアクセスできるのは
△△というセキュリティ・ロール
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 38
オラクルユニバーシティからのお知らせ
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 39
Oracle Universityからのお知らせ
WebLogic Serverの管理方法を体系的に学習したい方に最適な研修コースをご提供しています。
– Classroomトレーニングだけでなく、Live Virtual Classや『Oracle トレーニング・オンデマンド』など多様な受講形態から選択いただけます。
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 40
コース内容
■Oracle WebLogic Server概要
■ドメインの作成
■Administration Console
■ドメインのモニタリング
■アプリケーションのデプロイメント
■WebLogic Server セキュリティ
■ドメインのバックアップおよびリカバリ
■WebLogic Serverのインストールおよびパッチ適用
■サーバーの起動および停止
■JDBCデータソースの構成
■ノードマネージャ
■WebLogic Serverクラスタリング
■トランザクション・サービスのコンフィグレーション
受講前提条件 ・Linux の基本的な操作方法の理解 ・Java EE の基礎知識(サーブレットや JSP など) ※推奨
対象者 ・Oracle WebLogic Server 管理者
・Javaアプリケーション開発者
・アーキテクト
コース日程 5日間 日程の詳細は Oracle University Webサイト にてご確認ください。
受講料 定価¥374,850(税込) ※Oracle PartnerNetwork会員様は、パートナー割引価格で受講いただけます。
Oracle WebLogic Server 12c の運用管理スキルをしっかり習得 待望のWebLogic Server 12c(12.1.2)対応研修がいよいよ提供開始です。
このコースでは、アプリケーション・サーバー管理者がOracle WebLogic Server 12cのインストールおよび設定方法を習得することがで
きます。管理コンソールやコマンドラインツール(WLST)などを使用してドメインを構成する方法やJava EEアプリケーションをサー
バーにデプロイする方法についても説明します。さらに、Oracle WebLogic Server のプロキシとしてOracle HTTP Serverを設定し、
WebLogic Serverクラスタによるアプリケーションのフェイルオーバーとロードバランシングをサポートする方法など、環境構築に必要
なスキルとWebLogic Serverのモニタリングやログ情報の収集など運用に必要なスキルを実機演習を通して習得できます。さらに、
Oracle WebLogic Server 12cで強化されたActive GridLink for RACの構成方法やWebLogic Server 12.1.2の新機能である動的クラスタなど
注目の新機能もカバーします。
Oracle WebLogic Server 12c: 管理 I
ミドルウェア
開催日程 ■ 2014年4月7日 (月) 〜 11 日 (金)
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 41
Copyright © 2014, Oracle and/or its affiliates. All rights reserved. 42
top related