Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Anywhere サーバ SQL の使用法 » LDAP ユーザ認証

 

LDAP ユーザ認証環境の作成 (SQL の場合)

LDAP ユーザ認証環境を作成するには、LDAP サーバ設定オブジェクトを作成して、LDAP サーバを使用するログインポリシーを作成し、そのログインポリシーを使用して LDAP サーバに認証されるユーザを作成します。

前提条件

LDAP サーバが必要です。

次のシステム権限が必要です。

  • SET ANY SECURITY OPTION
  • MANAGE ANY LDAP SERVER
  • MANAGE ANY LOGIN POLICY
  • MANAGE ANY USER
 ♦ タスク
  1. (省略可) LDAP サーバとの通信で TLS 暗号化を有効にするには、使用するサーバの証明書ファイルを指定します。次の文は、証明書ファイルを指定する方法の例です。

    SET OPTION PUBLIC.trusted_certificates_file='c:\\certificates\\trusted.txt';

    以降のステップで TLS 暗号化を有効にするには、それぞれの例で出現する TLS OFF 句を TLS ON 句に変更する必要があります。

  2. 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 文がエラーなしで実行される必要があります。

  3. 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 サーバへの接続を試行しません。

  4. 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 を使用して通信します。

  5. SET OPTION 文を実行してログインモードを変更し、LDAP ユーザ認証を有効にします。

    たとえば、次の文は標準ユーザ認証と LDAP ユーザ認証の両方を有効にします。

    SET OPTION PUBLIC.login_mode='Standard,LDAPUA';

    login_mode オプションの現在の設定は次のようにして照会できます。

    SELECT connection_property('login_mode');
  6. 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';
  7. CREATE USER 文を実行して、前述の手順で定義された LDAP ログインポリシーを備えた新しいユーザ ID を作成します。

    たとえば、次の文はプライマリ LDAP サーバまたはセカンダリ LDAP サーバに対して認証される新しいユーザ ID を作成します。

    CREATE USER ldap_user01 LOGIN POLICY ldap_policy_both;

    IDENTIFIED BY 句は省略します。IDENTIFIED BY 句は、標準認証に使用するパスワードを指定するために使用します。この句を使用してパスワードを指定する場合は、LDAP サーバによって認証されるパスワードと同じにする必要はありません。このパスワードは、ユーザが初めて LDAP に正しく認証されると置き換えられるため、ここでは IDENTIFIED BY 句を省略します。

  8. 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 であることを示しています。

  9. Interactive SQL の CONNECT 文を実行し、LDAP ユーザ認証を使用してデータベースに接続します。

    たとえば、次の文は指定されたユーザ ID とパスワードを使用してサンプルデータベースに接続します。

    CONNECT DATABASE demo USER ldap_user01 IDENTIFIED BY 'abcd1234';

    LDAP サーバがユーザ認証に失敗すると、標準認証が試行されます。標準パスワードが LDAP 認証の際に更新されていないなどの理由で、標準パスワードが指定のパスワードと一致しない場合、標準認証は失敗します。

結果

ユーザが LDAP ユーザ認証を介して SQL Anywhere データベースに接続されます。

 参照