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