ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Access ManagerおよびOracle Security Token Service開発者ガイド
11g リリース1 (11.1.1)
B66696-01
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

3 カスタム認証プラグインの作成

OAMサーバーでは、保護対象とするリソースへのアクセスを制限するために、認証と認可の両方の制御が利用されます。認証は特定の認証スキームにより制御され、認証スキームは、ユーザーがリソースへのアクセス試行時に入力した資格証明をテストする、1つ以上のプラグインに依存します。プラグインは、OAMサーバーのインストールで提供される標準セット、または独自のJava開発者が作成したカスタム・プラグインから取得できます。

この章の内容は次のとおりです。

3.1 認証プラグインの概要

Oracle Access Manager 11gは、初期状態ですぐに使用できる認証モジュールの他に、次のものを提供します。

資格証明コレクション用のカスタム・プラグインの作成が、認証のためにサポートされています(編成可能なステップ)。

図3-1では、カスタム・プラグインのデプロイ・タスクの概要を示しています。

図3-1 カスタム・プラグインのデプロイ・ワークフロー

カスタム・プラグインのデプロイ・ワークフロー
「図3-1 カスタム・プラグインのデプロイ・ワークフロー」の説明

次の概要では、カスタム・プラグインのデプロイ・タスクを識別しています。

タスク概要: カスタム・プラグイン要件のデプロイ

  1. 計画: 第3.1.2項「計画、認証モデルおよびプラグインについて」で説明しているように、このプラグインのビジネス要件を識別し、ユーザーがリソースをリクエストした場合の認証フローを検討します。

    セキュリティ・アーキテクトは、Oracle Access Manager 11gの使用方法および顧客のユーザー・ベースを把握しています。システム・アーキテクトは、顧客の実装における改善点を識別できます。

  2. 開発:

    開発者は、セキュリティ・アーキテクトが共通ライブラリを使用して実際のプラグインに設計した内容を翻訳し、カスタム認証モジュールをインタフェースします。

    1. プラグインを記述します。

    2. カスタム・モジュールのメタデータXMLを記述します。

    3. マニフェストを作成します。

    4. 次のjarファイルをクラスパスに追加します: felix.jar、identitystore.jar、oam-plugin.jar、utilities.jar。

  3. デプロイ:

    Oracle Access Manager管理者は、複数のプラグインが認証モジュールで連携するようにデプロイおよび編成し、プラグインをテストおよびモニターします。

    1. カスタム・プラグインの追加には、プラグイン・データ・ソースまたはドメインの構成、プラグインの配賦およびアクティブ化が含まれます。

    2. カスタム・プラグインに対応したカスタム認証モジュールの作成には、ステップおよび結果(OnSuccess、OnFailureおよびOnError)の追加および編成が含まれます。

    3. カスタム認証モジュールを含む認証スキームの作成

    4. カスタム・プラグインのロギングの構成

    5. 『Oracle Fusion Middleware Oracle Access Manager with Oracle Security Token Service管理者ガイド』の説明にあるように、Oracle Access Managerアクセス・テスターを使用してプラグインをテストします。

    6. プラグインをモニターし、セキュリティ・アーキテクトまたはシステム・アーキテクトにフィードバックを提供して、ビジネス要件およびアーキテクチャに対するリビジョンを可能にします。

3.1.1 カスタム・プラグインのライフ・サイクルについて

プラグインのライフ・サイクルは、OAMサーバーへのプラグインの追加およびプラグインを使用した機能の追加作成の機能を中心としています。これによりユーザーは、サーバーの拡張機能の役割を果たす標準(すぐに使用できる)プラグインおよびユーザーが追加したプラグインに基づいて、機能およびワークフローを作成できます。

次のリストは、標準的なプラグインのライフ・サイクルの概要を示しています。

  • 計画

  • プラグイン開発時間、プラグイン・メタデータ・アーティファクトの生成が含まれます

  • プラグインのロードおよびライフサイクル

    • インポート: プラグインをOracle Access Managerにアップロードし、サーバーを再起動せずにこれを使用

    • 配布: サーバーの停止時間なしで、プラグインjarを1つのローカルAdminServerファイル・システムからクラスタ内のすべての管理サーバーに伝播

    • アクティブ化: プラグインが認証モジュール・フローで使用される際に、このプラグイン実装を実行時にロード

    • プラグインのスタートアップ・パラメータまたは構成を使用

    • プラグイン構成データをoam-config.xmlにプッシュおよびプル

    • 管理対象サーバーの状態ライフサイクルのすべてを保持し、これと同じものがAdminServerに伝播

  • デプロイされたプラグインの状態

  • プラグインのモニターおよび監査

    • プラグイン実行の所要時間およびプラグインの実行回数に関するマトリクス・データを収集

    • プラグイン入出力のマトリクス・データを収集

    • プラグイン実行開始時間および終了時間のマトリクス・データを収集

    • プラグインのライフサイクル・メソッド・コードの監査

新規プラグインJARが使用可能な場合、デプロイヤはこれをOracle Access Suiteのインポート・アクションからAdminServer DOMAIN_HOME/oam/pluginsにインポートできます。

表3-1では、Oracle Access Manager管理者が制御するプラグイン・ライフサイクルの状態を示しています。詳細は、第3.5項「カスタム・プラグインの追加」を参照してください。

表3-1 プラグイン・ライフサイクルの状態

状態 説明

インポート

プラグインJARファイルをAdminServer DOMAIN_HOME/oam/pluginsに追加し、プラグインの検証を開始します。

配布

登録済のすべてのOAMサーバーにプラグインを伝播します。

アクティブ化

プラグインは、正常に配布された後、登録済のすべてのOAMサーバーでアクティブ化できます。

非アクティブ化

非アクティブ化では、oam-config.xmlのプラグイン・エントリ・フラグがチェックされます。

非アクティブ化プロセスでOAMサーバーに障害が発生した場合、非アクティブ化に失敗しましたというメッセージが伝播されます。

削除

AdminServerのDOMAIN_HOME/config/fmwconfig/oam/pluginsディレクトリから指定されたプラグイン(JAR)を削除し、AdminServerがすべてのOAMサーバーに通知します。


3.1.2 計画、認証モデルおよびプラグインについて

OAMサーバーのプラグインは、カスタム認証スキームの一部です。各種プラグインを次の目的に使用できます。

  • ユーザー・アイデンティティ・マッピング

    プラグインにより、ログイン・ユーザー名の形式ではなくユーザー入力の形式に対応するための機能を追加できます。フィンガープリント、一連のセキュリティ質問およびその他の方法を使用できます。プラグインによりこれらの入力が翻訳され、データベースと照らしあわせてチェックされます。

  • ユーザー認証

    ユーザーの認証時には、レスポンス(すぐに使用できる提供なし)が必要となる場合があります。カスタム・プラグインによりこのニーズに応えることができます。

  • カスタム・レスポンス

    レスポンスおよびこれらのレスポンスが残りのシステムと対話する方法について、カスタム・プラグインを使用できます。

  • その他のタイプのプラグインもサポート

図3-2は、ユーザーが保護されたリソースをリクエストした場合の認証フローを示しています。認証はプロセスであり、プロトコルではありません。緑色の矢印は、OAMサーバーにデプロイされたプラグインによって生成されたカスタム・レスポンスです。

図3-2 認証モデルおよびプラグイン

認証モデルおよびプラグイン
「図3-2 認証モデルおよびプラグイン」の説明

カスタム認証プラグインを設計および開発する前に、開発者はOracle Access Manager認証決定プロセスを綿密に分析し、ユーザーをどのように認証する必要があるかを確認することをお薦めします。

あるリクエストを受け取った場合、これを処理するには2通りの方法が考えられます。1つは、リクエストの属性に応じて特定のスキームを実行する方法であり、デシジョン・エンジンを使用して1つ以上のスキームを実行し、ユーザーを正しく認証します。これは、各スキーム内のコードが少なくて済み、モジュール性が高くなります。もう1つのオプションは、特定の目的でリクエストの様々な属性を処理するためにすべてのスキームをハードコードする方法であり、デジション・エンジンを使用せずに、どのスキームを実行する必要があるかを全体から把握します(1つのスキームのみ実行されます)。

例: デジション・エンジン対ハードコード認証

ユーザーが夜中に自宅のコンピュータを使用して、オンラインバンクの口座にログインすると仮定します。次の概要では、デシジョン・エンジンおよびハードコードのそれぞれの方法における処理の相違点を説明しています。開発者は、どの方法が要件に最も合うかを判断する必要があります。

プロセスの概要: デシジョン・エンジンを使用する方法

2つの方法の相違点は単純ですが、重要です。

  1. 夜中に、あるIPアドレスを持つユーザーからリクエストを受け取ります。

  2. デシジョン・エンジンにより、このIPアドレスが以前処理されたことが確認されます。また、夜中に認証を試みるユーザーは疑わしいと判断され、ユーザーはユーザー名およびパスワードだけでなく、セキュリティ質問に回答することが要求されます。

  3. 指定されたユーザーに対してセキュリティ質問スキームが実行され、成功します。これは、デジション・エンジンによって選択された2つの認証スキームのうちの1つ目です。

  4. ユーザーパスワード・スキームが実行され、ユーザーは正常に認証されます。これは、デジション・エンジンによって選択された2つ目の認証スキームです。

プロセスの概要: ハードコードを使用する方法

  1. 夜中に、あるIPアドレスを持つユーザーからリクエストを受け取ります。

  2. オンラインバンク口座のアクセス・スキームが他の認証スキーム(クレジット・カード・アクセス・スキーム、新規口座作成および検証など)の中から選択されます。

  3. このスキームでは最初にIPアドレスがチェックされ、ユーザーが以前このコンピュータから接続を試みたことがあるかどうかが確認されます。ユーザーが以前そうしたと確認されます。

  4. スキームにより時間がチェックされます。セキュリティ質問の回答が要求され、正しく回答されます。

  5. スキームによりユーザーはログイン資格証明の入力が要求され、正常に認証されます。

どちらの方法にも、それぞれメリットとデメリットがあります。デシジョンエンジン・モデルの場合、コードの再利用が主なメリットですが、ハードコードを使用した方法はセキュリティが向上する場合があります。開発者は、どの方法を選択するかを決定する必要があります。

表3-2 方法の比較

方法 説明

デシジョン・エンジン

認証スキームをより小さい連続モジュールに分割し、必要に応じて連携するよう編成できます。

メリット:

  • コードの再利用が主なメリットです。

  • Oracle Adaptive Access Managerを使用した方法のミラー化が2つ目のメリットです。

ハードコード

決定事項はありません。ユーザーが認証のために渡す必要があるIf-Else文一式に類似します。

メリット: セキュリティが向上する可能性があります。


3.2 プラグイン・インタフェースの概要

ここでは、次の内容について説明します。

3.2.1 プラグイン・インタフェースについて

このトピックでは、パッケージ、クラス、インタフェースおよび注釈の階層について概要を説明します。

カスタム・プラグイン実装には、プラグイン実装クラス・アーティファクトの記述が含まれます。プラグイン実装クラスは、AbstractAuthenticationPlugInクラスを拡張し、initializeおよびprocessメソッドを実装する必要があります。カスタム・プラグイン実装者は、実際のカスタム認証処理ロジックをこのメソッドに実装し、最終的な認証実行ステータスを戻す必要があります。

プラグインの構成要件はXML形式で指定する必要があります。この構成データ(メタデータ)には、プラグイン名、作成者、作成日、バージョン、インタフェース・クラス、実装クラスおよび構成データが、属性/値ペアの形式で含まれます。

Oracle Access Manager 11gは、次に説明する汎用プラグイン・インタフェースおよびより詳細な認証インタフェースを提供します。

3.2.1.1 GenericPluginService

oracle.security.am.plugin

パブリック・インタフェースoracle.security.am.pluginは、プラグイン名、プラグイン実装クラス名、プラグイン・バージョン、プラグイン実行ステータス、プラグイン・モニター・データ、プラグイン構成データを取得するメソッド、プラグインを起動および停止するメソッドを提供する汎用プラグイン・インタフェースです。

AbstractAMPlugin

パブリック抽象クラスoracle.security.am.plugin.AbstractAMPluginは、java.lang.Object implements GenericPluginServiceおよびorg.osgi.framework.BundleActivatorを拡張します。

oracle.security.am.plugin.AbstractAMPlugin

これは、すべてのAccess Managementプラグインによって拡張される必要がある抽象プラグイン・クラスです。これは、プラグインの起動および停止メソッドのための基本実装を提供します。


参照:

Oracle Fusion Middleware Oracle Access Manager Java APIリファレンス

3.2.1.2 AuthnPluginService

oracle.security.am.plugin.authn.AuthnPluginService

パブリック・インタフェースoracle.security.am.plugin.authn.AuthnPluginServiceは、GenericPluginServiceを拡張します。

これは認証プラグイン・インタフェースであり、AuthenticationContextオブジェクトで使用可能なすべてのデータにアクセスおよび処理し、プロセス実行ステータスを戻すための追加認証固有メソッドを提供します。プラグインはSESSIONに追加されるレスポンスを設定し、コンテキストをリクエストおよびリダイレクトできます。

AbstractAuthenticationPlugIn

パブリック抽象クラスoracle.security.am.plugin.authn.AbstractAuthenticationPlugInは、AbstractAMPluginを拡張し、AuthnPluginServiceを実装します。

oracle.security.am.plugin.authn.AbstractAuthenticationPlugIn

これはプラグイン開発者に公開される認証抽象プラグイン・クラスです。カスタム・プラグイン実装はすべて、このAbstractPlugInServiceクラスを拡張する必要があります。リソース・クリーン・アップを処理する必要があるプラグインは、shutdown(Map < String, Object > OAMEnvironmentContext)メソッドをオーバーライドします。また、これはjava.util.Loggerのインスタンスをプラグインに提供します。

3.2.2 プラグイン階層について

このトピックでは、階層の一覧を提供します。


参照:

Oracle Fusion Middleware Oracle Access Manager Java APIリファレンス

図3-3 プラグイン・パッケージ階層

プラグイン・パッケージ階層

図3-4 プラグイン・クラス階層

プラグイン・クラス階層

図3-5 プラグイン・インタフェース階層

プラグイン・インタフェース階層

図3-6 プラグイン注釈タイプ階層

プラグイン注釈タイプ階層

図3-7 プラグイン列挙階層

プラグイン列挙階層

3.3 サンプル・コード: カスタム・データベース・ユーザー認証プラグイン

この項では、データベース・ユーザー認証プラグインのサンプル実装のスナップショットを提供し、開発者タスクを示しています。この項の内容は次のとおりです。

3.3.1 サンプル・コード: データベース・ユーザー認証プラグイン

次の各図では、データベース・ユーザー認証プラグインのサンプル実装を3つの部分に分けて示しています。


参照:

Oracle Fusion Middleware Oracle Access Manager Java APIリファレンス

図3-8 データベース・ユーザー認証プラグイン・パート1

データベース・ユーザー認証プラグイン・パート1

続く..

図3-9 データベース・ユーザー認証プラグイン・パート2

データベース・ユーザー認証プラグイン・パート2

続く...

図3-10 データベース・ユーザー認証プラグイン・パート3

データベース・ユーザー認証プラグイン・パート3

3.3.2 プラグイン構成メタデータ要件のサンプル

プラグインの構成要件はXML形式で指定する必要があります。

この構成データ(メタデータ)には、プラグイン名、プラグイン作成者、作成日、プラグイン・バージョン、プラグイン・インタフェース・クラス、プラグイン実装クラスおよびプラグイン構成データが、属性/値ペアの形式で含まれます。

図3-11では、サンプル: データベース・ユーザー認証プラグイン実装のメタデータが含まれるXMLスキーマ定義(XSD)ファイルを示しています。

図3-11 XSD構成データ: データベース・ユーザー認証プラグイン

XSD構成データ: データベース・ユーザー認証プラグイン

図3-12では、サンプル: データベース・ユーザー認証プラグインのXMLメタデータを示しています。

図3-12 XMLメタデータ: データベース・ユーザー認証プラグイン

XMLメタデータ: データベース・ユーザー認証プラグイン

3.3.3 プラグインのサンプル・マニフェスト

図3-13では、データベース・ユーザー認証プラグイン・サンプルのMANIFEST.MFファイルを示しています。

図3-13 データベース・ユーザー認証プラグイン・サンプルのMANIFEST.MF

データベース・ユーザー認証プラグイン・サンプルのMANIFEST.MF

3.3.4 プラグインJARファイル構造

サンプル(データベース・ユーザー認証プラグイン)のJARファイル構造を次に示します。

3.4 認証プラグインの開発

開発者は、セキュリティ・アーキテクトが共通ライブラリを使用して実際のプラグインに設計した内容を翻訳し、カスタム認証モジュールをインタフェースします。

この項では、Oracle Access Manager 11g認証スキームで使用する認証プラグインの開発について説明します。内容は次のとおりです。

3.4.1 カスタム認証プラグインの記述について

カスタム・プラグイン実装の記述には、次を行うためのプラグイン実装クラスの記述が含まれます。

表3-3では、プラグインの機能に必要なメソッドについて説明します。

表3-3 必要なプラグイン・メソッド

必要なメソッド 説明

initialize

PluginConfigオブジェクトにハンドルを提供します。

PluginConfigオブジェクトは、プラグインのアップロード時に入力されたプラグイン固有システム構成データを取得する際に実行できます。このデータはプラグイン独自の機能に必要です。

process

AuthenticationContextオブジェクトにハンドルを提供するもので、次のプラグイン固有ランタイム構成データを取得する際に実行できます。

  • プラグイン・インスタンス・レベルで更新済

  • またはプラグイン編成ステップで更新済

AuthenticationContextオブジェクトは、次を取得する各種メソッドを提供するPluginContextオブジェクトを拡張します。

  • プラグイン構成データ

  • 例外データ

  • プラグイン環境データ

さらに、AuthenticationContextオブジェクトは次を取得するメソッドを提供します。

  • 認証スキーム

  • 認証サブジェクト

  • 資格証明オブジェクト

  • ランタイム・ポリシー・リソース



注意:

カスタム・プラグイン開発者は、実際のカスタム認証処理ロジックをこのメソッドに実装し、最終的な認証実行ステータスを戻す必要があります。

3.4.2 カスタム認証プラグインの記述

この項では、カスタム認証プラグインの記述ステップを示します。

次の概要では、システム・アーキテクトがこのプラグインのビジネス要件を識別し、ユーザーがリソースをリクエストした場合の認証フローを検討した後に開発者が実行する必要があるアクションについて説明します。詳細は、第3.1.2項「計画、認証モデルおよびプラグインについて」を参照してください。

前提条件

認証プラグインの概要

サンプル・コード: カスタム・データベース・ユーザー認証プラグイン

タスクの概要: 開発者によるカスタム認証プラグインの記述

  1. AbstractAuthenticationPlugInクラスを拡張し、次のメソッドを実装します(第3.4.1項「カスタム認証プラグインの記述について」も参照)。

    • initializeメソッドの実装

    • processメソッドの実装

  2. 適切なOracle Access Manager 11gインタフェースおよびパッケージを使用して、プラグイン・コードを開発します。参照:

  3. カスタム・プラグインのメタデータを作成します。参照:

  4. プラグインJarファイルおよびマニフェストを作成し、これらをデプロイ・チームに引き継ぎます。参照:

  5. 次に進みます。

3.4.3 カスタム認証プラグインのコンパイルに必要なJAR

カスタム認証プラグインのコンパイルには、複数のJARファイルが必要です。次のjarがあります。

  • extensibility_lifecycle.jar

  • . felix.jar

  • .felix-service.jar

  • oam-plugin.jar

これらのJARファイルは、次のパスに置かれています。

DOMAIN_HOME/servers/MANAGED_INSTANCE_NAME/tmp/_WL_user/oam_server/RANDOM_STRING
/APP-INF/lib

3.5 カスタム・プラグインの追加

ここでは、次の内容について説明します。

3.5.1 カスタム・プラグインの管理について

カスタム認証プラグインは、カスタム認証モジュールで作成および使用し、同様に認証スキームで使用できます。

プラグインの開発後、JARファイルとして管理サーバーにデプロイする必要があり、自動的に検証されます。検証後、管理者はOracle Access Suiteを使用してプラグインを構成および配布できます。

サーバーは、プラグインJARファイル内のXML構成ファイルを処理し、プラグインに関するデータを抽出します。プラグインがインポートされた後、管理者はAdminServerから使用できる情報に基づいて様々なプラグインの状態を参照し、変更できます。

図3-14は、「システム構成」タブの「共通構成」セクションにあるプラグイン・ノードおよびプラグイン・ページを示しています。このページに含まれるツールバーのコマンド・ボタンは、その多くが表で選択されたプラグインに作用します。この表は、既存のカスタム・プラグインとその状態に関する情報を提供します。ページ最下部の「プラグインの詳細」セクションは、表内の選択されたプラグインの構成詳細を反映しています。

図3-14 「共通構成」のプラグイン・ノードおよびプラグイン・ページ

プラグイン・ノード、共通構成、プラグイン・ページ

表3-4に示すように、管理者はプラグイン・ページ上部の表の上にあるコマンド・ボタンを使用して、プラグインの状態を制御します。

表3-4 カスタム・プラグインの管理アクション

アクション 説明

プラグインのインポート

プラグインのインポート

プラグインJARファイルをAdminServer DOMAIN_HOME/oam/pluginsに追加し、プラグインの検証を開始します。

  • 同一のJAR名: 新規プラグインJAR名(DOMAIN_HOME/oam/plugins内)が既存のプラグインJAR名(DOMAIN_HOME/config/fmwconfig/oam/plugins内)と一致する場合、Oracle Access ManagerはJAR(DOMAIN_HOME/oam/plugins内)のXMLファイルから新規構成メタデータを抽出し、新規プラグインのバージョンをチェックします。

  • XMLバージョン: 新規プラグインXMLバージョン(DOMAIN_HOME/oam/plugins内)が既存のXMLバージョン(DOMAIN_HOME/config/fmwconfig/oam/plugins内)より新しい場合、検証は成功します。そうでない場合、無効なバージョンを持つ無効なプラグイン名が戻され、新規プラグインJARが削除されます(DOMAIN_HOME/oam/pluginsから)。

  • 異なるJAR名: 新規プラグインJAR名(DOMAIN_HOME/oam/plugins内)が既存のプラグインJAR名(DOMAIN_HOME/config/fmwconfig/oam/plugins内)と異なる場合、新規プラグインJARがアップロードされ、検証は成功します。

成功時: ステータスが「アップロード済」として報告されます(OAMサーバーが停止している場合も同様)。登録されたすべてのOAMサーバーが「アップロード済」と報告し、AdminServerにおけるステータスも「アップロード済」となります。

失敗時: ステータスは「アップロードに失敗しました」と報告されます。

関連項目: 『Oracle Fusion Middleware Oracle Access ManagerおよびOracle Security Token Service開発者ガイド』の「カスタム・プラグインのライフ・サイクルについて」

選択項目の配布

選択されたプラグインの配布
  • 登録済のすべてのOAMサーバーにプラグインを伝播します。

  • oam-config.xmlのプラグイン・フラグをDistribute=trueに設定します。

  • AdminServerとOAMサーバーの間で、配布リスナーおよび通知メカニズムを起動します。

  • AdminServerノードからDOMAIN_HOME/config/fmwconfig/oam/pluginsの下の各OAMサーバー・ノードに、プラグインJARを配布します。

成功時: ステータスが「配布済」として報告されます(OAMサーバーが停止している場合も同様)。登録されたすべてのOAMサーバーが「配布済」と報告し、AdminServerにおけるステータスも「配布済」となります。

失敗時: ステータスは「配布に失敗しました」と報告されます。

選択項目のアクティブ化

選択されたプラグインのアクティブ化

プラグインは、正常に配布された後、登録済のすべてのOAMサーバーでアクティブ化できます。

アクティブ化:

  • oam-config.xmlのプラグイン・フラグをActivate=trueに更新します。

  • AdminServerとOAMサーバーの間で、メッセージ・リスナーおよび通知メカニズムを起動します。

  • AdminServerは、登録済のすべてのOAMサーバーにメッセージ「アクティブ化」を送信します。

成功時: ステータスが「アクティブ化済」として報告されます(OAMサーバーが停止している場合も同様)。登録されたすべてのOAMサーバーが「アクティブ化済」と報告し、AdminServerにおけるステータスも「アクティブ化済」となります。

失敗時: ステータスは「アクティブ化に失敗しました」と報告されます。

すべてのOAMサーバーについてアクティブ化した後、認証モジュールの作成または編成でプラグインを使用および実行できます。

選択項目の非アクティブ化

選択されたプラグインの非アクティブ化

プラグインをアクティブ化した後で、管理者はプラグインが認証モジュールまたはスキームで使用されていない場合などに、プラグインの非アクティブ化を選択できます。登録済のすべてのOAMサーバーから選択されたプラグイン。

非アクティブ化:

  • oam-config.xmlのプラグイン・フラグをDe-activate=trueに更新します。

  • AdminServerとOAMサーバーの間で、配布リスナーおよび通知メカニズムを起動します。

  • AdminServerおよび登録済の各OAMサーバー(DOMAIN_HOME/config/fmwconfig/oam/plugins)からプラグインJARを削除します。

  • AdminServerは、登録済のすべてのOAMサーバーにメッセージ「非アクティブ化」を送信します。

  • OAMサーバーは、AdminServerおよびOAMサーバーの両方のメッセージ・リスナーを使用して、AdminServerにステータス・メッセージを送信します。

成功時: ステータスが「非アクティブ化」として報告されます(OAMサーバーが停止している場合も同様)。登録されたすべてのOAMサーバーが「非アクティブ化」と報告し、AdminServerにおけるステータスも「非アクティブ化」となります。oam-config.xmlからプラグイン構成が削除されます。

注意: 非アクティブ化の後は、認証モジュールまたは編成でプラグインを使用または実行できません。

失敗時: ステータスは「非アクティブ化に失敗しました」と報告されます。

選択項目の削除

選択されたプラグインの削除

プラグインを非アクティブ化した後、管理者は選択したプラグインを削除できます。このプロセスでは、Oracle Access Managerは次の処理を実行します。

削除:

  • oam-config.xmlのプラグイン・フラグをRemove=trueに更新します。

  • AdminServerとOAMサーバーの間で、配布リスナーおよび通知メカニズムを起動します。

  • AdminServerおよび登録済の各OAMサーバー(DOMAIN_HOME/config/fmwconfig/oam/plugins)からプラグインJARを削除します。

  • AdminServerは、登録済のすべてのOAMサーバーにメッセージ「アクティブ化」を送信します。

成功時: ステータスが「削除済」として報告されます(OAMサーバーが停止している場合も同様)。登録されたすべてのOAMサーバーが「削除済」と報告し、AdminServerにおけるステータスも「削除済」となります。oam-config.xmlからプラグイン構成が削除されます。

失敗時: ステータスは「削除に失敗しました」と報告されます。


表3-4では、プラグイン・ステータス表の要素について説明します。

表3-5 プラグイン・ステータス表の要素

要素 説明

プラグイン名

XMLメタデータ・ファイルのプラグイン名要素から抽出されます。

説明

XMLメタデータ・ファイルの説明要素から抽出されます。

アクティブ化のステータス

AdminServerの情報に基づいてアクティブ化のステータスが報告されます。

タイプ

XMLメタデータ・ファイルのタイプ要素から抽出されます。

最終更新日

XMLメタデータ・ファイルの作成日要素から抽出されます。

最終更新者

XMLメタデータ・ファイルの作成者要素から抽出されます。


このページの「プラグインの詳細」セクションでは、表3-6に示すように、「アクティブ化のステータス」がAdminServerによって維持されます。

図3-15 選択したプラグインのアクティブ化のステータス

選択したプラグインのアクティブ化のステータス

プラグインによっては、様々な構成詳細がXMLメタデータ・ファイルの構成要素から抽出され、「プラグインの詳細」セクションの「構成パラメータ」に移入されます。表3-6に例を示します。

表3-6 XMLメタデータ・ファイルから抽出されたプラグイン詳細の例

構成要素 説明

データソース

XMLのプラグイン構成 プラグイン構成詳細: DataSource

Kerberos詳細

このプラグインを使用するには、Kerberos詳細を定義します。

プラグイン構成詳細: Kerberos

ユーザー識別詳細

このプラグインを使用するには、ユーザー・アイデンティティ・ストアおよびフィルタの詳細を定義します。

プラグイン構成詳細: UserID

ユーザー認証詳細

このプラグインを使用するには、ユーザー・アイデンティティ・ストアを定義します。

プラグイン構成詳細: UserAuthN

X.509詳細

このプラグインを使用するには、証明書詳細を定義します。

プラグイン構成詳細: X.509

3.5.2 カスタム・プラグインの追加

有効な管理者資格証明を持つユーザーは、次のタスクを実行して、カスタム・プラグインを追加、検証、配布およびアクティブ化できます。

前提条件

認証プラグインの開発

カスタム認証プラグインを追加する手順は、次のとおりです。

  1. プラグインをインポートします。

    1. Oracle Access Suiteにアクセスし、通常どおりログインします。次に例を示します。

      https://hostname:port/oamconsole/
      
    2. 「システム構成」タブの「共通構成」セクションから、「プラグイン」をクリックし、「アクション」メニューから開くをクリックします。

    3. 「プラグインのインポート」ボタンをクリックします。

    4. 「プラグインのインポート」ダイアログ・ボックスで、「参照」をクリックしてプラグインJARファイルの名前を選択します。

      「プラグインのインポート」ダイアログ・ボックス
    5. ダイアログ・ボックスのメッセージを確認し、「インポート」をクリックします。

      『Oracle Fusion Middleware Oracle Access Manager with Oracle Security Token Service管理者ガイド』で説明しているように、JARファイルが検証されます。

  2. パラメータの構成: 「プラグインの詳細」セクションを開き、「構成パラメータ」をクリックして、必要に応じて適切な情報を入力します。次に例を示します。

    プラグイン・データソース
  3. プラグインをOAMサーバーに配布します。

    1. プラグイン表で、プラグイン名をクリックして選択します。

    2. 「選択項目の配布」ボタンをクリックし、「アクティブ化のステータス」をチェックします。

      プラグインのアクティブ化ステータス: 配布済
  4. プラグイン(およびカスタム・プラグイン実装クラス)をアクティブ化し、OAMサーバーで使用できるようにします。

    1. プラグイン表で、プラグイン名をクリックして選択します。

    2. 「選択項目のアクティブ化」ボタンをクリックし、「アクティブ化のステータス」をチェックします。

      プラグインのアクティブ化ステータス: アクティブ化済
  5. 必要に応じて次のタスクを実行します。

3.5.3 プラグインのアクティブ化ステータスのチェック

有効な管理者資格証明を持つユーザーは、次のタスクを実行して、カスタム・プラグインを追加、検証、配布およびアクティブ化できます。

前提条件

認証プラグインの開発

カスタム認証プラグインのアクティブ化ステータスをチェックする手順は、次のとおりです。

  1. 「システム構成」タブの「共通構成」セクションから、「プラグイン」をクリックし、「アクション」メニューから開くをクリックします。

  2. プラグイン表で、目的のプラグイン名をクリックして選択します。

  3. サーバー・インスタンス名: 「プラグインの詳細」セクションを開き、「アクティブ化のステータス」をクリックしてプラグインの場所とステータスを表示します。次に例を示します。

    プラグイン・サーバー・インスタンス
  4. 必要に応じて次のタスクを実行します。

3.5.4 カスタム認証プラグインの削除

有効な管理者資格証明を持つユーザーは、次の手順を使用してカスタム・プラグインを非アクティブ化してから削除できます。

管理者がカスタム認証プラグインを削除した場合、その名前はプラグインのリストから削除されません。プラグインを削除するには(同じプラグインを後で再インポートするため)、管理者はWebLogic Serverを停止し、oam-config.xmlを手動で編集する必要があります。

前提条件

カスタム・プラグインの追加

カスタム認証プラグインを削除する手順は、次のとおりです。

  1. Oracle Access Suiteにアクセスし、通常どおりログインします。次に例を示します。

    https://hostname:port/oamconsole/
    
  2. 「システム構成」タブの「共通構成」セクションから、「プラグイン」をクリックし、「アクション」メニューから開くをクリックします。

  3. プラグインの非アクティブ化: プラグインを削除する前に、これを実行する必要があります。

    1. プラグイン表で、プラグイン名をクリックして選択します。

    2. 「選択項目の非アクティブ化」ボタンをクリックし、プラグインの「アクティブ化のステータス」をチェックします。

  4. 非アクティブ化したプラグインの削除:

    1. プラグイン表で、プラグイン名をクリックして選択します。

    2. 「選択項目の削除」ボタンをクリックします。

    3. WebLogic管理サーバーを停止し、oam-config.xmlの場所を確認し手動で編集して、非アクティブ化したプラグインを削除してから、WebLogic管理サーバーを再起動します。

  5. 必要に応じて次のタスクを実行します。

3.6 カスタム・プラグインに対応したカスタム認証モジュールの作成

ここでは、次の内容について説明します。

3.6.1 カスタム認証モジュールの作成について

「システム構成」ナビゲーション・ツリーの「Access Managerの設定」セクションには、認証モジュール・ノードが含まれます。カスタム認証モジュールを作成する場合、モジュールに必要な情報のタイプごとにサブタブが表示されます。

  • 一般

  • ステップ

  • ステップ編成

図3-16では、「システム構成」ナビゲーション・ツリーの「Access Managerの設定」セクションの認証モジュール・ノードと、モジュールの情報を入力する3つのサブタブを示しています。

図3-16 カスタム認証モジュール・ノードおよび「一般」サブタブ

カスタム認証モジュール

「一般」サブタブには、モジュール名およびオプションの説明を入力するスペースがあります。名前は、最大60文字で指定できます。オプションの説明は、最大250文字で指定できます。

図3-17では、カスタム認証モジュールに関する「ステップ」サブタブおよび「詳細」セクションを示しています。「ステップの詳細」の下の「プラグイン・パラメータ」として、ステップごとに有効な値のみが受け入れられます。無効な値は、カスタム認証モジュールを保存する際にエラーとなります。ステップを追加する際には、表に表示するデータはありません。ただし、1つ以上のステップがあれば、表および「詳細」セクションは移入されます。

図3-17 カスタム認証モジュールの「ステップ」サブタブおよび「詳細」セクション

カスタム認証モジュール、「ステップ」サブタブ

新規ステップを追加すると、次のダイアログ・ボックスが表示されます。表3-7に示すように、入力した情報はページの表および「詳細」セクションの移入に使用されます。

図3-18 ステップの追加

「新規ステップの追加」ダイアログ・ボックス: プラグイン

表3-7では、新規ステップの追加に必要な情報を説明しています。

表3-7 「新規ステップの追加」のエントリ、ステップ結果表および「詳細」セクション

要素 説明

ステップ名

このステップの追加時に入力された名前。

説明

このステップの追加時に入力された、このステップのオプションの説明。

プラグイン名

このステップの追加時に選択されたプラグイン名。

ステップの詳細

結果表の選択済ステップの詳細、プラグインの追加およびアクティブ化の際に設定されたプラグイン構成詳細。

関連項目: 表3-6「XMLメタデータ・ファイルから抽出されたプラグイン詳細の例」


図3-19では、カスタム認証モジュールの「ステップ編成」サブタブを示しており、ここでは定義済の各ステップ(および各操作条件について選択したアクション)の情報が移入されます。

図3-19 カスタム認証モジュールの「ステップ編成」サブタブ

カスタム認証モジュールの「ステップ編成」サブタブ

表3-8では、「ステップ編成」サブタブの要素を説明します。OnSuccess、OnFailureおよびOnErrorで使用できるリストには、次の選択肢が含まれます。

  • success

  • failure

  • StepName (モジュール内のステップは、操作条件に対するアクションとして選択できます)

表3-8 「ステップ編成」サブタブ

要素 説明

ステップ名

このステップの追加時に入力された名前。

説明

このステップの追加時に入力された、このステップのオプションの説明。

OnSuccess

このステップの操作の成功について選択されるアクション。

OnFailure

このステップの失敗について選択されるアクション。

OnError

このステップの実行時のエラーについて選択されるアクション。


3.6.2 カスタム認証モジュールの作成

有効な管理者資格証明を持つユーザーは、次の手順を使用して、Oracle Access Suiteにインポートされアクティブ化された1つ以上のカスタム認証プラグインを使用する認証モジュールを作成できます。


注意:

テンプレートとして使用する既存のカスタム・モジュールは複製できません。

前提条件

認証プラグインの開発

カスタム・プラグインの追加

カスタム・プラグインを使用するカスタム認証モジュールを作成する手順は、次のとおりです。

  1. 「システム構成」タブの「Access Managerの設定」セクションから、認証モジュール・ノードを開きます。

  2. ナビゲーション・ツリーから、「カスタム認証モジュール」をクリックします。

  3. ツールバーの「作成」ボタンをクリックします。

  4. 一般情報(「名前」およびオプションの「説明」)を追加します。

  5. モジュールにステップを追加します。

    1. 「ステップ」サブタブをクリックします。

    2. ステップ表の上の「追加」ボタンをクリックします。

    3. 「新規ステップの追加」ダイアログ・ボックスで、「ステップ名」およびオプションの「説明」を入力します。

    4. 目的のカスタム・プラグイン名を参照して選択し、「OK」をクリックします。

    5. 結果表の情報を確認します。

    6. bからeまでを繰り返し、このモジュールの必要なすべてのプラグインがリストされるまで、他のステップを追加します。

  6. 各ステップの構成: リクエストされたパラメータに適切な値を使用します。

    1. 表の「StepName」をクリックし、必要な詳細を表示します。

    2. リクエストされたパラメータの有効な値を入力します。

    3. 「保存」ボタンをクリックします。

    4. aからcまでを繰り返し、各ステップを適切に構成します。

  7. ステップの使用方法を編成します。

    1. 「ステップ編成」サブタブをクリックします。

    2. InitialStepリストから、使用する最初のステップの名前を選択します。

    3. 表の「StepName」を選択します。

    4. OnSuccessリストから、条件(成功または失敗)またはステップ名を選択します。

    5. OnFailureリストから、目的の条件またはStepNameを選択します。

    6. OnErrorリストから、目的の条件またはStepNameを選択します。

    7. cからeまでを繰り返し、このモジュール内の各プラグインの操作を編成します。

    8. 編成を確認します。

  8. 方針の検証の開始: 「適用」をクリックし、編成方針の検証を開始します。

    • 正常な方針: 編成方針が適用され、モジュールが認証スキームに含められるようになります。ステップ9および10に進みます。

    • 無効な方針: 「エラー」ボックスで「OK」をクリックしてから、OnSuccess、OnFailure、OnErrorの方針を編集(あるいはプラグインを追加または削除)し、問題を修正します。方針が正常になるまでこのステップを繰り返します。

  9. ナビゲーション・ツリーで、新しいカスタム認証モジュールがリストされていることを確認し、ページを閉じて終了します。

  10. カスタム認証モジュールを含む認証スキームを作成します

3.7 カスタム認証モジュールを含む認証スキームの作成

有効な管理者資格証明を持つユーザーは、次の手順を使用して、カスタム認証モジュールを含む新規認証スキームを作成できます。

これは、標準認証モジュールを含む認証スキームを作成する際に使用する手順と基本的には同じです。唯一の相違点は、カスタム・プラグインを使用するために定義された編成済ステップを含む認証モジュールを選択できることです。


参照:

『Oracle Fusion Middleware Oracle Access Manager with Oracle Security Token Service管理者ガイド』の認証スキームに関する詳細

前提条件

カスタム・プラグインに対応したカスタム認証モジュールの作成

カスタム認証スキームを作成する手順は、次のとおりです。

  1. 「ポリシー構成」タブのナビゲーション・ツリーから「共有コンポーネント」ノードを拡張します。

  2. 「認証スキーム」ノードをクリックし、ツールバーの「作成」ボタンをクリックします。

  3. 新規の認証スキーム・ページに入力します。

    1. 名前

    2. 説明

    3. 認証レベル

    4. デフォルト

    5. チャレンジ・メソッド

    6. チャレンジ・リダイレクト

    7. 認証モジュール(カスタム・プラグインがあるものを含む)

  4. 「適用」をクリックして新しいスキームを送信します(または変更を適用しないでページを閉じます)。

  5. 確認ウィンドウを閉じます。

  6. オプション: 「デフォルトとして設定」ボタンをクリックして、新しいアプリケーション・ドメインでこれを自動的に使用し、確認ウィンドウを閉じます。

  7. ナビゲーション・ツリーで、新しいスキームがリストされていることを確認し、ページを閉じます。

3.8 カスタム・プラグインのロギングの構成

Oracle Access Manager with Oracle Security Token Serviceは、WebLogic Serverコンテナのロギング・デフォルトを使用します。カスタム・プラグインの必要な属性とともに、Oracle Access Manager固有のカスタム・ログ出力およびログ・ハンドラを指定するには、ここで説明するようにWLSTコマンドを使用できます。


参照:

Oracle Security Token Serviceを伴うOracle Fusion Middleware Oracle Access Manager管理者ガイド

カスタム・プラグインのログ出力およびハンドラを変更する手順は、次のとおりです。

  1. OAMサーバーが稼動中であることを確認します。

  2. Oracle Access Manager用のカスタムWLSTスクリプトを取得します。次に例を示します。

    <ORACLE_HOME>/common/bin/wlst.sh
    
  3. WebLogic Serverに接続してWebLogic管理者としてログインします。次に例を示します。

    sh wlst.sh wls:/offline> connect ('adminID','password','adminURL')
    
  4. カスタム・プラグインの使用可能なログ出力をリストします。次に例を示します。

    wls:/base_domain/serverConfig> listLoggers(pattern="oracle.oam.*",target="oam_
    server1")
    

    ここで、pattern=はoam.controllerコンポーネントを表し、target=は希望のOAMサーバー(登録時に指定されたもの)を表します。

  5. このOAMサーバーに関連付けられているOracle Access Managerログ出力のリストを表示します。次に例を示します。

    Logger                                      | Level
    --------------------------------------------+-----------------
    oracle.oam                                  | <Inherited>
    oracle.oam.commonutil                       | <Inherited>
    oracle.oam.config                           | <Inherited>
    oracle.oam.controller                       | <Inherited>
    ...
    
  6. 自身の要求に基づいてoracle.oam.controllerログ・レベルを変更します。たとえば、TRACE:32(永続性なし)は次のようになります。

    wls:/base_domain/serverConfig> domainRuntime()
    wls:/base_domain/domainRuntime> setLogLevel(logger="oracle.oam.controller", 
    level="TRACE:32", persist="0", target="oam_server1")
    
  7. ステップ4を繰り返して再びロガーをリストし、ログ・レベルの変更を確認します。次に例を示します。

    wls:/base_domain/serverConfig> listLoggers(pattern="oracle.oam.*",target="oam_
    server1")
    
    Logger                                      | Level
    --------------------------------------------+-----------------
    oracle.oam                                  | <Inherited>
    oracle.oam.commonutil                       | <Inherited>
    oracle.oam.config                           | <Inherited>
    oracle.oam.controller                       | TRACE:32
    ...
    
  8. 生成されたログ・ファイルを検証して、コントローラが指定レベルでロギングされていることを確認します。

    DOMAIN_HOME/server/SERVER_INSTNCE_NAME/logs/
    
  9. 次のように、Oracle Access Manager固有のカスタム・ログ出力およびログ・ハンドラを追加し、ログ・ファイル・パスおよび必要な属性を指定します。

    1. 次のようにOAMログ出力を追加します。

      wls:/base_domain/serverConfig> domainRuntime> 
      wls:/base_domain/domainRuntime> setLogLevel(logger="oracle.oam",level="WAR 
      NING", persist="0", target="oam_server1")
      
    2. 次に示すように、カスタム・ログ・ハンドラを追加して、それにOAMログ出力を関連付けます。

      wls:/base_domain/domainRuntime> configureLogHandler(name="oam-log-handler",
      target="oam_server1", rotationFrequency="daily", retentionPeriod="week", 
      path="${domain.home}/oamlogs", maxFileSize ="10485760", maxLogSize = 
      "104857600",addHandler="true", handlerType="oracle.core.ojdl.logging.ODLHan 
      dlerFactory", addToLogger="oracle.oam")
      
      wls:/base_domain/domainRuntime>configureLogHandler(name="oam-log-handler", 
      addProperty="true", propertyName="supplementalAttributes", 
      propertyValue="OAM.USER, OAM.COMPONENT", target="oam_server1")
      
    3. DOMAIN_HOME/oamlogsフォルダにすべてのOAMログが表示されていることを確認します。

  10. 生成されたログ・ファイルを検証して、コントローラがTRACE:32レベルでロギングされていることを確認します。

    DOMAIN_HOME/server/SERVER_INSTNCE_NAME/logs/