我正在使用Thinktecture的授权服务器与ACS连接,LiveID作为身份提供商。它有效,但JWT看起来像(注意名字声称):
{
"aud": "urn:mygym",
"iss": "https://my-gym.accesscontrol.windows.net/",
"nbf": 1378851574,
"exp": 1378852174,
"nameid": "MjApoxNfAaXXXXXXXXXXXXXdBi7lqd4sjd6j0=",
"identityprovider": "uri:WindowsLiveID"
}
这是在我的自定义JWT令牌处理程序中捕获的,所以它直接来自ACS。 “nameid”声明应该是Live ID UserId,但它不是,看起来像base64编码的字符串,但它只是解码为随机字符。我需要获取UserId以获取用户的公开信息,如https://apis.live.net/v5.0/8c8ce076ca27823f中所示。
任何可能出错或未配置的想法?
答案 0 :(得分:0)
ACS不会为LiveId经过身份验证的用户提供电子邮件或“全局用户ID”。它为您提供了特定用户和ACS名称空间唯一的标识符。因此,保证经过身份验证的用户是返回用户 _,这就是全部。
您可能想要检查连接到LiveID的其他方式(例如,使用可提供更多控制权的OAuth端点)。
注意:如果您使用的是Identity Server,则可能根本不需要ACS ...