legacy-knowledge-base
公開されました Jul. 2, 2025

リモートの JWK セットを取得できませんでした。サーバーは HTTP 応答コードを返しました。Oracle Identity Cloud ServiceでOpenID Connect認証を使用すると401エラーが発生する

written-by

Tibor Lipusz

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

環境への配慮

  • Liferay DXP 7.0-7.3
  • オラクルアイデンティティクラウドサービス
  • OpenID Connect認証が有効

症状

Liferay DXPで OpenID Connect認証 が有効で、構成プロバイダがOracle Identity Cloud Service(IDCS)の場合、以下のエラーが発生し、ユーザーがLiferay DXPにサインインできないことがあります。

Caused by: com.nimbusds.jose.RemoteKeySourceException: Couldn't retrieve remote JWK set: Server returned HTTP response code: 401 for URL: https://idcs-6e0f2608732d4331a407d4a5583257ab.identity.oraclecloud.com:443/admin/v1/SigningCert/jwk
	at com.nimbusds.jose.jwk.source.RemoteJWKSet.updateJWKSetFromURL(RemoteJWKSet.java:167)
	at com.nimbusds.jose.jwk.source.RemoteJWKSet.get(RemoteJWKSet.java:258)
	at com.nimbusds.jose.proc.JWSVerificationKeySelector.selectJWSKeys(JWSVerificationKeySelector.java:113)
	at com.nimbusds.jwt.proc.DefaultJWTProcessor.selectKeys(DefaultJWTProcessor.java:288)
	at com.nimbusds.jwt.proc.DefaultJWTProcessor.process(DefaultJWTProcessor.java:347)
	at com.nimbusds.openid.connect.sdk.validators.IDTokenValidator.validate(IDTokenValidator.java:288)
	at com.nimbusds.openid.connect.sdk.validators.IDTokenValidator.validate(IDTokenValidator.java:224)
	at com.liferay.portal.security.sso.openid.connect.internal.OpenIdConnectServiceHandlerImpl.validateToken(OpenIdConnectServiceHandlerImpl.java:652)
	... 60 more
Caused by: java.io.IOException: Server returned HTTP response code: 401 for URL: https://idcs-6e0f2608732d4331a407d4a5583257ab.identity.oraclecloud.com:443/admin/v1/SigningCert/jwk
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1919)
	at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1515)
	at java.base/sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:250)
	at com.nimbusds.jose.util.DefaultResourceRetriever.getInputStream(DefaultResourceRetriever.java:249)
	at com.nimbusds.jose.util.DefaultResourceRetriever.retrieveResource(DefaultResourceRetriever.java:201)
	at com.nimbusds.jose.jwk.source.RemoteJWKSet.updateJWKSetFromURL(RemoteJWKSet.java:165)
	... 67 more

決議

JWKS エンドポイントは、IDCS テナントではデフォルトで保護されています。 でテストすることができます。

  1. テナントのディスカバリードキュメントに移動します:https://<tenant-base-url>/.known/openid-configuration
  2. レスポンスJSONから「jwks_uri」をクリックしてください(これはエラーで表示されるURLと同じになります): https://<tenant-base-url>/admin/v1/SigningCert/jwk

HTTP 401を取得した場合は、エンドポイントがあなたの環境で保護されていることを意味します。 OpenID Connectクライアント(Liferay DXPなど)は、認証応答で受信したIDTokenを検証するために、サーバーの署名証明書をロードするために、このリソースにアクセスする必要があります。

JWKSエンドポイントをパブリックにするには.

  1. Oracle IDCSコンソールにログイン
  2. 左のナビゲーションメニューにアクセス
  3. 設定 > デフォルト設定に移動します。
  4. Access Signing Certificate" の下で、トグルを有効に切り替えて、"クライアントがOracle Identity Cloud ServiceにログインせずにIDドメインの署名証明書にアクセスできるかどうかを構成します。"
  5. 保存

参考

did-this-article-resolve-your-issue

legacy-knowledge-base