web-dev-qa-db-ja.com

Keycloakアクセストークンvs UserInfoトークン?

Keycloakを使用する場合、アクセストークンはユーザー情報トークンとどのように異なりますか?

OAuth2/OpenIDConnectから、アクセストークンはユーザーが認証されたという情報を提供し、ユーザーとそのプロファイル/ロールなどに関する詳細情報を取得するにはユーザー情報トークンを使用する必要があることを理解しました。

https://jwt.io/ とUserInfoトークンのようなものでアクセストークンを見ると、ユーザーのプロファイルと役割について同じ情報を取得できます。

なぜそれがこのようなものであり、Keycloakを使用する場合、アクセストークンはユーザー情報トークンとどう違うのですか?

7
Melissa

これらの2つのエンドポイントにKeyclokを使用しているときに、さまざまなデータを取得する方法を見つけました。

Keycloakは「OIDCトークンとSAMLアサーションマッピング」の機能を提供し、「クレームが配置される場所を制御する」こともできます。ボタンを使用して:-IDトークンに追加-アクセストークンに追加-userinfoに追加一部のマッパーに対して[IDトークンに追加]と[アクセストークンに追加]をOFFに設定します。これらは、UserInfo応答の場合とは異なり、AccessTokenには含まれません。

http://www.keycloak.org/docs/latest/server_admin/index.html#_protocol-mappers

3
Melissa

アクセストークンは、アプリケーションのリソースへのアクセスを提供するためのものです。アクセストークンを取得するには、 spec で定義されたフローのいずれかを使用して自分自身を認証する必要があります。 keycloakでは、アクセストークンにはユーザー名とロールが含まれますが、管理パネルを使用して カスタムクレームを追加 することもできます。トークンはすべてのリクエストで送信され、アプリケーションからデコードできるため、いくつかのクレームを追加すると便利な場合があります。

ユーザー情報トークンはありません、実際には endpoint です。このエンドポイントは、最初のステップで取得したアクセストークンを使用してアクセスされ、通常、ユーザーに関する詳細情報(ユーザーデータ、ロールなど)を含むJSON応答を提供します。

4
Xtreme Biker