Single sign on 如何设置Shibboleth 3身份提供程序?
编辑 所以,我想我就快到了。唯一仍然缺少的是Shibboleth IdP返回一个加密的临时名称ID,我需要它返回用户名,未加密。如果有人能让我通过最后一个拦截器,我会记下答案 (编辑结束) 我一直在尝试设置Shibboleth 3 IdP(我们的应用程序支持SAML,我们需要一个测试环境) 我的目标是一个查询LDAP目录以提供身份验证的简单环境 我设置了Shibboleth IdP 3,它似乎可以正确地查询AD,但我很难让它返回我请求的属性(uid、名字、姓氏、电子邮件) 我很确定我的问题出在attribute-resolver.xml和attribute-filter.xml文件中,但我没有任何运气让它工作 基本上,我成功登录(就Shibboleth而言),但当它将断言传递回我的应用程序时,所有属性都不存在 我曾尝试将它们添加到Attribute-resolver.xml和Attribute-filter.xml,但随后在idp-warn.log(下面)中出现错误。这是一个凭证错误。我很确定用户名密码是正确的,因为shibboleth能够对我进行身份验证(如果这是错误的,它会失败,不是吗?),所以我的设置肯定有其他问题 我还尝试在断言名称标识符中返回用户名,但我似乎只得到一个base-64编码的字符串(解码它会产生无法解码回字符串的字节,因此我不确定其中包含什么)Single sign on 如何设置Shibboleth 3身份提供程序?,single-sign-on,saml,saml-2.0,shibboleth,Single Sign On,Saml,Saml 2.0,Shibboleth,编辑 所以,我想我就快到了。唯一仍然缺少的是Shibboleth IdP返回一个加密的临时名称ID,我需要它返回用户名,未加密。如果有人能让我通过最后一个拦截器,我会记下答案 (编辑结束) 我一直在尝试设置Shibboleth 3 IdP(我们的应用程序支持SAML,我们需要一个测试环境) 我的目标是一个查询LDAP目录以提供身份验证的简单环境 我设置了Shibboleth IdP 3,它似乎可以正确地查询AD,但我很难让它返回我请求的属性(uid、名字、姓氏、电子邮件) 我很确定我的问题出在a
在这一点上,我真正可以使用的是一个很好的如何使用LDAP设置Shibboleth IdP 3的参考。我一直在网上浏览他们的文档,虽然那里有很多原始数据,但要得到一个列表,列出所有必须做的事情,以便启动并运行它,这是非常具有挑战性的。有什么建议吗?不是一个完整的答案,而且我还没有与shibboleth合作过,但是在设置SAML时,我们遇到了与NameID相同的问题 我相信本页显示了设置shibboleth将发送的姓名id的热点: 这个答案描述了不同名称方案的含义 不过,我们所做的是在saml config for
SAMLAuthenticationProvider
中添加了用户详细信息,其中有一段漂亮的代码,我非常自豪:
@Override
public Object loadUserBySAML(SAMLCredential credential) throws UsernameNotFoundException {
try {
String login = credential.getAttributeByName("login").getAttributeValues().get(0).getDOM().getFirstChild().getNodeValue();
return loadUserByUsername(login);
} catch (Exception e) {
LOG.error("could not get login name from saml credential", e);
throw new UsernameNotFoundException("Could not load user", e);
}
}
idp的东西是由第三方处理的,所以我猜是他们将这个自定义属性添加到saml响应中的。我想你可以配置shibboleth来做同样的事情。嗨,丹尼斯:谢谢你的回复。您链接到的Shibboleth wiki是针对v2的。不幸的是,他们在版本3中更新了配置系统。现在它非常复杂,v2在属性解析器中指定的方式被认为是遗留的。在Shibboleth用户论坛上的一些人的帮助下,我最终还是设法混过去了,并让它工作起来。@JMarsch,是的,在我们的应用程序中实现saml登录非常痛苦。我不知道为什么每件事都要这么复杂。告诉我吧——太糟糕了。