LDAP の概要とデバッグ

LDAP_________01_20230206.png

LDAP ダイアグラム

 

特定の LDAP 統合に関する詳細な手順がない場合があります。ここでは、LDAP 統合を構成し、潜在的な問題をデバッグするための一般的な一連の手順を提供しました。

 
 
LDAP の基本

LDAP は、アプリケーションが中央でホストされているデータベースからディレクトリ データを統合するためのプロトコルです。LDAP に接続するアプリケーションの 2 つの主なアクションは、バインドと検索です。バインドは、データベースへのアクセスを認証するために使用され、個々のユーザーに対して、または一般的なバインダー アカウントを通じて実行できます。検索は、ユーザーやグループのディレクトリ データを取得するためのカスタマイズ可能な方法です。

アプリケーションは、2 つの方法のいずれかで Foxpass と統合できます。ほとんどのアプリケーションとサーバーは、匿名のLDAP バインダーとバインドし、検索を実行してユーザーとグループのリストを取得することにより、初期接続を確立します。アプリケーションがパスワードによってもユーザーを認証する場合は、特定のユーザー アカウントとのバインドを実行して、ユーザーのパスワードをテストします。SSH キーベースのログインなどの他のアプリケーションは、別の認証方法を使用します。

LDAP ディレクトリは、ユーザーが一方に、グループが他方にある、ツリーベースの構造を使用します。LDAP データベースで検索を実行する場合、検索をカスタマイズして特定の変数、属性、およびグループ メンバーシップに制限する方法は多数あります。

 
 
接続の構成

ほとんどの LDAP 統合は、同様のパターンに従います。まず、LDAP Binderを作成します。次に、バインダーの資格情報と Foxpass サーバーの値を使用して、アプリケーションを構成します。最後に、テストして、適切に動作していることを確認します。

Foxpass へのほとんどすべての LDAP 接続で使用されるいくつかのユニバーサル設定があります。

 

Text

LDAP URI: ldap.foxpass.com
Port: 636
Connection type: OpenLDAP
Use SSL (also known as TLS sometimes)
Username: cn=<LDAP binder name>,dc=<example>,dc=<com>
Password: <LDAP binder password>

Foxpass に接続するには、アプリケーションで SSL 証明書が必要になる場合もあります。次のコマンドを実行して、証明書情報を取得できます。

 

Text
openssl s_client -showcerts-connect ldap.foxpass.com:636

ルート CA は、このリンクからダウンロードできます。

 
 
LDAP バインダーとは何ですか?

LDAP バインダーは、アプリケーションを LDAP ディレクトリーと統合する方法であり、API キーと同様に機能します。バインダーを使用して認証し、ディレクトリにバインドできますが、ディレクトリ内のエントリとしては表されません。ディレクトリへの接続を制御するために、アプリケーションごとにバインダーを作成すると便利です。こうすることで、接続を分離および分類でき、ユーザー アカウントが無効になっている場合やパスワードが変更された場合に統合が失われるリスクを回避できます。LDAP バインダーを作成し、そのバインド DNLDAP バインダーページから取得できます。

 
 
接続例

コマンド ラインからテスト接続を実行して、資格情報の有効性を確立し、ディレクトリ データを手動で調べることができます。

 

LDAP Binder
ldapsearch -H ldaps://ldap.foxpass.com -b dc=<example>,dc=<com> -D cn=<LDAP binder name>,dc=<example>,dc=<com> -w <binder password>

 

User
ldapsearch -H ldaps://ldap.foxpass.com -b dc=<example>,dc=<com> -D uid=<username>,dc=<example>,dc=<com> -w <user password>

 

これにより、ディレクトリ内のオブジェクトの完全なリストが返されます。ユーザーとグループの応答の例を以下に示します。一部のユーザーとグループには、リストされている posixUser または posixGroup 属性と、uid および gid 番号があることに注意してください。これらは、macOS や Linux のログインなど、POSIX ベースのシステムにアクセスするために必要です。また、どの属性名がどの値に一致するかを確認することも役立ちます。たとえば、ユーザーの名は「gn」属性の下にあります。

 

Shell

ldap_bind: Success (0)
    matched DN: cn=example-binder,dc=foxpass,dc=com
# extended LDIF
#
# LDAPv3
# base <dc=foxpass,dc=com> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# foxpass.com
dn: dc=foxpass,dc=com
objectClass: organization
objectClass: top

# people, foxpass.com
dn: ou=people,dc=foxpass,dc=com
objectClass: organizationalunit
objectClass: top
ou: people
description: People from foxpass.com

# christine, people, foxpass.com
dn: uid=christine,ou=people,dc=foxpass,dc=com
cn: Christine Salas
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
memberOf: cn=accounting,ou=groups,dc=foxpass,dc=com
memberOf: cn=sales,ou=groups,dc=foxpass,dc=com
entryUUID: 1940a925-6ced-4e1d-8fef-7efbb296e21c
apple-generateduid: 1940A925-6CED-4E1D-8FEF-7EFBB296E21C
sn: Salas
gn: Christine
mail: csalas@foxpass.com
modifyTimestamp: 20190321222502Z
uid: christine

# aren, people, foxpass.com
dn: uid=aren,ou=people,dc=foxpass,dc=com
cn: Aren Sarver
memberOf: cn=accounting,ou=groups,dc=foxpass,dc=com
memberOf: cn=eng,ou=groups,dc=foxpass,dc=com
memberOf: cn=founders,ou=groups,dc=foxpass,dc=com
memberOf: cn=root,ou=groups,dc=foxpass,dc=com
memberOf: cn=webmaster,ou=groups,dc=foxpass,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: posixAccount
objectClass: top
loginShell: /bin/bash
entryUUID: 3f3bacd0-c941-4e4f-ba28-254e7d66c16b
apple-generateduid: 3F3BACD0-C941-4E4F-BA28-254E7D66C16B
gidNumber: 100
sn: Sarver
homeDirectory: /home/aren
mail: asarver@foxpass.com
gn: Aren
uidNumber: 1021
modifyTimestamp: 20190321222432Z
uid: aren

# travist, people, foxpass.com
dn: uid=travist,ou=people,dc=foxpass,dc=com
cn: Travis Thompson
memberOf: cn=root,ou=groups,dc=foxpass,dc=com
memberOf: cn=webmaster,ou=groups,dc=foxpass,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: top
loginShell: /bin/bash
entryUUID: bb2e57a3-f7da-4615-a020-05b77657ce1c
apple-generateduid: BB2E57A3-F7DA-4615-A020-05B77657CE1C
sn: Thompson
mail: tthompson@foxpass.com
gn: Travis
modifyTimestamp: 20190321222526Z
uid: travist

# richard, people, foxpass.com
dn: uid=richard,ou=people,dc=foxpass,dc=com
cn: Richard Ochs
memberOf: cn=eng,ou=groups,dc=foxpass,dc=com
memberOf: cn=root,ou=groups,dc=foxpass,dc=com
objectClass: inetOrgPerson
objectClass: organizationalPerson
objectClass: person
objectClass: posixAccount
objectClass: top
loginShell: /bin/bash
entryUUID: fcea2382-1657-44d0-960e-d9e15aca8a44
apple-generateduid: FCEA2382-1657-44D0-960E-D9E15ACA8A44
gidNumber: 100
sn: Ochs
homeDirectory: /home/richard
mail: rochs@foxpass.com
gn: Richard
uidNumber: 1054
modifyTimestamp: 20190321222510Z
uid: richard

# groups, foxpass.com
dn: ou=groups,dc=foxpass,dc=com
objectClass: organizationalunit
objectClass: top
ou: groups
description: Groups from foxpass.com

# sales, groups, foxpass.com
dn: cn=sales,ou=groups,dc=foxpass,dc=com
member: uid=christine,ou=people,dc=foxpass,dc=com
cn: sales
objectClass: groupOfNames
entryUUID: 782c5c4a-8e30-4cc2-8ec5-2e2a735a5f80
apple-generateduid: 782C5C4A-8E30-4CC2-8EC5-2E2A735A5F80
modifyTimestamp: 20190318232818Z

# accounting, groups, foxpass.com
dn: cn=accounting,ou=groups,dc=foxpass,dc=com
member: uid=aren,ou=people,dc=foxpass,dc=com
member: uid=christine,ou=people,dc=foxpass,dc=com
cn: accounting
objectClass: groupOfNames
entryUUID: 45fbd8bb-fdaf-4726-b200-14fb37fa2f0b
apple-generateduid: 45FBD8BB-FDAF-4726-B200-14FB37FA2F0B
modifyTimestamp: 20190318232817Z

# founders, groups, foxpass.com
dn: cn=founders,ou=groups,dc=foxpass,dc=com
member: uid=aren,ou=people,dc=foxpass,dc=com
cn: founders
objectClass: groupOfNames
objectClass: posixGroup
memberUid: aren
entryUUID: c5f89ea3-8b10-447a-ab9d-28973b6d4c36
apple-generateduid: C5F89EA3-8B10-447A-AB9D-28973B6D4C36
gidNumber: 725
modifyTimestamp: 20190321223635Z

# webmaster, groups, foxpass.com
dn: cn=webmaster,ou=groups,dc=foxpass,dc=com
member: uid=aren,ou=people,dc=foxpass,dc=com
member: uid=travist,ou=people,dc=foxpass,dc=com
cn: webmaster
objectClass: groupOfNames
entryUUID: 9b035866-a56a-4096-aa25-a971566be562
apple-generateduid: 9B035866-A56A-4096-AA25-A971566BE562
modifyTimestamp: 20190318232818Z

# eng, groups, foxpass.com
dn: cn=eng,ou=groups,dc=foxpass,dc=com
member: uid=aren,ou=people,dc=foxpass,dc=com
member: uid=richard,ou=people,dc=foxpass,dc=com
cn: eng
objectClass: groupOfNames
objectClass: posixGroup
memberUid: aren
memberUid: richard
entryUUID: 71fb71e3-a3a7-455b-a7c0-c39289e70f77
apple-generateduid: 71FB71E3-A3A7-455B-A7C0-C39289E70F77
gidNumber: 724
modifyTimestamp: 20190321223631Z

# root, groups, foxpass.com
dn: cn=root,ou=groups,dc=foxpass,dc=com
member: uid=aren,ou=people,dc=foxpass,dc=com
member: uid=richard,ou=people,dc=foxpass,dc=com
member: uid=travist,ou=people,dc=foxpass,dc=com
cn: root
objectClass: groupOfNames
entryUUID: 99c63cba-0956-4358-b824-f2a68f66a54f
apple-generateduid: 99C63CBA-0956-4358-B824-F2A68F66A54F
modifyTimestamp: 20190318232818Z

各オブジェクトに関連付けられたすべての情報とさまざまな識別子、および双方向のグループ メンバーシップの関連付けを確認できます。返される属性は他にも多数あります。LDAP スキーマにさらにデータが必要な場合は、お問い合わせください。

 
 
デバッグとトラブルシューティング

基本的なデバッグ プロセスは次のようになります。

  1. 接続をテストします。アプリケーションをテストするか、ログインしてみてください。これにより、アプリケーションから Foxpass へのリクエストが生成されます。
  2. LDAP ログを確認してください。LDAP ログに要求が表示されない場合は、構成に問題があります。構成が正しいことを再確認し、接続を再度テストします。ファイアウォールも接続をブロックしている可能性があります。リクエストが表示される場合は、エラーの内容を確認してください。
  3. パスワードを確認してください。正しいパスワードを使用していることを確認してください。ローカル (Foxpass) かリモート (サード パーティ) かについて、どのデータ ソースをチェックしているかをログに記録します。すべてのバインダーは、生成された Foxpass パスワードを使用します。
  4. 属性のマッピングを確認してください。バインドは成功しているが、グループ メンバーシップやその他のユーザー データが表示されない場合は、検索属性に問題がある可能性があります。ldapsearch コマンドの例を実行して、Foxpass からの LDAP 検索応答がどのように表示されるかを確認してください。
  
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています