JAR(JWT-Secured Authorization Request)を構成する
JWT-secured Authorization Requests(JAR)を使用すると、OAuth2認可要求パラメーターが単一のJWT要求パラメーターにパッケージ化され、整合性保護のため署名されます。
前提条件
JARを使用するようにアプリケーションを構成する前に、RSA鍵ペアを生成する必要があります。
アプリケーションに対するJARの構成
アプリケーションにJARを構成するには、Auth0 DashboardまたはManagement APIを使用できます。
Auth0 Dashboardを使用して、以前生成されたRSAキーでJARを使用するアプリケーションを構成します。
JARで使用したいアプリケーションを選択します。
[Application Settings(アプリケーションの設定)]タブを選択します。
[Authorization Requests(認可要求)]セクションで、[Require JWT-Secured Authorization Requests(JWT保護の認可要求をする)]を有効にします。
資格情報が割り当てられておらず、利用可能な資格情報がある場合、既存の資格情報の割り当てを要求されます。
新しい資格情報を割り当てることもできます。
以前生成されたRSAキーペアをアップロードして、新しい資格情報を追加し、割り当ててください。要求された場合、次の情報を入力します:
[Name(名前)]:資格情報を識別する名前
[Public Key(公開鍵)]:PEM形式のX.509証明書の公開鍵
[Algorithm(アルゴリズム)]:JAR署名のアルゴリズムを選択します
[Expiration Date(有効期限)]:資格情報の有効期限を設定します
Management APIで、signed_request_object
クライアント構成プロパティを使用して、アプリケーションにJARを構成します。このオブジェクトプロパティには次のフィールドを含みます:
required
:JARを使用するために、すべての認可要求を/authorize
と/oauth/par
に送ります。詳細については、「JWT保護の認可要求を使用した認可コードフロー」と「PARとJARを使用した認可コードフロー」をお読みください。credentials
:署名の検証に使用される資格情報IDの配列。
Management APIから、新しいアプリケーション、または既存のアプリケーションに対してJARを構成することができます。
新しいアプリケーションに対するJARの構成
新しいアプリケーションを作成する際、signed_request_object
としてPOST要求を送って、JARを構成します。そのPOST要求には、該当のクライアント資格情報(キーPEM)を登録することもできます。
POST https://{yourTenant}.auth0.com/api/v2/clients
Authorization: Bearer [YOUR ACCESS TOKEN]
Content-Type: application/json
{
"name": "My App using JAR",
"signed_request_object": {
"required": true,
"credentials": [{
"name": "My credential for JAR",
"credential_type": "public_key",
"pem": "[YOUR PEM FILE CONTENT]",
"alg": "RS256"
}]
},
"jwt_configuration": {
"alg": "RS256"
}
}
Was this helpful?
既存のアプリケーションに対するJARの構成
既存のアプリケーションを更新する際、まずはクライアント資格情報を明確に作成する必要があります。次のPOST要求で、JARに対するクライアント資格情報を作成するためのPEMファイルコンテンツを使用します:
POST https://{yourTenant}.auth0.com/api/v2/clients/{yourClientId}/credentials
Authorization: Bearer [YOUR ACCESS TOKEN]
Content-Type: application/json
{
"name": "My credentials for JAR",
"credential_type": "public_key",
"pem": "[YOUR PEM FILE CONTENT]",
"alg": "RS256"
}
Was this helpful?
次に、signed_request_object
クライアント構成にクライアント資格情報を割り当てます。次のPATCH要求は、クライアント資格情報をsigned_request_object
と関連付けます:
PATCH https://{yourTenant}.auth0.com/api/v2/clients/{yourClientId}
Authorization: Bearer [YOUR ACCESS TOKEN]
Content-Type: application/json
{
"signed_request_object": {
"credentials": [{"id": "[YOUR CREDENTIAL ID]"}]
}
}
Was this helpful?