簡體   English   中英

Live ID沒有使用Thinktecture Authorization Server在ACS中返回UserId作為身份提供者

[英]Live Id not returning UserId as Identity Provider in ACS with Thinktecture Authorization Server

我使用的是Thinktecture的授權服務器以及ACS,並且LiveID作為身份提供者。 它可以工作,但JWT看起來像(請注意nameid聲明):

{
"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所示

關於錯誤或配置錯誤的任何想法?

ACS不為經過LiveId身份驗證的用戶提供電子郵件或“全局用戶ID”。 它為您提供了對於特定用戶和ACS名稱空間唯一的標識符。 這樣就可以確保已通過身份驗證的用戶是返回用戶 _,僅此而已。

您可能想要檢查其他連接到LiveID的方法(例如,使用它們的OAuth終結點來提供更多控制權)。

注意:如果您使用的是Identity Server,則可能根本不需要ACS ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM