OktaからNotionにSAML認証でシングルサインオンしてみた

NotionへOktaからSAML2.0でシングルサインオンできるように設定してみました。
2022.03.11

こんにちは、 ネクストモード株式会社 のSaaSおじさん久住です。

はじめに

ネクストモードではID統合管理(IDaaS)のOktaを利用して各SaaSへのシングル・サインオンやプロビジョニングの一元管理しています。 また、ナレッジ共有にオールインワンワークスペースのNotionを利用しています。

NotionのエンタープライズプランではSAML2.0に対応しており、SAML認証でのシングルサインオンの設定が可能なので、今回はNotionへのOktaからのSAML認証でのシングルサインオンを設定してみました。

手順

大まかな手順は下記の通りです。

  • メールドメインの検証(Notion)
  • Notionアプリ作成(Okta)
  • Notion側でのSAML認証設定(Notion)

やってみた

メールドメインの検証(Notion)

OktaとNotionでSAML認証の設定を実施する前にメールドメインの検証をする必要があります。

まず、該当のワークスペースの設定ページのセキュリティと認証メールドメインという項目でサポートへお問い合わせくださいをクリックします。

サポートチャットが起動するのでSAML認証の対象ドメインを伝えつつ依頼すると、DNSに入れる必要があるTXTレコードが送ってもらえるので、DNSにレコードを投入します。

レコード追加から数分で完了しましたが、DNSレコードの伝達で最大72時間ほどかかるそうです。

設定が反映されると、下記のように自動的にメールドメインにドメインが入ります。

Notionアプリ作成(Okta)

Oktaにて、Notionアプリを作成します。Oktaの管理画面よりApplications -> Browse App Catalogを選択し、Notionを追加します。

Sign-On OptionsにてSAML2.0を選択します。

次に、Advanced Sign-on SettingsにてOrganization IDを入力します。 Organization IDはNotionの設定にあるシングルサインオンのURLのリンクのsso/saml/以降の乱数をコピーして貼り付けます。

最後にユーザーをNotionアプリにアサインします。

こちらでNotionアプリの作成は完了です。

Notion側でのSAML認証設(Notion)

次にNotionでSAML認証の設定をします。

Oktaの管理画面からNotionアプリのSign OnView Setup Instructionsをクリックします。

IDPメタデータのXMLがコピーできるので、Notionの設定画面のセキュリティと認証メタデータのXML欄にペーストします。 SAMLを有効にする場合はSAMLを有効にするにチェック、SAMLでのシングルサインオンを強制する場合はSAMLを強制するにチェックを入れて更新します。

以上で設定は完了です。

接続確認

SP-initiatedの場合

まずはSP-initiated(Notionに直接アクセスする場合)の遷移を見てみます。

Notionページにアクセスすると一番したにSAML SSOでログインという記載がありますのでクリックします。

メールアドレスを入力してSAMLでログインをクリックします。

OktaにリダイレクトしてサインインするとNotionページにアクセスできました。

IdP-initiatedの場合

つぎにIdP-initiated(Oktaからアクセスする場合)の遷移を見てみます。

OktaでNotionアプリがユーザーにアサインされると、ユーザーダッシュボードにNotionが表示されますので表示されたNotionアプリをクリックします。

クリックするとNotionへSAML認証でログイン出来ます。

SP-initiatedでもIdP-initiatedeでも問題なくNotionへSAML認証でシングルサインオンできることを確認できました!

さいごに

NotionとOktaのSAML認証連携についてご紹介しました。

SAML認証に切り替えることで、IDを集約できるだけでなく、NotionのエンタープライズプランはSCIM APIにも対応しているのでプロビジョニングの設定をすることで入退社に伴うID管理も適切に実施することが可能となります。プロビジョニングについても後日ブログにしようと思います。