OktaとSlackを連携し、シングルサインオン(SSO)とプロビジョニングを実現してみた。

はじめに

社内外を問わず、簡単にコミュニケーションがとれるチャットツール「Slack」は、コロナ禍における現代社会において、非常に便利なツールで、利用されている方も多いのではないでしょうか。
今回はそんなSlackとOktaを連携し、シングルサインオン(SSO)とプロビジョニングを実現してみました。SSO、プロビジョニングの必要性と実際の動作の流れをまとめていますので、「Oktaで何ができるのか」、「SSOやプロビジョニングとは何か」について、本ブログをご参考にして頂けますと幸いです。

OktaからSlackへのプロビジョニング

プロビジョニングとは

OktaとSaaSがAPIで連携し、自動でアカウントのライフサイクル管理をする機能をプロビジョニングといいます。

プロビジョニングの必要性

クラウドサービスの普及に伴い、各サービスごとにユーザーの状態(入社・異動・退職)に応じて、アカウントの作成・変更・廃止や、権限の設定を行う必要が出てきました。Oktaのプロビジョニング機能を利用すれば、Oktaのユーザー情報・属性を管理するだけで、自社のSaaSのIDの状態を一元的に管理することができます。

プロビジョニングの必要性

OktaからSlackへのプロビジョニング(ユーザー作成)

Okta上のプロビジョニング設定にて、Create Usersを有効化することにより、Oktaで追加されたユーザーが、連携しているSlackのテナントにて自動的に作成されます。

Create Users有効化

Create Users有効化

Oktaで追加したユーザーがSlackに作成される

Oktaで追加したユーザーがSlackに作成される

OktaからSlackへのプロビジョニング(ユーザープロファイルアップデート)

OktaとSlackそれぞれにおけるユーザーの属性値を、Oktaのマッピングという機能により、紐づけることができます。下の画像の例だと、

  • first name
  • last name
  • middle name
  • email
  • employee number
  • organization
  • division
  • department

が紐づけられていることが分かりますが、他にも様々な属性を紐づけることが可能です。

このマッピング機能によって紐づけられた属性値は、Update User Attributesを有効化することにより、Okta側で属性値にアップデートがあった際、SaaS(Slack)側にそのアップデートが自動的に反映されます。
(今回はOkta→SaaSを例に挙げていますが、逆方向の同期を設定することも可能です。)

マッピング例①

マッピング例①

マッピング例②

マッピング例②

Update User Attributesの有効化

Update User Attributesの有効化

OktaからSlackへのプロビジョニングのユースケース

プロビジョニングのユースケースとして、社員が異動した際の「division」、「department」という属性値の変更をSaaS(Slack)側へ自動更新するケースをご紹介します。
今回は下記画像の赤枠部分(Okta→Slackへのプロビジョニング)にフォーカスしてご説明します。

社員異動時のプロビジョニングユースケース

(Active Directory側でのユーザー情報の更新に伴い、)異動した社員のユーザー の「division」、「department」の属性値が、Okta上で変更される

(Active Directory側でのユーザー情報の更新に伴い、)異動した社員のユーザー の「division」、「department」の属性値が、Okta上で変更される

Okta側(とActive Directory側)で変更された属性値がSaaS(Slack)側にも反映される。

Okta側(とActive Directory側)で変更された属性値がSaaS(Slack)側にも反映される。

OktaからSlackへのシングルサインオン(SSO)

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

OktaのようなIdPによって、1度の認証のみで複数のリソース(サービスやアプリケーション)に対して、サインオンできる仕組みのことをいいます。

SSOの必要性

SSOを導入していない場合、1人のユーザーに対して、複数のアカウント情報を管理する必要があるため、サービスやアプリケーション毎に異なる認証が必要となります。SSOを導入することで、Okta(IdP)だけでIDを管理すればよいため、各リソースに対して、Okta(IdP)へのサインインのみでログインすることが可能となります。

SSOの必要性

OktaからSlackへのSSO

上記にて、Okta→Slackへプロビジョニングしたユーザーで、SlackへSSOする流れをご説明します。

Okta Dashboardからアプリを選択し、SlackへSSOする場合(IdP-initiated)

1. Oktaへサインイン

1. Oktaへサインイン

2. Okta Dashboard上でSlackアプリをクリックし、SlackへSSO

2. Okta Dashboard上でSlackアプリをクリックし、SlackへSSO

今回はSlackへのSSOをご紹介しましたが、Okta Dashboardに表示されているアプリケーションには全て、このようにアプリケーションのアイコンをクリックするだけでSSOすることが可能です。

Oktaにすでにサインインしている状態で、Slackのログイン画面からSSOする場合 (SP-initiated)

こちらは、Slackのログイン画面を開き、「Oktaでサインイン」をクリックするのみです。

Oktaにすでにサインインしている状態で、Slackのログイン画面からSSOする場合 (SP-initiated)

まとめ

本ブログでは、多くの方々に利用されているチャットツール「Slack」を例に挙げ、OktaによるSSO、プロビジョニングの必要性と実際の動作の流れについてご紹介しましたが、いかがでしたでしょうか。
Oktaを導入することで、IDの管理をより安全かつ簡単に行うことができます。もちろん、Oktaで実現できることはまだまだこんなものではありません。
今回は基本的な機能であるSSO、プロビジョニングについてご紹介しましたが、次回は「Okta Workflowsを利用したSlackの超便利な活用方法」として、「こんなこともできるのか!」と驚くような機能をご紹介しますので、是非ご覧いただければと思います。

ご興味のある方、その他Oktaに関するお問い合わせなどある方は、是非弊社までご連絡ください。

お問い合わせ・資料請求

株式会社マクニカ  Okta 担当

月~金 8:45~17:30