はじめに こんにちは、 ネクストモード株式会社 のSaaSおじさん久住です...
【Okta】OktaからNotionにSAML認証でシングルサインオンしてみた
はじめに
こんにちは、 ネクストモード株式会社 のSaaSおじさん久住です
ネクストモードではID統合管理(IDaaS)のOktaを利用して各SaaSへのシングル・サインオンやプロビジョニングの一元管理しています。 また、ナレッジ共有にオールインワンワークスペースのNotionを利用しています
NotionのエンタープライズプランではSAML2.0、SCIM2.0に対応しており、SAML認証でのシングルサインオンの設定が可能なので、今回はNotionへのOktaからのSAML認証でのシングルサインオンを設定してみました
手順
大まかな手順は下記の通りです
- メールドメインの検証(Notion)
- Notionアプリ作成(Okta)
- Notion側でのSAML認証設定(Notion)
やってみた
メールドメインの検証(Notion)
OktaとNotionでSAML認証の設定を実施する前にメールドメインの検証をする必要があります
まず、該当のワークスペースの設定ページの 認証とプロビジョン の 検証済みドメイン という項目で ドメインの追加 をクリックします

SSO対象のドメインを入力して次へをクリックします

DNSに入れる必要があるTXTレコードが表示されるため、コピーしDNSにレコードを投入します
TXTレコードを作成したら検証するをクリックします

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

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

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


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

次に、Advanced Sign-on SettingsにてOrganization IDを入力します
まずNotionの設定にあるSAML SSOの設定を編集をクリックします


Oktaの管理画面上に移動し、Advanced Sign-on SettingsのOrganaization IDの欄にACS URLのsso/saml/以降の乱数をコピーして貼り付けます

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

こちらでNotionアプリの作成は完了です
Notion側でのSAML認証設定(Notion)
次にNotionでSAML認証の設定をします
Oktaの管理画面からNotionアプリの Sign On の View Setup Instructions をクリックします

IDPメタデータのXMLがコピーできるので、Notionの設定画面のSAML SSO設定の編集から IDプロバイダーのメタデータXML 欄にペーストします

SAMLを有効にする場合は SAML SSOを有効にする にチェック、SAMLでのシングルサインオンを強制する場合は ログイン方法をSAML SSOのみにします
またSAML SSOでログインした際に自動的にユーザーが作成されるJITプロビジョニングを無効化する場合はアカウントの自動作成のチェックをオフにしておきます

以上で設定は完了です
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管理も適切に実施することが可能となります
プロビジョニングについても後日ブログにしようと思います