:::: MENU ::::

Notionのグループ管理をSCIMのグループプロビジョニングで行う

NotionのAPI便利に使っていますが、まだユーザーのグループ管理をAPIで行うことはできません。
Notionのグループ管理はAdminロールじゃないと操作できないため、運用を楽にする方法が必要。

そこで目をつけたのがSCIMのグループプロビジョニング。
NotionとOneLogin間でグループプロビジョニングしたときのメモを書いておきます。

事前準備: SAML SSOとSCIMの設定をする

SAMLSSO構成
Provision Users and Groups with SCIM

書いてあるとおりにやっていけばできる

SAML設定時の注意点

  • ドメイン検証にワイルドカードは使えない
    • メールアドレスで使われているサブドメインすべてに検証が必要
  • SAMLの設定は複数ワークスペースで共有できる
    • 複数ワークスペースにSAML設定を適用させたい場合はサポートに頼む
    • SAML必須にするなどの設定も共有される(上書き不可)
    • SCIMはワークスペースごとに設定を行う
      • IDaaS側はAppをワークスペースごとに作って各種設定すれば大丈夫

OneLoginのグループプロビジョニング

OneLoginで設定したRoleがNotionのグループになるように設定します。
これならRole Adminにメンバーの追加・削除を権限移譲できます。

設定方法

  1. 同期したいOneLogin Roleを作成、今回は接頭語に Notion-Team- を付ける
  2. OneLoginのNotionアプリにRuleを作成
    • 同期したいOneLogin Roleを正規表現で書く、括弧内の名称がNotion側のグループ名になります
  3. ParametersのOptional ParametersのGroupを編集
    • Appのプロビジョニングを有効にして保存
  4. ParameterのGroupから Include in User Provisioning にチェックを入れる
  5. Reapply mappings
  6. Notion側にグループとメンバーが同期される
    • グループへのメンバー追加もNotion上の通知対象なので各メンバーに通知がいきます

利用上の注意点

実はこの方法、2022年3月現在まともに機能しません。
OneLoginとNotionとでSCIMのサポートフォーマットが異なるためバグります。

細かいフォーマットの話は割愛しますが、以下のように意図しない動作が起きます。

  • OneLoginのRoleに一度に数十人追加すると、Notionのグループには数人漏れた状態で同期される
    • OneLoginのRoleには問題なく追加されている状態
    • フォーマットの問題というよりもNotion APIの制限がSCIM APIにもある?
  • OneLoginのRoleからひとり削除すると、Notionのグループにいる全員がグループから離脱する
    • OneLoginのRoleにはひとりだけ削除されている状態
    • SCIM APIフォーマットの差異で起きている現象

3月中には直すとは言ってましたが、もう3月も後半。
早く直ってほしいなぁ。