Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LDAP接入配置后,登录提示”账号信息不合法“。 #221

Open
muziyou-cn opened this issue Mar 7, 2023 · 5 comments
Open

Comments

@muziyou-cn
Copy link

LDAP_ACCOUNT_PREFIX=
LDAP_ACCOUNT_SUFFIX=

请问这个到底要配置什么信息?调试过程,没有发现其他LDAP请求报错。
根据#15 配置后,登录提示”账号信息不合法“。

@mylxsw 您好,能解析一下这个设置吗?谢谢!

@mylxsw
Copy link
Owner

mylxsw commented Mar 7, 2023

这两个一般不需要配置哈,留空就行。

下面的是用微软 ActiveDirectory 的配置方式,仅供参考

WIZARD_USE_LDAP=true
LDAP_LOGGING=true
LDAP_ACCOUNT_PREFIX=
LDAP_ACCOUNT_SUFFIX=
LDAP_HOSTS=192.168.1.199
LDAP_PORT=389
LDAP_BASE_DN=dc=example,dc=com
LDAP_USERNAME=admin@example.com
LDAP_PASSWORD=xxxxxxxx
LDAP_USE_SSL=false
LDAP_USE_TLS=false
LDAP_PASSWORD_SYNC=true
LDAP_LOGIN_FALLBACK=false
LDAP_SYNC_NAME_ATTR=displayname

如果是 OpenLDAP 的话,参考下 这里。另外,可以分别试下加邮箱后缀和不加登录看看能否成功,如 xxx@example.com 和 xxx 。

另外也可以参考下这两个问题 #62 #105

@muziyou-cn
Copy link
Author

这两个一般不需要配置哈,留空就行。

下面的是用微软 ActiveDirectory 的配置方式,仅供参考

WIZARD_USE_LDAP=true
LDAP_LOGGING=true
LDAP_ACCOUNT_PREFIX=
LDAP_ACCOUNT_SUFFIX=
LDAP_HOSTS=192.168.1.199
LDAP_PORT=389
LDAP_BASE_DN=dc=example,dc=com
LDAP_USERNAME=admin@example.com
LDAP_PASSWORD=xxxxxxxx
LDAP_USE_SSL=false
LDAP_USE_TLS=false
LDAP_PASSWORD_SYNC=true
LDAP_LOGIN_FALLBACK=false
LDAP_SYNC_NAME_ATTR=displayname

如果是 OpenLDAP 的话,参考下 这里。另外,可以分别试下加邮箱后缀和不加登录看看能否成功,如 xxx@example.com 和 xxx 。

另外也可以参考下这两个问题 #62 #105

您提到的issue,我都看过并参考了,也尝试留空了。
邮箱后缀账号,已存在的可以登录。
不带任何后缀登录,日志中没有报错,仅是页面提示“账号信息不合法”,确认ldap账号是可用的。

以下是配置:

ldap_auth.php :

'scopes' => [
//env('LDAP_SCOPES_CLASS', 'Adldap\Laravel\Scopes\UidScope'),
//\App\Components\Ldap\MemberOfScope::class,
Adldap\Laravel\Scopes\UidScope::class,
],

'ldap' => [
'locate_users_by' => 'sAMAccountName',
'bind_users_by' => 'sAMAccountName',
],

'sync_attributes' => [
'email' => 'mail',
'name' => env('LDAP_SYNC_NAME_ATTR', 'cn'),
],

ENV:
WIZARD_USE_LDAP: true
LDAP_SCHEMA: 'Adldap\Schemas\OpenLDAP'
LDAP_LOGGING: true
LDAP_ACCOUNT_PREFIX:
LDAP_ACCOUNT_SUFFIX:
LDAP_HOSTS: xxx.xxx.xxx.xxx
LDAP_PORT: 389
LDAP_BASE_DN: 'OU=bbb,DC=aaa,DC=com'
LDAP_USERNAME: 'CN=ad用户,OU=xxx,OU=xxx,OU=xxx,OU=xxx,DC=xxx,DC=xxx'
LDAP_PASSWORD: 'xxx'
LDAP_USE_SSL: false
LDAP_USE_TLS: false
LDAP_PASSWORD_SYNC: true
LDAP_LOGIN_FALLBACK: true
LDAP_SYNC_NAME_ATTR: sAMAccountName
WIZARD_LDAP_ONLY_MEMBER_OF:

具体登录用户:CN=XXX123456,OU=Users,OU=ccc,OU=bbb,DC=aaa,DC=com, 其中sAMAccountName=123456

wizard 版本: 1.3.1
docker方式,使用docker-compose启动。

请帮忙看看,谢谢!

@mylxsw
Copy link
Owner

mylxsw commented Mar 8, 2023

下午花时间确认了下,目前只支持使用 邮箱后缀账号 登录哈,所以登录时必须使用完整的邮箱账号。

@muziyou-cn
Copy link
Author

muziyou-cn commented Mar 8, 2023

下午花时间确认了下,目前只支持使用 邮箱后缀账号 登录哈,所以登录时必须使用完整的邮箱账号。

感谢您的回复。openldap,我稍后继续尝试添加后缀接入。

另外,经过调试ActiveDirectory能正常接入,请问关于WIZARD_LDAP_ONLY_MEMBER_OF的格式是什么?

WIZARD_LDAP_ONLY_MEMBER_OF: '(company=研发部)'

从日志看是这样的,(memberof:1.2.840.113556.1.4.1941:=(company=研发部))。 我希望能使用属性company=xxx进行过滤,请问在哪里可以设置?

@mylxsw
Copy link
Owner

mylxsw commented Mar 9, 2023

WIZARD_LDAP_ONLY_MEMBER_OF 是这样设置的,比如只允许 tp 组下的用户可以登录(我们这里的 tp 组是在 Users 目录下创建的)

WIZARD_LDAP_ONLY_MEMBER_OF=CN=tp,CN=Users,DC=example,DC=com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants