証拠開示文書が見つかりません

こんにちは。

Discourseは、私が技術的な自由度が最も高いと考えているソフトウェアなので、フォーラムとして選択しました。しかし、OIDCを設定する際に「Discovery document is missing」というエラーが発生し、1週間もかかってしまいました :face_with_spiral_eyes:。ここで適切な解決策を見つけることができませんでした。

以下のチュートリアルに従って、Discourseを正常に構築しました。

その後、Dockerを使用してKeycloakを構築し、KeycloakとDiscourseの両方をローカルにデプロイしました。DiscourseとKeycloakをOIDC経由で接続した際に、以下のエラーが発生しました。


OIDC Log: Fetching discovery document raised error Faraday::ConnectionFailed FinalDestination: all resolved IPs were disallowed
1:51 pm
(oidc) Authentication failure! openid_connect_discovery_error: OmniAuth::OpenIDConnect::DiscoveryError, Discovery document is missing
1:51 pm
OmniAuth::OpenIDConnect::DiscoveryError (Discovery document is missing) lib/middleware/omniauth_bypass_middleware.rb:53:in `call' lib/content_security_policy/middleware.rb:12:in `call' lib/middleware/

このエラーに基づいて、以下の解決策を見つけました。

解決策に従った後、新しいエラーが報告されました。

(oidc) Authentication failure! openid_connect_discovery_error: OmniAuth::OpenIDConnect::DiscoveryError, Discovery document is missing
2:00 pm
OmniAuth::OpenIDConnect::DiscoveryError (Discovery document is missing) lib/middleware/omniauth_bypass_middleware.rb:53:in `call' lib/content_security_policy/middleware.rb:12:in `call' lib/middleware/

私の設定の一部を以下に示します。


Keycloakのポートは7070です。

OpenID Connect Discoveryドキュメントの内容は以下の通りです。

見当違いかもしれませんが、DiscourseとKeycloakはどちらもDockerでローカルにデプロイされているので、DiscourseがKeycloakにリクエストを送信できるか確認しましたか?過去にそれで問題になったことがあります。うまくいくようにできることは知っています。

「いいね!」 3

親切なご返信ありがとうございます。おかげで良いアイデアが浮かびました:blush:。おっしゃる通りです。ローカルのKeycloakサービスにはlocalhostまたは127.0.0.1からはアクセスできないため、localhostの代わりにホストのIPを使用しました。しかし、新たな問題が発生しました。

その後、URLをデコードしたところ、リダイレクトURLがhttp://127.0.0.1:4200/auth/oidc/callback(こちらはディスカッションのフロントエンドページのポートです)ではなく、http://127.0.0.1:3000/auth/oidc/callbackを指していることがわかりました。最終的に、Keycloakで対応する変更を行い、成功しました。

「いいね!」 2

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.