SCIM (System for Cross-domain Identity Management) とは
ユーザ情報を一元管理しつつ、それを他のアプリケーションに同期するための使用です。
自動化されることにより、運用管理工数の削減や権限管理の品質向上が期待できます。
System for Cross-domain Identity Management(SCIM)仕様は、クラウドベースのアプリケーショ ンとサービスにおけるユーザ ID の管理を容易にするために設計されている。この仕様一式は、既存の認証、認可、およびプライバシー・モデルを適用しながら、 開発と統合の簡素化に特に重点を置き、既存のスキーマと展開の経験を基に構築することを 目指している。その意図は、共通のユーザスキーマと拡張モデル、および標準プロトコルを使用してこのスキーマを交換するためのパターンを提供するバインディングドキュメントを提供することによって、ユーザ管理操作のコストと複雑さを軽減することです。要するに、ユーザーをクラウドへ、クラウドから、そしてクラウド周辺へ、速く、安く、簡単に移動させることである。
Cloudflare ダッシュボードユーザの SCIM 対応
Enterprise アカウントでは、Okta・Microsoft Entra ID と SCIM 連携できます。
Okta との SCIM 連携
以下のような構成を設定します。
Cloudflare API トークン作成
Cloudflare SCIM API エンドポイントとの連携に必要な API トークンを発行します。
以下のようなパーミッションが必要です。
Okta アプリケーション作成
SCIM 連携で Cloudflare ダッシュボードユーザをプロビジョニングするためのアプリケーションを作成します。
カタログのテンプレートから SCIM 2.0 Test App (OAuth Bearer Token)
を追加します。
Application Visibility
の2カ所にチェックがあり、Browser plugin auto-submit
のチェックが外れていることを確認して進めます。
Okta API Integration 設定
作成したアプリの Provisioning > Integration
から Configure API Integration
に進みます。
https://api.cloudflare.com/client/v4/accounts/<your_account_ID>/scim/v2
と先ほど作成した API トークンを入力し、 Test API Credentials
が正常に完了することを確認して保存します。
Minimal Access グループの作成
Cloudflare ダッシュボードユーザとして作成されるための Okta グループを作成します。
このグループにアサインされたユーザーは Minimal Account Access
ユーザとして Cloudflare ダッシュボードアカウントメンバーに追加・削除されます。
Minimal Access グループへのアプリケーション割り当て
ユーザ作成・削除を許可するため、Provisioning > Settings > To App
から Create Users
と Deactivate Users
にチェックを入れて保存します。
先ほど作成した Minimal Access グループにアプリケーションをアサインします。
以下の Extra info
については特に何も入力せずにそのまま Save and Go Back
できます。
Role ベースグループの作成
同様に Cloudflare ダッシュボードユーザにロールを割り当てるための Okta グループを作成します。
割り当てたいロールごとに CF-<your_account_ID> - <Role_Name>
という形式で複数作成します。
例えば CF-xxx - Adminitrator
グループにアサインされたユーザーには、Cloudflare ダッシュボードアカウントメンバー権限に Administrator
ロールが割り当てられます。
Role ベースグループをアプリケーションで Push Groups に設定
Push Groups > 歯車マーク
から Rename groups
のチェックを外して保存します。
次に Push Groups > Find groups by name
から、先ほど作成した CF-xxx - Adminitrator
を指定して、同名の Match found
した Link Group
に紐付けて保存します。
その後、Push Status
が Active
になったことを確認します。
この Push Groups 設定により、ロールが割り当て設定が実行されます。
SCIM 連携の動作確認
ユーザ追加
Okta ユーザを Minimal Access グループにアサインします。
Cloudflare ダッシュボードを見ると、 Minimal Account Access
なユーザとしてすぐに作成されることがわかります。
Audit Log でも以下のように確認できます。
ロール割り当て
Okta ユーザを CF-xxx - Adminitrator
グループにアサインします。
Cloudflare ダッシュボードを見ると、 Administrator
権限がすぐに割り当てられることがわかります。
Audit Log でも以下のように確認できます。
ユーザ削除
Okta ユーザを Minimal Access グループから削除します。
Cloudflare ダッシュボードを見ると、 ユーザがすぐに削除されることがわかります。
Audit Log でも以下のように確認できます。
まとめ
SCIM 連携を使えば、Okta 側での Group 追加・削除により、Cloudflare ダッシュボードユーザ権限と同期して管理できることが確認しました。
他のアプリケーションも含めて、自動で反映できる仕組みは非常に便利なため、ユーザ数が多いエンタープライズ企業では特に欠かせないところかなと思います。