web-dev-qa-db-ja.com

OAuth2アクセストークンのオーディエンスを指定するにはどうすればよいですか?

承認サーバーに承認リクエストを送信するときに、アクセストークンのオーディエンスを指定する標準的な方法がないように思われるので混乱しています。

OAuth2は、アクセストークンを不透明な文字列として指定します。仕様には「オーディエンス」についての言及が1つだけあり、アクセストークンは「オーディエンス制限」である可能性があります。最近の承認サーバーの実装の多くはJWTアクセストークンを生成しているようで、JWTはオーディエンス(aud)クレームを指定します。

私が見つけた限り:-Auth0は「audience」パラメーターを使用します-Connect2idは「resource」パラメーターを使用します-Identity Serverは「aud」クレームに固定の発行者ベースの値を使用し、スコープが十分であると想定します-ただし、これはそうではありませんすべてのユースケースに適合します。 -優れた「OAuth2inAction」の本は、「aud」クレームにリソースサーバーURIを使用した例を示していますが、それがどこから来たのかについては述べていません。

では、特定のオーディエンス(リソースサーバー、APIなど)のアクセストークンを標準的な方法で取得するにはどうすればよいでしょうか。

9
Free Willaert

私はあなたが正しいと思います。利用可能なガイドラインがいくつかあります。 OAuth 2.0認証フレームワーク:ベアラートークンの使用OAuth 2.0:オーディエンス情報(draft-tschofenig-oauth-audience-00.txt)

OpenID connect 明確に定義された「aud」パラメータ:

必須。このIDトークンの対象となるオーディエンス。オーディエンス値として、証明書利用者のOAuth 2.0 client_idを含める必要があります。他のオーディエンスの識別子も含めることができます。通常、aud値は大文字と小文字を区別する文字列の配列です。オーディエンスが1人の一般的な特殊なケースでは、aud値は大文字と小文字を区別する単一の文字列である場合があります。

3
jwilleke