OneLogin の SAML を使用したログインと登録を Discourse で有効にする方法について説明します。
OneLogin の設定
OneLogin アカウントの作成
OneLogin にアクセスし、アカウントを作成してください。
新しいアプリの作成:SAML Test Connector (IdP w/attr)
ダッシュボードから新しいアプリを作成します。
SAML Test Connector (IdP w/attr) を検索します。
アプリの設定
Discourse インスタンスの URL が http://discourse.example.com であると仮定して設定します。
Configuration タブに切り替え、以下の詳細を入力してください。
- Audience:
http://discourse.example.com - Recipient:
http://discourse.example.com/auth/saml/callback - ACS (Consumer) URL Validator:
^http:\\/\\/discourse\\.example\\.com\\/auth\\/saml\\/callback\\/$ - ACS (Consumer) URL:
http://discourse.example.com/auth/saml/callback
証明書情報と SAML 2.0 エンドポイントのコピー
SSO タブに切り替えます。
証明書の下の View Details リンクをクリックし、SHA fingerprint と X.509 Certificate をコピーします。Discourse アプリの設定時に使用するため、メモしておいてください。
SAML 2.0 Endpoint (HTTP) の URL もコピーしてメモしてください。
Discourse の設定
discourse-saml プラグインのインストール
discourse-saml プラグイン のインストールについては、こちらのガイド を参照してください。
discourse-saml プラグインの設定
このプラグインには 2 つの設定方法があります。
オプション 1: サイト設定(推奨)
インストールと再ビルド後、Discourse の管理パネルに移動し、管理 → プラグイン → SAML を選択します。saml_enabled 設定を有効にし、以下を設定してください。
- saml_target_url: OneLogin の SSO タブからコピーした
SAML 2.0 Endpoint URL - saml_cert_fingerprint: OneLogin の SSO タブ → 証明書セクションからコピーした
SHA fingerprint - saml_cert: OneLogin の SSO タブ → 証明書セクションからコピーした
X.509 Certificate - saml_log_auth: デバッグ用に有効化
オプション 2: 環境変数
または、app.yml の環境変数を通じてプラグインを設定することも可能です。ただし、環境変数を使用する場合、すべての SAML サイト設定は管理 UI から非表示になります。
app.yml を編集します。
cd /var/discourse
vim containers/app.yml
env セクションの下に以下の変数を追加します。
DISCOURSE_SAML_TITLE: "Example SAML"
DISCOURSE_SAML_TARGET_URL: {SAML 2.0 Endpoint URL}
DISCOURSE_SAML_LOG_AUTH: "true"
DISCOURSE_SAML_CERT_FINGERPRINT: {SHA fingerprint}
DISCOURSE_SAML_CERT: {X.509 Certificate without line breaks}
{SAML 2.0 Endpoint URL}を OneLogin の SSO タブからコピーしたSAML 2.0 Endpoint URLに置き換えます。{SHA fingerprint}を OneLogin の SSO タブ → 証明書セクションからコピーしたSHA fingerprintに置き換えます。{X.509 Certificate without line breaks}を OneLogin の SSO タブ → 証明書セクションからコピーしたX.509 Certificateに置き換えます。改行を含まず、開始および終了マーカーを削除してください。
アプリの再ビルド
変更を反映させるためにアプリを再ビルドします。
cd /var/discourse
./launcher rebuild app
完了!
これで OneLogin の SAML を使用してログインできるようになっています。




