1. ホーム
  2. oauth

[解決済み] JWT (Json Web Token) Audience "aud" vs Client_Id - 違いは何ですか?

2022-05-31 07:22:21

質問

OAuth 2.0 の JWT access_token を認証サーバーに実装しようとしています。しかし、JWTとJWTの違いがよくわかりません。 aud クレームと client_id HTTP ヘッダーの値です。これらは同じものですか?そうでない場合、この2つの違いを説明してもらえますか?

私の疑念は aud はリソースサーバを参照するものであって client_id は認証サーバーが認識するクライアントアプリケーション(ウェブアプリやiOSアプリなど)の一つを参照する必要があります。

私の現在のケースでは、リソースサーバーはウェブアプリのクライアントでもあります。

どのように解決するのですか?

結果的には、私の疑いは的中しました。観客は aud は、トークンを受け入れるべきリソースサーバーを参照するためのものです。

として この の投稿は簡単に言うと

トークンのオーディエンスとは、そのトークンの意図された受信者のことです。

audience の値は文字列で、通常はアクセスするリソースのベースアドレスです。 のような、アクセスされるリソースのベースアドレスです。 https://contoso.com .

client_id は、リソースサーバーにリソースを要求するクライアントアプリケーションを指します。

クライアントアプリ(iOSアプリなど)は、認証サーバにJWTを要求します。 その際に client_idclient_secret を、必要とされる可能性のあるユーザ証明書と一緒に指定します。認証サーバは、クライアントの認証に client_idclient_secret で、JWTを返します。

JWTには aud クレームが含まれ、そのJWTがどのリソースサーバーに対して有効であるかを指定します。 もし audwww.myfunwebapp.com を含むが、クライアントアプリはそのJWTを www.supersecretwebapp.com で使おうとすると、リソースサーバーがそのJWTはそのためのものではないと判断するため、アクセスは拒否されます。