メインコンテンツへスキップ
SCIM の動作を紹介する動画 をご覧ください (12 分)

概要

System for Cross-domain Identity Management (SCIM) API を使用すると、W&B インスタンスまたは組織の管理者は、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 Multi-tenant SaaS 組織の管理者である場合は、SCIM API リクエストを送信する組織を設定しておく必要があります。これにより、あなたの APIキー を使用して送信される SCIM API リクエストが正しい組織に対して行われるようになります。プロフィール画像をクリックし、User Settings をクリックして、Default API organization 設定を確認してください。選択したホスティングオプションに応じて、このページの例で使用される <host-url> プレースホルダの値が決まります。また、例では abcdef といったユーザー ID を使用しています。実際のリクエストおよびレスポンスでは、ユーザー ID にはハッシュ化された値が使用されます。

認証

主な違いを確認したうえで、ユーザー ID で認証するかサービスアカウントで認証するかを選択します。

主な違い

  • 想定される利用者: Users は対話的で一度きりの管理作業に最適で、サービスアカウントは自動化やインテグレーション(CI/CD、プロビジョニングツール)に最適です。
  • 認証情報: Users はユーザー名と APIキー を送信し、サービスアカウントは APIキー のみを送信します(ユーザー名なし)。
  • Authorization ヘッダーのペイロード: Users は username:API-KEY をエンコードし、サービスアカウントは :API-KEY(先頭にコロン)をエンコードします。
  • スコープと権限: どちらも管理者権限が必要です。サービスアカウントは組織スコープかつヘッドレスであり、自動化のためにより明確な監査証跡を提供します。
  • 認証情報の取得場所: Users は User Settings から自分の APIキー をコピーします。サービスアカウントキーは組織の Service account タブにあります。
  • Multi-tenant Cloud: 複数の Multi-tenant Cloud 組織へのアクセス権がある場合、SCIM API 呼び出しが意図した組織にルーティングされるように、「Default API organization」を必ず設定する必要があります。

Users

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

サービスアカウント

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

ユーザー管理

SCIM の user リソースは W&B のユーザーに対応します。これらのエンドポイントを使用して、組織内のユーザーを管理します。

ユーザーを取得

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

エンドポイント

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

パラメーター

ParameterTypeRequiredDescription
idstringYesユーザーを一意に識別する ID

GET /scim/Users/abc

ユーザー一覧の取得

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

ユーザーをフィルタリングする

/Users エンドポイントでは、ユーザー名またはメールアドレスでユーザーをフィルタリングできます:
  • userName eq "value" - ユーザー名でフィルタリング
  • emails.value eq "value" - メールアドレスでフィルタリング
GET /scim/Users?filter=userName eq "john.doe"
GET /scim/Users?filter=emails.value eq "john@example.com"

エンドポイント

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

GET /scim/Users

ユーザーの作成

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

エンドポイント

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

パラメーター

パラメーター必須説明
emailsarrayYesメールオブジェクトの配列。プライマリのメールアドレスを必ず含めてください
userNamestringYes新規ユーザーのユーザー名

POST /scim/Users
{
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "emails": [
        {
            "primary": true,
            "value": "dev-user2@example.com"
        }
    ],
    "userName": "dev-user2"
}

レスポンス

(Status 201)
{
    "active": true,
    "displayName": "Dev User 2",
    "emails": {
        "Value": "dev-user2@example.com",
        "Display": "",
        "Type": "",
        "Primary": true
    },
    "id": "def",
    "meta": {
        "resourceType": "User",
        "created": "2023-10-01T00:00:00Z",
        "location": "Users/def"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "userName": "dev-user2"
}

ユーザーを削除する

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

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • メソッド: DELETE

パラメーター

パラメーター必須説明
idstringYes削除するユーザーの一意の ID

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

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

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

エンドポイント

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

パラメーター

パラメーター必須説明
idstringYesユーザーの一意の ID
opstringYesreplace
pathstringYesemails
valuearrayYes新しいメールアドレスオブジェクトを含む配列

PATCH /scim/Users/abc
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "replace",
            "path": "emails",
            "value": [
                {
                    "value": "newemail@example.com",
                    "primary": true
                }
            ]
        }
    ]
}

ユーザー表示名の更新

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

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • メソッド: PATCH

パラメーター

パラメーター名必須説明
idstringYesユーザーの一意の ID
opstringYesreplace
pathstringYesdisplayName
valuestringYes新しい表示名

PATCH /scim/Users/abc
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "replace",
            "path": "displayName",
            "value": "John Doe"
        }
    ]
}

ユーザーの無効化

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

エンドポイント

  • URL: <host-url>/scim/Users/{id}
  • メソッド: PATCH

パラメーター

パラメーター必須説明
idstringYes無効化するユーザーの一意の ID
opstringYesreplace
valueobjectYes{"active": false} を持つオブジェクト

PATCH /scim/Users/abc
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "replace",
            "value": {"active": false}
        }
    ]
}

レスポンス

(Status 200)
{
    "active": false,
    "displayName": "Dev User 1",
    "emails": {
        "Value": "dev-user1@example.com",
        "Display": "",
        "Type": "",
        "Primary": true
    },
    "id": "abc",
    "meta": {
        "resourceType": "User",
        "created": "2023-10-01T00:00:00Z",
        "lastModified": "2023-10-01T00:00:00Z",
        "location": "Users/abc"
    },
    "schemas": [
        "urn:ietf:params:scim:schemas:core:2.0:User"
    ],
    "userName": "dev-user1"
}

ユーザーの再有効化

組織内で以前に無効化されたユーザーを再有効化します。
  • ユーザーの再有効化はユーザーに対してのみ有効で、サービスアカウントには対応していません。サービスアカウントの再有効化はサポートされていません。サービスアカウントは W&B Team の設定で管理してください。
  • ユーザーの再有効化は Multi-tenant Cloud ではサポートされていません。ユーザーのアクセスを復元するには、そのユーザーを組織に再度追加してください。Create user を参照してください。Multi-tenant Cloud では、ユーザーのアカウントは組織によって管理されません。ユーザーを再有効化しようとすると、HTTP 400 エラーが返されます:
    {
        "schemas": [
            "urn:ietf:params:scim:api:messages:2.0:Error"
        ],
        "detail": "User reactivation operations are not supported in SaaS Cloud",
        "status": "400"
    }
    

エンドポイント

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

パラメーター

ParameterTypeRequiredDescription
idstringYes再有効化するユーザーの一意のID
opstringYesreplace
valueobjectYes{"active": true} を持つオブジェクト

PATCH /scim/Users/abc
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "replace",
            "value": {"active": true}
        }
    ]
}

組織ロールの割り当て

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

エンドポイント

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

パラメーター

ParameterTypeRequiredDescription
idstringYesユーザーの一意の ID
opstringYesreplace
pathstringYesorganizationRole
valuestringYesロール名(admin または member
組織スコープの viewer ロールは非推奨であり、UI から新たに割り当てることはできません。SCIM を使用してユーザーに viewer ロールを割り当てた場合:
  • 組織内では member ロールが割り当てられます。
  • Models では full シートではなく viewer シートが割り当てられます。これにより、Models には閲覧専用でアクセスでき、Registry にはフルアクセスできます。利用可能な Models シートがない場合は「Seat limit reached」エラーが記録され、そのメンバーは Models へのアクセスなしで追加されます。シートが利用可能になれば後から更新できます。
  • Weave では full シートではなく viewer シートが割り当てられます。これにより、Weave には閲覧専用でアクセスできます。利用可能な Weave シートがない場合は「Seat limit reached」エラーが記録され、そのメンバーは Weave へのアクセスなしで追加されます。シートが利用可能になれば後から更新できます。
  • 組織レベルで表示可能なレジストリに対して、Registry の viewer ロールが割り当てられます。

PATCH /scim/Users/abc
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "replace",
            "path": "organizationRole",
            "value": "admin"
        }
    ]
}

チームロールの割り当て

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

エンドポイント

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

パラメーター

ParameterTypeRequiredDescription
idstringYesユーザーの一意の ID
opstringYesreplace を指定
pathstringYesteamRoles を指定
valuearrayYesteamNameroleName を含むオブジェクトの配列

PATCH /scim/Users/abc
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "replace",
            "path": "teamRoles",
            "value": [
                {
                    "roleName": "admin",
                    "teamName": "team1"
                }
            ]
        }
    ]
}

レジストリへの追加

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

エンドポイント

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

パラメーター

パラメーター必須説明
idstringYesユーザーの一意の ID
opstringYesadd
pathstringYesregistryRoles
valuearrayYesregistryNameroleName を持つオブジェクトの配列

PATCH /scim/Users/abc
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "replace",
            "path": "registryRoles",
            "value": [
                {
                    "roleName": "admin",
                    "registryName": "hello-registry"
                }
            ]
        }
    ]
}

レジストリから削除

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

エンドポイント

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

パラメーター

ParameterTypeRequiredDescription
idstringYesユーザーの一意の ID
opstringYesremove
pathstringYes"registryRoles[registryName eq \"{registry_name}\"]" または "registryRoles"

PATCH /scim/Users/abc
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "replace",
            "path": "registryRoles[registryName eq \"goodbye-registry\"]"
        }
    ]
}
PATCH /scim/Users/abc
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "replace",
            "path": "registryRoles"
        }
    ]
}

グループリソース

IAM で SCIM グループを作成すると、対応する W&B の Team が作成されてそのグループにマッピングされ、以降の SCIM グループ操作はその Team に対して実行されます。

サービスアカウント

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

グループのフィルタリング

/Groups エンドポイントでは、特定の Teams を検索するためのフィルタリングが可能です。

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

  • displayName eq "value" - チームの表示名でフィルタリングします

使用例

GET /scim/Groups?filter=displayName eq "engineering-team"

チームを取得

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

エンドポイント

  • URL: <host-url>/scim/Groups/{id}
  • メソッド: GET

GET /scim/Groups/ghi

Teams の一覧を取得する

Teams の一覧を取得します。

エンドポイント

  • URL: <host-url>/scim/Groups
  • メソッド: GET

GET /scim/Groups

チームの作成

  • Endpoint: <host-url>/scim/Groups
  • Method: POST
  • Description: 新しいチームリソースを作成します。
  • Supported Fields: サポートされているフィールド
FieldTypeRequired
displayNameStringはい
members複数値配列 (Multi-Valued Array)はい(value サブフィールドは必須で、ユーザー ID にマッピングされます)

メンバーとして dev-user2 を持つ wandb-support という名前のチームを作成します。
POST /scim/Groups
{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
    "displayName": "wandb-support",
    "members": [
        {
            "value": "def"
        }
    ]
}

チームを更新する

  • Endpoint: <host-url>/scim/Groups/{id}
  • Method: PATCH
  • Description: 既存のチームのメンバー一覧を更新します。
  • Supported Operations: メンバーの 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 の設定で管理します。
  • Endpoint: <host-url>/scim/Groups/{id}
  • Method: PUT
  • Description: チームのメンバーリスト全体を置き換えます。
PUT /scim/Groups/{team_id}
{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Group"],
    "displayName": "acme-devs",
    "members": [
        {
            "value": "{user_id_1}"
        },
        {
            "value": "{user_id_2}"
        }
    ]
}
ユーザーをチームに追加する acme-devsdev-user2 を追加する場合:
この操作はユーザーにのみ適用され、サービスアカウントには適用されません。サービスアカウントは W&B Team の設定で管理します。
PATCH /scim/Groups/{team_id}
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "add",
            "path": "members",
            "value": [
                {
                    "value": "{user_id}"
                }
            ]
        }
    ]
}
特定のユーザーをチームから削除する acme-devs から dev-user2 を削除する場合:
この操作はユーザーにのみ適用され、サービスアカウントには適用されません。サービスアカウントは W&B Team の設定で管理します。
PATCH /scim/Groups/{team_id}
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "remove",
            "path": "members[value eq \"{user_id}\"]"
        }
    ]
}
チームからすべてのユーザーを削除する acme-devs からすべてのユーザーを削除するには、次のようにします。
この操作はユーザーにのみ適用され、サービスアカウントには適用されません。サービスアカウントは W&B チームの設定で管理してください。
PATCH /scim/Groups/{team_id}
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "remove",
            "path": "members"
        }
    ]
}

チームの削除

  • Teams には追加の関連データが紐づいているため、現時点では SCIM API から Teams を削除することはできません。すべての関連データも含めて削除することを明示的に確認するために、アプリから Teams を削除してください。

ロールリソース

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

カスタムロールの取得

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

エンドポイント

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

GET /scim/Roles/abc

カスタムロールの一覧取得

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

エンドポイント

  • URL: <host-url>/scim/Roles
  • メソッド: GET

GET /scim/Roles

カスタムロールの作成

  • エンドポイント: <host-url>/scim/Roles
  • メソッド: POST
  • 説明: W&B の組織に新しいカスタムロールを作成します。
  • サポートされるフィールド:
FieldTypeRequired
nameStringカスタムロールの名前
descriptionStringカスタムロールの説明
permissionsObject array権限オブジェクトの配列。各オブジェクトには、w&bobject:operation 形式の値を持つ文字列フィールド name が含まれます。たとえば、W&B の run を削除する操作の権限オブジェクトでは、namerun:delete となります。
inheritedFromStringこのカスタムロールが継承する事前定義ロール。member または viewer のいずれかを指定します。

POST /scim/Roles
{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Role"],
    "name": "Sample custom role",
    "description": "A sample custom role for example",
    "permissions": [
        {
            "name": "project:update"
        }
    ],
    "inheritedFrom": "member"
}

カスタムロールの更新

ロールに権限を追加する

  • Endpoint: <host-url>/scim/Roles/{id}
  • Method: PATCH
  • Description: 既存のカスタムロールに権限を追加します。
PATCH /scim/Roles/{role_id}
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "add",
            "path": "permissions",
            "value": [
                {
                    "name": "project:delete"
                },
                {
                    "name": "run:stop"
                }
            ]
        }
    ]
}

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

  • Endpoint: <host-url>/scim/Roles/{id}
  • Method: PATCH
  • Description: 既存のカスタムロールから権限を削除します。
PATCH /scim/Roles/{role_id}
{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "remove",
            "path": "permissions",
            "value": [
                {
                    "name": "project:update"
                }
            ]
        }
    ]
}

カスタムロールを置換する

  • Endpoint: <host-url>/scim/Roles/{id}
  • Method: PUT
  • Description: カスタムロール定義全体を置き換えます。
PUT /scim/Roles/{role_id}
{
    "schemas": ["urn:ietf:params:scim:schemas:core:2.0:Role"],
    "name": "Updated custom role",
    "description": "Updated description for the custom role",
    "permissions": [
        {
            "name": "project:read"
        },
        {
            "name": "run:read"
        },
        {
            "name": "artifact:read"
        }
    ],
    "inheritedFrom": "viewer"
}

カスタムロールを削除する

W&B 組織内のカスタムロールを削除します。慎重に実行してください。この操作を行うと、カスタムロールの継承元となっていた事前定義ロールが、操作前にそのカスタムロールが割り当てられていたすべてのユーザーに再度割り当てられます。

エンドポイント

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

DELETE /scim/Roles/abc

高度な機能

ETag サポート

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

ETags

ETag を使用するには:
  1. 現在の ETag を取得: リソースを GET するとき、レスポンスの ETag ヘッダーを控えておきます
  2. 条件付き更新: 更新時に、その ETag を If-Match ヘッダーに含めます

# ユーザーを取得してETagを確認する
GET /scim/Users/abc
# レスポンスに含まれる: ETag: W/"xyz123"

# ETagを使用して更新する
PATCH /scim/Users/abc
If-Match: W/"xyz123"

{
    "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
    "Operations": [
        {
            "op": "replace",
            "path": "organizationRole",
            "value": "admin"
        }
    ]
}
412 Precondition Failed エラー応答は、リソースを取得してからその内容が変更されたことを示します。

エラー処理

SCIM API は標準的な SCIM エラー応答を返します:
ステータスコード説明
200成功
201作成
204コンテンツなし(削除に成功)
400不正なリクエスト - 無効なパラメータまたはリクエストボディ
401認証エラー - 認証に失敗
403アクセス拒否 - 権限が不足しています
404見つかりません - リソースが存在しません
409競合 - リソースがすでに存在します
412前提条件失敗 - ETag が一致しません
500サーバー内部エラー

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

W&B では 2 つの独立した SCIM API 実装を提供しており、それぞれで利用できる機能が異なります。
機能Dedicated CloudSelf-Managed
ユーザーのメールアドレスの更新-
ユーザーの表示名の更新-
ユーザーの無効化
ユーザーの再有効化-
ユーザーごとの複数メールアドレス対応-

制限事項

  • 最大結果数: リクエストごとに最大 9999 個のアイテムまで。
  • シングルテナント環境: 1 ユーザーあたりメールアドレスは 1 件のみサポートされます。
  • チーム削除: SCIM 経由ではサポートされません(W&B の Web インターフェースを使用してください)。
  • ユーザーの再有効化: マルチテナントクラウド環境ではサポートされていません。
  • シート上限: 組織のシート上限に達している場合は、操作が失敗することがあります。