LDAPサーバー
多くのシステムは、Nexus
のように、LDAP認証をサポートしています。 Casdoorは、bindおよびsearch操作をサポートするシンプルなLDAPサーバーも実装しています。
このドキュメントでは、CasdoorでLDAPサーバーに接続し、シンプルなログイン認証を実装する方法について説明します。
LDAPサーバーポート
LDAPサーバーはデフォルトでポート389
でリッスンしています。 デフォルトポートは、conf/app.confのldapServerPort
値を変更することで変更できます。
仕組み
CasdoorのLDAPクライアントと同様に、LDAPサーバー内のユーザーはすべてposixAccount
のサブクラスです。
サーバーがLDAPによって送信されたデータセットを受信すると、cn
とou
を解析します。ここでcn
はユーザー名を表し、ou
は組織名を表します。 dc
は関係ありません。
bind操作の場合、サーバーはCasdoorを使用してユーザー名とパスワードを検証し、Casdoor内でユーザーに権限を付与します。
search操作の場合、サーバーはbind操作によってクライアントに付与された権限に基づいて、search操作が合法かどうかをチェックし、応答を返します。
私たちはシンプル認証のみをサポートしています。
バインド方法
Casdoor LDAPサーバーでは、この形式に似たDN
のみを認識します:cn=admin,ou=built-in,dc=example,dc=com
。
管理ユーザーのDN
を上記の形式に設定してください。 その後、このDN
を使用してユーザーのパスワードでLDAPサーバーにバインドし、Casdoorで検証にログインできます。 サーバー検証が成功すると、ユーザーはCasdoor内で権限を付与されます。
検索方法
bind操作が成功すると、search操作を実行できます。 search操作とbind操作にはいくつかの違いがあります。
- 特定のユーザーを検索するには、たとえば
built-in
組織の下のAlice
を検索するには、このようなDN
を使用する必要があります:ou=built-in,dc=example,dc=com
、そしてフィルターフィールドにcn=Alice
を追加します。 - 特定の組織の下のすべてのユーザーを検索するには、たとえば
built-in
のすべてのユーザーを検索するには、このようなDN
を使用する必要があります:ou=built-in,dc=example,dc=com
、そしてフィルターフィールドにcn=*
を追加します。 - すべての組織のすべてのユーザーを検索するには(ユーザーに十分な権限があると仮定して)、このような
DN
を使用する必要があります:ou=*,dc=example,dc=com
、そしてフィルターフィールドにcn=*
を追加します。 - To search for all users in a specific group, you should use a filter query like this:
(memberOf=organization_name/group_name)
in the Filter field.