2017-08-25 75 views
2

我很困惑,在向授權服務器發送授權請求時,似乎沒有標準的方式來指定訪問令牌的受衆。如何爲OAuth2訪問令牌指定受衆羣體?

OAuth2將訪問令牌指定爲不透明字符串;在規範中只有一個提及「觀衆」的地方,說訪問令牌可能是「觀衆限制」的。 許多最近的授權服務器實現似乎產生JWT訪問令牌,而JWT指定了受衆(aud)聲明。

至於我發現: - Auth0採用了「觀衆」參數 - Connect2id使用「資源」參數 - 身份Server使用「澳元」要求一個固定的基於發行人價值,並假定範圍是足夠 - 但是,這不適合所有用例。 - 卓越的'OAuth2 in Action'書中顯示了'aud'聲明中資源服務器URI的示例,但沒有說明它來自哪裏。

那麼,如何以標準方式爲特定受衆(資源服務器,API,...)獲取訪問令牌?

+0

就Auth0選擇實施他們的解決方案而言,您是正確的,因此'audience'是通過auth/authz請求發送的參數。您還可以將'scope'屬性請求添加到'scope'參數中 - 例如。 「範圍:讀:書」 - 它不遵守嚴格的標準,因爲沒有任何規定。 Auth0具有API(資源API)的概念,其中標識符是客戶端可用作受衆值的受衆,您可以在該資源API上設置特定範圍。 – arcseldon

回答

0

我認爲你是對的。有幾個指導可用。 The OAuth 2.0 Authorization Framework: Bearer Token Usage OAuth 2.0: Audience Information (draft-tschofenig-oauth-audience-00.txt)

OpenID connect明確定義的 「AUD」 參數爲:

REQUIRED。此ID標識適用的受衆羣體。它必須 包含依賴方的OAuth 2.0 client_id作爲受衆 的值。它也可能包含其他受衆的標識符。在 一般情況下,aud值是一組區分大小寫的字符串。在 常見的特殊情況下,當有一個聽衆時,審計值MAY 是一個區分大小寫的字符串。

+0

感謝您的回覆。請注意,(放棄的)Tschofenig草稿規範在令牌請求中提供了受衆參數,而不是在授權請求中; OpenID Connect規範中提到的「aud」也是關於響應中的聲明,而不是關於參數。 –

相關問題