LDAP ユーザ認証環境を作成するには、LDAP サーバ設定オブジェクトを作成して、LDAP サーバを使用するログインポリシーを作成し、そのログインポリシーを使用して LDAP サーバに認証されるユーザを作成します。
前提条件
LDAP サーバが必要です。
次のシステム権限が必要です。
(省略可) LDAP サーバとの通信で TLS 暗号化を有効にするには、使用するサーバの証明書ファイルを指定します。次の文は、証明書ファイルを指定する方法の例です。
SET OPTION PUBLIC.trusted_certificates_file='c:\\certificates\\trusted.txt'; |
以降のステップで TLS 暗号化を有効にするには、それぞれの例で出現する TLS OFF 句を TLS ON 句に変更する必要があります。
VALIDATE LDAP SERVER 文を実行して、LDAP サーバへの接続をテストします。
たとえば、次の文は既存の LDAP サーバの接続属性を検証します。データベースサーバは、指定されたクレデンシャルを使用して LDAP サーバに接続します。
VALIDATE LDAP SERVER SEARCH DN URL 'ldap://iq10web:389/dc=sybase,dc=com?dn?sub?uid=*' ACCESS ACCOUNT 'cn=Manager,dc=sybase,dc=com' IDENTIFIED BY 'Not4YourEyes' AUTHENTICATION URL 'ldap://iq10web:389/' CONNECTION TIMEOUT 1000 CONNECTION RETRIES 3 TLS OFF; |
この LDAP サーバは、ポート 389 を使用して通信します。この例では TLS 暗号化を有効にしません (TLS OFF)。次の手順に進む前に、VALIDATE LDAP SERVER 文がエラーなしで実行される必要があります。
CREATE LDAP SERVER 文を実行して、LDAP サーバ設定オブジェクトを作成します。
たとえば、次の文はユーザ認証に使用できる LDAP サーバ設定オブジェクトを定義します。
CREATE LDAP SERVER prim_ldap SEARCH DN URL 'ldap://iq10web:389/dc=sybase,dc=com?dn?sub?uid=*' ACCESS ACCOUNT 'cn=Manager,dc=sybase,dc=com' IDENTIFIED BY 'Not4YourEyes' AUTHENTICATION URL 'ldap://iq10web:389/' CONNECTION TIMEOUT 1000 CONNECTION RETRIES 3 TLS OFF; |
VALIDATE LDAP SERVER 文とは異なり、CREATE LDAP SERVER 文は LDAP サーバへの接続を試行しません。
CREATE LDAP SERVER 文を実行して、フェイルオーバに使用する 2 つ目の LDAP サーバ設定オブジェクトを作成します。この手順は省略できますが、以降の手順で必要になります。
たとえば、次の文はユーザ認証のフェイルオーバとして使用できる LDAP サーバ設定オブジェクトを定義します。
CREATE LDAP SERVER sec_ldap SEARCH DN URL 'ldap://iq10web:390/dc=sybase,dc=com?dn?sub?uid=*' ACCESS ACCOUNT 'cn=Manager,dc=sybase,dc=com' IDENTIFIED BY 'Not4YourEyes' AUTHENTICATION URL 'ldap://iq10web:390/' CONNECTION TIMEOUT 1000 CONNECTION RETRIES 3 TLS OFF; |
この LDAP サーバは、ポート 390 を使用して通信します。
SET OPTION 文を実行してログインモードを変更し、LDAP ユーザ認証を有効にします。
たとえば、次の文は標準ユーザ認証と LDAP ユーザ認証の両方を有効にします。
SET OPTION PUBLIC.login_mode='Standard,LDAPUA'; |
login_mode オプションの現在の設定は次のようにして照会できます。
SELECT connection_property('login_mode'); |
CREATE LOGIN POLICY 文を実行して新しいログインポリシーを作成します。
たとえば、次の文はユーザの認証に使用できる新しいログインポリシーを作成します。
CREATE LOGIN POLICY ldap_policy_both LDAP_PRIMARY_SERVER=prim_ldap LDAP_SECONDARY_SERVER=sec_ldap LDAP_FAILOVER_TO_STD=ON; |
プライマリ LDAP サーバとセカンダリ LDAP サーバの名前は、このログインポリシーで指定されます。このログインポリシーに関連付けられているユーザの認証が失敗した場合は、標準認証が試行されます (ログインモードによって許可されている場合)。ログインポリシーの現在の設定は次のようにして照会できます。
SELECT lpo.* FROM sysloginpolicyoption AS lpo, sysloginpolicy AS lp WHERE lpo.login_policy_id = lp.login_policy_id AND lp.login_policy_name = 'ldap_policy_both'; |
CREATE USER 文を実行して、前述の手順で定義された LDAP ログインポリシーを備えた新しいユーザ ID を作成します。
たとえば、次の文はプライマリ LDAP サーバまたはセカンダリ LDAP サーバに対して認証される新しいユーザ ID を作成します。
CREATE USER ldap_user01 LOGIN POLICY ldap_policy_both; |
IDENTIFIED BY 句は省略します。IDENTIFIED BY 句は、標準認証に使用するパスワードを指定するために使用します。この句を使用してパスワードを指定する場合は、LDAP サーバによって認証されるパスワードと同じにする必要はありません。このパスワードは、ユーザが初めて LDAP に正しく認証されると置き換えられるため、ここでは IDENTIFIED BY 句を省略します。
LDAP サーバをアクティブにしてすぐに使用できるようにします。次の文はプライマリ LDAP サーバとセカンダリ LDAP サーバをアクティブにします。
ALTER LDAP SERVER prim_ldap WITH ACTIVATE; ALTER LDAP SERVER sec_ldap WITH ACTIVATE; |
すべての LDAP サーバの現在のステータスは、次のクエリを使用して判別できます。
call sa_get_ldapserver_status; |
結果セットの ldsrv_state カラムは、2 つの LDAP サーバのステータスが READY であることを示しています。
Interactive SQL の CONNECT 文を実行し、LDAP ユーザ認証を使用してデータベースに接続します。
たとえば、次の文は指定されたユーザ ID とパスワードを使用してサンプルデータベースに接続します。
CONNECT DATABASE demo USER ldap_user01 IDENTIFIED BY 'abcd1234'; |
LDAP サーバがユーザ認証に失敗すると、標準認証が試行されます。標準パスワードが LDAP 認証の際に更新されていないなどの理由で、標準パスワードが指定のパスワードと一致しない場合、標準認証は失敗します。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |