こんにちは、 ネクストモード株式会社 のSaaSおじさん久住です
ネクストモードではID統合管理(IDaaS)のOktaを利用して各SaaSへのシングル・サインオンやプロビジョニングの一元管理しています。 また、ナレッジ共有にオールインワンワークスペースのNotionを利用しています
NotionのエンタープライズプランではSAML2.0、SCIM2.0に対応しており、SAML認証でのシングルサインオンの設定が可能なので、今回はNotionへのOktaからのSAML認証でのシングルサインオンを設定してみました
大まかな手順は下記の通りです
OktaとNotionでSAML認証の設定を実施する前にメールドメインの検証をする必要があります
まず、該当のワークスペースの設定ページの 認証とプロビジョン の 検証済みドメイン という項目で ドメインの追加 をクリックします
SSO対象のドメインを入力して次へをクリックします
DNSに入れる必要があるTXTレコードが表示されるため、コピーしDNSにレコードを投入します
TXTレコードを作成したら検証するをクリックします
レコード追加から数分で完了しましたが、DNSレコードの伝達で最大72時間ほどかかるそうです
設定が反映されると、下記のように自動的にメールドメインにドメインが入ります
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認証の設定をします
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(Notionに直接アクセスする場合)の遷移を見てみます
Notionページにアクセスすると一番したに SAML SSOでログイン という記載がありますのでクリックします
メールアドレスを入力して SAMLでログイン をクリックします
OktaにリダイレクトしてサインインするとNotionページにアクセスできました
つぎにIdP-initiated(Oktaからアクセスする場合)の遷移を見てみます
OktaでNotionアプリがユーザーにアサインされると、ユーザーダッシュボードにNotionが表示されますので表示されたNotionアプリをクリックします
クリックするとNotionへSAML認証でログイン出来ます
SP-initiatedでもIdP-initiatedeでも問題なくNotionへSAML認証でシングルサインオンできることを確認できました!
NotionとOktaのSAML認証連携についてご紹介しました
SAML認証に切り替えることで、IDを集約できるだけでなく、NotionのエンタープライズプランはSCIM APIにも対応しているのでプロビジョニングの設定をすることで入退社に伴うID管理も適切に実施することが可能となります
プロビジョニングについても後日ブログにしようと思います