【发布时间】:2016-07-05 23:34:38
【问题描述】:
我有一个本地 Liberty Profile 实例正在运行,它连接到 BlueMix SSO 服务。身份验证似乎有效,但我的主题中没有填充组。
在我的 basicRegistry 中,我使用 Form Authc 得到这个:
com.ibm.ws.security.credentials.wscred.WSCredentialImpl com.ibm.ws.security.credentials.wscred.WSCredentialImpl@3fb28fe1,realmName=BasicRealm,securityName=user1,realmSecurityName=BasicRealm/user1,uniqueSecurityName=user1,primaryGroupId=group:BasicRealm/admin,accessId=user:BasicRealm/user1,groupIds=[group:BasicRealm/admin]
当我对 BlueMix SSO Cloud Directory authc 进行身份验证时,我得到了这个:
com.ibm.ws.security.credentials.wscred.WSCredentialImpl com.ibm.ws.security.credentials.wscred.WSCredentialImpl@5b91df41,realmName=www.ibm.com,securityName=<ssoservice-name>.iam.ibmcloud.com/www.ibm.com/user1,realmSecurityName=www.ibm.com/<ssoservice-name>.iam.ibmcloud.com/www.ibm.com/user1,uniqueSecurityName=<ssoservice-name>.iam.ibmcloud.com/www.ibm.com/user1,primaryGroupId=null,accessId=user:www.ibm.com/<ssoservice-name>.iam.ibmcloud.com/www.ibm.com/user1,groupIds=[]
但我可以看到它正在进入云目录,因为我可以看到在 ID 令牌详细信息中返回的组: 索赔
{"ext":"{\"tenantId\":\"<ssoservice-name>.iam.ibmcloud.com\",\"groups\":[\"allUsers\",\"admin\"],
我尝试了几种不同的映射来获取这些组,但我无法弄清楚,我已经用完了 dW 和 google 搜索:
<security-role name="admin"><group name="admin" access-id="group:www.ibm.com/admin"></group></security-role>
是否可以获得正确的配置来以声明方式正确填充我的主题组?我希望在我的授权方案中实际使用更多的 ALL_AUTH_USERS。
<security-role name="authcUsers"><special-subject type="ALL_AUTHENTICATED_USERS"></special-subject></security-role>
UPDATE::02JUL16 - 所以它似乎能够获取特定用户,下面的 user1 被映射到管理员角色,但最后一个 SSO 组映射仍然不起作用。
<security-role name="admin">
<user name="user1" access-id="user:www.ibm.com/<sso-service>.iam.ibmcloud.com/www.ibm.com/user1"/>
<group name="admin" access-id="group:BasicRealm/admin"/>
<group name="admin" access-id="group:www.ibm.com/<sso-service>.iam.ibmcloud.com/www.ibm.com/admin"/>
问候, 约翰
【问题讨论】: