SAMLログインのランディングページ

以前のバージョンでは、「ログイン」ボタンが表示されるランディングページが表示されていました。このボタンをクリックすると、SAML ログインページが表示されました。
個人的には、この動作がとても気に入っていました。しかし、現在のバージョン 2.4.2 では、SAML ログインページが即座に表示されるため、この動作はできなくなっています。

これは設定可能ですか?

よくわかりませんが、つまり「SAML でログイン」という単一のボタンが表示されたモーダルを示したということでしょうか?

いいえ。
以前のバージョン(たぶん 2.3.6)では、このようになっていました:

「Anmelden」をクリックすると、SAML ログインウィンドウが表示されていました。

「ローカルログイン」を有効にすると、ログインボタン付きのランディングページが再び表示されますが、ローカルログインは不要なため、これを無効にする必要があります。

誰か助けてください。もしかして @eviltrout さん?

意図的に変更したわけではありません。いつ変更されたか特定していただければ、その背景を確認できるので助かります。

セキュリティ上の理由で変更された可能性もあります。

これは、omniauth のログイン方法が 1 つしかない場合に、omniauth が本物の SSO のように動作するようにするための、長年要望されていた改善です。

どのようにお手伝いしましょうか?

ヒント:「ローカルログイン」を有効にすると、「ランディングページとログインボタン」が表示されます。

もし確認ページを本当に表示したい場合は、ユーザーをホーム画面ではなく /login にリンクさせてください。これにより、ログインが自動的にトリガーされることはありません。

ただし、これは正式にサポートされているものではなく、実装の単なる偶発的な挙動に過ぎず、いつ変更されるか分かりません。

新しい動作は、SSO ログインと一貫性があり、より優れています。ログイン前にメッセージを表示する必要がある場合は、アイデンティティプロバイダー側で実装できます。

ああ、なるほど。
2 つの理由があります:

  • 「退屈な」ログイン画面の代わりに、基本的な情報を載せたとても素敵なランディングページを表示する
  • 「セキュリティ」(正直、大きな障壁ではありませんが)。メイン URL(ランディングページなし)への安価なハッキングスクリプトは、まずログインボタンを押す必要があるため、おそらく失敗するでしょう。

この動作を設定することは可能でしょうか?

この変更を行うには、開発者を雇ってプラグインを作成する必要があります。現状では、新しいシステムについて数ヶ月ぶりにこのような不満を聞いたのは初めてです。

開発者です :slight_smile: (discourse_saml への変更をご覧ください)

新しい動作をデフォルトとする設定オプションを追加する PR を受け入れますか?

自動リダイレクトはセキュリティ上の脆弱性を導入するものではありません。もしエクスプロイトをご存知の場合は、当社の開示プログラムを通じてお知らせください:discourse/docs/SECURITY.md at main · discourse/discourse · GitHub

この変更を求めるユーザーがもう少し増えるまで、設定にさらにノイズを追加したくないと思います。

このメソッドをパッチすることで、プラグイン内でこれをオーバーライドできます。

したがって、関数を以下のように簡素化することをお勧めします。

def redirect_to_login
  dont_cache_page
  cookies[:destination_url] = destination_url
  redirect_to path("/login")
end

ありがとうございます。とても感謝しています!
余談ですが、Discourse の運営、素晴らしいですね。