【发布时间】:2012-09-11 13:36:34
【问题描述】:
我一直在使用 Azure ACS,它非常酷,我想我会在我的下一个项目中使用它..
我有一个问题是,当我取回我的 ClaimsIdentity 时,它非常空,只有电子邮件和姓名。这是设计使然吗?
是否有可能获得更多信息?我真的希望我可以将用户的头像用于服务..
任何帮助都会很棒。
干杯。 步骤。
【问题讨论】:
标签: asp.net asp.net-mvc-3 azure acs
我一直在使用 Azure ACS,它非常酷,我想我会在我的下一个项目中使用它..
我有一个问题是,当我取回我的 ClaimsIdentity 时,它非常空,只有电子邮件和姓名。这是设计使然吗?
是否有可能获得更多信息?我真的希望我可以将用户的头像用于服务..
任何帮助都会很棒。
干杯。 步骤。
【问题讨论】:
标签: asp.net asp.net-mvc-3 azure acs
返回的声明几乎由身份提供者自行决定。每个都可以返回不同的声明(有关每个身份提供者返回的详细信息,请参阅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 进行身份验证时,发出类型为 role 且值为 manager 的声明”
所以你可以在这样的规则中添加任何东西(包括头像)。
ACS 本质上是声明的“规范化器”,它将来自任何 IdP 的令牌中的声明转换为您的应用可以理解的内容。
请注意,受您控制的 IdP(例如您自己的 ADFS 服务器或公司的第 3 方 IdP)可以提供额外的声明。通常受限的是预先配置的内容(例如电子邮件、姓名、ID)。
您可以使用 ACS 门户、API 或通过像 Auth10 这样的第三方工具(使用 API)自行定义转换规则。
【讨论】: