ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Identity Managementアプリケーション開発者ガイド
11g リリース1(11.1.1)
B56242-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

6 PL/SQLでのAPI拡張機能の使用

この章では、標準のディレクトリAPIにPL/SQLの拡張機能を使用して、ユーザーを管理および認証する方法について説明します。Oracleの拡張機能には、ユーザーを作成するPL/SQL APIは含まれないことに注意してください。標準APIに対するOracleの拡張機能の詳細は、第11章を参照してください。

この章では、次の項目について説明します。

6.1 PL/SQL拡張機能のインストール

PL/SQL拡張機能は、Oracleデータベースのインストール時にDBMS_LDAPパッケージとともにインストールされます。スクリプト$ORACLE_HOME/rdbms/admin/catldap.sqlを実行する必要があります。

6.2 ハンドルを使用したディレクトリ・データへのアクセス

この章で説明する拡張機能のほとんどは、補助的なファンクションです。これらは、ユーザー、グループ、レルム、アプリケーションなど、特定のLDAPエンティティに関するデータにアクセスします。多くの場合、これらのファンクションは、いずれかのエンティティに対する参照を標準的なAPIファンクションに渡す必要があります。そのために、APIの拡張機能はハンドルと呼ばれる不透明なデータ構造を使用します。次の手順は、拡張機能がユーザー・ハンドルを作成する方法を示しています。

  1. LDAP接続を確立するか、接続のプールから接続を取得します。

  2. ユーザーの入力からユーザー・ハンドルを作成します。この入力は、識別名、GUIDまたは単純なシングル・サインオン・ユーザーIDです。

  3. LDAP接続ハンドル、ユーザー・ハンドルまたは資格証明を使用して、ユーザーを認証します。

  4. ユーザー・ハンドルを解放します。

  5. LDAP接続をクローズするか、接続プールに接続を戻します。

6.3 ユーザーの管理

次の手順は、DBMS_LDAP_UTLパッケージを使用して、ディレクトリからユーザー・プロパティを取得するハンドルを作成および使用する方法を示しています。

  1. DBMS_LDAP_UTL.create_user_handle(user_hd, user_type, user_id)を呼び出して、ユーザーの入力からユーザー・ハンドルを作成します。この入力は、識別名、GUIDまたは単純なシングル・サインオン・ユーザーIDです。

  2. DBMS_LDAP_UTL.set_user_handle_properties(user_hd, property_type, property)を呼び出して、レルムをユーザー・ハンドルと関連付けます。

  3. DBMS_LDAP_UTL.get_user_properties(ld, user_handle, attrs, ptype, ret_pset_coll)を呼び出して、ユーザー・エントリの属性を結果ハンドルに入れます。

  4. DBMS_LDAP_UTL.get_property_names(pset, property_names)DBMS_LDAP_UTL.get_property_values(pset, property_name, property_values)を呼び出して、手順3で取得した結果ハンドルからユーザー属性を抽出します。

6.4 ユーザーの認証

ディレクトリに対してユーザーを認証するには、DBMS_LDAP_UTL.authenticate_user(session, user_handle, auth_type, cred, binary_cred)を使用します。このファンクションは、ユーザーが指定したパスワードとユーザーのディレクトリ・エントリのパスワード属性を比較します。

6.5 PL/SQL LDAP APIの依存性と制限事項

このリリースのPL/SQL LDAP APIには、次の制限事項があります。