我很困惑,在向授權服務器發送授權請求時,似乎沒有標準的方式來指定訪問令牌的受衆。如何爲OAuth2訪問令牌指定受衆羣體?
OAuth2將訪問令牌指定爲不透明字符串;在規範中只有一個提及「觀衆」的地方,說訪問令牌可能是「觀衆限制」的。 許多最近的授權服務器實現似乎產生JWT訪問令牌,而JWT指定了受衆(aud)聲明。
至於我發現: - Auth0採用了「觀衆」參數 - Connect2id使用「資源」參數 - 身份Server使用「澳元」要求一個固定的基於發行人價值,並假定範圍是足夠 - 但是,這不適合所有用例。 - 卓越的'OAuth2 in Action'書中顯示了'aud'聲明中資源服務器URI的示例,但沒有說明它來自哪裏。
那麼,如何以標準方式爲特定受衆(資源服務器,API,...)獲取訪問令牌?
就Auth0選擇實施他們的解決方案而言,您是正確的,因此'audience'是通過auth/authz請求發送的參數。您還可以將'scope'屬性請求添加到'scope'參數中 - 例如。 「範圍:讀:書」 - 它不遵守嚴格的標準,因爲沒有任何規定。 Auth0具有API(資源API)的概念,其中標識符是客戶端可用作受衆值的受衆,您可以在該資源API上設置特定範圍。 – arcseldon