web-dev-qa-db-ja.com

keycloak rest apiを介してjwtトークンを生成するにはどうすればよいですか?

Keycloakを既存のアプリケーションに統合する作業をしています。このプロセスの一部として、Webアプリケーションがキークロークから生成されたjwtトークンを受け入れることができるかどうかをテストする必要があります。

APIドキュメント http://www.keycloak.org/docs-api/3.4/rest-api/index.html を読みましたが、jwtトークンを作成するメソッドが見つかりませんでした。

Keycloakでjwtトークンを作成するためのREST apiメソッドを知っていますか?

7
Magick

Keycloakメーリングリストのメンバーによって提供されるkeycloakメーリングリストの詳細に従って[ВиталийИщенкоand Hynek Mlnarik]

発行するJWTに大きく依存します。アクセストークンの生成のサンプルについては、[1]を参照してください。アクショントークンについては、[2]を参照してください。カスタム、[3]を参照してください。

[1] https://github.com/keycloak/keycloak/blob/master/services/src/main/Java/org/keycloak/protocol/oidc/TokenManager.Java#L698

[2] https://github.com/keycloak/keycloak/blob/master/services/src/main/Java/org/keycloak/authentication/actiontoken/DefaultActionToken.Java#L14

[3] https://github.com/keycloak/keycloak/blob/master/core/src/main/Java/org/keycloak/jose/jws/JWSBuilder.Java

KeycloakはOIDC仕様に準拠しており、OAuth2 [1]で定義されている任意のフローと、OIDCで追加された追加のフローを使用できます。

OIDCはJWTの使用を指示するため、アクセストークン(およびrefresh_token、id_tokenなどはJWT)はJWT形式で返されます

トークンと認証のアドレスを見つけるために、keycloakはOIDC検出URL、つまりhttp://keycloakhost:keycloakport/auth/realms/{realm}/.well-known/openid-configurationを提供します

OIDC仕様向けに記述されたトークン要求手順を簡略化できるライブラリがたくさんあります。ただし、Keycloakには一連のアダプターが記述されており、既存のテクノロジースタックにうまく適合できます[2]。私はそれらを許可すると生のJWTトークンにアクセスできると思います

[1] https://aaronparecki.com/oauth-2-simplified/

[2] http://www.keycloak.org/docs/latest/securing_apps/index.html#openid-connect-

7
Subodh Joshi