我了解当前 ACS 2.0 中的默认 Windows Live ID 身份提供程序仅提供两个声明,即 nameidentifier(与用户和您的应用程序关联的 base64 唯一 id,但对描述某人无用)和 identityprovider 声明,它让您知道您的与 LiveID 交谈。我想知道是否可以为 Window Live ID 配置替代身份提供程序,该身份提供程序可以通过附加声明提供名称和其他 Live ID 配置文件信息。
谢谢,-帕特里克
我了解当前 ACS 2.0 中的默认 Windows Live ID 身份提供程序仅提供两个声明,即 nameidentifier(与用户和您的应用程序关联的 base64 唯一 id,但对描述某人无用)和 identityprovider 声明,它让您知道您的与 LiveID 交谈。我想知道是否可以为 Window Live ID 配置替代身份提供程序,该身份提供程序可以通过附加声明提供名称和其他 Live ID 配置文件信息。
谢谢,-帕特里克
除了使用 Window 的 Live Identity Provider
的and声明之外,您什么也得不到。http://msdn.microsoft.com/en-us/library/gg185944.aspxnameidentifier
identityprovider
此链接中详细列出了 Azure ACS 2.0 可用的其他提供程序。 http://msdn.microsoft.com/en-us/library/gg185971.aspx
仅供参考 - 谷歌和雅虎作为 IP 提供额外但可选的声明emailaddress
& name
。因此,您还可以检索John Doe和john.doe@gmail.com作为示例。
请注意,使用这两个可选声明将提示用户他们将在首次登录时接触您的服务。此时用户可以取消操作。我建议您只获取您真正需要的声明,因为它可能会吓跑潜在用户。
我之前对此进行了调查,发现直接答案是否定的。
但是,您可以在 ACS 链中使用 ADFS 来注入更多声明。
LiveId 设置似乎允许您发布令牌以获取类似信息
{
"id": "b6b2a7e8f2515e5",
"name": "Apurva Dalia",
"first_name": "Apurva",
"last_name": "Dalia",
"gender": null,
"link": "http://cid-b6b2a7e8f2515e5.profile.live.com/",
"locale": "en_US",
"updated_time": "2011-10-26T21:13:05+0000"
}
如果这是真的,那么您可以将此信息注入调用者。
请参阅Live SDK 的服务器端方案。
从另一个 Microsoft 站点:
例如,以下 GET 请求(未指定任何访问令牌)将返回用户的公共个人资料信息。 https://apis.live.net/v5.0/8c8ce076ca27823f
Windows Live 返回的信息如下所示。
“id”:“8c8ce076ca27823f”,“name”:“Roberto Tamburello”,
“first_name”:“Roberto”,
“last_name”:“Tamburello”,
“gender”:null,“locale”:“en_US”