SCIM の実際の動作を紹介する動画 (12 分) をご覧ください。
概要
このページでは、インスタンス管理者と組織管理者が System for Cross-domain Identity Management (SCIM) API を使用して、W&B のアイデンティティ管理を自動化する方法について説明します。SCIM API を使用すると、W&B アプリで手動操作を行わなくても、アイデンティティプロバイダや CI/CD パイプラインを通じて、ユーザーのプロビジョニングとデプロビジョニング、チームメンバーシップの管理、カスタムロールの定義をプログラムから実行できます。SCIM グループは W&B Teams に対応します。 W&B の SCIM API は、Okta や Microsoft Entra などのアイデンティティプロバイダで利用可能です。Okta、Microsoft Entra、その他のアイデンティティプロバイダでの SSO の設定については、SSO のドキュメントを参照してください。 SCIM API の使い方を示す実用的な Python のサンプルについては、wandb-scim リポジトリを参照してください。
サポートされる機能
SCIM API は次の機能をサポートしています。- フィルター:
/Usersおよび/Groupsエンドポイントでフィルターを使用できます。 - PATCH 操作:
PATCHによるリソースの部分更新をサポートしています。 - ETag のサポート: ETag を使用して競合を検出し、条件付き更新を行えます。
- サービスアカウント認証: 組織サービスアカウントから API にアクセスできます。
- サービスアカウントのライフサイクル: チームスコープおよび組織スコープのサービスアカウントのプロビジョニングとデプロビジョニングを行えます。Multi-tenant Cloud、および v0.81.0 以降の専用クラウドとセルフマネージドでサポートされています。
複数の Enterprise Multi-tenant Cloud 組織の管理者である場合は、APIキーを使用したリクエストが正しい組織に適用されるよう、SCIM API リクエストを受け取る組織を設定してください。プロフィール画像をクリックし、User Settings をクリックしてから、Default API organization の設定を確認します。このページのサンプルで使用している
[HOST-URL] プレースホルダーの値は、選択したホスティングオプションによって異なります。サンプルでは abc や def などのユーザー ID を使用しています。実際のリクエストと応答では、ユーザー ID にハッシュ化された値が使用されます。認証
すべての SCIM リクエストは、管理者プリンシパルとして認証される必要があります。組織管理者は、Bearer token または HTTP Basic 認証情報のいずれかで認証できます。どちらの方式でも、キーを指定する箇所には 同じ API キー文字列 を使用します。次のセクションで主な違いを確認したうえで、ユーザーアイデンティティと組織スコープのサービスアカウントのどちらを使用するかを選択してください。主な違い
以下のリストでは、SCIM 認証におけるユーザーの認証情報とサービスアカウントの認証情報を比較します。- 適した用途: ユーザーは、対話的に行う単発の管理 action に適しています。サービスアカウントは、オートメーションやインテグレーション (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キーを使用してください。チームスコープのサービスアカウントのキーでは、SCIM API の認証を行えません。SCIM で使用するサービスアカウントは組織スコープかつヘッドレスであるため、オートメーションの監査証跡をより明確にできます。
- 認証情報の取得場所: ユーザーは User Settings から APIキーをコピーします。組織スコープのサービスアカウントのキーは、組織のダッシュボードの Service account タブで確認できます。
- Multi-tenant Cloud: 複数の Multi-tenant Cloud 組織にアクセスできる場合は、SCIM API の呼び出しが目的の組織にルーティングされるように、Default API organization を設定する必要があります。
Bearer token
次のように、APIキーを Bearer token として送信します。[API-KEY] の値は、そのプリンシパルの HTTP Basic 認証でパスワードとして使用する文字列と同じです。Bearer リクエストでは、キーを Base64 エンコードしないでください。
SCIM API の Bearer 認証は、W&B Multi-tenant Cloud、および専用クラウドとセルフマネージドの v0.79.0 以降で利用できます。
[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 で認証する場合は次のようになります。
Microsoft Entra ID の設定
Microsoft Entra ID から SCIM API を介して W&B へのユーザーとグループの自動プロビジョニングを設定する場合は、このセクションを参照してください。 Entra SSO のセットアップについては、Entra で SSO を設定するを参照してください。Tenant URL
Entra のエンタープライズ アプリケーションのプロビジョニング設定で、Tenant URL に、W&B SCIM のベース URL の末尾に Entra の機能フラグ用クエリ パラメーターaadOptscim062020 を付加した値を設定します。
https://wandb.example.com にある場合は、テナント URL を https://wandb.example.com/scim?aadOptscim062020 に設定します。
aadOptscim062020 パラメーターは、W&B SCIM API で Entra 固有の処理を有効にします。このパラメーターを指定しない場合、Entra はユーザーの無効化リクエストで、JSON の真偽値 (false または true) ではなく文字列の真偽値 ("False" または "True") を送信することがあり、無効化が失敗する原因になります。
Secret Token には、組織管理者ユーザーまたは組織スコープのサービスアカウントの APIキーを設定します。詳しくは、認証を参照してください。
テナント URL に
aadOptscim062020 を追加すると、Microsoft Entra 管理センターにある Entra の Provision on demand UI からはユーザーを無効化できない場合があります。この UI は引き続き文字列の真偽値を送信するためです。無効化を手動でテストするには、PatchOp の Operations 形式で active を false に置き換える SCIM PATCH リクエストを送信してください (ユーザーの無効化を参照) 。チーム名
W&B のチームにマッピングする Entra グループには、ml-platform や data-science のように、小文字とハイフンを使用した名前を付けてください。W&B に同期するグループの表示名には、スペース、アンダースコア、その他の特殊文字を使用しないでください。
ユーザー属性マッピング
SCIM によるユーザープロビジョニング用に、Entra で次の属性マッピングを設定します。Multi-tenant Cloud では、ユーザーのアカウントは組織によって管理されません。Multi-tenant Cloud では、W&B は SCIM による
displayName の更新をサポートしていません。詳しくは、ユーザーの表示名を更新するを参照してください。グループの属性マッピング
SCIM グループ (チーム) をプロビジョニングするには、Entra で次の属性マッピングを設定します。ユーザー管理
SCIM のユーザーリソースは、W&B のユーザーおよびサービスアカウントに対応します。このセクションのエンドポイントを使用すると、組織内のユーザーとサービスアカウントをプロビジョニング、更新、削除できます。たとえば、新入社員のオンボーディング、サービスの認証情報のローテーション、退職するユーザーのアクセス権の削除などの際に使用します。 サービスアカウントの概念と UI でのワークフローについては、サービスアカウントを使用してワークフローを自動化するを参照してください。SCIM User JSON を解析するインテグレーションに影響する破壊的変更
- 専用クラウドおよびセルフマネージド v0.80.1 以降、ならびに 2026 年 4 月 30 日より後の Multi-tenant Cloud デプロイメントでは、
/scim/Usersからの応答 (ユーザーのGET、ユーザー一覧のGET、および User を返すPATCHの応答を含む) において、emailsは SCIM 2.0 に準拠した形式でシリアル化されます。具体的には、小文字のフィールド名 (value、primary、およびオプションのtypeまたはdisplay) を持つオブジェクトの JSON 配列になります。 - 以前のリリースのデプロイメントでは、
emailsは PascalCase のキー (Value、Primaryなど) を持つ単一の JSON オブジェクトとして返されます。
emails を読み取る場合は、emails を配列として扱い、プライマリのエントリ (または最初の要素) を読み取ってください。ユーザーの作成や更新に使用するリクエストボディは以前から配列形式であり、変更はありません。list-users のフィルター emails.value eq "..." も変更されていません。ユーザーを取得
組織内の特定のユーザーまたはサービスアカウントの情報をユーザー ID で取得します。ユーザーの場合は、メールアドレスで取得することもできます。 サービスアカウントの応答にはaccountType が含まれます (チームスコープのサービスアカウントは SERVICE、組織スコープのサービスアカウントは ORG_SERVICE) 。サービスアカウントの応答には emails は含まれません。
エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
GET
パラメーター
例
- ユーザー取得リクエスト
- ユーザー取得応答
ユーザーを一覧表示する
組織内のすべてのユーザーとサービスアカウントの一覧を取得します。各リソースにはaccountType (USER、SERVICE、ORG_SERVICE のいずれか) が含まれます。
ユーザーをフィルターする
/Users エンドポイントでは、ユーザー名またはメールアドレスでユーザーをフィルターできます。
userName eq "value": ユーザー名でフィルターします。emails.value eq "value": メールアドレスでフィルターします。
エンドポイント
- URL:
[HOST-URL]/scim/Users - メソッド:
GET
例
- ユーザー一覧リクエスト
- ユーザー一覧応答
ユーザーを作成する
組織に新しいユーザーを作成します。エンドポイント
- URL:
[HOST-URL]/scim/Users - メソッド:
POST
パラメーター
例
- ユーザー作成リクエスト (専用クラウド/セルフマネージド)
- ユーザー作成リクエスト (Multi-tenant)
応答
- ユーザー作成の応答(専用クラウド/セルフマネージド)
- ユーザー作成の応答(Multi-tenant)
サービスアカウントをプロビジョニングする
組織内にチームスコープまたは組織スコープのサービスアカウントを作成します。このエンドポイントは、オートメーション、CI/CD、インテグレーションなど、人間のユーザーに紐付けるべきでない用途向けにヘッドレスなアイデンティティを作成する場合に使用します。通常のユーザーを作成する場合は、accountType を省略してください。詳しくは ユーザーを作成する を参照してください。
専用クラウドおよびセルフマネージド v0.81.0 以降、ならびに Multi-tenant Cloud で利用できます。
userNameにはサービスアカウント名を設定します。API はuserNameをアカウントの表示名として使用します。リクエストボディ内のdisplayNameフィールドは無視されます。- サービスアカウントでは
emailsは必須ではありません。 modelsSeatとweaveRoleは作成時にはサポートされていないため、指定すると400 Bad Requestが返されます。- サービスアカウントは、
PATCHやPUTによる更新や無効化はできません。また、SCIM を介して組織ロール、チームロール、Registry ロールを割り当てることもできません。プロビジョニング後に W&B アプリで APIキーを作成してください。
エンドポイント
- URL:
[HOST-URL]/scim/Users - メソッド:
POST
パラメーター
例
- チームサービスアカウントのプロビジョニングリクエスト
- 組織サービスアカウントのプロビジョニングリクエスト
応答
- チームサービスアカウントのプロビジョニングの応答
- 組織サービスアカウントのプロビジョニングの応答
accountType は ORG_SERVICE になります。
セルフマネージド のデプロイメントでは、organizationRole は member ではなく、アカウントタイプに応じて service または org_service になります。
応答で次のいずれかのエラーが返された場合は、リクエストに以下のような問題がないか確認してください。
409 Conflict: 同じサービスアカウントに対して、userNameキーがリクエスト内で重複しています。400 Bad Request: リクエストにdefaultTeamが指定されていないか、無効な値が設定されています。
サービスアカウントのデプロビジョニング
サービスアカウントとその組織メンバーシップを完全に削除します。オートメーションパイプラインを廃止した後など、サービスアカウントが不要になった場合にこのエンドポイントを使用します。この操作は完全な削除 (ハードデリート) であり、SCIM 経由でアカウントを再有効化することはできません。専用クラウド、セルフマネージド v0.81.0 以降、および Multi-tenant Cloud で利用できます。プロビジョニング時の応答、または ユーザーを取得 で取得したサービスアカウントの SCIM ユーザー
id を使用してください。デプロビジョニングしても、発行済みの APIキーは削除されません。必要に応じて、W&B アプリでキーを個別に失効させてください。エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
DELETE
パラメーター
例
- サービスアカウントのデプロビジョニングリクエスト
- サービスアカウントのデプロビジョニング応答
ユーザーの削除
組織からユーザーを完全に削除します。サービスアカウントを削除する方法については、サービスアカウントのデプロビジョニングを参照してください。エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
DELETE
パラメーター
例
- ユーザー削除リクエスト
- ユーザー削除の応答
ユーザーを一時的に無効化するには、
PATCH エンドポイントを使用する ユーザーの無効化 API を参照してください。ユーザーのメールアドレスを更新する
ユーザーのプライマリメールアドレスを更新します。 Multi-tenant Cloud ではサポートされません。Multi-tenant Cloud では、ユーザーのアカウントは組織の管理対象外です。エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
PATCH
パラメーター
例
- メールアドレス更新リクエスト
- メールアドレス更新の応答
ユーザーの表示名を更新する
ユーザーの表示名を更新します。 Multi-tenant Cloud ではサポートされていません。Multi-tenant Cloud では、ユーザーのアカウントが組織によって管理されないためです。エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
PATCH
パラメーター
例
- 表示名の更新リクエスト
- 表示名の更新応答
ユーザーの無効化
組織内のユーザーを無効化します。結果はデプロイメントタイプによって異なります。- 専用クラウド / セルフマネージド: ユーザーの
activeフィールドをfalseに設定します。無効化したユーザーが再び組織にアクセスできるようにするには、ユーザーの再有効化を参照してください。 - Multi-tenant Cloud: ユーザーを組織から削除します。ユーザーのアクセスを復元するには、そのユーザーを組織に再度追加してください。詳しくは、ユーザーを作成するを参照してください。Multi-tenant Cloud では、ユーザーのアカウントは組織の管理対象ではありません。
この操作はユーザー専用で、サービスアカウントには使用できません。サービスアカウントの無効化はサポートされていません。チームサービスアカウントは、W&B Team の設定で管理してください。
エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
PATCH
パラメーター
例
- ユーザーの無効化リクエスト(専用クラウド/セルフマネージド)
- ユーザーの無効化リクエスト(Multi-tenant)
応答
- ユーザーの無効化の応答(専用クラウド/セルフマネージド)
- ユーザーの無効化の応答(Multi-tenant)
ユーザーを再有効化する
組織内で以前に無効化されたユーザーを再有効化します。- 再有効化の対象はユーザーのみで、サービスアカウントは対象外です。サービスアカウントの再有効化はサポートされていません。サービスアカウントは W&B Team の設定で管理してください。
-
Multi-tenant Cloud では、ユーザーの再有効化はサポートされていません。ユーザーのアクセスを復元するには、そのユーザーを組織に再度追加してください。詳しくは ユーザーを作成する を参照してください。Multi-tenant Cloud では、ユーザーのアカウントは組織によって管理されません。ユーザーを再有効化しようとすると、HTTP
400エラーが返されます。応答本文のdetailフィールドは API から返された内容がそのまま表示されるため、旧来のプロダクト名が含まれている場合があります。
エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
PATCH
パラメーター
例
- ユーザー再有効化のリクエスト
- ユーザー再有効化の応答
組織ロールを割り当てる
ユーザーに組織レベルのロールを割り当てます。この操作はユーザーにのみ使用でき、サービスアカウントには使用できません。サービスアカウントでは、カスタムロールはサポートされていません。
エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
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 を割り当てても、ユーザーの modelsSeat や weaveRole は変更されません。例
- 組織ロール割り当てリクエスト
- 組織ロール割り当て応答
Models シートを更新する
ユーザーの Models シートを更新します。Multi-tenant Cloud、および v0.83.0 以降の専用クラウドとセルフマネージドでは、Registry アクセスは Models シートから切り離されています。ユーザーの
weaveRole が none 以外の場合、modelsSeat を none に設定しても Registry アクセスは失効しなくなりました。これらのデプロイメントで Registry アクセスを失効させるには、Registry アクセスを更新するを使用して registryAccess を none に設定してください。v0.82.0 以前の専用クラウドおよびセルフマネージドでは、Registry アクセスは引き続き modelsSeat と連動しています。これらのリリースで Registry アクセスを失効させるには、modelsSeat を none に設定してください。エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
PATCH
パラメーター
例
- Models シート更新のリクエスト
- Models シート更新の応答
Weave ロールを更新する
ユーザーの Weave ロールを更新します。エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
PATCH
パラメーター
例
- Weave ロール更新リクエスト
- Weave ロール更新の応答
Registry アクセスを更新する
ユーザーに対する組織レベルの Registry アクセスを付与または失効させます。この権限は Registry ロール (registryRoles) とは別のものです。Registry ロールは、ユーザーに権限が付与された後のRegistryごとの権限を制御します。
Multi-tenant Cloud、および v0.83.0 以降の専用クラウドとセルフマネージドでは、modelsSeat または weaveRole が none 以外のユーザーには、デフォルトで Registry の権限が付与されます。Models シートや Weave ロールを変更せずに Registry アクセスを失効させるには、registryAccess を none に設定します。
v0.82.0 以前の専用クラウドおよびセルフマネージドで Registry アクセスを失効させるには、Models シートを更新する を使用して modelsSeat を none に設定します。これらのリリースでは registryAccess 属性を使用できません。
作成時に registryAccess を省略した場合、ユーザーを読み取る際に、API がユーザーの modelsSeat と weaveRole から実効アクセス権を導出します。registryAccess の値を明示的に指定すると、この導出よりも優先されます。請求専用の組織ロールを持つユーザーには、この導出によって Registry アクセスは付与されません。
エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
PATCH
パラメーター
例
- Registry アクセス失効のリクエスト
- Registry アクセス失効の応答
チームロールを割り当てる
ユーザーにチームレベルのロールを割り当てます。この操作はユーザーにのみ適用され、サービスアカウントには使用できません。サービスアカウントではカスタムロールはサポートされていません。
エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
PATCH
パラメーター
例
- チームロール割り当てのリクエスト
- チームロール割り当ての応答
Registry への追加
Registry レベルのロールを割り当てて、ユーザーを Registry に追加します。この操作はユーザーにのみ適用され、サービスアカウントには使用できません。サービスアカウントではカスタムロールはサポートされていません。
エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
PATCH
パラメーター
例
- Registry への追加リクエスト
- Registry への追加応答
Registry から削除
ユーザーをRegistryから削除します。この操作は、特定のRegistryからユーザーを削除するものです。組織レベルの Registry アクセスは失効しません。Registry アクセスを完全に失効させるには、Registry アクセスを更新する を使用してください。
- 削除操作は RFC 7644 SCIM プロトコル仕様に準拠しています。特定のRegistryからユーザーを削除するにはフィルター構文
"registryRoles[registryName eq \"{registry_name}\"]"を、すべてのRegistryからユーザーを削除するには"registryRoles"を使用します。 - この操作はユーザーにのみ適用され、サービスアカウントには適用されません。サービスアカウントをRegistryから削除する場合は、W&B Team の設定から行ってください。
エンドポイント
- URL:
[HOST-URL]/scim/Users/{id} - メソッド:
PATCH
パラメーター
例
- Registry からの削除: リクエスト
- Registry からの削除: 応答
- すべてのレジストリからの削除: リクエスト
- すべてのレジストリからの削除: 応答
Group リソース
SCIM グループリソースは W&B Team に対応します。このセクションのエンドポイントを使用すると、アイデンティティプロバイダやオートメーションから、チームの作成、チームメンバーシップの管理、およびチームレベルのストレージの設定 (オプション) を行えます。IAM で SCIM グループを作成すると、対応する W&B Team が作成されます。その他の SCIM グループ操作は、このチームに対して実行されます。チームの作成時にカスタムストレージを設定するには、リクエストにstorageBucket を含めてください。
サービスアカウント
SCIM を使用して W&B Team を作成すると、組織レベルのサービスアカウントはすべて自動的にそのチームに追加されます。これは、サービスアカウントがチームのリソースに引き続きアクセスできるようにするためです。グループをフィルターする
/Groups エンドポイントはフィルターをサポートしており、特定のチームを検索できます。
サポートされるフィルター
/Groups エンドポイントでは、次のフィルターがサポートされています。
displayName eq "value": チームの表示名で絞り込みます。
例
チームを取得する
チームの一意の ID を指定して、チームの情報を取得します。エンドポイント
- URL:
[HOST-URL]/scim/Groups/{id} - メソッド:
GET
例
- リクエスト
- 応答
チームを一覧表示する
チームの一覧を取得します。エンドポイント
- URL:
[HOST-URL]/scim/Groups - メソッド:
GET
例
- リクエスト
- 応答
チームを作成
新しいチームリソースを作成します。エンドポイント
- URL:
[HOST-URL]/scim/Groups - メソッド:
POST
サポートされるフィールド
チームの作成時に
storageBucket オブジェクトを含めると、チームレベルの Bring your own bucket (BYOB) を設定できます。省略した場合、チームはデフォルトまたはインスタンスレベルのストレージを使用します。バケットのプロビジョニング (ポリシー、CORS、認証情報) とプロバイダーごとのストレージアドレスの形式については、BYOB ガイドを参照してください。storageBucket オブジェクトには次のサブフィールドがあります。
- 必須:
name(バケット名) 、provider(COREWEAVE、AWS、AZURE、GCP、MINIOのいずれか) 。値は大文字と小文字が区別されるため、表記どおり大文字で指定してください。 - オプション:
path(バケット内のパス接頭辞) 、kmsKeyId(暗号化用の KMS キー。AWS の場合など) 、awsExternalId(AWS のクロスアカウントアクセス用) 、azureTenantId(Azure テナント ID) 、azureClientId(Azure マネージド ID のクライアント ID) 。
provider に無効な値を指定すると、400 Bad Request が返され、許可された値を示す SCIM エラーが含まれます。
サンプル
以下のサンプルでは、カスタムストレージを使用せずにチームを作成する方法と、特定のプロバイダーの BYOB ストレージを使用してチームを作成する方法を示します。目的のストレージ設定のタブを選択するとリクエスト例が、応答 タブを選択すると応答例が表示されます。- リクエスト(BYOB なし)
- CoreWeave
- AWS S3
- Azure
- GCP
- 応答
チームを更新する
既存のチームのメンバー一覧を更新します。エンドポイント
- URL:
[HOST-URL]/scim/Groups/{id} - メソッド:
PATCH - サポートされる操作: メンバーの
add、メンバーのremove、メンバーのreplace
-
remove 操作は RFC 7644 SCIM プロトコル仕様に準拠しています。特定のユーザーを削除する場合はフィルター構文
members[value eq "{user_id}"]を、チームからすべてのユーザーを削除する場合はmembersを使用します。 ユーザーの識別: メンバー操作の{user_id}には、次のいずれかを指定できます。- W&B のユーザー ID
- メールアドレス (例: “user@example.com”)
- これらの操作はユーザーのみが対象で、サービスアカウントには適用されません。チームのサービスアカウントは、W&B Team の設定で更新してください。
リクエストでは、
{team_id} を実際のチーム ID に、{user_id} を実際のユーザー ID またはメールアドレスに置き換えてください。チームメンバーを置き換える
チームの全メンバーを新しいリストで置き換えます。この操作はユーザーにのみ有効で、サービスアカウントには適用されません。サービスアカウントは W&B Team の設定で管理してください。
エンドポイント
- URL:
[HOST-URL]/scim/Groups/{id} - メソッド:
PUT
- リクエスト
- 応答
チームにユーザーを追加する
dev-user2 を acme-devs に追加します。
この操作はユーザーにのみ適用でき、サービスアカウントには適用できません。サービスアカウントは W&B Team の設定で管理してください。
- リクエスト
- 応答
チームから特定のユーザーを削除する
acme-devs から dev-user2 を削除します。
この操作はユーザーにのみ使用でき、サービスアカウントには使用できません。サービスアカウントは W&B Team の設定で管理してください。
- リクエスト
- 応答
チームからすべてのユーザーを削除する
acme-devs からすべてのユーザーを削除します。
この操作はユーザーのみが対象で、サービスアカウントには適用されません。サービスアカウントは W&B Team の設定で管理してください。
- リクエスト
- 応答
チームを削除する
チームには他のデータも紐付いているため、SCIM API ではチームの削除はサポートされていません。W&B アプリからチームを削除し、関連するすべてのデータを削除してよいことを確認してください。Role リソース
SCIM の role リソースは W&B のカスタムロールに対応します。このセクションのエンドポイントを使用すると、カスタムロールをプログラムから作成および管理できます (たとえば、ロール定義をアクセスポリシーと同期させておく場合など) 。/Roles エンドポイントは公式の SCIM スキーマには含まれていません。W&B では、W&B 組織におけるカスタムロールの自動管理をサポートするために、独自に /Roles エンドポイントを追加しています。
カスタムロールを取得する
ロールの一意の ID を指定して、カスタムロールの情報を取得します。エンドポイント
- URL:
[HOST-URL]/scim/Roles/{id} - メソッド:
GET
例
- リクエスト
- 応答
カスタムロールを一覧表示する
W&B 組織内のすべてのカスタムロールに関する情報を取得します。エンドポイント
- URL:
[HOST-URL]/scim/Roles - メソッド:
GET
例
- リクエスト
- 応答
カスタムロールを作成する
W&B 組織に新しいカスタムロールを作成します。エンドポイント
- URL:
[HOST-URL]/scim/Roles - メソッド:
POST
サポートされるフィールド
例
- リクエスト
- 応答
カスタムロールを更新する
以下のセクションでは、既存のカスタムロールに対して権限を追加または削除する方法について説明します。ロールに権限を追加する
既存のカスタムロールに権限を追加します。- URL:
[HOST-URL]/scim/Roles/{id} - メソッド:
PATCH
- リクエスト
- 応答
ロールから権限を削除する
既存のカスタムロールから権限を削除します。- URL:
[HOST-URL]/scim/Roles/{id} - メソッド:
PATCH
- リクエスト
- 応答
カスタムロールを置き換える
カスタムロールの定義全体を置き換えます。エンドポイント
- URL:
[HOST-URL]/scim/Roles/{id} - メソッド:
PUT
- リクエスト
- 応答
カスタムロールを削除する
W&B の組織内のカスタムロールを削除します。この操作は慎重に使用してください。削除前にこのカスタムロールが割り当てられていたすべてのユーザーには、カスタムロールの継承元である事前定義ロールが再度割り当てられます。エンドポイント
- URL:
[HOST-URL]/scim/Roles/{id} - メソッド:
DELETE
例
- リクエスト
- 応答
高度な機能
以下のセクションでは、SCIM インテグレーションを本番環境で安全に動作させるためのオプション機能 (ETag ベースの同時実行制御と標準のエラー応答) について説明します。ETag のサポート
SCIM API は、同時変更による競合を防ぐため、ETag を使用した条件付き更新をサポートしています。複数の管理者や自動化システムが同じリソースを更新する場合、ある更新が別の更新を気付かないうちに上書きしてしまうのを防げるため、この機能は重要です。ETag は、ETag 応答ヘッダーと meta.version フィールドで返されます。
ETags
ETag を使用するには、次の手順に従います。- 現在の ETag を取得する: リソースを GET したときに、応答に含まれる ETag ヘッダーの値を控えておきます。
- 条件付き更新: 更新時に、その ETag を
If-Matchヘッダーに含めます。
例
412 Precondition Failed エラー応答は、リソースの取得後にそのリソースが変更されたことを示します。
エラー処理
SCIM API は標準の SCIM エラー応答を返します。デプロイメントタイプごとの実装の違い
W&B は 2 つの異なる SCIM API 実装を保守しており、それぞれで利用できる機能が異なります。SCIM と統合する前に次の表を参照し、必要な操作がお使いのデプロイメントタイプで利用できるかどうかを確認してください。制限事項
SCIM インテグレーションを設計する際は、以下の制約に留意してください。- 最大結果数: 1 回のリクエストあたり 9,999 件です。
- 専用クラウドおよびセルフマネージド: ユーザー 1 人につきサポートされるメールアドレスは 1 つのみです。
- チームの削除: SCIM ではサポートされていません (W&B の Web インターフェースを使用してください) 。
- ユーザーの再有効化: Multi-tenant Cloud 環境ではサポートされていません。
- シートの制限: 組織のシート数が上限に達している場合、操作が失敗することがあります。