1

アプリケーションを ApacheDS で正常に認証できます

しかし、今は 1 つのドメインしか使用していません。

ルート ドメインの下にサブドメインまたはサブ組織を追加したいと考えています。

たとえば、ルート組織として

dc=example,dc=com

およびサブ組織dc=x

別のサブ組織dc=y

uid属性を使用してユーザーを認証できるようになりました

お気に入り:

user-search-filter="(uid={0})"

@拡張子なしで、user1のようなログイン名を使用します

しかし、サブ組織が必要で、user1@x.example.com を使用したい

それは可能ですか?

私のアプリケーションは春のアプリケーションですが、サブジェクトはアプリケーション側から独立していると思います。

4

1 に答える 1

1

電子メール アドレスの LDAP 標準トラックで定義されている属性はmail、、、rfc822mailboxまたはRFC45240.9.2342.19200300.100.1.3で定義されているとおりです。おそらく、フィルターは、これらのタイプのいずれかを使用する属性アサーションにする必要があります。user-search-filter="mail={0}"

「手動」の意味がわかりません。LDAP には組織の概念がなく、organization. エントリが属性を許可または要求する にmail属している場合、これらのエントリには属性がある可能性があります。つまり、フィルターが(になる可能性があります) である場合、そのフィルターを使用した検索 (適切なベース オブジェクトとスコープが与えられた場合) は、そのユーザーがどこにいるかに関係なく、値を持つ属性を持つすべてのエントリを返します。属性の値。objectClassmailmail={0}mail=user1@x.example.commailuser1@x.example.comuid

組織内のユーザーを別の方法 (組織またはその他の属性など) で識別できる場合、フィルターは次のようになります。

(&(uid={0})(o=x))

また

(&(uid={0})(o=y))

いずれにせよ、ユーザーのエントリはエントリの内容によって識別可能でなければなりません。LDAP データベースの主キーは識別名( uid=abc,dc=x,dc=example,dc=com) ですが、エントリ内の属性を使用してフィルタを強化できます。いくつかの代替手段は次のとおりです。

  • 一意の識別子を使用します (すべてuidまたはmail値はデータベース内で一意であるため、検索要求に返されるのは 1 つだけです)
  • 属性を使用して組織内のユーザーを識別します (o上記の例のフィルターのように)
  • 動的グループを使用して、組織内のユーザーのリストを生成します。
  • 拡張可能な一致フィルタを使用して、識別名の値をフィルタリング プロセスの一部にすることを検討してください。

こちらもご覧ください

于 2012-09-04T11:00:03.620 に答える