web-dev-qa-db-ja.com

暗黙的なUPNによるActiveDirectoryエントリの検索

当社には、フォレスト全体のUPNサフィックスcompany.comが存在し、ほとんどすべてのユーザーアカウントで明示的なUPNが[email protected]に設定されています。この値は、ActiveDirectoryのuserPrincipalName属性でも設定されます。

これで、ユーザーがKerberosを介して認証を実行するアプリケーションができました。したがって、Kerberosプリンシパル、つまり暗黙的なUPNが与えられます。そのユーザーを検索して、いくつかのLDAP属性を取得したいと思います。 iUPNとuserPrincipalNameが一致しなくなったため、ルックアップはできません。

Active Direcoryからマッピングを取得する「公式」の方法はありますか?私の回避策は、レルムコンポーネントに対してLDAPバインドを実行し、iUPNのユーザーIDコンポーネントに一致するsAMAccountName属性を検索することです。値はドメイン内でのみ一意であるため、フォレスト内の単なるsAMAccountNameを検索することはできません。

2
Michael-O

これを行う方法は、sAMAccountNameとuserPrincipalNameの両方に対してLDAPクエリを実行することです。例:(&(sAMAccountName = uname)(userPrincipalName = * @ example.com))は、ユーザー[email protected]のsAMAccountName(「暗黙のUPNプレフィックス」)がunameである場合、ユーザーをクエリします。

adfind のようなプログラムを使用すると、ADに対してこのような任意のLDAPクエリを実行できます。

オーバーライドされたためにドメインと一致するUPNサフィックスに依存できない場合は、各ドメインのSID部分(最後の部分を除くユーザーのSIDのすべての部分)のリストを作成して、それ。ドメインexample.netのSID部分が1234-5678-9012の場合、ドメイン内のすべてのユーザーは、S-1-5-21-1234-5678-9012-で始まるSIDを持ちます。そのマッピングがある場合は、LDAP検索を作成できます

( &(sAMAccountName=uname)(objectSID=S-1-5-21-1234-5678-9012-*) )
3
Falcon Momot