2016-04-04 20 views
2

我正在實施將用戶信息存儲在Azure表存儲中的user service。我想爲租戶ID使用一個值作爲我的分區鍵的一部分,但是,在GetProfileDataAsync和IsActiveAsync中可用的索賠僅在聲明(sub,name,amr,idp,auth_time)中構建5。如何向自定義用戶服務的GetProfileDataAsync&IsActiveAsync上下文添加聲明?

我從我的身份提供者處獲得租戶ID,並將其作爲索賠包含在我的訪問令牌&身份令牌中。我怎樣才能使這些方法可用?

回答

4

AuthenticateLocal被調用時,您將返回AuthenticateResult來指示驗證結果。如果成功,則使用接受subjectname值的ctor過載。還有一個可選的claims集合。如果您傳遞claims的值,則您將自己的自定義聲明添加到身份服務器上的身份驗證Cookie。然後,這些索賠是SubjectGetProfile API的一部分(假設對這些API的請求是通過瀏覽器完成的,例如來自授權請求)。然後,您可以檢查這些索賠並以任何您想要的方式使用它們。

如果請求不是通過瀏覽器,那麼您對Subject唯一的聲明是用戶唯一的ID(即sub聲明)。

+0

這對一些請求有效,但不適用於稍後調用UserInfo端點(因爲您提到的只有Subject)。我最終在我的用戶的主題中編碼了這些信息,並在同一個分區中創建了2條記錄,以便在Table存儲中進行高效的查詢。 – lgaud

+0

正確 - 如果您重新閱讀,您會看到我寫了'',假設對這些API的請求是通過瀏覽器完成的,例如授權請求「'。 –

相關問題