コンテンツにスキップ

SCIM でユーザーをプロビジョニング

ライフサイクルを制御したいときにこのガイドを使ってください — オフボーディングでは、 今後のログインを遮断するだけでなく、アクセスを自動的に取り消す必要があります。 SCIM は、まさにそのために IdP(Okta、Entra ID など)が使うプッシュプロトコルです。

  • SSO がすでに機能していること(SSO チュートリアル または OIDC ガイド)、
  • IdP が HTTPS 経由で到達できるサーバー — SCIM の呼び出しはユーザーの ブラウザーからではなく、IdP から届きます。組み込みのトンネル (設定 → サーバー → 接続とステータス → このサーバーを共有 → Cloudflared/ngrok/Tailscale) または公開 URL を使ってください。WebSocket リレー経由でしか到達できない サーバーは SCIM プッシュを受け取れません。そこでは JIT プロビジョニングは 引き続き機能しますが、このガイドの手順は機能しません。
  1. 設定 → サーバー → シングルサインオン を開き、 ユーザープロビジョニング(SCIM) カードを表示します。カードには エンドポイントが表示されます(例: https://<your-server>/scim/v2/Users)。
  2. トークンを生成(すでに存在する場合は トークンを再生成)を押します — ベアラートークンはダイアログに一度だけ表示され、クリップボードに コピーされます。パスワードマネージャーに保存してください。サーバーが 保持するのは、定数時間で検証できるコピーだけです。
  3. IdP のプロビジョニング設定で、次の内容で SCIM を有効にします:
    • ベースURL: 上記のエンドポイント
    • 認証: Authorization: Bearer <token>
    • ユーザー ID: userName(メール)または externalId — どちらも一致します
  4. 1 人のユーザーでテストします。IdP からそのユーザーをプッシュし、表示される ことを確認します(SCIM の作成はプロバイダーの externalId をアカウントに 固定します。これは初回の SSO ログインが設定する固定と同じです)。

IdP が active: false(または DELETE)を送ると、SCIM はまず、その アカウントがワークスペースの オーナー である場合に拒否します(先に 所有権を譲渡してください)。それ以外の場合は次のとおりです:

  1. まずすべてのデバイス認証情報が取り消されます — ライブセッションは 数秒以内に切断されます、
  2. すべてのワークスペースメンバーシップが削除されます、
  3. アカウントは無効化済みとして記録されます(明示的に再有効化されるまで、 その後 IdP が何を言おうと、ログインできることは決してありません)。

ユーザー行自体は残ります — チケット、メッセージ、コミットの帰属は永続的です。 再有効化(SCIM の active: true)はログインを復元しますが、メンバーシップは 復元しません。メンバーシップには新しい招待か、ログイン時の 自動メンバーポリシーが必要です。

  • すべての呼び出しで 401 — トークンが変更されています。再生成して IdP を更新してください。
  • エンドポイントに到達できない — トンネルが停止しているか、サーバーが リレー専用です。SCIM には直接の HTTPS が必要です。JIT は関係なく 機能し続けます。
  • グループプッシュのエラー(501) — これは意図的です。グループ→ロールの マッピングは、プッシュされたグループではなく、ログイン時に SAML/OIDC の グループ属性から行われます。