JWK セットサイズ制限により、AEM as a Cloud Service OIDC認証が失敗する
この記事では、リモート JWK セットがデフォルトの入力サイズ制限を超えた場合に、Adobe Experience Manager as a Cloud ServiceでOIDC認証エラーを解決する方法について説明します。
説明 description
環境
- Adobe Experience Manager as a Cloud Service(すべてのバージョン)
問題/症状
- OIDC認証要求が失敗します。
- ログに次のエラーが表示されます。
ERROR org.apache.sling.auth.oauth_client.impl.OidcAuthenticationHandler トークンの検証に失敗しました:リモート JWK セットを取得できませんでした:51200 バイトの設定済み入力制限を超えています
- 正しいJVM システムプロパティが適用されない限り、設定ファイルを更新した後でもエラーが発生し続けます。
- ID プロバイダーのJWK セットサイズが51,200 バイトを超えています(例:約58 KB)。
- この問題は、開発環境、ステージング環境、実稼動環境で再現できます。
原因
Nimbus DS ライブラリのリモート JWK セットのデフォルトの入力サイズ制限は51,200 バイトです。 ID プロバイダーのJWK セットがこの制限を超える場合、JVM システムプロパティと設定によって制限が増えない限り、トークン検証は失敗します。
解決策 resolution
OIDC認証エラーを修正するには、次の手順に従います。
- ID プロバイダーが提供するリモート JWK セットのサイズを確認します。 51,200 バイトを超える場合は、次の手順に進みます。
- 対象のクラウド環境で次のJVM システムプロパティを追加または更新します:
-Dnimbusds.jose.jwkset.maxSize=102400(JWK セットが最大10 MBの大きさである場合は、値を調整します)。 - OidcAuthenticationHandler設定で、
jwkSetHttpSizeLimitパラメーターを新しいサイズ制限(例:102400)に一致するように設定します。 - 標準デプロイメントパイプラインを使用して、更新された設定とJVM プロパティを関連する環境にデプロイします。
- デプロイメントパイプラインが正常に完了し、新しいリリースがアクティブであることを確認します。
- OIDC認証をテストして、エラーが発生しなくなったことを確認します。
- ログを確認して、サイズ制限エラーなしでJWK セットが取得および処理されていることを確認します。
recommendation-more-help
experience-cloud-kcs-help-kbarticles