JWTベアラーフローの設定
Liferay で JWT Bearer を付与タイプとして使用するには、クライアント認証方法を Client Secret Basic または Postに設定して OAuth 2 クライアントを作成する必要があります。 クライアントは、Liferay アクセス トークンと引き換えに、アサーションと許可タイプとともにクライアント ID とシークレットを送信する必要があります。
アサーションを検証するには、Liferay で着信アサーション発行者を設定する必要があります。 これは、Liferay (信頼当事者) と発行者 (トークン サービス) の間に信頼関係を形成するためです。 認可付与としてのアサーションを参照
-
グローバル メニュー (
) を開き、 コントロール パネル → インスタンス設定に移動します。 -
OAuth 2 受信アサーション構成で、 追加をクリックします。
-
発行者の名前、JSON Web キー セット、およびユーザー認証タイプを入力します。

-
[保存]をクリックします。
発行者の値は、発行者の JWT アサーション内の iss 値と等しくなければなりません。 ユーザー認証タイプの値は、JWT アサーション内の サブ 値と一致する必要があります。 これらの値をマップするには、トークン サービスで追加の構成が必要になる場合があります。
JSON Web キー セットは通常、トークン サービスの JWKS URI で入手できます。 たとえば、Keycloakを使用している場合、JWKS URIは次の場所で入手できます。
http://{hostname}/realms/{realm_name}/protocol/openid-connect/certs
JWTベアラーフローの有効化
受信アサーション発行者を構成した後、クライアントの JWT ベアラー フローが有効になっていることを確認します。
-
グローバル メニュー (
) を開き、 コントロール パネル → OAuth 2 管理に移動します。 -
OAuth 2 クライアントを選択し、「許可された認証タイプ」まで下にスクロールします。
-
JWT_BEARER チェックボックスをオンにします。
-
[保存]をクリックします。
Liferayからアクセストークンを取得する
着信アサーション発行者を設定し、クライアントの JWT_BEARER フローを有効にすると、Liferay からアクセス トークンの取得を開始できます。
機密クライアントを使用している場合は、Liferay のトークン URL https://{hostname}/o/oauth2/token への POST リクエストを開始し、本文に次のパラメータを含める必要があります ( application/x-www-form-urlencodedとしてエンコードされます)。
client_id=YOUR_CLIENT_ID
client_secret=YOUR_CLIENT_SECRET
grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer
assertion=JWT assertion from the token service
以下は、Keycloak からの JWT アサーションを使用して Liferay に対して行われたトークン要求のサンプルです。 Keycloak は、Liferay の着信アサーション発行者として設定されています。
