2013-09-10 22 views
0

我正在使用Thinktecture的授權服務器與ACS掛鉤並將LiveID用作身份提供者。它的工作原理,但智威湯遜的樣子(注意填充NameID要求):Live ID不會返回UserId作爲ACS與Thinktecture授權服務器的身份提供商

{ 
"aud": "urn:mygym", 
"iss": "https://my-gym.accesscontrol.windows.net/", 
"nbf": 1378851574, 
"exp": 1378852174, 
"nameid": "MjApoxNfAaXXXXXXXXXXXXXdBi7lqd4sjd6j0=", 
"identityprovider": "uri:WindowsLiveID" 
} 

這是夾在我的自定義JWT令牌處理程序,所以它從ACS直接gottent。 「nameid」聲明應該是Live ID UserId,但它不是,看起來像一個base64編碼的字符串,但它只是解碼爲隨機字符。我需要獲取UserId以獲取用戶的公共信息,如https://apis.live.net/v5.0/8c8ce076ca27823f

任何想法可能是錯誤或錯過配置?

回答

0

ACS不會爲LiveId認證用戶提供電子郵件或「全局用戶標識」。它爲您提供了一個對特定用戶和ACS名稱空間唯一的標識符。所以保證認證用戶是返回用戶 _,就這些。

您可能想要檢查連接到LiveID的其他方式(例如,使用其提供更多控制的OAuth端點)。

注:如果您使用的Identity Server,則可能不會在所有需要的ACS ...

+0

對不起,這個標籤是一個錯誤,我只使用ACS。所以沒有辦法從ACS獲取更多關於用戶的信息?猜猜我必須獲得IdentityServer(爲了使用多個身份提供者)。謝謝! – danielrozo

+0

是的,如果您想將堆棧作爲開源項目完全「擁有」,則可以使用Identity Server。還有一些服務(如我工作的那個:developers.auth0.com),您可以將其完全外包給此服務。由你決定。 –

相關問題