SlackにはSSO有効化の際、NameID(Slackの場合はメールアドレス)をもとにSlackのアカウントとOneLoginのアカウントを紐付ける バインド と呼ばれる機能があります。バインドされた状態でSAML認証が実行されると、Slackのアカウント情報がOneLoginのアカウント情報によって更新されますので、ご注意ください。
本記事では、OneLoginからSlackへのSAML シングルサインオン(SSO)の設定手順をご案内します。
目次
前提条件
- OneLoginのライセンスが Starter, Enterprise, Unlimited または SSO, Advanced, Professional(新料金体系)のいずれかであること
- OneLoginの Super User または Account Owner 権限を持つアカウントを所有していること
- Slackのライセンスが ビジネスプラス であること
- Slackの管理者権限またはオーナー権限をお持ちであること
SAML連携の設定
1. OneLogin側の設定
- OneLoginに管理者でログインし、[管理]をクリックします
-
Applications メニューから[Applications]を選択します
- [Add App]をクリックします
-
Slack と検索し、SAML2.0 のコネクタを選択します
- [Save] をクリックします
-
Configurations タブに移動し、Slack Team を入力します
例)https://samlorg.slack.comの場合、samlorgと入力
-
SSO タブに移動し、SAML Signature Algorithm を SHA-256 に変更します
-
Access タブに移動し、割り当てたいユーザーが属するロールを選択します
- [Save]をクリックします
-
SSO タブに移動し、 Issuer URL と SAML 2.0 Endpoint(HTTP) をクリップボードへコピーします
-
View Details をクリックします
-
X.509 Certificate の内容をクリップボードへコピーします
2. Slack側の設定
-
Slackに管理者またはオーナーとしてサインインし、ツールと管理 > [ワークスペースの設定] をクリックします
-
[Menu] をクリックします
-
[SSOと認証]をクリックします
-
[SAMLを設定する]をクリックします
-
下記の表のように、SlackのSSO設定を入力します
Slackの項目 入力する値 SAML2.0 Endpoint URL 1. OneLogin側の設定 手順10でコピーした SAML2.0 Endpoint(HTTP) IDプロバイダ発行者の URL 1. OneLogin側の設定 手順10でコピーした Issuer URL サービスプロバイダ発行者の URL https://slack.com 公開証明書 1. OneLogin側の設定 手順12でコピーしたX.509 Certificate
下記の表のように設定し、[テスト設定]をクリックします
Slackの項目 入力する値 AuthnRequestに署名する ◻︎(チェック入れない,デフォルト値) レスポンスに署名する ☑︎(チェックを入れる,デフォルト値) アサーションに署名する ◻︎(チェックを外す)
- SSOの設定を確認し、[オプションに進む]をクリックします
-
下図の設定項目は、各社の運用ポリシーに準じてご選択ください
-
次に対してSSO認証を必須とする:
- 全員:メンバー全員のSSO認証を必須化します
- 通常メンバーのみ:通常メンバーのSSO認証を必須化し、ゲストはメールアドレスとパスワードでサインインします
- 該当するメンバーなし:メンバー全員に対して、SSO認証に加えてメールアドレスとパスワードによるサインインを有効にします
-
プロフィール設定
- ユーザーのログイン時にプロフィールフィールドを更新する:ユーザーがログインするたびに、利用可能なユーザーのプロフィールフィールドをOneLoginから同期および更新できます
- 表示名の変更をユーザーに許可する:有効にすると、ユーザーはメールアドレスをOneLoginのメールアドレスから別のものへ変更できるようになります
- メールアドレスの変更をユーザーに許可する:有効にすると、ユーザーは表示名をOneLoginのもの以外に変更できるようになります
*次に対してSSO認証を必須とする:の選択は、ゲストアカウントの有無に応じて 全員 か 通常メンバーのみ のどちらかを推奨いたします。プロフィール設定 は複数選択が可能です。
-
- 下図のような画面が表示されれば、OneLoginとSlackのSAML連携の設定は完了です
-
SSO名とサインインボタン > 編集 より、必要に応じて名称を変更できます
-
ユーザーや管理者がサインイン時に正しいプロバイダーを選択できるように SSO名 を入力し、[保存する]をクリックします
例)OneLogin
SAML連携の設定は以上です。
SAML SSOの動作確認
- SSOするユーザーのOneLoginのポータル画面を開き、Slack をクリックします
- Slackにログインできたことを確認します
SAML SSOの動作確認は以上です。
SAML SSOの無効化
-
Slackに管理者またはオーナーとしてサインインし、ツールと管理 > ワークスペースの設定 を選択します
-
[Menu] をクリックします
-
[SSOと認証]をクリックします
-
[SSO設定を無効にする]をクリックします
-
確認画面が表示されますので、[SSOを無効にする]をクリックします
-
OneLoginのポータル画面を開き、Slack をクリックします
-
下図のような画面が表示されれば、SAML連携の解除は完了です
SAML SSOの無効化は以上です。
JITプロビジョニングの注意事項
Slackは、ユーザーがSAML認証する際にOneLoginから送られるユーザー情報を利用して、自動でSlackアカウントを作成・更新するジャストインタイム(JIT)プロビジョニングという機能に対応しています
-
JIT Provisioning によるユーザ作成は OFF にできない
Slackでは、管理者の意思に関わらず、ユーザがSAMLを利用してログインした際にIdP側が引き渡したUsernameとSlackの既存アカウントのUsernameとのマッチング処理が行われ、一致しない場合はSlack側に新規アカウントが自動作成されます
-
ログインごとにユーザ情報が更新される
Slackでは管理者の選択した設定により、ユーザーがSAMLを利用してログインした際にSAMLレスポンスに含まれたユーザー情報でSlack側のユーザー情報を随時更新する仕組みがあります。これは、2. Slack側の設定 手順8 の ユーザーのログイン時にプロフィールフィールドを更新する のチェックを ON/OFF することで設定を変更できます
- ユーザーの First Name と Last Name を変更します
- SlackにSSOして名前が変更されていることを確認します
- ユーザーの First Name と Last Name を変更します
トラブルシュート
-
2. Slack側の設定 手順6 の[テスト設定]をクリックした際、アクセス拒否 となる場合
このエラーは、OneLoginでSlackへのアクセス権限を持っていない管理者アカウントが[テスト設定]した際に生じます。例えば、下図のようにSlackが「開発部」ロールに含まれている場合、設定操作をしている管理者アカウントが「開発部」ロールに割り当てられている必要があります。ロールを設定したら再度、Slack側でSAML連携の設定をお試しください