Microsoft認証

:discourse: 私たちでホストしていますか? このプラグインは、当社の Business および Enterprise プランで利用可能です。Amazon & Microsoft ログイン | Discourse - Civilized Discussion

:discourse2: 概要 Microsoft アカウント(Office 365 または Microsoft 365 アカウントとも呼ばれます)を使用してユーザーがログインできるようにします
:open_book: インストールガイド このプラグインは Discourse コアにバンドルされています。プラグインを個別にインストールする必要はありません。

概要

Microsoft 認証を使用すると、ユーザーは Microsoft アカウント(Office 365 または Microsoft 365 アカウントとも呼ばれます)を使用して、Discourse フォーラムにログインできます。これにより、Microsoft サービスを使用している組織にとって、ログインプロセスが簡素化されます。

機能

  • ユーザーが Microsoft の資格情報でログインできるようにします
  • マルチテナントおよびシングルテナントの構成をサポートします
  • Microsoft Azure Active Directory と統合されます
  • ユーザー登録とログインを簡素化します

設定

Discourse フォーラムで Microsoft 認証を設定するには:

  1. Azure Portal のアプリ登録ページにアクセスします

  2. 新しいアプリケーションを登録します:

    • 名前を選択します(通常はサイト名)
    • 「サポートされているアカウントの種類」で、ニーズに最も適したオプションを選択します

  3. Web のリダイレクト URI としてサイトを追加します。形式は次のとおりです:

    • https://your.discourse.forum/auth/microsoft_office365/callback

  4. 変更を保存します

  5. 左側のサイドバーメニューで証明書とシークレットに移動し、新しいクライアントシークレットをクリックします

    • 簡単な説明を追加します
    • 「有効期限」で 24 ヶ月を選択します(注意:更新が必要です)
    • (これがアプリケーションシークレットです)をコピーし、プラグイン設定のために保存してください
  6. 左側のサイドバーの概要に移動し、アプリケーション(クライアント ID)をコピーします

  7. Discourse 管理エリアで、設定に移動し、「microsoft auth」を検索します

  8. 前のステップで取得したアプリケーション ID とシークレットを入力します

シングルテナント認証の問題

Microsoft アプリケーションを single_tenant として構成した場合、一部のユーザーはログイン時に問題を経験する可能性があります。これは、ログインに使用される電子メールが信頼されていないとみなされ、システムが既存の Discourse アカウントに自動的にリンクできないためです。

この問題を解決するには、ユーザーは次の手順を実行できます:

  1. サインアップフォームの下部にある「アカウントをお持ちですか?」セクションを探します
  2. 表示されるリンクをクリックして、アカウントのリンクプロセスに進みます
  3. 認証手順を完了して、Microsoft アカウントを既存の Discourse アカウントに接続します

別のオプションとして、microsoft auth email verified サイト設定を有効にすることができます。これは、管理者がすべてのユーザーの電子メールが確認済みであると確信している場合に適しています。これにより、Microsoft 経由で認証する際に、既存のアカウントを持つリターンユーザーが重複アカウントを作成しないようにします。

その他の設定オプション

Microsoft 認証の設定はすべて、管理者 > 設定エリアにアクセスして「microsoft auth」を検索することで更新できます。

シングルテナント設定の場合、Azure Portal のテナントプロパティで見つけることができるテナント ID が必要です。

追加リソース

「いいね!」 25

そのプラグインの使用に問題があります。
何かアドバイスをいただけますでしょうか?

このプラグインの設定を更新する際に(また)つまずいたので、このPRを作成しました。

問題は、Microsoftアプリパネルが「シークレット」の候補として、Client IDValueSecret ID の3つのそれらしいフィールドを提供することです。ガイダンスがないため、私は両方の機会に間違ったものを選んでしまい、私だけではないと疑っています!

このプラグインを試しましたが、シングルテナントでは動作しません。

なぜですか?

option :client_options,
             site: "https://login.microsoftonline.com",
             authorize_url: "/common/oauth2/v2.0/authorize",
             token_url: "/common/oauth2/v2.0/token"

「common」という単語が問題です。
シングルテナントの場合は、テナントIDに置き換える必要があるようです。
MSアカウントをお持ちの場合は、ここでテナントIDを見つけることができます: Microsoft Azure

まだ自分で変更を試していません。おそらく試すかもしれません。
もしそうでなければ、これをシングルテナントに使用することを考えている人は、試す必要はありません。現在は動作しません。

エラーが発生した場合の例として、下の画像を参照してください。
image

はい、Rubyでのコーディングは初めてで、コーディングや技術的な作業も数年ぶりでした。しかし、完了しました。そして、シングルテナントのセットアップでも動作するようになりました。

「いいね!」 3

大変遅くなりましたが、上記のPRはマージされました!

「いいね!」 2

やったー!
コミュニティへの初貢献です。最後ではないと思います。:slight_smile:

「いいね!」 2

:partying_face: このプラグインは、Bundling more popular plugins with Discourse core の一部として、Discourse コアにバンドルされるようになりました。セルフホストでこのプラグインを使用している場合は、次回のアップグレード前に app.yml から削除する必要があります。