我正在尝试使用云应用程序配置WSO2 Identity Server。
到目前为止,我已成功:
然而,云应用登录仍然失败。我认为这是因为SAML响应具有用户名,云应用程序需要用户电子邮件地址而不是用户名。我这样说是因为您使用他们的电子邮件地址而不是用户名来配置云应用程序中的用户。
无论如何你可以让WSO2 IS返回电子邮件地址而不是用户名。我附上SAML以说明我的意思,我希望我的电子邮件地址在<saml:NameID>
字段中返回,而不是我的用户名smith
。
<?xml version="1.0" encoding="UTF-8"?>
<saml2p:Response Destination="https://cloudapp.com/auth/saml/callback"
ID="ijnccdceglphfggpnhhdkckhdkendndabahdjlef" InResponseTo="_4b740f60-a420-0132-eb44-002590a743aa"
IssueInstant="2015-03-03T22:12:25.000Z" Version="2.0"
xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol">
<saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity"
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">localhost
</saml2:Issuer>
<saml2p:Status>
<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</saml2p:Status>
<saml2:Assertion ID="kjggobfabnbnfnpbngjeeolfjjjoimapmkpadbfl" IssueInstant="2015-03-03T22:12:25.000Z" Version="2.0"
xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion">
<saml2:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">localhost</saml2:Issuer>
<saml2:Subject>
<saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">smith</saml2:NameID>
<saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
<saml2:SubjectConfirmationData InResponseTo="_4b740f60-a420-0132-eb44-002590a743aa"
NotOnOrAfter="2015-03-03T22:17:25.000Z"
Recipient="https://cloudapp.com/auth/saml/callback"/>
</saml2:SubjectConfirmation>
</saml2:Subject>
<saml2:Conditions NotBefore="2015-03-03T22:12:25.000Z" NotOnOrAfter="2015-03-03T22:17:25.000Z">
<saml2:AudienceRestriction>
<saml2:Audience>https://cloudapp.com/</saml2:Audience>
</saml2:AudienceRestriction>
</saml2:Conditions>
<saml2:AuthnStatement AuthnInstant="2015-03-03T22:12:25.001Z">
<saml2:AuthnContext>
<saml2:AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:Password</saml2:AuthnContextClassRef>
</saml2:AuthnContext>
</saml2:AuthnStatement>
</saml2:Assertion>
答案 0 :(得分:2)
是。您可以使用WSO2IS中的配置来完成此操作。默认情况下,WSO2IS返回经过身份验证的用户名。但您可以选择经过身份验证的用户的哪个属性,必须添加为NameID
中的SAML2 Assertion
。如果您使用的是IS 5.0.0,则在声明配置下,您可以找到名为Subject Claim URI:
的配置。在这里,您可以选择必须选为NameID
的所需声明uri。您可以在“{3}}”主题“SAML2断言的用户名”下找到更多配置详细信息。
但是,当您使用电子邮件时,如果发现任何问题,您可能需要在carbon.xml
文件中配置以下元素。但是上面的链接包含了更多相关内容。
<EnableEmailUserName>true</EnableEmailUserName>