Google WorkspaceをIdPとしてSlackにSSOする方法

記事タイトルとURLをコピーする

G-gen の三浦です。当記事では Google Workspace(Cloud Identity)を使用して、Slack にシングルサインオン(以下、SSO)を設定する方法を紹介します。

基礎知識

シングルサインオン(SSO)とは

シングルサインオン(SSO)とは、一度の認証で複数のアプリケーションやサービスを利用できるようにするための仕組みです。利用者が複数のサービスを利用するとき、通常はサービスごとに ID とパスワードを入力します。これを1度で済むようにする仕組みが SSO です。

SSO を実装することで、以下の効果が得られます。

  • 利便性向上
    ユーザーはアプリケーションごとにパスワードを入力する必要がなくなります。

  • セキュリティ強化
    パスワードの管理が簡素化され、セキュリティリスクを軽減できます。

SAML 認証とは

SSO を実現するプロトコルの一つに SAML(Security Assertion Markup Language)があります。SAML は、認証情報を安全にやり取りするための標準規格です。現在では SAML 2.0 が標準とされています。

SAML による認証情報のやりとりを理解するためには、以下の2つの役割を理解する必要があります。

  • IdP(Identity Provider)
    アイデンティティ(アカウント)を保存したり、管理する役割。SSO では認証を担う。当記事では Google Workspace が該当。

  • SP(Service Provider)
    認証済みのユーザーが実際に利用するサービス。今回の例では Slack が該当。

SAML 認証の流れ

Slack を例に取ると、ユーザーから見た認証の流れは以下のようになります。

  1. ユーザーが Slack(SP) にアクセス
  2. Google Workspace(IdP)にリダイレクトされ、認証が行われる
  3. Slack にリダイレクトされ、ログインが完了

Google Workspace の SSO

対応するアプリ

Google Workspace を IdP として利用すれば、多くのクラウドサービスで SAML 認証を使用したシングルサインオンを実現できます。

例えば、以下のようなサービスが「統合対応 SAML アプリ」としてネイティブに対応しています。

  • Amazon Web Services
  • Notion
  • ServiceNow
  • Tableau
  • Zendesk

またネイティブに対応していないサービスでも、SAML 2.0 規格に準拠していれば、「カスタム SAML アプリ」として SSO 設定が可能です。

Google Workspace を IdP とするメリット

Google Workspace を IdP として利用することで、SSO の効果をさらに高める以下の利点があります。

  • Google アカウントの統一管理
    Google アカウントを認証基盤として使用するため、複数のアカウントやパスワードを管理する必要がなくなり、ユーザーの利便性が向上。

  • セキュリティ強化
    多要素認証(Google Authenticator やセキュリティキーの利用)やコンテキストアウェアアクセス(IP アドレスやデバイスによるアクセス制御)を活用し、企業のセキュリティ要件やリスク管理方針に応じた柔軟な認証ポリシーを設定可能。

  • 幅広いサービスとの連携
    Google Workspace を通じて、Slack などの外部サービスだけでなく、Google Workspace 内部のサービス(Google Drive、Google Meet など)へのアクセスも一元管理。

2段階認証やコンテキストアウェア アクセスについては、以下の公式ドキュメントも参考にしてください。

対応エディション

Google Workspace では、Essentials Starter 以外の全エディションで、Google Workspace を IdP とした SSO を構成できます。

Cloud Identity でも同様に、Free と Premium の両エディションで、Cloud Identity を IdP とした SSO を構成できます。

検証の概要

以下の手順で SSO を設定し、動作を確認します。

順番 作業場所 作業名 内容
1 Google Workspace カスタム SAML アプリの作成 Google Workspace 側で SAML 認証を設定
2 Google Workspace カスタム SAML アプリのユーザー設定 アプリを利用する対象(組織、グループ)を設定
3 Slack SAML 認証設定 Slack 側で SAML 認証を設定
4 Slack Slack への直接アクセス確認 Google Workspace にログインしていない状態で、SAML 認証が正しく動作するかを確認
5 Google Workspace Google Workspace アプリ経由の確認 Google Workspace のカスタム SAML アプリを利用して、SSO が正しく設定されているかを確認
6 Google Workspace コンテキストアウェアアクセスの設定手順確認 アクセス制限(IP アドレスやデバイス制御)の設定手順を確認

なお前提として、Slack では Business+ または Enterprise Grid プランでのみ、SAML ベースの SSO を利用できます。Free プランや Pro プランでは利用できませんのでご注意ください。

検証作業

[Google Workspace] カスタム SAML アプリの作成

Google Workspace の管理コンソール(https://admin.google.com)にログインします。

[アプリ] > [ウェブアプリとモバイルアプリ] > [アプリを追加] > [カスタム SAML アプリの追加] を選択します。

カスタム SAML アプリの追加

アプリ名を入力し、必要に応じてアイコンを添付します。入力が終わったら [続行] を選択します。

アプリ名の入力

管理者は、Slack 側に登録するために以下の3点を控えておき、[続行] を選択します。

  • SSO の URL
  • エンティティ ID
  • 証明書(右側のダウンロードアイコンを選択してダウンロードします)

IdP 設定の確認

以下を入力し、[続行] を選択します。

  • ACS の URLhttps://${{Slack URL}}/sso/saml
  • エンティティ IDhttps://slack.com
  • 署名付き応答:有効化(チェックを入れる)
  • 名前 ID[Basic Information] > [Primary email]

Slack URL は、以下のドキュメントを参照して確認してください。

SP 設定

[マップングを追加] から以下の通りに設定し、[完了] を選択します。

  • [Basic Information] > [Primary email]User.Email
  • [Basic Information] > [First name]first_name
  • [Basic Information] > [Last Name]last_name

属性のマッピング

[Google Workspace] カスタム SAML アプリのユーザー設定

作成したアプリの [ユーザー アクセス] を選択します。

ユーザーアクセスを選択

SAML 認証を利用する対象(組織全体または特定の組織部門または Google グループ)を選択し、[オン] > [保存(またはオーバーライド)] を選択します。

SAML アプリの有効化

[Slack] SAML 認証設定

管理者アカウントにて、[ワークスペース名] > [ツールと設定] > [ワークスペースの設定] を選択します。

ワークスペースの設定を選択

[認証] > [認証] から SAML 認証の [設定する] を選択します。

SAML 認証設定を選択

以下の通りに設定し、詳細設定の [開く] を選択します。

  • SAML 2.0 エンドポイント (HTTP)SSO の URL
  • ID プロバイダ発行者エンティティ ID
  • 公開証明書:ダウンロードした証明書ファイルをテキストエディタで開き、その内容をコピーして貼り付けます。

SAML 認証設定1

以下を選択し、[設定を保存する] を選択します。

  • サービスプロバイダ発行者:カスタム SAML アプリで設定したエンティティ ID
  • 署名付きレスポンス:有効化(チェックを入れる)
  • ワークスペースの認証が必要なメンバー:SAML 認証が必要な対象を選択します。

SAML 認証設定2
SAML 認証設定3

SAML 認証が有効化されたことを確認します。

有効化確認

[Slack] Slack への直接アクセス確認

Google Workspace にログインしていない状態で、Slack の URL(例: https://${{Slack URL}})にアクセスします。

Slack URL へアクセス

[SAML でサインイン] を選択します。

SAML でサインインを選択

Google のログイン画面が表示されるため、アカウント及びパスワードを入力して [次へ] を選択します。

Google ログイン

認証が完了すると Slack にリダイレクトされ、ログインできることを確認します。

ログイン確認(直接アクセス)

[Google Workspace] Google Workspace アプリ経由の確認

Google Workspace にログインした状態で、[アプリ] > [カスタム SAML アプリ] を選択します。

カスタム SAML アプリを選択

Slack にログインできることを確認します。

ログイン確認(カスタム SAML アプリ)

Google Workspace の管理画面から、ログを確認する方法も検証します。

[レポート] > [監査と調査] > [SAML ログイベント] から SAML 認証に関するログを確認できます。

ログ確認

[Google Workspace] コンテキストアウェアアクセスの設定手順確認

[セキュリティ] > [アクセスとデータ管理] > [コンテキストアウェアアクセス] > [アプリにアクセスレベルを割り当てる] を選択します。

アプリにアクセスレベルを割り当てる

アクセスレベルを適用する対象として カスタム SAML アプリ を選択します。[割り当て] を選択することで、アクセスレベルを設定できます。

カスタム SAML アプリへの割り当て

コンテキストアウェアアクセスの詳細な設定手順やアクセスレベルの作成方法については、以下の記事を参照してください。

blog.g-gen.co.jp

三浦 健斗(記事一覧)

クラウドソリューション部

2023年10月よりG-genにジョイン。元オンプレ中心のネットワークエンジニア。ネットワーク・セキュリティ・唐揚げ・辛いものが好き。