Slack
【参考】
2019年04月19日時点での情報で掲載しています。
「Slack」との認証連携を設定します。
【注意】
- SlackがSAML認証連携が可能な料金プランについては販売元にお問合わせください。
- SlackがSAMLで認証するキーは「ログインID(メールアドレス)」です。
- IIJ IDサービス内の各ユーザ共通のユーザ属性にSlackの「ログインID」と同一の値を保持しておく必要があります。
- 作業前にSlackの管理者用ログインIDの値を保持するアカウントをIIJ IDサービスに用意してください。そのアカウントの組み合わせでSlackとIIJ IDサービスにてそれぞれ作業を実施するとスムーズです。
1. IIJ IDサービスにSAMLアプリケーションを登録する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。
2. 「アプリケーションを追加する」をクリックし、「カスタムアプリケーションを追加する」をクリックします。
3. 「SAMLアプリケーション」を選択し、「次に進む」をクリックします。
4. アプリケーション情報を入力し、「アプリケーションを追加する」をクリックします。
項目 | 内容 | 備考 |
---|---|---|
アプリケーション名 | 例)Slack | 必須 |
アプリケーションの説明 | 例)一連の業務の拠点となるデジタルワークスペース | 任意 |
アプリケーションロゴ | (ファイルアップロード) | 任意 |
IDプロバイダの選択 | 「アプリケーション専用のエンティティIDを利用」を選択 | 必須 |
2. IIJ IDサービスのSAMLアプリケーションを設定する
1. 作成されたアプリケーションの「編集する」をクリックします。
2. 「IDプロバイダ情報」をクリックします。
3. 表示された「SSOエンドポイントURL (POSTバインディング)」、「エンティティID」、及び「PEM」の値を控えます。
【参考】
- 「PEM」は、必ず「-----BEGIN CERTIFICATE-----」からはじまり「-----END CERTIFICATE-----」で終わる形式です。
- 「PEM」に書かれている値を改行などせずにそのままファイルに書き出して控えてください。
- 「PEM」情報は連携先サービスの該当設定画面に貼り付ける必要があります。
3. IIJ IDサービスのSAMLアプリケーションを設定する
1. 「アプリケーション」の「アプリケーションの管理」 をクリックします。
2. SAMLアプリケーションの「編集する」をクリックします。
3. 「フェデレーション設定」をクリックします。
4. 以下のとおり設定し、「変更を適用する」をクリックします。
項目 | 内容 | 備考 | ||
---|---|---|---|---|
SAML基本情報 | SAML情報を入力する | 「SAML情報を入力する」をチェック | ||
シングルサインオンURL | https://[チーム名].slack.com/sso/saml | [チーム名]部分は、Slackで利用しているチーム名(サブドメイン名)を指定します | ||
エンティティ ID | https://slack.com | |||
NameIDフォーマット | urn:oasis:names:tc:SAML:2.0:nameid-format:persistent | |||
検証後の遷移先(RelayState) | (空欄) | |||
アプリケーションのトップページURL | (空欄) | |||
アサーションの署名アルゴリズム | 例) RSA-SHA256 | |||
ユーザ識別子(NameID)の指定 | 関連付けるユーザ属性 | 例) ID | Slackの「ログインID(メールアドレス)」の値が格納されている属性を指定します | |
属性値関連付け(ユーザ属性) | User.Email | 例) ID | Slackの「ログインID(メールアドレス)」の値が格納されている属性を指定します |
【参考】
「アサーションの署名アルゴリズム」は連携先サービス側で指定などがない場合、デフォルト値の「RSA-SHA256」を選択してください。
「RSA-SHA256」を指定して動作しない場合及び連携先サービス側で明示的にそれ以外のものが指定されている場合は、「RSA-SHA512」、または「RSA-SHA1」に変更し、連携を確認してください。
【参考】
- 「ユーザ識別子(NameID)」の指定は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
- 「ユーザ識別子(NameID)」の指定した属性にユーザが値を保持していない場合は SAML連携は失敗します。
- 「ユーザ識別子(NameID)」にID以外の複数の値を持つ属性で指定する方法は以下のとおりです。
例として、IIJ IDサービスの各ユーザの属性「Entitlements」に以下のように値が設定されています。- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro@iij.ad.jp」の場合は、「プライマリの値を使用する」をチェックします。
- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro」の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_ID」を指定します。
- 連携先サービス側に「ユーザ識別子(NameID)」として渡す値が「iij-jiro@iij.ad.jp」の場合は、「プライマリの値を使用する」をチェックします。
【注意】
- 「ユーザ識別子(NameID)」としてID以外の属性を指定していると、IIJ IDサービスに対する更新処理でその属性の値が更新される場合があります。ただし、その更新は連携先サービスまで伝搬されないため、IIJ IDサービス側の属性の値が更新されると、連携していたアカウントに接続できなくなります。「ユーザ識別子(NameID)」としている属性の値が更新される場合は、連携先サービス側で紐づく属性(多くの場合、ユーザID)を忘れずに更新してください。
- 以下の画像のように複数のタイプに「SaaS_ID」が設定されている場合、「ユーザ識別子(NameID)」に「SaaS_ID」を指定すると、サービスマニュアルに記載されているルールに基づいていずれかの単数値だけが採用されます。連携対象のサービスに管理者の意図しないアカウントがSAML連携される危険性があります。対象となる各ユーザにおいて、「ユーザ識別子(NameID)」として指定するタイプが複数個存在しないように注意してください。
【参考】
- 「属性値関連付け(ユーザ属性)」は、ユーザ単位ではなくSAMLアプリケーション単位でのみ設定できます。
- 「属性値関連付け(ユーザ属性)」で複数値を持つ属性での指定する方法は以下のとおりです。
例として、IIJ IDサービスの各ユーザの属性「Entitlements」に以下のように値が設定されています。- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「abc」の場合は、「プライマリの値を使用する」をチェックします。
- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「1234」の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_Attr1」を指定します。
- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「multi1」、「multi2」のように複数の場合は、「タイプと一致する値を使用する」をチェックし、タイプに「SaaS_MultiAttr1」を指定します。
- 連携先サービス側に「属性値関連付け(ユーザ属性)」として属性名が「hogehoge1」、渡したい値が「abc」の場合は、「プライマリの値を使用する」をチェックします。
5. 「利用者設定」をクリックします。
6. 「利用者を追加する」をクリックし、アプリケーションにシングルサインオンさせたいグループ及びユーザを指定します。
【参考】
利用者に登録していないユーザにもこのアプリケーションを利用させたい場合は、「アプリケーションへのログイン」の「編集」をクリックしします。
「利用者でないユーザも、アプリケーションへのログインを許可する」を選択し、「変更を適用する」をクリックします。
4. SlackでSAML設定を行う
【参考】
SlackとのSAML連携作業は、ここまでIIJ IDサービス上で作業を行っていたアカウントと認証連携可能なSlackの管理者アカウントで設定を行ってください。
1. Slack に管理者アカウントでログインし、「ワークスペースの設定(https://my.slack.com/admin/settings)」にアクセスします。
2. 左ペインのメニューからその他管理項目内にある「認証」をクリックします。
3. 「SAML認証」の「設定する」をクリックします。
4. ログインしているSlack管理者アカウントのパスワードを入力し、「パスワードの確定」をクリックします。
5. 以下の項目を入力し、詳細設定の「開く」をクリックします。
項目 | 内容 |
---|---|
SAML 2.0 エンドポイント(HTTP) | 手順3-2で確認した「SSOエンドポイントURL(POSTバインディング)」の値 |
ID プロバイダ発行者 | 手順3-2で確認した「エンティティID」の値 |
公開証明書 | 手順3-2で取得した「PEM」の値を保存したファイルをアップロード |
6. 「署名つきアサーション」をチェックし、それ以外のチェックをすべて外します。
7. 「設定」で以下のとおり設定します。
項目 | 内容 |
---|---|
ユーザーがログインするたびにプロフィールを更新する | チェックを外す |
ユーザーによるメールアドレスの変更を許可する | チェックを外す |
ユーザーによる表示名の選択を許可する | チェックを外す |
ワークスペースの認証が必要なメンバー | いずれかを選択
|
【参考】
「ワークスペースの認証が必要なメンバー」で以下のいずれかを選択した場合、該当するユーザーはSlackへの認証時に、SAMLでの認証を強制されます。
- ワークスペースの全メンバー
- ゲストアカウントを除くワークスペースの全メンバー
「ワークスペースの認証が必要なメンバー」で「この設定は任意です。」を選択した場合、Slackへの認証時に引き続きSlack自身のID/パスワード認証か、SAMLでの認証のいずれかを選択できます。
【参考】
以降の説明では、「ワークスペースの認証が必要なメンバー」の設定で「ワークスペースの全メンバー」を選択した際の設定方法です。
8. カスタマイズで、Slack内にて使用するSAML認証用のボタンの「サインインアイコンラベル(アイコンに表示される内容)」をカスタマイズし、「設定を保存する」をクリックします。
9. その後、IIJ IDサービスでの認証を要求されますので、IIJ IDサービスには Slack の管理者アカウントと認証連携するアカウントでログインします。
【参考】
同じブラウザ上の別タブなどでIIJ IDサービスにログイン中で、セッションが残っている場合については認証画面がスキップされ、そのまま完了となります。
10. IIJ IDサービスでの認証が完了すると自動的にSlackの管理者画面に戻ります。認証設定が確認され、有効化された旨のメッセージが表示されますので確認します。
【参考】
同時に、Slack上のSAML認証を要求されることになる既存アカウントに対してメールが送信されます。個々のユーザーごとに受信したメールの「アカウントの認証」ボタンをクリックし、IIJ IDサービスのアカウントとSlackのアカウントの紐付けを完了します。