Drupal SSO が誤ったユーザーセッションを生成する問題

こんにちは、
Drupal から SSO を使用しているのですが、意図しない動作として、すべてのユーザーが現在のセッションに加えて、Drupal サーバーにもログインしていると表示されてしまいます。これにより、コミュニティのメンバーが自分ではない別のデバイスがログインしているのを見て、大きな不安と混乱を招いています。

この機能を無効化することは可能でしょうか。あるいは、より良い方法として、特定の IP アドレスを除外して、Recent Used Devices リストから当社のサーバーを非表示にすることはできるでしょうか?

「いいね!」 5

外部の SSO プロバイダーを使用しても、このリストに表示されることはありません。

表示されているものは、ユーザー向けの API キーの作成など、別の要因による副次的な現象である可能性があります。

「いいね!」 5

以前、Drupal サイトが Discourse の SSO プロバイダーとして機能する際に、この問題が発生したのを見たことがあります。他の SSO プロバイダーでは同様の問題を見たことはありません。SSO 用に使用している Drupal モジュールはありますか?もしあれば、どこで入手できるか教えてください。

CSS を使用して「最近使用したデバイス」セクションを非表示にすることができます。これは問題に対する良い一時的な解決策となるかもしれません。

.control-group.pref-auth-tokens {
    display: none;
}
「いいね!」 8

Discourse Forum Integration 貢献モジュールを使用しています。https://www.drupal.org/project/discourse

ヒントをありがとうございます。一時的に CSS で非表示にしました。ただし、サーバーのリストから当社のサーバーのみを非表示にして、ユーザーが最近使用したデバイスを確認し続けられるようにする設定が可能かどうか知りたいです。

「いいね!」 3

Drupal の開発者に連絡することをお勧めします。そのモジュールの最終更新は 2015 年で、サポートされている Discourse バージョンは 1.2.0.beta5(2015 年 1 月に当社からリリース)となっています。まだ動作しているのは嬉しく思いますが、いくつかの小さな問題があるのは驚きではありません。

「いいね!」 4

上記の Drupal モジュールは Drupal 7 のみで利用可能であり、2021 年 11 月にサポート終了を迎えることに留意する必要があります(明日ではありませんが、もうすぐです)。

「いいね!」 5

はい、ありがとうございます。承知しております(私たちのサイトが先ほどリリースされたばかりなので、あまり嬉しくありません :disappointed_relieved:

「いいね!」 4

Drupal Discourse モジュールを簡単に確認しました。問題の原因は明確ではありませんが、何らかの理由で、SSO ログイン中に User Agent とクライアント IP がユーザーの IP や User Agent ではなく、Drupal サーバーの値に設定されてしまっているようです。これは drupal_goto メソッドの動作に関連している可能性があります。

また、このモジュールには Drupal 上で Discourse のコンテンツを表示するための機能が含まれていることに気づきました。そのために、クエリ文字列に API 認証情報を埋め込んで Discourse へ API リクエストを送信しています。しかし、Discourse 側ではこのような API 認証方式は廃止されており、近い将来、これらのリクエストは動作しなくなるでしょう。もし Drupal サイト上で Discourse のコンテンツを表示するためにこのモジュールを使用している場合は、この点についてさらに調査することをお勧めします。

このモジュールは最後に 2015 年に更新されました。より最近更新されている Drupal Discourse SSO モジュールがあります:https://www.drupal.org/project/discourse_sso。ただし、これは SSO 機能のみを提供しているようです。Drupal サイトに Discourse のコンテンツを追加するコードは含まれていないようです。

「いいね!」 6

追加情報ありがとうございます、サイモン。私たちがまさにそのことを行っていることは確かです。ブログのコメントセクションでは、ユーザーが議論を行うためにDiscourseのトピックを使用しており、このトピックの内容はDrupal上のブログ記事にも表示されます。

API認証の廃止についてさらに詳しく知りたい場合、この場所が適切でしょうか?Discourse REST API Documentation

改めてありがとうございます!

「いいね!」 1

はい、そのトピックの冒頭で示されている POST リクエストの例に、必要な情報が含まれています。Drupal Discourse モジュールをヘッダーベースの認証を使用するように修正するには、コードを少し変更するだけで済みます。

Discourse サイトが最新の状態であると仮定すると、Discourse の管理ダッシュボードに、API リクエストにおける非推奨の認証方法の使用に関する警告が表示されているはずです。

「いいね!」 4