1 Oracle Identity Managementアプリケーションの開発

Oracle Identity Managementは、すべてのOracleアプリケーションに共有インフラストラクチャを提供します。また、サード・パーティによるエンタープライズ・アプリケーション開発を容易にするサービスやインタフェースも提供します。これらのインタフェースは、アプリケーションにID管理を組み込む必要のあるアプリケーション開発者にとって有用です。

11gリリース1 (11.1.1)リリースの時点で、Fusion Middlewareアプリケーション開発者へ推奨されるセキュリティAPIはOracle Platform Security for Javaです。詳細は、Fusion Middlewareセキュリティ・ガイドを参照してください。現在のドキュメントに記載されているOracle Identity Managementインタフェースは、Oracle Platform Security for Javaに含まれるものではありません。

次の各トピックでは、Oracle Identity Managementのアプリケーションを開発するためのインタフェースと、Oracle Identity Management環境で推奨されるアプリケーション開発のベスト・プラクティスについて説明します。

1.1 アプリケーション統合に使用可能なOracle Identity Managementサービスの概要

Oracle Internet Directory、Oracle Delegated Administration Services、Oracle Provisioning Integration Servicesなどのカスタム・アプリケーションでは、ドキュメントに記載され、サポートされている一連のサービスやAPIを通じてOracle Identity Managementを使用できます。

たとえば:

  • Oracle Internet Directoryでは、C、JavaおよびPL/SQLのLDAP APIを提供します。他のLDAP SDKと互換性があります。

  • Oracle Delegated Administration Servicesは、サード・パーティのアプリケーションをサポートするようにカスタマイズできるコア・セルフサービス・コンソールを提供します。また、ディレクトリ・データを操作するカスタマイズされた管理インタフェース構築用のいくつかのサービスも提供します。

  • Oracle Directory Integration Servicesでは、Oracle Internet Directoryをサード・パーティ・ディレクトリやその他のユーザー・リポジトリと同期化するためのカスタム・ソリューションの開発およびデプロイメントが容易になります。

  • Oracle Provisioning Integration Servicesでは、サード・パーティ・アプリケーションをプロビジョニングするメカニズムを提供します。また、Oracle環境をその他のプロビジョニング・システムと統合する手段にもなります。

  • Oracle Single Sign-Onは、他のOracle Webアプリケーションとシングル・サインオン・セッションを共有するパートナ・アプリケーションを開発およびデプロイするためのAPIを提供します。

  • JAZNは、Java Authentication and Authorization Service(JAAS)Support標準のOracle実装です。Oracle J2EE環境を使用してWeb向けに開発されたアプリケーションが、アイデンティティ管理インフラストラクチャを使用して認証と認可を行えるようにします。

1.2 Oracle Identity Managementとの既存のアプリケーションの統合の理解

企業は重要な業務機能を実行するために特定のアプリケーションをデプロイします。Oracle Identity Managementは、既存アプリケーションの変更のため、デプロイメントで活用できるサービスを提供します。

新規のアプリケーションでは、Fusion Middlewareセキュリティ・ガイドに記載されているOracle Platform Security for Javaを使用します。

Oracle Identity Managementは、既存アプリケーションの変更のため、デプロイメントで活用できる次のサービスを提供します。

Oracle Identity Managementで活用できるサービスは、次のとおりです。

  • ユーザーの自動プロビジョニング: デプロイメントにより、カスタム・プロビジョニング・エージェントを開発し、Oracle Identity Managementインフラストラクチャでのプロビジョニング・イベントに対応する、既存のアプリケーションでのユーザーのプロビジョニングを自動化できます。このエージェントは、Oracle Provisioning Integration Serviceのインタフェースを使用して開発する必要があります。

    関連項目:

    ユーザーの自動プロビジョニングの開発の詳細は、『Oracle Fusion Middleware Oracle Internet Directory管理者ガイド』ディレクトリ・エントリの管理の概要に関する項 を参照してください。

  • ユーザー認証サービス: 既存のアプリケーションのユーザー・インタフェースがHTTPに基づいている場合は、Oracle HTTP Serverと統合し、mod_ossoを使用してURLを保護することで、サービスを使用するすべての受信ユーザー・リクエストを認証できます。

  • ユーザー・プロファイルの一元管理: 既存のアプリケーションのユーザー・インタフェースがHTTPに基づいており、認証がOracle Single Sign-Onと統合されている場合、アプリケーションでOracle Delegated Administration Servicesのセルフ・サービス・コンソールを使用してユーザー・プロファイルを一元管理できます。セルフ・サービス・コンソールは、アプリケーションの特定の要件に対応できるようにデプロイメント内でカスタマイズできます。

1.3 Oracle Identity Managementのプログラミングの概要

Oracle Identity Management Software Developer's Kitでは、アプリケーションでキットを使用してディレクトリと統合する方法の概要が示されます。ディレクトリ製品スイートのその他のコンポーネントも示します。

次の各トピックでは、Oracle Identity Managementのプログラミングについて説明します。

1.3.1 Oracle Internet Directory SDKでサポートされているプログラミング言語について

Oracle Internet Directory SDKではプログラミング言語をサポートしています。

SDKは、C、C++およびPL/SQLを使用するアプリケーション開発者を対象としています。Java開発者がディレクトリとの統合を行う場合は、JNDIプロバイダを使用する必要があります。

1.3.2 Oracle Identity Management SDKコンポーネントについて

Oracle Identity Management Software Developer's Kitは、ディレクトリと統合するコンポーネントで構成されます。

  • LDAPバージョン3に準拠したC API

  • PL/SQL API(DBMS_LDAPというPL/SQLパッケージに同梱)

  • 『Oracle Identity Managementアプリケーション開発者ガイド』(このドキュメント)

  • コマンドライン・ツール

1.3.3 Oracle Identity Management環境でのアプリケーションの開発

Oracle Identity Managementアプリケーションは、複数のユーザーからの複数のリクエストを処理するバックエンド・プログラムです。アプリケーションを開発するには、ディレクトリにアプリケーションのアイデンティティを作成する必要があります。

1.3.3.1 Oracle Identity Managementアプリケーションのアーキテクチャ

ほとんどのOracle Identity Managementアプリケーションは、複数のユーザーからの複数のリクエストを同時に処理するバックエンド・プログラムです。図1-1に、これらのアプリケーションによるディレクトリの使用方法を示します。

図1-1 ディレクトリ対応のアプリケーション

図1-1の説明が続きます
「図1-1 ディレクトリ対応のアプリケーション」の説明

図1-1に示すように、ユーザー・リクエストがLDAP対応の操作を必要とする場合、アプリケーションはあらかじめ確立されたディレクトリ接続の一部を使用してリクエストを処理します。

1.3.3.2 アプリケーション・ライフサイクルでのOracle Identity Managementの相互作用

表1-1に、アプリケーションがライフサイクルで行う通常のディレクトリ操作を順に示します。

表1-1 アプリケーション・ライフサイクルでの相互作用

アプリケーションのライフサイクルでのポイント ロジック

アプリケーションのインストール

次を実行します。

  • ディレクトリにアプリケーションのアイデンティティを作成します。アプリケーションはこのアイデンティティを使用して、ほとんどのLDAP操作を実行します。

  • LDAP認可を指定するために、アプリケーションのアイデンティティを正しいLDAPグループに含めます。この認可により、アプリケーションはユーザー資格証明を受け入れて、ディレクトリに対して認証することができます。また、ディレクトリは、そのユーザーにかわってLDAP操作を実行する必要があるときに、アプリケーション認可を使用してユーザーの代理を務めることができます。

アプリケーションの起動とブートストラップ

アプリケーションは、自身をディレクトリに対して認証するための資格証明を取得する必要があります。

Oracle Internet Directoryに構成メタデータを格納しているアプリケーションは、そのメタデータを取得して、アプリケーションの他の部分を初期化できます。

次に、アプリケーションは、接続のプールを確立してユーザー・リクエストを処理できます。

アプリケーションの実行

LDAP操作が必要なすべてのエンド・ユーザー・リクエストについて、アプリケーションは次の処理を行うことができます。

  • LDAP接続のプールから接続を選択します。

  • エンド・ユーザーの有効な権利を使用してLDAP操作を実行する必要がある場合は、ユーザーをエンド・ユーザー・アイデンティティに切り替えます。

  • この章で説明する標準APIまたはAPI拡張機能を使用して、LDAP操作を実行します。

  • LDAP操作の完了時、有効なユーザーがアプリケーションのアイデンティティになっていることを確認します。

  • LDAP接続を接続のプールに戻します。

アプリケーションの停止

未処理のLDAP操作を中止して、すべてのLDAP接続をクローズします。

アプリケーションの削除

アプリケーションのアイデンティティとそのアプリケーションのアイデンティティに指定されているLDAP認可を削除します。

1.3.3.3 アプリケーションをOracle Identity Managementと統合するためのサービスおよびAPI

アプリケーション開発者は、表1-2で説明するサービスおよびAPIを使用してOracle Identity Managementを統合することができます。

表1-2 Oracle Internet Directoryとの統合用のサービスとAPI

サービス/API 説明 詳細

C、PL/SQLおよびJavaでの標準的なLDAP API

これらによって、基本的なLDAP操作が可能になります。Javaで使用する標準的なLDAP APIは、LDAPサービス・プロバイダで使用可能なJNDI APIです。

標準的なLDAP APIを使用したアプリケーションの開発

標準的なC、PL/SQLおよびJava APIに対するOracleの拡張機能

これらのAPIは、アイデンティティ管理関連の様々な概念をモデル化するプログラム・インタフェースを提供します。

標準的なAPIに対するOracleの拡張機能を使用したアプリケーションの開発

Oracle Delegated Administration Service

Oracle Delegated Administration Servicesは、セルフ・サービス・コンソールと管理インタフェースで構成されています。管理インタフェースは、サード・パーティ・アプリケーションをサポートするように変更できます。

10g (10.1.4.0.1)ライブラリ。

Oracle Directory Provisioning Integration Service

Oracle Provisioning Integration Systemを使用して、サード・パーティ・アプリケーションのプロビジョニング、およびその他のプロビジョニング・システムの統合を行うことができます。

1.3.3.4 Oracle Internet Directoryとのアプリケーション統合用のAPIとサービスの使用例

図1-2に、表1-2のサービスの一部を利用するアプリケーションを示します。

図1-2 APIとサービスを利用するアプリケーション

図1-2の説明が続きます。
「図1-2 APIとサービスを利用するアプリケーション」の説明

図1-2に示すとおり、アプリケーションは次のようにOracle Internet Directoryと統合されます。

  • PL/SQL、CまたはJavaのAPIを使用して、ディレクトリに対してLDAP操作を直接実行します。

  • ユーザーをOracle Delegated Administration Servicesのセルフ・サービス機能に転送する場合もあります。

  • Oracle Internet Directory内のユーザーまたはグループのエントリに対する変更について通知を受けます。Oracle Directory Provisioning Integration Serviceでこの通知を行います。

1.3.3.5 既存のアプリケーションとOracle Identity Managementを統合するサービス

Oracleのアイデンティティ管理インフラストラクチャとの統合の対象となるアプリケーションが企業内にすでにデプロイされている場合があります。表1-3に示すサービスを使用して、これらのアプリケーションを統合できます。

表1-3 既存のアプリケーションを変更するためのサービス

サービス 説明 詳細

ユーザーの自動プロビジョニング

Oracleのアイデンティティ管理インフラストラクチャでプロビジョニング・イベントが発生したときに、ユーザーのプロビジョニングを自動的に行うエージェントを開発できます。このエージェントの開発には、Oracle Directory Provisioning Integration Serviceのインタフェースを使用します。

プロビジョニング統合アプリケーションの開発

ユーザー認証サービス

ユーザー・インタフェースがHTTPに基づいている場合、ユーザー・インタフェースをOracle HTTP Serverと統合できます。これにより、mod_ossoとOracleAS Single Sign-Onを使用してアプリケーションのURLを保護できるようになります。

Oracle Application Server Single Sign-On管理者ガイド

ユーザー・プロファイルの一元管理

ユーザー・インタフェースがHTTPに基づいていて、OracleAS Single Sign-Onと統合されている場合、Oracle Enterprise Single Sign-On管理コンソールを使用してユーザー・プロファイルを一元管理できます。コンソールは、アプリケーションの要件に応じてカスタマイズできます。

  • 10g (10.1.4.0.1)ライブラリ。

  • 『Oracle Identity Management委任管理ガイド』の委任管理サービス・フレームワークに関する章。