SCIM を実際に使用するビデオを見る (12分)
<host-url>/scim/ でアクセス可能であり、RC7643 プロトコルに見られるフィールドのサブセットを持つ /Users と /Groups エンドポイントをサポートしています。さらに、公式の SCIM スキーマの一部ではない /Roles エンドポイントを含んでいます。W&B は /Roles エンドポイントを追加して、W&B 組織でのカスタムロールの自動管理をサポートしています。
複数の Enterprise SaaS Cloud 組織の管理者である場合、SCIM API リクエストが送信される組織を設定する必要があります。プロファイル画像をクリックし、User Settings をクリックします。設定名は Default API organization です。これは、Dedicated Cloud、Self-Managed instances、および SaaS Cloud を含むすべてのホスティングオプションで必要です。SaaS Cloud では、組織の管理者は SCIM API リクエストが正しい組織に行くように、ユーザー設定でデフォルトの組織を設定する必要があります。選択したホスティングオプションに応じて、このページの例で使用される 
<host-url> プレースホルダーの値が決まります。さらに、例では abc や def のようなユーザー ID が使用されています。実際のリクエストとレスポンスでは、ユーザー ID はハッシュ化された値を持っています。認証
組織またはインスタンスの管理者は、自分の API キーを使用した基本認証を利用して SCIM API にアクセスできます。HTTP リクエストのAuthorization ヘッダーを文字列 Basic の後にスペースを置き、その後のベース64エンコードされた文字列を username:API-KEY 形式に設定します。つまり、ユーザー名と API キーを : 文字で区切った後、その結果をベース64エンコードします。例えば、demo:p@55w0rd として認証するには、ヘッダーは Authorization: Basic ZGVtbzpwQDU1dzByZA== であるべきです。
ユーザーリソース
SCIM ユーザーリソースは W&B のユーザーにマップされます。ユーザーの取得
- エンドポイント: <host-url>/scim/Users/{id}
- メソッド: GET
- 説明: ユーザーの一意の ID を提供することにより、SaaS Cloud 組織または Dedicated Cloud または Self-Managed インスタンス内の特定のユーザーの情報を取得します。
- リクエスト例:
- レスポンス例:
ユーザーのリスト
- エンドポイント: <host-url>/scim/Users
- メソッド: GET
- 説明: SaaS Cloud 組織または Dedicated Cloud または Self-Managed インスタンス内のすべてのユーザーのリストを取得します。
- リクエスト例:
- レスポンス例:
ユーザーの作成
- エンドポイント: <host-url>/scim/Users
- メソッド: POST
- 説明: 新しいユーザーリソースを作成します。
- サポートされているフィールド:
| フィールド | 型 | 必要 | 
|---|---|---|
| emails | Multi-Valued Array | Yes (必ず primaryemail を設定してください) | 
| userName | 文字列型 | Yes | 
- リクエスト例:
- レスポンス例:
ユーザーの削除
- エンドポイント: <host-url>/scim/Users/{id}
- メソッド: DELETE
- 説明: ユーザーの一意の ID を提供することにより、SaaS Cloud 組織または Dedicated Cloud または Self-Managed インスタンスから完全にユーザーを削除します。必要に応じて Create user API を使用して組織またはインスタンスに再度ユーザーを追加してください。
- リクエスト例:
一時的にユーザーを無効化するには、
PATCH エンドポイントを使用する Deactivate user API を参照してください。- レスポンス例:
ユーザーの無効化
- エンドポイント: <host-url>/scim/Users/{id}
- メソッド: PATCH
- 説明: ユーザーの一意の ID を提供することにより、Dedicated Cloud または Self-Managed インスタンス内で一時的にユーザーを無効化します。必要に応じて Reactivate user API を使用してユーザーを再有効化します。
- サポートされているフィールド:
| フィールド | 型 | 必要 | 
|---|---|---|
| op | 文字列型 | 操作のタイプ。許可される唯一の値は replaceです。 | 
| value | オブジェクト型 | オブジェクト {"active": false}を示し、ユーザーが無効化されるべきことを示します。 | 
SaaS Cloud では、ユーザーの無効化および再有効化の操作はサポートされていません。
- リクエスト例:
- レスポンス例: この操作はユーザーオブジェクトを返します。
ユーザーの再有効化
- エンドポイント: <host-url>/scim/Users/{id}
- メソッド: PATCH
- 説明: ユーザーの一意の ID を提供することにより、Dedicated Cloud または Self-Managed インスタンス内で無効化されたユーザーを再有効化します。
- サポートされているフィールド:
| フィールド | 型 | 必要 | 
|---|---|---|
| op | 文字列型 | 操作のタイプ。許可される唯一の値は replaceです。 | 
| value | オブジェクト型 | オブジェクト {"active": true}を示し、ユーザーが再有効化されるべきことを示します。 | 
SaaS Cloud では、ユーザーの無効化および再有効化の操作はサポートされていません。
- リクエスト例:
- レスポンス例: この操作はユーザーオブジェクトを返します。
組織レベルのロールをユーザーに割り当てる
- エンドポイント: <host-url>/scim/Users/{id}
- メソッド: PATCH
- 説明: 組織レベルのロールをユーザーに割り当てます。このロールは、ここで説明されているように admin、viewerまたはmemberのいずれかになります (こちらを参照)。 SaaS Cloud では、ユーザー設定で SCIM API の正しい組織を設定することを確認してください。
- サポートされているフィールド:
| フィールド | 型 | 必要 | 
|---|---|---|
| op | 文字列型 | 操作のタイプ。許可される唯一の値は replaceです。 | 
| path | 文字列型 | ロール割り当て操作が影響を及ぼすスコープ。許可される唯一の値は organizationRoleです。 | 
| value | 文字列型 | ユーザーに割り当てる予定の定義済みの組織レベルのロール。それは admin、viewerまたはmemberのいずれかです。このフィールドは定義済みロールに対して大文字小文字を区別しません。 | 
- リクエスト例:
- レスポンス例: この操作はユーザーオブジェクトを返します。
チームレベルのロールをユーザーに割り当てる
- エンドポイント: <host-url>/scim/Users/{id}
- メソッド: PATCH
- 説明: チームレベルのロールをユーザーに割り当てます。このロールは、ここで説明されているように admin、viewer、memberまたはカスタムロールのいずれかになります (こちらを参照)。 SaaS Cloud では、ユーザー設定で SCIM API の正しい組織を設定することを確認してください。
- サポートされているフィールド:
| フィールド | 型 | 必要 | 
|---|---|---|
| op | 文字列型 | 操作のタイプ。許可される唯一の値は replaceです。 | 
| path | 文字列型 | ロール割り当て操作が影響を及ぼすスコープ。許可される唯一の値は teamRolesです。 | 
| value | オブジェクト配列型 | 1つのオブジェクトを持つ配列で、そのオブジェクトは teamNameとroleName属性を持ちます。teamNameはユーザーがそのロールを持つチームの名前であり、roleNameはadmin、viewer、memberまたはカスタムロールのいずれかです。このフィールドは定義済みロールに対して大文字小文字を区別しませんが、カスタムロールに対しては区別します。 | 
- リクエスト例:
- レスポンス例: この操作はユーザーオブジェクトを返します。
グループリソース
SCIM グループリソースは W&B のチームにマップされます。つまり、W&B デプロイメントで SCIM グループを作成すると W&B チームが作成されます。その他のグループエンドポイントにも同様です。チームの取得
- エンドポイント: <host-url>/scim/Groups/{id}
- メソッド: GET
- 説明: チームの一意の ID を提供してチーム情報を取得します。
- リクエスト例:
- レスポンス例:
チームのリスト
- エンドポイント: <host-url>/scim/Groups
- メソッド: GET
- 説明: チームのリストを取得します。
- リクエスト例:
- レスポンス例:
チームの作成
- エンドポイント: <host-url>/scim/Groups
- メソッド: POST
- 説明: 新しいチームリソースを作成します。
- サポートされているフィールド:
| フィールド | 型 | 必要 | 
|---|---|---|
| displayName | 文字列型 | Yes | 
| members | Multi-Valued Array | Yes ( valueサブフィールドが必要で、ユーザー ID にマップされます) | 
- リクエスト例:
wandb-support というチームを作成し、そのメンバーとして dev-user2 を設定します。
- レスポンス例:
チームの更新
- エンドポイント: <host-url>/scim/Groups/{id}
- メソッド: PATCH
- 説明: 既存のチームのメンバーシップリストを更新します。
- サポートされている操作: メンバーの追加、メンバーの削除
- リクエスト例:
wandb-devs に dev-user2 を追加する
- レスポンス例:
チームの削除
- SCIM API では、チームには追加データがリンクされているため、現在チームの削除はサポートされていません。削除を確認するにはアプリからチームを削除してください。
ロールリソース
SCIM ロールリソースは W&B のカスタムロールにマップされます。前述したように、/Roles エンドポイントは公式 SCIM スキーマの一部ではありません。W&B は W&B 組織内のカスタムロールの自動管理をサポートするために /Roles エンドポイントを追加しています。
カスタムロールの取得
- エンドポイント: <host-url>/scim/Roles/{id}
- メソッド: GET
- 説明: ロールの一意の ID を提供し、カスタムロールの情報を取得します。
- リクエスト例:
- レスポンス例:
カスタムロールの一覧
- エンドポイント: <host-url>/scim/Roles
- メソッド: GET
- 説明: W&B 組織のすべてのカスタムロールの情報を取得します
- リクエスト例:
- レスポンス例:
カスタムロールの作成
- エンドポイント: <host-url>/scim/Roles
- メソッド: POST
- 説明: W&B 組織内で新しいカスタムロールを作成します。
- サポートされているフィールド:
| フィールド | 型 | 必要 | 
|---|---|---|
| name | 文字列型 | カスタムロールの名前 | 
| description | 文字列型 | カスタムロールの説明 | 
| permissions | オブジェクト配列型 | 各オブジェクトが name文字列フィールドを含む許可オブジェクトの配列で、そのフィールドはw&bobject:operationの形式を持ちます。例えば、W&B Run に対する削除操作の許可オブジェクトはnameをrun:deleteとして持ちます。 | 
| inheritedFrom | 文字列型 | カスタムロールが継承する定義済みロール。それは memberまたはviewerのいずれかになります。 | 
- リクエスト例:
- レスポンス例:
カスタムロールの削除
- エンドポイント: <host-url>/scim/Roles/{id}
- メソッド: DELETE
- 説明: W&B 組織内のカスタムロールを削除します。慎重に使用してください。 カスタムロールから継承される定義済みロールは、操作前にカスタムロールに割り当てられていたすべてのユーザーに再び割り当てられます。
- リクエスト例:
- レスポンス例:
カスタムロールの権限の更新
- エンドポイント: <host-url>/scim/Roles/{id}
- メソッド: PATCH
- 説明: W&B 組織内のカスタムロールにカスタム権限を追加または削除します。
- サポートされているフィールド:
| フィールド | 型 | 必要 | 
|---|---|---|
| operations | オブジェクト配列型 | 操作オブジェクトの配列 | 
| op | 文字列型 | 操作オブジェクト内の操作のタイプ。それは addまたはremoveのいずれかになります。 | 
| path | 文字列型 | 操作オブジェクト内の静的フィールド。許可される唯一の値は permissionsです。 | 
| value | オブジェクト配列型 | 各オブジェクトが name文字列フィールドを含む許可オブジェクトの配列で、そのフィールドはw&bobject:operationの形式を持ちます。例えば、W&B Run に対する削除操作の許可オブジェクトはnameをrun:deleteとして持ちます。 | 
- リクエスト例:
- レスポンス例:
カスタムロールメタデータの更新
- エンドポイント: <host-url>/scim/Roles/{id}
- メソッド: PUT
- 説明: W&B 組織内のカスタムロールの名前、説明、または継承ロールを更新します。この操作は、既存の、つまり非継承のカスタム権限には影響しません。
- サポートされているフィールド:
| フィールド | 型 | 必要 | 
|---|---|---|
| name | 文字列型 | カスタムロールの名前 | 
| description | 文字列型 | カスタムロールの説明 | 
| inheritedFrom | 文字列型 | カスタムロールが継承する定義済みロール。それは memberまたはviewerのいずれかになります。 | 
- リクエスト例:
- レスポンス例: