2017-10-31 6 views
0

OIDCプロバイダを使用して認証する場合、IDトークンが返されます。また、APIのスコープを指定した場合、クライアントアプリケーションがエンドユーザーの代わりに保護されたリソースに要求を送信できるようにアクセストークンが返されます。通常、アクセストークンもJWTです。OIDC - 誰かがJWT access_tokenを偽装するのを止めるにはどうすればいいですか?

しかし、誰かがこれらのアクセストークンの1つを偽装するのを止め、それを作成してAPIに渡すのは何ですか?シグネチャは検証ロジックが期待するものとは異なるため、改ざん防止のための保護手段があることは理解していますが、悪意のあるユーザーが手動で新しいものを作成した場合はどうなりますか?特に、これらのトークンは、アクセストークンを必要とするAPI(すべてのAPIがイントロスペクションエンドポイントを使用するわけではありません...特にJWTを使用するもの)によって、その場で検証される可能性があるためです。私は、OpenID ConnectプロバイダからのJWTの署名鍵の周りにメタデータがあり、それがOIDC発見文書で利用可能であることを理解しています。たとえば、Google's JWK metadataです。公開されている情報を署名し、JWTアクセストークンをOIDCプロバイダへのリクエストなしで検証できる場合、JWTはどのように安全ですか?ある人がトークンを作成してアクセストークンを必要とするAPIに渡すことを妨げているのは何ですか?

答えて

3

しかし、これらのアクセストークンのうちの1つを偽装することを阻止し、それを作成してAPIに渡すことは何ですか?

元のJWTに署名するために使用される秘密鍵(RS256のような非対称署名アルゴリズムを使用していると仮定します)がなければ、署名のなりすましと再構築はほとんど不可能です。

OIDCディスカバリ文書で入手できるJWK情報には、公開鍵のみが含まれています。

また、トークンスニッフィングを回避するために、認証/トークン交換にHTTPSを使用します。

+0

したがって、JWTを再構築するには、対応する秘密鍵を知る必要がありますか? –

+0

はい。そうです。 JWTの署名部分は、秘密鍵なしでは再構成できないため、署名がトークン通信で主要な役割を果たしているのはこのためです。 – Karthik

関連する問題