ldap.yml ファイルを使用して、ldap での認証に適切なグループが割り当てられていることを確認する必要がありますか?
私は決してADのプロではありません。これは私を混乱させています...グループと属性は何ですか。私が理解していることから。AD にユーザーがいて、samAccount という名前を持っています。ユーザーをアプリに入れるようにできますが、この時点ではユーザーのグループが何であるかは気にしません。これは特殊なアプリであり、実際には次の memberOf 属性を持つアプリです。
HD Admin
HD Helper
HD Reset
Security
すべてをアプリに許可する必要がありますが、(apache directory studio を使用した後) 多くの memberOf エントリがあることにも気付きました。
たとえば、Bob には 2 つの memberOf エントリがある場合があります。
memberOf CN=Security,OU=Groups,OU=Accounts,DC=ACN,DC=ad,DC=tdsu,DC=edu
memberOf CN=HD Admin, OU=Groups,OU=Accounts,DC=ACN,DC=ad,DC=tdsu,DC=edu
では、私の yaml はどのように見えるでしょうか。また、これらのことを行うのに適切な場所でしょうか?
authorizations: &AUTHORIZATIONS
group_base: OU=Groups,OU=Accounts,DC=ACN,DC=ad,DC=nmsu,DC=edu
## Requires config.ldap_check_group_membership in devise.rb be true
# Can have multiple values, must match all to be authorized
required_groups:
# If only a group name is given, membership will be checked against "uniqueMember"
- CN=HD Admin
- CN=HD Reset
- CN=Security
# If an array is given, the first element will be the attribute to check against, the second the group name
- ["memberOf", " CN=HD Admin,OU=Groups,OU=Accounts,DC=ACN,DC=ad,DC=tdsu,DC=edu"]
- ["memberOf", " CN=HD Helper,OU=Groups,OU=Accounts,DC=ACN,DC=ad,DC=tdsu,DC=edu"]
- ["memberOf", " CN=HD Reset,OU=Groups,OU=Accounts,DC=ACN,DC=ad,DC=tdsu,DC=edu"]
- ["memberOf", " CN=Security,OU=Groups,OU=Accounts,DC=ACN,DC=ad,DC=tdsu,DC=edu"]
require_attribute:
memberOf: HD Admin
必要な属性を機能させることができませんでした。ldap devise gem から構築された devise scaffolding でこれを行う方法はありますか? 実際には、これらのグループのいずれかである可能性があるため、アプリに入れるためにすべてのグループである必要はありません。
少なくとも、yaml はこれを試す場所なのか、そうでないのか? アップデート:
上記の配列で試してみましたが、config.ldap_check_group_membership = true;
何があっても入れないので、すべてかゼロかのどちらかです。すべての memberOf 配列を、テスト ユーザーが持っていることがわかっている配列に減らしても、まだ入れません。
また、次の開発を維持する必要があるかどうかも尋ねたかったのですが、コード内の役割のすべてのチェックを行および処理します(それを行う方法に関するリンクはありますか)、おそらくAPIドキュメントを推測します(おそらくgithubにありますどこか) 、すべてのチェックなどを手作業でコーディングする方が簡単かもしれませんが...つまり、deviseにももっと慣れる必要があります。
重要な残りの ldap.yml を追加する必要があります。
development:
host: directory.ldapstuff.com
port: 636
attribute: sAMAccountName
base: OU=Main Users, OU=Accounts, DC=ACN, DC=ad, DC=tdsu, DC=edu
admin_user: CN=EASApps, OU=LDAP, OU=Service Accounts, DC=ACN, DC=ad, DC=tdsu, DC=edu
admin_password: asfssfaf
ssl: true
# <<: *AUTHORIZATIONS