rest - 使用 LDAP 服务器配置的 Hyperledger Composer 身份验证失败,并出现错误“用户配置文件中缺少电子邮件”
问题描述
我已经配置了一个开放的 LDAP 并在其中添加了一些用户,我能够成功登录这些用户,现在我已经启动了 Hyperledger Composer Rest 服务器,并且使用 composer providers 环境变量将 LDAP 配置为护照策略。我没有将电子邮件 ID 配置为必填字段,但我只能对在其 LDAP 配置文件中提供电子邮件 ID 的用户进行身份验证。对于其他用户,我收到错误 500。
{
"error": {
"statusCode": 500,
"message": "email is missing from the user profile"
}
}
如果我在此用户帐户中添加电子邮件 ID 字段,我将能够成功登录。
我正在使用邮递员向我的休息服务器发布一个请求,该请求将我重定向到 auth/ldap。提供的作曲家提供者:
COMPOSER_PROVIDERS='{
"ldap": {
"provider": "ldap",
"authScheme": "ldap",
"module": "passport-ldapauth",
"authPath": "/auth/ldap",
"successRedirect": "http://192.168.255.104:8080/auth/account",
"failureRedirect": "/ldap",
"session": true,
"json": true,
"LdapAttributeForLogin": "cn",
"LdapAttributeForUsername": "cn",
"server": {
"url": "ldap://192.168.255.104:389",
"bindDN": "cn=admin,dc=hsc,dc=com",
"bindCredentials": "hsc321",
"searchBase": "ou=users,dc=hsc,dc=com",
"searchFilter": "(cn={{username}})"
}
}
}'
使用passport-ldap身份验证时是否强制发送电子邮件?
解决方案
是的,我认为该passport-ldapauth
策略需要它才能起作用(而不是 Composer REST 服务器)。建议修改/添加用户(来自定义了邮件的 LDIF 文件),例如mail: nwd@hsc.com
ldapadd -x -D cn=admin,dc=hsc,dc=com -W -f add_user.ldif // or ldapmodify
然后尝试 curl (或您希望的邮递员)命令以查看是否有效:
curl -i -r -X POST http://localhost:3000/auth/ldap -H " Content-Type:application/json " -d ' {"username": "nd", "password":"nd" }
你应该得到饼干。
推荐阅读
- android - 无法构建已发布的 APK
- javascript - Github js文件未加载(直接链接)
- .htaccess - .htaccess 块 url 在 Cpanel 中不起作用
- java - 即使用户将文本放入其中,JTextField 也是“空的”
- zlib - 破碎的 CRC32 组合
- python - 使用 scipy 对两个数组进行卷积
- dictionary - 循环遍历 ansible 字典以分配字典值
- ansible - Ansible 检查和差异模式的问题
- laravel - AWS Elasticbeanstalk 使用 .platform 覆盖 Nginx 配置不起作用
- c# - ADO Entity Builder 不会为仅具有外键的表生成类