问题描述
我们已经为与Cisco Webex集成的单点登录设置了IDP Shibboleth,但由于IDP没有传递Webex授权访问所需的uid,因此我们一直在获得未经授权的访问。
IDP的回复始终包含
<saml2:NameID Format=\"urn:oasis:names:tc:SAML:2.0:nameid-format:transient\" NameQualifier=\"https://shibboleth.someaddress/idp/shibboleth\" SPNameQualifier=\"https://idbroker-eu.webex.com/key\">_68f435cf51bee4a2861d5a9420e3cdd2</saml2:NameID>
<saml2:NameID>
是问题所在,需要改用mail-attr
attribute-resolver.xml 已使用此内容更新
<resolver:AttributeDefinition id="mail-attr" xsi:type="ad:Simple"
sourceAttributeID="mail">
<resolver:Dependency ref="MyLDAP" />
<resolver:AttributeEncoder xsi:type="enc:SAML2String" name="uid" />
</resolver:AttributeDefinition>
attribute-filter.xml 具有此内容
<afp:AttributeFilterPolicy id="ReleaseToCI">
<afp:PolicyRequirementRule xsi:type="basic:AttributeRequesterString"
value="https://idbroker.webex.com/key" />
<afp:AttributeRule attributeID="transientId">
<afp:PermitValueRule xsi:type="basic:ANY"/>
</afp:AttributeRule>
<afp:AttributeRule attributeID="mail-attr">
<afp:PermitValueRule xsi:type="basic:ANY" />
</afp:AttributeRule>
</afp:AttributeFilterPolicy>
但是响应永远不会具有mail属性,IDP的身份验证是通过LoginPassword完成的,而该部分与集成的OpenLDAP可以很好地工作。
解决方法
我没有足够的声誉来添加评论,但是请您显示以下配置:metadata-providers.xml
和relying-party.xml
,我认为问题可能出在其中。因为在这些文件中,我们定义了哪些提供程序可以访问IDP。