Skip to main content
SCIM の動作を紹介する動画をご覧ください (12分)

概要

System for Cross-domain Identity Management (SCIM) API を使用すると、インスタンス管理者または組織管理者は、W&B 組織内のユーザー、グループ、カスタムロールを管理できます。SCIM グループは W&B Teams にマッピングされます。 W&B の SCIM API は、Okta をはじめとする主要なアイデンティティプロバイダと互換性があり、ユーザーのプロビジョニングとデプロビジョニングを自動化できます。Okta やその他のアイデンティティプロバイダの SSO 設定については、SSO ドキュメント を参照してください。 SCIM API の操作方法を示す実践的な Python の例については、wandb-scim リポジトリを参照してください。

サポートされている機能

  • フィルタリング: API は /Users および /Groups エンドポイントのフィルタリングをサポートします
  • PATCH 操作: リソースの一部更新に PATCH をサポートします
  • ETag サポート: 競合検出のため、ETag を使用した条件付き更新をサポートします
  • サービスアカウント認証: 組織のサービスアカウントは API にアクセスできます
複数の Enterprise マルチテナント SaaS 組織の管理者である場合は、APIキーを使用して送信した SCIM API リクエストが正しい組織に適用されるよう、SCIM API リクエストの送信先となる組織を設定する必要があります。プロフィール画像をクリックし、User Settings をクリックしてから、Default API organization の設定を確認してください。選択したホスティングオプションによって、このページの例で使用する <host-url> プレースホルダーの値が決まります。また、例では abcdef などのユーザー ID を使用しています。実際のリクエストとレスポンスでは、ユーザー ID にはハッシュ化された値が使用されます。

認証

組織管理者は、Bearer token または HTTP Basic 認証情報を使用して認証できます。いずれの方式でも、キーを使用する場合は 同じ APIキー文字列 を使用します。主な違いを確認したうえで、ユーザーのアイデンティティまたは組織スコープのサービスアカウントを選択してください。

主な違い

  • 使用に適した対象: ユーザーは対話的な単発の管理操作に適しており、サービスアカウントはオートメーションやインテグレーション (CI/CD、プロビジョニングツール) に適しています。
  • 認証情報: ユーザーは Basic 認証でユーザー名とAPIキーを送信します。サービスアカウントは Basic 認証でAPIキーのみを送信します (ユーザー名は不要です) 。Bearer 認証では、ヘッダーにAPIキーのみを送信します (ユーザー名は不要です) 。
  • Bearer と Basic の違い: Bearer は Authorization: Bearer <API-KEY> を使用し、キーをそのまま指定します。Basic は Authorization: Basic <base64(...)> を使用します (ユーザーは username:API-KEY をエンコードし、サービスアカウントは先頭にコロンを付けてユーザー名を空にした :API-KEY をエンコードします) 。
  • スコープと権限: インスタンス管理者または組織管理者ユーザーのAPIキー、または 組織スコープのサービスアカウント のAPIキーを使用してください。team-scoped service accounts のキーでは SCIM API を認証できません。SCIM で使用するサービスアカウントは organization-scoped かつヘッドレスであるため、オートメーションの監査証跡をより明確にできます。
  • 認証情報の取得場所: ユーザーは User Settings からAPIキーをコピーします。組織スコープのサービスアカウント のキーは、組織のダッシュボードの Service account タブにあります。
  • Multi-tenant Cloud: 複数の Multi-tenant Cloud 組織にアクセスできる場合は、SCIM API 呼び出しが意図した組織にルーティングされるように、Default API organization を設定する必要があります。

Bearer トークン

APIキーを Bearer トークンとして送信します。
<API-KEY> の値は、そのプリンシパルの HTTP Basic 認証でパスワードとして使用する文字列と同じです。Bearer リクエストでは、キーを Base64 エンコードしません。
SCIM API の Bearer 認証は、W&B Multi-tenant Cloud、および専用クラウドとセルフマネージド v0.79.0 以降で利用できます。
以下の例では、<YOUR_API_KEY> をプレースホルダーとして使用しています。管理者ユーザーまたは組織スコープのサービスアカウントの実際のキーに置き換えてください。 ユーザーを一覧表示
ユーザーを作成する
詳細については、ユーザーを作成するを参照してください。

Users

対話的な管理タスクを実行する際は、個人の管理者用認証情報を使用してください。HTTP Authorization ヘッダーは Basic <base64(username:API-KEY)> の形式で指定します。 たとえば、demo:p@55w0rd として認証する場合:

サービスアカウント

自動化やインテグレーションには、組織スコープのサービスアカウントを使用してください。HTTP Authorization ヘッダーは Basic <base64(:API-KEY)> の形式で作成します (先頭にコロンがあり、ユーザー名は空である点に注意してください) 。サービスアカウントのAPIキーは、組織ダッシュボードの Service account タブで確認できます。詳細は 組織スコープのサービスアカウント を参照してください。 たとえば、APIキー sa-p@55w0rd を使用して認証します。

ユーザー管理

SCIM のユーザーリソースは、W&B の Users に対応しています。これらの endpoints を使用して、組織内の Users を管理します。

ユーザーを取得

組織内の特定のユーザーに関する情報を取得します。
この操作では、サービスアカウントの情報は取得されません。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: GET

パラメーター

Usersを一覧表示する

組織内のすべてのユーザーの一覧を取得します。
この操作ではサービスアカウントは取得されません。

Users をフィルター

/Users エンドポイントでは、ユーザー名またはメールアドレスで Users をフィルターできます。
  • userName eq "value" - ユーザー名でフィルター
  • emails.value eq "value" - メールアドレスでフィルター

エンドポイント

  • URL: <host-url>/scim/Users
  • method: GET

ユーザーを作成

組織内に新しいユーザーを作成します。

エンドポイント

  • URL: <host-url>/scim/Users
  • method: POST

パラメーター

レスポンス

ユーザーを削除

管理者アクセスを維持するインスタンスまたは組織には、常に少なくとも1人の管理者ユーザーが存在するようにしてください。そうしないと、組織の W&B アカウントを設定または維持できるユーザーがいなくなります。組織で SCIM または別の自動化プロセスを使用して W&B からユーザーのプロビジョニングを解除している場合、その解除処理によって、意図せずインスタンスまたは組織に残っている最後の管理者が削除される可能性があります。運用手順の策定に関する支援、または管理者アクセスの復旧については、サポート にお問い合わせください。
組織からユーザーを完全に削除します。
この操作はユーザーにのみ適用され、サービスアカウントには使用できません。サービスアカウントは W&B Team の Settings で削除してください。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: DELETE

パラメーター

ユーザーを一時的に無効化するには、PATCH エンドポイントを使用する ユーザーの無効化 API を参照してください。

ユーザーのメールアドレスを更新する

ユーザーのメインメールアドレスを更新します。 Multi-tenant Cloud ではサポートされていません。この環境では、ユーザーのアカウントは組織によって管理されません。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: PATCH

パラメーター

ユーザーの表示名を更新する

ユーザーの表示名を更新します。 Multi-tenant Cloud ではサポートされていません。この環境では、ユーザーのアカウントは組織で管理されません。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: PATCH

パラメーター

ユーザーを無効化

組織内のユーザーを無効化します。実際の結果は、デプロイタイプによって異なります。
  • 専用クラウド / セルフマネージド: ユーザーの active フィールドを false に設定します。無効化したユーザーの組織へのアクセスを復元するには、ユーザーを再有効化 を参照してください。
  • Multi-tenant Cloud: 組織からユーザーを削除します。ユーザーのアクセスを復元するには、そのユーザーを組織に再度追加してください。ユーザーを作成 を参照してください。Multi-tenant Cloud では、ユーザーのアカウントは組織では管理されません。
この操作はユーザーにのみ使用でき、サービスアカウントには対応していません。サービスアカウントの無効化はサポートされていません。チームのサービスアカウントは、W&B Team の Settings で管理してください。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: PATCH

パラメーター

レスポンス

ユーザーを再有効化

組織内で以前に無効化したユーザーを再有効化します。
  • ユーザーの再有効化はユーザーに対してのみ可能で、サービスアカウントには対応していません。サービスアカウントの再有効化はサポートされません。サービスアカウントは W&B Team の設定で管理してください。
  • ユーザーの再有効化は Multi-tenant Cloud ではサポートされません。ユーザーのアクセスを復元するには、そのユーザーを組織に再度追加してください。ユーザーを作成 を参照してください。Multi-tenant Cloud では、ユーザーのアカウントは組織によって管理されません。ユーザーを再有効化しようとすると、HTTP 400 エラーが返されます。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: PATCH

パラメーター

組織ロールを割り当てる

ユーザーに組織レベルのロールを割り当てます。
この操作はユーザーに対してのみ使用でき、サービスアカウントには使用できません。サービスアカウントではカスタムロールはサポートされていません。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: PATCH

パラメーター

組織スコープの viewer ロールは非推奨となっており、UI で割り当てることはできなくなりました。SCIM を使用してユーザーに viewer ロールを割り当てる場合:
  • そのユーザーには、組織内で member ロールが割り当てられます。
  • そのユーザーの modelsSeat は、full ではなく viewer に設定されます。これにより、Models には閲覧専用で、Registry にはフルアクセスできます。利用可能な Models シートがない場合は、Seat limit reached エラーが返されます。シートが利用可能になれば、後で更新できます。
  • そのユーザーの weaveRole は、full ではなく viewer に設定されます。これにより、Weave には閲覧専用でアクセスできます。
  • そのユーザーの既存のすべてのチームおよび project ロールは、viewer に設定されます。
  • 組織レベルで表示されるレジストリでは、Registry の viewer ロールが割り当てられます。
member または admin の組織ロールを割り当てても、ユーザーの modelsSeatweaveRole は変更されません。

シートを更新

ユーザーのシートを更新します。専用クラウドセルフマネージド でのみ利用できます。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: PATCH

パラメーター

Weave ロールを更新する

ユーザーの Weave ロールを更新します。専用クラウドおよびセルフマネージドでのみ利用できます。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: PATCH

パラメーター

チームロールを割り当てる

ユーザーにチームレベルのロールを割り当てます。
この操作はユーザーにのみ適用され、サービスアカウントには対応していません。サービスアカウントではカスタムロールはサポートされていません。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: PATCH

パラメーター

Registry に追加

割り当てられた Registry レベルのロールを付与して、ユーザーを Registry に追加します。
この操作はユーザーにのみ対応しており、サービスアカウントでは使用できません。サービスアカウントではカスタムロールはサポートされません。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: PATCH

パラメーター

Registry から削除

ユーザーを Registry から削除します。
  • 削除操作は RFC 7644 SCIM プロトコル仕様に従います。特定の Registry からユーザーを削除するには、フィルター構文 "registryRoles[registryName eq \"{registry_name}\"]" を使用します。すべての Registry からユーザーを削除するには、"registryRoles" を使用します。
  • この操作はユーザーに対してのみ有効で、サービスアカウントには対応していません。サービスアカウントを Registry から削除するには、W&B Team の Settings で行ってください。

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • method: PATCH

パラメーター

グループリソース

IAM で SCIM グループを作成すると、対応する W&B Team が作成されてマッピングされ、以降の SCIM グループ操作はそのチームに対して行われます。チームの作成時にカスタムストレージを設定するには、リクエストに storageBucket を含めます。

サービスアカウント

SCIM を使用して W&B Team が作成されると、サービスアカウントのチームリソースへのアクセスを維持するため、組織レベルのすべてのサービスアカウントが自動的にそのチームに追加されます。

グループの絞り込み

/Groups エンドポイントでは、特定のチームを検索するためのフィルタリングをサポートしています:

サポートされているフィルター

  • displayName eq "value" - チームの表示名でフィルター

チームを取得

チームの一意の ID を指定して、チームの情報を取得します。

エンドポイント

  • URL: <host-url>/scim/Groups/{id}
  • method: GET

チームの一覧

チームの一覧を取得します。

エンドポイント

  • URL: <host-url>/scim/Groups
  • method: GET

チーム を作成

  • エンドポイント: <host-url>/scim/Groups
  • method: POST
  • 説明: 新しい チーム リソースを作成します。
  • サポートされるフィールド:
チーム の作成時に storageBucket オブジェクトを含めることで、チーム レベルの Bring your own bucket (BYOB) を設定できます。省略した場合、チーム はデフォルトまたはインスタンスレベルのストレージを使用します。BYOB ガイドを参照して、バケット (ポリシー、CORS、認証情報) をプロビジョニングし、プロバイダーごとのストレージアドレス形式を確認してください。storageBucket オブジェクトには、次のサブフィールドがあります。
  • 必須: name (バケット名) 、provider (COREWEAVEAWSAZUREGCPMINIO のいずれか) 。値では大文字と小文字が区別されるため、表示されているとおりに大文字を使用してください。
  • 任意: path (バケット内のパス接頭辞) 、kmsKeyId (暗号化用の KMS キー。AWS などで使用) 、awsExternalId (AWS のクロスアカウントアクセス) 、azureTenantId (Azure テナント ID) 、azureClientId (Azure マネージドアイデンティティのクライアント ID) 。
W&B は、チーム を作成する前に、そのバケットが存在し到達可能であることを検証します。検証に失敗した場合、SCIM リクエストは失敗し、チーム は作成されません。 provider の値が無効な場合は、許可される値を示す SCIM エラーとともに 400 Bad Request が返されます。

以下の例では、カスタム ストレージを使用しないチーム、および特定のプロバイダーで BYOB ストレージを使用するチームの作成方法を示します。リクエスト例を確認するには目的のストレージ設定のタブを選択し、レスポンス例を確認するには レスポンス タブを選択してください。

チームを更新

  • エンドポイント: <host-url>/scim/Groups/{id}
  • method: PATCH
  • Description: 既存のチームのメンバー一覧を更新します。
  • サポートされる操作: add メンバーの追加、remove メンバーの削除、replace メンバーの置換
  • remove 操作は RFC 7644 SCIM プロトコル仕様に従います。特定のユーザーを削除するには、フィルター構文 members[value eq "{user_id}"] を使用します。チームからすべてのユーザーを削除するには、members を使用します。 ユーザーの識別: メンバー操作での {user_id} には、次のいずれかを使用できます。
  • これらの操作はユーザーに対してのみ機能し、サービスアカウントには対応していません。チームのサービスアカウントは、W&B Team の設定で更新してください。
リクエスト内の {team_id} は実際のチーム ID に、{user_id} は実際のユーザー ID またはメールアドレスに置き換えてください。

チームメンバーの置き換え

チームのすべてのメンバーを新しいリストに置き換えます。
この操作はユーザーにのみ適用され、サービスアカウントには対応していません。サービスアカウントは W&B Team の Settings で管理してください。
  • エンドポイント: <host-url>/scim/Groups/{id}
  • method: PUT
  • 説明: チームメンバーのリスト全体を置き換えます。
チームにユーザーを追加する acme-devsdev-user2 を追加する場合:
この操作はユーザーにのみ適用され、サービスアカウントには対応していません。サービスアカウントは W&B Team の Settings で管理してください。
チームから特定のユーザーを削除する acme-devs から dev-user2 を削除する場合:
この操作はユーザーにのみ適用され、サービスアカウントには対応していません。サービスアカウントは W&B Team の Settings で管理してください。
チームからすべてのユーザーを削除する acme-devs からすべてのユーザーを削除する場合:
この操作はユーザーにのみ有効で、サービスアカウントには使用できません。サービスアカウントは W&B Team の Settings で管理してください。

チームを削除

  • チームには追加のデータが関連付けられているため、現在、SCIM API ではチームを削除できません。すべての関連データを含めて削除してよいことを確認するには、アプリからチームを削除してください。

Role resource

SCIM のロールリソースは、W&B のカスタムロールに対応しています。前述のとおり、/Roles エンドポイントは公式の SCIM スキーマの一部ではありませんが、W&B では組織内のカスタムロールを自動管理できるようにするため、/Roles エンドポイントを追加しています。

カスタムロール情報を取得

ロールの一意の ID を指定して、カスタムロールの情報を取得します。

Endpoint

  • URL: <host-url>/scim/Roles/{id}
  • Method: GET

カスタムロールの一覧

W&B 組織内のすべてのカスタムロールの情報を取得します。

Endpoint

  • URL: <host-url>/scim/Roles
  • Method: GET

カスタムロールを作成

  • エンドポイント: <host-url>/scim/Roles
  • メソッド: POST
  • 説明: W&B 組織に新しいカスタムロールを作成します。
  • サポートされるフィールド:

カスタムロールを更新

ロールに権限を追加する

  • Endpoint: <host-url>/scim/Roles/{id}
  • Method: PATCH
  • Description: 既存のカスタムロールに権限を追加します。

ロールから権限を削除する

  • エンドポイント: <host-url>/scim/Roles/{id}
  • method: PATCH
  • 説明: 既存のカスタムロールから権限を削除します。

カスタムロールを置き換える

  • エンドポイント: <host-url>/scim/Roles/{id}
  • Method: PUT
  • 説明: カスタムロール定義全体を置き換えます。

カスタムロールを削除

W&B組織内のカスタムロールを削除します。注意して使用してください。この操作を実行する前にそのカスタムロールが割り当てられていたすべてのユーザーには、カスタムロールの継承元である事前定義ロールが割り当てられます。

Endpoint

  • URL: <host-url>/scim/Roles/{id}
  • Method: DELETE

高度な機能

ETag サポート

SCIM API は、同時変更による競合を防ぐため、条件付き更新で ETags をサポートしています。ETags は、レスポンスヘッダー ETagmeta.version フィールドで返されます。

ETags

ETagを使用するには:
  1. 現在のETagを取得: リソースをGETした際に、レスポンスのETagヘッダーを確認します
  2. 条件付き更新: 更新時に、If-MatchヘッダーにETagを含めます

412 Precondition Failed エラーのレスポンスは、取得後にそのリソースが変更されたことを示します。

エラー処理

SCIM APIは標準のSCIMエラーレスポンスを返します。

デプロイタイプごとの実装の違い

W&B では 2 種類の SCIM API 実装を提供しており、利用できる機能はそれぞれ異なります。

制限事項

  • 最大結果数: 1リクエストあたり9999件。
  • Single-tenant 環境: 1ユーザーにつきメールアドレスは1つのみサポートされます。
  • チーム の削除: SCIM 経由ではサポートされません (W&B の Web インターフェイスを使用してください) 。
  • ユーザー の再有効化: Multi-tenant Cloud 環境ではサポートされません。
  • シート数の制限: 組織のシート数制限に達すると、処理が失敗する場合があります。