メインコンテンツへスキップ
このセクションでは、OpenID FAPI Conformance Tests を使用してソリューションをテストする場合の、クライアント設定に関する推奨事項を紹介します。 FAPI Conformance Tests に合格するには、まず次の設定を行います。 次に、以下の手順に従って OpenID FAPI Conformance Tests の設定を完了します。 Auth0 がユーザーに同意を求めるよう、設定する必要があります。クライアントがファーストパーティアプリとして構成されており、 または API がファーストパーティアプリで同意をスキップすることをサポートしている場合は、この手順を省略できます。Auth0 がユーザーに同意を求めるようにするには、クライアントの is_first_party プロパティを false に設定します:
curl --location --request PATCH 'https://{YOUR_DOMAIN}/api/v2/clients/YOUR_CLIENT_ID' \
  --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "is_first_party": false  
}'
次に、接続をドメインレベルに昇格します:
curl --location --request PATCH 'https://{YOUR_DOMAIN}/api/v2/connections/YOUR_CONNECTION_ID' \
  --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
  "is_domain_connection": true
}'

テナントでサポートされる ACR クレームを設定する

FAPI テストでは、必須の ACR 値として urn:mace:incommon:iap:silver が渡されます。必要な ACR 値を に含めるには、テナントでサポートされる ACR 値のリストに urn:mace:incommon:iap:silver を追加します。
curl --location --request PATCH 'https://{YOUR_DOMAIN}/api/v2/tenants/settings' \
  --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "acr_values_supported": ["urn:mace:incommon:iap:silver"]
}'

JWKS エンドポイントから alg プロパティを削除する

キーを RS256 に限定せず、複数のアルゴリズムで使用できるようにするには、/.well-known/jwks.json エンドポイントの出力からテナントの alg プロパティを削除します。
curl --location --request PATCH 'https://{YOUR_DOMAIN}/api/v2/tenants/settings' \
  --header 'Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "flags": {
        "remove_alg_from_jwks": true
    }
}'

スコープと redirect_uri を必須にする Action を追加する

デフォルトでは、Auth0 はスコープなしのリクエストを許可し、スコープが指定されていない場合は openid スコープを前提とします。Auth0 は redirect_uri なしのリクエストも許可しており、これは Actions で設定できます。ただし、FAPI 適合性テストでは、Auth0 により厳格な制限を適用する必要があります。 スコープと redirect_uri に必要な制限を適用するには、次の Action を追加します。
exports.onExecutePostLogin = async (event, api) => {
  if (!event.request.body || !event.request.body.refresh_token) {
    // スコープを必須にする
    if (!event.request.query.scope) {
      api.access.deny('scope must be provided in the request');
    }
    // redirect_uri が存在しない場合のエラーメッセージを改善する
    if (!event.request.query.redirect_uri) {
      api.access.deny('redirect_uri must be provided in the request');
    }
  }
};

(FAPI2 プロファイルのみ) レスポンスで iss クレームを返すようにする

FAPI 2.0 Security Profile では、RFC9207 に従い、認可レスポンスで iss パラメーターを返す必要があります。互換性上の理由から、Auth0 ではこれはデフォルトで有効になっていません。この動作を有効にするには、テナント設定の authorization_response_iss_parameter_supported プロパティを true に設定します。
curl --location --request PATCH "https://{YOUR_DOMAIN}/api/v2/tenants/settings" \
  --header "Authorization: Bearer {YOUR_MANAGEMENT_API_ACCESS_TOKEN}" \
  --header "Content-Type: application/json" \
  --data-raw '{
    "authorization_response_iss_parameter_supported": true
  }'

詳細