我一直在使用Azure ACS,非常酷,我想我会在下一个项目中使用它。
我遇到的一个问题是,当我收到我的ClaimsIdentity时,它只是电子邮件和名称而空白......这是设计的吗?
是否有可能获得更多信息?我真的希望我可以使用用户提供服务的头像..
任何帮助都会很棒。
欢呼声。 STE。
答案 0 :(得分:2)
退回的索赔几乎由身份提供商自行决定。每个人都可以返回不同的声明(有关每个身份提供者返回的内容的详细信息,请参阅http://msdn.microsoft.com/en-us/library/windowsazure/gg185971.aspx)。您只能保证获得每个身份提供商返回的“名称标识符”和“身份提供商”声明。
http://msdn.microsoft.com/en-us/library/windowsazure/gg185933.aspx的更多有用信息。
答案 1 :(得分:1)
正如@mcollier所写,所提供的索赔通常取决于IdP提供的内容。但是,您可以在ACS中丰富安全令牌并添加任意声明。您可以编写一条规则:
“当有人使用 email=someone@gmail.com 向Google发送身份验证时,请使用值经理发出角色类型的声明”
所以你可以在这样的规则中添加任何东西(包括头像)。
ACS本质上是声明的“规范化”,它会将来自任何IdP的令牌中的声明转换为您的应用所能理解的内容。
请注意,您控制的IdP(例如您自己的ADFS服务器或公司的第三方IdP)可以提供其他声明。预先配置的通常是有限的(例如电子邮件,姓名,身份证)。
您可以使用ACS门户,API或第三方工具(使用API)(如Auth10)自行定义转换规则。