私のアイデアはシンプルで、Discourse を他のウェブサイトの SSO プロバイダーとして使用したいと考えています。Discourse から Discourse Auth Proxy を使用するように勧められました。以下の設定を使用しました。
#!/bin/sh
# 以下の環境変数を設定し、次のようにイメージを実行する必要があります。
PROXY_URL=http://0.0.0.0:80
ORIGIN_URL=https://mycustomsite.com
SSO_SECRET=RandomStringSecret
SSO_URL=https://my.discourseforum.com
HOST_PORT=7925
docker run -d --restart=always -e ORIGIN_URL=$ORIGIN_URL -e PROXY_URL=$PROXY_URL -e SSO_SECRET=$SSO_SECRET -e SSO_URL=$SSO_URL -p $HOST_PORT:80 discourse/auth-proxy
そして、Discourse フォーラム内では以下を有効にしました。
Discourse Connect プロバイダーを有効にする
そして、Discourse Connect プロバイダーのシークレットには、https://mycustomsite.com とシークレットとして RandomStringSecret を入力しました。しかし、この問題が発生します。
シークレットが見つからないため認証に失敗しました。この問題を解決するには、サイト管理者に連絡してください。
クエリパラメータからペイロードをデコードしようとしましたが、以下のデータが返ってきました。
{
return_sso_url: 'http://0.0.0.0:80/',
nonce: '9431ad68-55b3-49a6-8b9a-a1d7209506e7'
}
これが役に立つかわかりませんが、過去 2 時間格闘しています。これを正しい目的で使用しているかどうか、お知らせください。ウェブサイト全体で使用できるユーザーデータを提供する、基本的な Discourse SSO プロバイダーをサイト用に作成したいと考えています。
