Discourse で SSO オプションとして Slack を追加することは可能でしょうか? これについて古いスレッド(以下にリンク)を見たのですが、削除されたか非公開になったようです。 ご助言いただければ幸いです。 chat-integration は存在することは知っているのですが、Slack ユーザーが自身のアカウントでログインできるようにしたいと考えています。 よろしくお願いします。
Slack は SSO 向けに SAML を提供していますが、これは Plus プランまたはエンタープライズプランの顧客に限定されています。
あなたはこれらのティアのいずれかに該当しますか?
公式の SAML プラグインは既に存在します。こちらをご覧ください:
その記事は、Slack を SSO クライアントとして使用する方法についてです。
OAuth2 を使用する「Slack でサインイン」という機能もあります:Slack developer docs | Slack Developer Docs
私の目的は、
を追加することです。
サインイン のドキュメントは、Discourse に追加する素晴らしい新機能として完璧です。チャット統合も有効化しており、これも素晴らしいです。Discourse の tests-pass を使用して、このボタンをカスタムオプションとして追加する方法については、少し理解が追いついていません。この方法が分かれば、このソーシャルログインは、GitHub や Patreon などの同様のソーシャルログインと相性が良いでしょう。
ドキュメントに従って、Slack で OAuth アクセスを持つアプリを作成しました…現在は、ボタン作成のこのステップ にあります。
Slack で表示されている情報:
App ID
Client ID
Signing Secret
Client Secret
Verification Token
Oauth Access Token
redirect url を https://example.domain.com/slack/auth として追加
Discourse で表示されているオプション:
enable sso provider
sso url – 単一サインオンエンドポイントの URL(http:// または https:// を含む必要があります)
sso secret – SSO 情報を暗号学的に認証するために使用される秘密文字列(10 文字以上であることを確認してください)
このドキュメントを使用して設定を試みています:
Slack は以下をサポートしています:
identity.avatar - ユーザーの Slack アバターを表示
identity.basic - ユーザーのアイデンティティに関する情報を表示
identity.email - ユーザーのメールアドレスを表示
identity.team - ユーザーの Slack ワークスペース名を表示
Slack ユーザーのアバター、できればワークスペース名も表示できると良いですね。また、Discourse を使用する際に極めて重要であるため、メールアドレスへのアクセスも有用だと思われます。
なるほど、そのガイドで SSO を有効にすると、他のログイン/登録設定が完全に上書きされてしまうようです。
私は以下の設定で Slack の SSO を動作させることができました:
sso url = https://slack.com/oauth/v2/authorize?user_scope=identity.basic&client_id=EXAMPLE
sso secret = Client Secret
しかし、単にボタンとして追加したいだけです。Discourse へのこのボタンの実装方法について、ご提案いただければ幸いです:実装方法 ![]()
![]()
現在は、以下のページを参考に、OAuth2 Basic プラグイン経由でボタンを追加する方法を検討しています:
こんにちは、私も追跡して調べているのですが、Discourse での対応状況について何か更新はありますか?
すべての要素は揃っていますが、当時はうまくいかず、手探りでした。時間が経った今、ぜひ試してみてください!管理者として Slack の OAuth パネルを使い、Discourse に追加してみましょう。