
objectClassuserPrincipalName
プロパティを使用してActive Directoryにログインできますuser
。[email protected]
OpenLDAP
また、サーバーインスタンスを設定し、ただ認証に使用しますdn
。例:
"cn=somecn,cn=anothercn,ou=someou,dc=mydomain,dc=com"
OpenLDAP
認証に別のフィールド(mail
属性など)を使用するにはinetOrgPerson
?
でも、でももしそうならはい可能であれば、フィールドの一意性をどのように保証できますか? (userPrincipalName
この分野ではADがそのような機能を提供すると思います)
答え1
OpenLDAPは2つの認証方法(simple
およびSASL
)をサポートしていSASL
ますが、ldap-utilsおよび他の認証方法の基本的な方法ですldapsearch
。
DN を使用して認証すると、「単純バインディング」と呼ばれる操作が実行されます。
シンプルバインディング
このsimple
方法には3つの動作モードがあります。
- 匿名
- 未確認
- ユーザー/パスワードが確認されました。
たとえば、
# ldapwhoami -x
anonymous
または:
# ldapwhoami -x -D uid=rda,ou=people,dc=phys,dc=ethz,dc=ch -w secret1234
dn:uid=rda,ou=people,dc=phys,dc=ethz,dc=ch
SASL
OpenLDAPクライアントとサーバーは、SASL(Simple Authentication and Security Layer)フレームワークを介して認証できます。RFC4422。 SASL は複数の認証メカニズムをサポートします。 OpenLDAPの最も一般的なメカニズムEXTERNAL
はGSSAPI
。
これ外部このメカニズムは、低レベルプロトコル(通常はTLSまたはUnix IPC)によって実行される認証を利用します。たとえば、Unix IPC をユーザーのルートとして使用する場合:
# ldapwhoami -Y EXTERNAL -H ldapi://
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
dn:gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
認証されたユーザーはツリーのDNにマップされますcn=peercred,cn=external,cn=auth
。
これGSAPIこのメカニズムは通常Kerveros 5を参照しています。 Kerberos 5インフラストラクチャを展開した場合は、認証にKerberosサブジェクトを使用できます。
まず、KDCに対して認証し、TGTを取得します。
# kinit rda
Password for [email protected]: secret1234
その後、GSSAPIを使用してOpenLDAPに対して認証できます。
# ldapwhoami
SASL/GSSAPI authentication started
SASL username: [email protected]
SASL SSF: 56
SASL data security layer installed.
dn:uid=rda,cn=gssapi,cn=auth
サブジェクトは[email protected]
ツリーのDNにマップされますcn=gssapi,cn=auth
。
olcAuthzRegexp
これで、次のように構成された正規表現を使用して、認証されたDNをデータベースの物理DNにマッピングできますcn=config
。
dn: cn=config
objectClass: olcGlobal
cn: config
olcAuthzRegexp: {0}uid=([^,/]*),cn=phys.ethz.ch,cn=gssapi,cn=auth uid=$1,ou=people,dc=phys,dc=ethz,dc=ch
...
このolcAuthzRegexp
行は、ゾーン内のすべてのユーザープリンシパルを、その項目の下の属性と同じユーザー名を持つその項目PHYS.ETHZ.CH
にマップします。posixAccount
ou=people,dc=phys,dc=ethz,dc=ch
uid
たとえば、次の posix エントリを使用します。
# ldapsearch uid=rda
dn: uid=rda,ou=people,dc=phys,dc=ethz,dc=ch
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: krbPrincipalAux
objectClass: krbTicketPolicyAux
uid: rda
krbPrincipalName: [email protected]
...
ldapwhoami
提示されます:
# ldapwhoami
SASL/GSSAPI authentication started
SASL username: [email protected]
SASL SSF: 56
SASL data security layer installed.
dn:uid=rda,ou=people,dc=phys,dc=ethz,dc=ch
使用されるマッピングはolcAuthzRegexp
DITの一意のエントリと一致する必要があります。これは管理者または管理ソフトウェアによって保証されます。