Oracle Access Managerに備わっているAPIを使用すると、ソフトウェア開発者は、Oracle Access Managerと密接に統合されるカスタム・プログラムまたはコンポーネントを作成できます。これらのモジュールは、Oracle Access Managerのベース機能を拡張したカスタム機能から、Oracle Access Managerの外部の重要なアプリケーションにいたるまで、あらゆるものを表しますが、識別またはアクセス制御の機能のためにOracle Access Managerと対話する必要があります。
この章では、プログラムを使用してOracle Access Managerを使用するいくつかの方法について説明します。
Oracle Access Managerには、Webサーバーへのアクセスの制御に使用される標準的なWebGateコンポーネントが備わっています。Oracle Access Managerのアクセス制御システムは、スタンドアロン・アプリケーション内でアプリケーション・サーバーや機能へのアクセスを制御する場合に使用します。
『Oracle Access Managerデプロイメント・ガイド』で説明されているように、Access Manager APIを使用してカスタムのアクセス・ゲートを作成できます。
Oracle Access Managerには、Oracle Access Managerの認証サービスと認可サービスへのインタフェースを作成するときに使用できるソフトウェア開発者キット(SDK)が備わっています。このインタフェースは、市販のアプリケーション・サーバー(BEA WebLogic、IBM WebSphere、iPlanet Application Server、またはアクセス・サーバーにアクセスできるその他任意のアプリケーション)内に構築できます。APIが追加されたアプリケーションは、アクセス・サーバーへのアクセス・ゲートとして機能します。
具体的には、Access Manager APIを使用すると、Java(サーブレット、JSP、EJBなど)、C++(COM/ASP)およびCのアプリケーションで次の処理が可能になります。
ユーザーの認証
Webサーバーおよびアプリケーション・サーバー全体にわたるセキュアなシングル・サインオン(SSO)のサポート
アプリケーション・リソース(URL、EJBとそのメソッド、およびユーザー定義リソース)に対するユーザー・リクエストの認可
HTTP以外のリソースの保護のサポート
Java BeanレベルとEnterprise Java Beanレベルの両方のセキュリティの実現
APIは、主にJ2EE互換のアプリケーション・サーバー(特に、サーブレット、Java Server PagesおよびEnterprise Java Beansと連携して動作する方法)をサポートするように設計されています。つまり、Javaの観点から設計されています。また、APIは、C++とCに対するバインディングを提供します。
アクセス・ゲートの作成は重要なプログラミング作業なので、『Oracle Access Managerデプロイメント・ガイド』で詳しく説明しています。
(たとえば、Oracle Access Managerに付属の既存のプラグインでは完全に対応できない新しい証明書タイプ用に)認証方式を作成できます。あるいは、RDBMSなどの外部データ・ストアに対してユーザーを認証するためのメソッドを追加できます。
これを行うには、『Oracle Access Managerデプロイメント・ガイド』で説明されているように、認証プラグインAPIを使用して、新しいプラグインを作成してOracle Access Managerに追加します。
たとえば、アクセス・システムで保護されているWebサーバーのリソースをブラウザがリクエストした場合、WebGateプラグインは、そのリソースが保護されているかどうか、およびユーザーを認証する必要があるかどうかを調べます。その場合、WebGateはユーザーの新しいログインを必要とし、ブラウザに認証チャレンジを送信します。チャレンジは、認証スキーム内に定義されているチャレンジ・メソッドに準拠します。この認証スキームは、リソースを保護しているアクセス・ポリシーの一部である認証ルールの一部です。スキームが実行されると、単一の認証プラグイン、または指定の順序で実行される2つ以上の連鎖プラグインが起動されます。『Oracle Access Managerアクセス管理ガイド』では、認証スキームの概要と、認証スキーム内でプラグインを割り当てて順序付けする手順が説明されています。
すべてのスキームは同じ汎用フローに従います。ブラウザは、認証チャレンジに応答して、ユーザーから資格証明(ユーザー名とパスワード、またはクライアント証明書など)を取得します。たとえば、クライアント証明書認証などでは、資格証明はユーザーのかわりにブラウザによって生成されます。ブラウザは、チャレンジによって指定された形式でサーバーに資格証明を送信します。WebGateは、資格証明の形式を、処理に使用できるように名前と値のペアのセットとして再設定し、資格証明を認証リクエストとして扱います。
単一のプラグインへの入力、またはスキーム内の各プラグインへの入力は、資格証明のセットです。出力は、(認証を受入れ、拒否、続行または中断するための)ステータスおよび資格証明のセットです。元の内容とは異なることがあります。認証が拒否された場合、監査ファイルに結果メッセージが記録されます。認証スキームが完了したとき、結果には生成された有効なユーザーDNが1つのみ含まれます。認証が失敗した場合、結果にユーザーDNは含まれません。
認証が成功した場合、WebGateは、ユーザーのプロファイルDN、ユーザーのブラウザのIPアドレス、正常に実行された認証のレベル、およびCookieの有効期限タイムスタンプを含むセッションCookieを作成します。また、WebGateは、認証スキームに対して定義された認証アクションに基づいてHTTPヘッダー変数を設定することもできます。CookieおよびHTTPの情報はブラウザに返され、アクセスが許可されます。
認証プラグインの作成は重要なプログラミング作業なので、『Oracle Access Manager開発者ガイド』で詳しく説明しています。
Oracle Access Managerでは、リソースのコレクションがドメイン内に関連付けられ、ユーザーがドメインへのアクセスを制御するポリシーを設定することが可能です。デフォルト・リソース以外のリソースにまで対象を広げることもできます。たとえば、RDBMSなどの外部データ・ストア内に存在するルールや他のデータの影響を受ける認可アルゴリズムを適用することができます。
『Oracle Access Manager開発者ガイド』で説明されているように、認可プラグインAPIを使用して、新しいプラグインを作成してOracle Access Managerに追加できます。
APIは、ユーザーが認可スキーム内で使用される機能モジュール(プラグインと呼ばれる)を作成することを可能にします。スキームは認可ルール内に含まれます。1つ以上の認可ルールが、1つの認証ルールと1つの監査ルールとともに、ドメイン内のリソース・タイプ(Webサイト内の特定のURLや、アプリケーション内のメソッド・セットなど)へのアクセスを制御するポリシーを構成します。アクセス・システムには2つの標準的なリソース・タイプ(URLおよびEJB)が備わっていますが、ユーザーはこれ以外のリソース・タイプも簡単に追加して定義できます。リソース・タイプ、ドメイン、ポリシー、ルールおよびスキームを作成する方法は、『Oracle Access Managerアクセス管理ガイド』を参照してください。
認可スキーム内のプラグインは、次の2つの目的で使用されます。
リソースへのアクセスを確認または拒否したり、ポリシー内の次の認可ルールで使用されるデータを獲得します。これは認可プラグインと呼ばれます。
アクセス決定後にアクションを実行します。これはカスタム・アクション・プラグインと呼ばれます。
認可プラグインAPIによって作成されたプラグインを使用するには、管理者が次の2つのタイプの情報を構成する必要があります。
プラグインを使用するための認可スキーム。1つのスキームを、認可プラグインとカスタム・アクション・プラグインの両方で使用できます。
スキームを使用するためのカスタム認可ルール。
認可プラグインの作成は重要なプログラミング作業なので、『Oracle Access Managerデプロイメント・ガイド』で詳しく説明しています。
Oracle Access Manager外部でアプリケーションの通信やアクションの実行を行うロジックを挿入できます。
これを行うには、『Oracle Access Managerデプロイメント・ガイド』で説明されているように、IDイベント・プラグインAPIを使用して、必要なロジックを作成し、アイデンティティ・システム内で発生するイベントにそれを関連付けます。
IDイベント・プラグインAPIを使用すると、システム統合者はOracle Access Managerのベース機能を拡張できます。機能を拡張するには、Oracle Access Managerアプリケーションと広範な種類の外部ソフトウェア・コンポーネントとの間で交換されるアイデンティティ・システム・データ用のチャネルを提供します。このAPIでは、Oracle Access Manager使用状況の基本ロギングと同じぐらい単純なアプリケーションも、データ・フィルタリング・パイプラインやERPシステムへのシームレスなブリッジのような複雑なアプリケーションも対象になります。
IDイベント・プラグインAPIは、Oracle Access Manager製品の標準的なインストール済コンポーネントです。
IDイベント・プラグインの作成は重要なプログラミング作業なので、『Oracle Access Manager開発者ガイド』で詳しく説明しています。