プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle WebLogic Serverセキュリティ・プロバイダの開発 12c
12
c
(12.2.1.1.0)
E79378-01
次へ
目次
タイトルおよび著作権情報
はじめに
ドキュメントのアクセシビリティについて
表記規則
1
概要とロードマップ
1.1
ドキュメントのスコープ
1.2
対象読者
1.3
このドキュメントの手引き
1.4
関連情報
1.5
このリリースでの新機能と変更された機能
2
WebLogic Serverで使用するセキュリティ・プロバイダの開発について
2.1
前提条件
2.2
開発プロセスの概要
2.2.1
カスタム・セキュリティ・プロバイダの設計
2.2.2
SSPIの実装によるカスタム・セキュリティ・プロバイダ用のランタイム・クラスの作成
2.2.3
カスタム・セキュリティ・プロバイダを構成および管理するMBeanタイプの生成
2.2.4
コンソール拡張機能の記述
2.2.5
カスタム・セキュリティ・プロバイダの構成
2.2.6
セキュリティ・ポリシー、セキュリティ・ロール、および資格証明マップを管理するメカニズムの提供
3
設計上の考慮事項
3.1
セキュリティ・プロバイダの一般的なアーキテクチャ
3.2
セキュリティ・サービス・プロバイダ・インタフェース(SSPI)
3.2.1
2つの重要な制限について
3.2.2
「Provider」SSPIの目的について
3.2.3
バルク・アクセス・プロバイダの目的について
3.2.4
実装する「Provider」インタフェースの決定
3.2.4.1
DeployableAuthorizationProviderV2 SSPI
3.2.4.2
DeployableRoleProviderV2 SSPI
3.2.4.3
DeployableCredentialProvider SSPI
3.2.5
SSPI階層を理解し、ランタイム・クラスを1つ作成するか2つ作成するかを決定する
3.2.6
SSPIクイック・リファレンス
3.3
セキュリティ・サービス・プロバイダ・インタフェース(SSPI) MBean
3.3.1
MBeanタイプが必要な理由について
3.3.2
拡張および実装するSSPI MBeanの決定
3.3.3
MBean定義ファイル(MDF)の基本的な要素について
3.3.3.1
カスタム・プロバイダとクラスパス
3.3.3.2
MBean操作から例外のスロー
3.3.3.3
MBean属性に対して非クリア・テキスト値の指定
3.3.4
SSPI MBeanの階層と管理コンソールに対する影響について
3.3.5
WebLogic MBeanMakerによって提供されるものについて
3.3.5.1
MBean情報ファイルについて
3.3.6
SSPI MBeanクイック・リファレンス
3.4
セキュリティ・データの移行
3.4.1
移行の概念
3.4.1.1
フォーマット
3.4.1.2
制約
3.4.1.3
移行ファイル
3.4.2
カスタム・セキュリティ・プロバイダへの移行サポートの追加
3.4.3
セキュリティ・データの移行に関する管理コンソールのサポート
3.5
セキュリティ・プロバイダの開発者向け管理ユーティリティ
3.6
セキュリティ・プロバイダとWebLogicリソース
3.6.1
WebLogicリソースのアーキテクチャ
3.6.2
WebLogicリソースのタイプ
3.6.3
WebLogicリソース識別子
3.6.3.1
toString()メソッド
3.6.3.2
リソースIDとgetID()メソッド
3.6.4
WebLogicリソースのデフォルト・グループの作成
3.6.5
WebLogicリソースのデフォルト・セキュリティ・ロールの作成
3.6.6
WebLogicリソースのデフォルト・セキュリティ・ポリシーの作成
3.6.7
セキュリティ・プロバイダのランタイム・クラスでのWebLogicリソースのルックアップ
3.6.8
単一親リソース階層
3.6.8.1
URLリソースのパターン・マッチング
3.6.8.1.1
例1
3.6.8.1.2
例2
3.6.9
ContextHandlerとWebLogicリソース
3.6.9.1
コンテキスト・ハンドラをサポートするプロバイダとインタフェース
3.7
セキュリティ・プロバイダ・データベースの初期化
3.7.1
ベスト・プラクティス:データベースがない場合のシンプルなデータベースの作成
3.7.2
ベスト・プラクティス:既存のデータベースの構成
3.7.3
ベスト・プラクティス:データベース初期化の委託
3.7.4
ベスト・プラクティス: JDBC接続セキュリティ・サービスAPIを使用したデータベース接続の取得
3.7.4.1
JDBC接続セキュリティ・サービスの実装: 主な手順
3.8
属性バリデータの相違点
3.8.1
カスタム・バリデータの場合の属性バリデータの相違点
4
認証プロバイダ
4.1
認証の概念
4.1.1
ユーザー/グループ、プリンシパル、サブジェクト
4.1.1.1
初期ユーザーおよびグループの指定
4.1.2
LoginModule
4.1.2.1
LoginModuleインタフェース
4.1.2.2
LoginModuleとマルチパート認証
4.1.3
JAAS (Java Authentication and Authorization Service)
4.1.3.1
JAASがWebLogicセキュリティ・フレームワークとどう連携するか
4.1.3.2
例:スタンドアロンのT3アプリケーション
4.2
認証プロセス
4.3
カスタム認証プロバイダを開発する必要があるか
4.4
カスタム認証プロバイダの開発方法
4.4.1
適切なSSPIによるランタイム・クラスの作成
4.4.1.1
AuthenticationProviderV2 SSPIの実装
4.4.1.2
JAAS LoginModuleインタフェースの実装
4.4.1.3
LoginModuleからカスタム例外のスロー
4.4.1.3.1
方法1: システム・クラスパスおよびコンパイラ・クラスパスを介してカスタム例外を使えるようにする
4.4.1.3.2
方法2: アプリケーション・クラスパスを介してカスタム例外を使えるようにする
4.4.1.4
例: サンプル認証プロバイダのランタイム・クラスの作成
4.4.2
管理コンソールによるカスタム認証プロバイダの構成
4.4.2.1
ユーザー・ロックアウトの管理
4.4.2.1.1
レルム・ワイドのユーザー・ロックアウト・マネージャの使用
4.4.2.1.2
独自のユーザー・ロックアウト・マネージャの実装
4.4.2.2
認証プロバイダの順序の指定
5
IDアサーション・プロバイダ
5.1
IDアサーションの概念
5.1.1
IDアサーション・プロバイダとLoginModule
5.1.2
IDアサーションとトークン
5.1.2.1
新しいトークン・タイプの作成方法
5.1.2.2
新しいトークン・タイプをIDアサーション・プロバイダの構成で利用可能にする方法
5.1.3
境界認証用のトークンの渡し
5.1.4
CSIv2 (Common Secure Interoperability Version 2)
5.2
IDアサーション・プロセス
5.3
カスタムIDアサーション・プロバイダを開発する必要があるか
5.4
カスタムIDアサーション・プロバイダの開発方法
5.4.1
適切なSSPIによるランタイム・クラスの作成
5.4.1.1
AuthenticationProviderV2 SSPIの実装
5.4.1.2
IdentityAsserterV2 SSPIの実装
5.4.1.3
例: サンプルIDアサーション・プロバイダのランタイム・クラスの作成
5.4.2
管理コンソールによるカスタムIDアサーション・プロバイダの構成
5.4.3
チャレンジIDアサーション
5.4.3.1
JavaサーブレットAPI 2.3環境におけるチャレンジ/レスポンスの制限
5.4.3.2
weblogic.security.services.Authenticationクラスのフィルタと役割
5.4.3.3
チャレンジIDアサーション・プロバイダの開発方法
5.4.3.4
ChallengeIdentityAsserterV2インタフェースの実装
5.4.3.5
ProviderChallengeContextインタフェースの実装
5.4.3.6
weblogic.security.servicesのチャレンジIDメソッドの呼出し
5.4.3.7
weblogic.security.servicesのAppChallengeContextメソッドの呼出し
5.4.3.8
フィルタからのチャレンジIDアサーションの実装
6
プリンシパル検証プロバイダ
6.1
プリンシパル検証の概念
6.1.1
プリンシパル検証とプリンシパル・タイプ
6.1.2
プリンシパル検証プロバイダと他のタイプのセキュリティ・プロバイダの違い
6.1.3
無効なプリンシパルが原因のセキュリティ例外
6.2
プリンシパル検証プロセス
6.3
カスタム・プリンシパル検証プロバイダを開発する必要があるか
6.3.1
WebLogicプリンシパル検証プロバイダの使い方
6.4
カスタム・プリンシパル検証プロバイダの開発方法
6.4.1
PrincipalValidator SSPIの実装
7
認可プロバイダ
7.1
認可の概念
7.1.1
アクセス決定
7.1.2
Java Authorization Contract for Containersの使用
7.2
認可プロセス
7.3
カスタム認可プロバイダを開発する必要があるか
7.3.1
カスタム認可プロバイダでアプリケーションのバージョン管理をサポートする必要があるか
7.4
カスタム認可プロバイダはスレッド・セーフか
7.5
カスタム認可プロバイダの開発方法
7.5.1
適切なSSPIによるランタイム・クラスの作成
7.5.1.1
AuthorizationProvider SSPIの実装
7.5.1.2
DeployableAuthorizationProviderV2 SSPIの実装
7.5.1.2.1
ApplicationInfoインタフェース
7.5.1.3
AccessDecision SSPIの実装
7.5.1.4
例: サンプル認可プロバイダのランタイム・クラスの作成
7.5.2
ポリシー・コンシューマSSPI
7.5.2.1
必要なSSPIインタフェース
7.5.2.2
PolicyConsumerFactory SSPIインタフェースの実装
7.5.2.3
PolicyConsumer SSPIインタフェースの実装
7.5.2.4
PolicyCollectionHandler SSPIインタフェースの実装
7.5.2.5
更新後のポリシー・コレクションのサポート
7.5.2.6
PolicyConsumerMBean
7.5.3
PolicyStoreMBean
7.5.3.1
XACML Policyファイルの形式の調べ
7.5.3.2
WLSTを使用してPolicyStoreMBeanにポリシーの追加
7.5.3.3
WLSTを使用してPolicySetをStringとして読み込む
7.5.4
バルク認可プロバイダ
7.5.5
管理コンソールによるカスタム認可プロバイダの構成
7.5.5.1
認可プロバイダとデプロイメント記述子の管理
7.5.5.2
セキュリティ・ポリシー・デプロイメントの有効化
7.5.6
セキュリティ・ポリシーを管理するためのメカニズムの提供
7.5.6.1
オプション1 :セキュリティ・ポリシー管理用のスタンドアロン・ツールの開発
7.5.6.2
オプション2: 既存のセキュリティ・ポリシー管理ツールを管理コンソールに統合する
8
裁決プロバイダ
8.1
裁決プロセス
8.2
カスタム裁決プロバイダを開発する必要があるか
8.3
カスタム裁決プロバイダの開発方法
8.3.1
適切なSSPIによるランタイム・クラスの作成
8.3.1.1
AdjudicationProviderV2 SSPIの実装
8.3.1.2
AdjudicatorV2 SSPIの実装
8.3.2
バルク裁決プロバイダ
8.3.3
管理コンソールによるカスタム裁決プロバイダの構成
9
ロール・マッピング・プロバイダ
9.1
ロール・マッピングの概念
9.1.1
セキュリティ・ロール
9.1.2
動的セキュリティ・ロール計算
9.2
ロール・マッピング・プロセス
9.3
カスタム・ロール・マッピング・プロバイダはスレッド・セーフか
9.4
カスタム・ロール・マッピング・プロバイダを開発する必要があるか
9.4.1
カスタム・ロール・マッピング・プロバイダでアプリケーションのバージョン管理をサポートする必要があるか
9.5
カスタム・ロール・マッピング・プロバイダの開発方法
9.5.1
適切なSSPIによるランタイム・クラスの作成
9.5.1.1
RoleProvider SSPIの実装
9.5.1.2
DeployableRoleProviderV2 SSPIの実装
9.5.1.2.1
ApplicationInfoインタフェース
9.5.1.3
RoleMapper SSPIの実装
9.5.1.4
SecurityRoleインタフェースの実装
9.5.1.5
例: サンプル・ロール・マッピング・プロバイダのランタイム・クラスの作成
9.5.2
ロール・コンシューマSSPI
9.5.2.1
必要なSSPIインタフェース
9.5.2.2
RoleConsumerFactory SSPIインタフェースの実装
9.5.2.3
RoleConsumer SSPIインタフェースの実装
9.5.2.4
RoleCollectionHandler SSPIインタフェースの実装
9.5.2.5
更新後のロール・コレクションのサポート
9.5.2.6
RoleConsumerMBean
9.5.3
PolicyStoreMBean
9.5.3.1
XACML Policyファイルの形式の調べ
9.5.3.2
WLSTを使用してPolicyStoreMBeanにポリシーの追加
9.5.3.3
WLSTを使用してPolicySetをStringとして読み込む
9.5.4
バルク・ロール・マッピング・プロバイダ
9.5.5
管理コンソールによるカスタム・ロール・マッピング・プロバイダの構成
9.5.5.1
ロール・マッピング・プロバイダとデプロイメント記述子の管理
9.5.5.2
セキュリティ・ロール・デプロイメントの有効化
9.5.6
セキュリティ・ロールを管理するためのメカニズムの提供
9.5.6.1
オプション1 :セキュリティ・ロール管理用のスタンドアロン・ツールの開発
9.5.6.2
オプション2: 既存のセキュリティ・ロール管理ツールを管理コンソールに統合する
10
監査プロバイダ
10.1
監査の概念
10.1.1
監査チャネル
10.1.2
カスタム・セキュリティ・プロバイダからのイベントの監査
10.2
監査プロセス
10.3
ContextHandler MBeanの実装
10.3.1
ContextHandlerMBeanメソッド
10.3.2
例: ContextHandlerMBeanの実装
10.3.3
weblogic.management.security.audit.ContextHandlerImplの拡張
10.4
カスタム監査プロバイダを開発する必要があるか
10.5
カスタム監査プロバイダの開発方法
10.5.1
適切なSSPIによるランタイム・クラスの作成
10.5.1.1
AuditProvider SSPIの実装
10.5.1.2
AuditChannel SSPIの実装
10.5.1.3
例:サンプル監査プロバイダのランタイム・クラスの作成
10.5.2
管理コンソールによるカスタム監査プロバイダの構成
10.5.2.1
監査重大度の構成
10.6
セキュリティ・フレームワークの監査イベント
10.6.1
付加的な監査情報の渡し
10.6.2
監査イベント・インタフェースと監査イベント
10.6.2.1
AuditApplicationVersionEvent
10.6.2.2
AuditAtnEventV2
10.6.2.3
AuditAtzEvent
10.6.2.4
AuditCerPathBuilderEvent、AuditCertPathValidatorEvent
10.6.2.5
AuditConfigurationEvent
10.6.2.6
AuditCredentialMappingEvent
10.6.2.7
AuditLifecycleEvent
10.6.2.8
AuditMgmtEvent
10.6.2.9
AuditPolicyEvent
10.6.2.10
AuditRoleDeploymentEvent
10.6.2.11
AuditRoleEvent
11
資格証明マッピング・プロバイダ
11.1
資格証明マッピングの概念
11.2
資格証明マッピング・プロセス
11.3
カスタム資格証明マッピング・プロバイダを開発する必要があるか
11.3.1
カスタム資格証明マッピング・プロバイダでアプリケーションのバージョン管理をサポートする必要があるか
11.4
カスタム資格証明マッピング・プロバイダの開発方法
11.4.1
適切なSSPIによるランタイム・クラスの作成
11.4.1.1
CredentialProviderV2 SSPIの実装
11.4.1.2
DeployableCredentialProvider SSPIの実装
11.4.1.3
CredentialMapperV2 SSPIの実装
11.4.2
資格証明マップを管理するためのメカニズムの提供
11.4.2.1
オプション1 :資格証明マップ管理用のスタンドアロン・ツールの開発
11.4.2.2
オプション2: 既存の資格証明マップ管理ツールを管理コンソールに統合する
12
カスタム・セキュリティ・プロバイダからのイベントの監査
12.1
セキュリティ・サービスと監査サービス
12.2
カスタム・セキュリティ・プロバイダからの監査方法
12.2.1
監査イベントの作成
12.2.1.1
AuditEvent SSPIの実装
12.2.1.2
監査イベント・コンビニエンス・インタフェースの実装
12.2.1.2.1
AuditAtnEventV2インタフェース
12.2.1.2.2
AuditAtzEventおよびAuditPolicyEventインタフェース
12.2.1.2.3
AuditMgmtEventインタフェース
12.2.1.2.4
AuditRoleEventおよびAuditRoleDeploymentEventインタフェース
12.2.1.3
監査重大度
12.2.1.4
監査コンテキスト
12.2.1.5
例: AuditRoleEventインタフェースの実装
12.2.2
監査サービスの取得、および取得した監査サービスによる監査イベントの書込み
12.2.2.1
例: 監査サービスを取得および使用したロール監査イベントの書込み
12.2.2.2
プロバイダのMBeanから管理操作の監査
12.2.2.3
例:プロバイダのMBeanから管理操作の監査
12.2.3
ベスト・プラクティス:プロバイダのMBeanからの監査イベントのポスト
13
サーブレット認証フィルタ
13.1
認証フィルタの概念
13.1.1
フィルタが必要な理由
13.1.2
サーブレット認証フィルタ設計上の考慮事項
13.2
フィルタが呼び出されるしくみ
13.2.1
認証プロバイダからサーブレット認証フィルタを呼び出さない
13.3
フィルタを実装するプロバイダの例
13.4
カスタム・サーブレット認証フィルタの開発方法
13.4.1
適切なSSPIによるランタイム・クラスの作成
13.4.2
サーブレット認証フィルタSSPIの実装
13.4.3
フィルタ・インタフェース・メソッドの実装
13.4.4
フィルタからのチャレンジIDアサーションの実装
13.4.5
WebLogic MBeanMakerを使用してMBeanタイプを生成する
13.4.5.1
WebLogic MBeanMakerによるMBean JARファイル(MJF)の作成
13.4.6
管理コンソールによる認証プロバイダの構成
14
バージョン管理可能なアプリケーションのプロバイダ
14.1
バージョン管理可能なアプリケーションの概念
14.2
バージョン管理可能なアプリケーションのプロセス
14.3
バージョン管理可能なアプリケーションのカスタム・プロバイダを開発する必要があるか
14.4
カスタムVersionableApplicationプロバイダの開発方法
14.4.1
適切なSSPIによるランタイム・クラスの作成
14.4.1.1
VersionableApplication SSPIの実装
14.4.1.2
例: サンプルVersionableApplicationプロバイダのランタイム・クラスの作成
14.4.2
WebLogic MBeanMakerを使用してMBeanタイプを生成する
14.4.2.1
WebLogic MBeanMakerによるMBean JARファイル(MJF)の作成
14.4.3
管理コンソールによるバージョン管理可能なアプリケーションのカスタム・プロバイダの構成
15
証明書パス・プロバイダ
15.1
証明書の検索と検証の概念
15.1.1
証明書の検索と検証のプロセス
15.1.2
証明書パス検証プロバイダと証明書パス・ビルダーを実装する必要があるか
15.1.3
証明書パス・プロバイダSPI MBean
15.1.4
WebLogic証明書パス検証プロバイダSSPI
15.1.5
WebLogic証明書パス・ビルダーSSPI
15.1.6
WebLogic Server証明書パスSSPIとJDK SPIとの関係
15.2
カスタム証明書パス・プロバイダを開発する必要があるか
15.3
カスタム証明書パス・プロバイダの開発方法
15.3.1
適切なSSPIによるランタイム・クラスの作成
15.3.1.1
JDK CertPathBuilderSpiインタフェース、CertPathValidatorSpiインタフェースのいずれか、または両方の実装
15.3.1.2
証明書パス・プロバイダSSPIの実装
15.3.1.3
JDKセキュリティ・プロバイダSPIの実装
15.3.1.4
CertPathBuilderSpi実装でCertPathBuilderParametersSpi SSPIの使用
15.3.1.5
CertPathValidatorSpi実装でCertPathValidatorParametersSpi SSPIの使用
15.3.1.6
ビルダーまたは検証プロバイダの結果の返し
15.3.1.7
例:サンプル証明書パス・プロバイダの作成
15.3.2
管理コンソールによるカスタム証明書パス・プロバイダの構成
A
MBean定義ファイル(MDF)要素の構文
A.1
MBeanType (ルート)要素
A.2
MBeanAttributeサブ要素
A.3
MBeanConstructorサブ要素
A.4
MBeanOperationサブ要素
A.5
MBean操作の例外
A.6
例:有効な整形式MBean定義ファイル(MDF)
B
WebLogic MBeanMakerを使用してMBeanタイプを生成する
B.1
手順の概要
B.2
MBean定義ファイル(MDF)の作成
B.3
WebLogic MBeanMakerを使用してMBeanタイプを生成する
B.3.1
カスタム操作を追加しない場合
B.3.2
オプショナルSSPI MBeanとカスタム操作を追加しない場合
B.3.3
オプショナルSSPI MBeanまたはカスタム操作を追加する場合
B.3.4
生成されるMBeanインタフェース・ファイルについて
B.4
WebLogic MBeanMakerによるMBean JARファイル(MJF)の作成
B.5
WebLogic Server環境にMBeanタイプをインストールする