5

我是否应该使用 ldap.yml 文件来确保使用 ldap 进行身份验证的人分配了正确的组以允许他们进入?

无论如何,我都不是 AD 专业人士,这让我感到困惑……什么是组和属性。据我了解。我们在 AD 中有一个用户,他们有一个 samAccount 名称,我可以让他们进入应用程序,但此时它并不关心他们的组是什么。它是一个专门的应用程序,实际上是那些具有 memberOf 属性的应用程序:

HD Admin
HD Helper
HD Reset
Security

应该都被允许进入应用程序,我也(在使用 apache directory studio 之后)意识到有很多 memberOf 条目:

例如 Bob 可能有两个 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 构建的设计脚手架中是否有某种方法可以做到这一点?因为确实是他们可以是这些组中的任何一个,所以他们不必完全进入应用程序。

至少也许 yaml 是尝试这个的地方还是不适合的地方?更新:

我确实尝试过上面提到的数组,config.ldap_check_group_membership = true; 而且它现在无论如何都不让我进入,所以要么全部要么什么都没有。甚至将所有 memberOf 数组减少到一个我知道我的测试用户拥有的数组,但它仍然不让我进入。

我还想问,我是否应该只保留以下开发:行并处理代码中所有角色的检查(是否有任何关于如何执行此操作的链接),也许我猜是一个 api 文档(可能在 github 上)某处),虽然手动编码所有检查等可能更容易......这意味着我也必须更加熟悉设计。

我应该添加重要的 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
4

2 回答 2

3

I think you just need to uncomment the # <<: *AUTHORIZATIONS merge.

于 2013-06-28T13:12:12.970 回答
1

老问题,但如果您仍然遇到此问题,您可以尝试ldap_ad_group_checkdevise.rb配置文件中启用。

# devise.rb

...
config.ldap_check_group_membership = true
config.ldap_ad_group_check = true
...

我遇到了同样的问题,这对我有用。

于 2020-11-18T16:56:44.393 回答