# ユーザープロビジョニング（SCIM）

> [!WARNING]
> この機能は、EnterpriseおよびEnterprise Plusプランの一部です。

SCIM (System for Cross-domain Identity Management)は、ユーザーのプロビジョニングを自動化するための標準規格です。これにより、Identity Provider (IdP)をHugging Faceに接続し、組織のメンバーを管理できます。

SCIMの動作は、SSOモデルによって異なります。詳細な比較については、[SSO概要](./enterprise-sso#user-provisioning-scim)を参照してください。

## 基本SSO: 招待ベースのプロビジョニング

[Basic SSO](./security-sso-basic)（Enterpriseプラン）では、SCIMを使用して、既存のHugging Faceユーザーを組織への**招待**を自動化できます。

- SCIM経由でプロビジョニングを行うには、ユーザーは事前に**Hugging Faceアカウントを持っている必要があります**
- IdPがユーザーをプロビジョニングすると、Hugging Faceは組織への参加を促す**招待メール**を送信します
- ユーザーはメンバーになるために**招待を承認**する必要があります。プロビジョニングでは即座にアクセス権が与えられません。
- SCIM **は**ユーザーのプロファイル情報（名前、メールアドレス、ユーザー名）を変更できません。ユーザーは自分の Hugging Face アカウントを完全に管理し続けます。
- ユーザーが IdP でプロビジョニング解除されると、その招待は無効化され、組織へのアクセス権が取り消されます

## 管理型SSO: 完全なライフサイクルプロビジョニング

[Managed SSO](./enterprise-advanced-sso)（Enterprise Plus プラン）では、SCIM が Hugging Face 上の**ユーザーのライフサイクル全体**を管理します。

- SCIMはユーザーのプロビジョニング時に**新しいHugging Faceアカウントを作成します**。既存のアカウントは不要です。
- ユーザーは招待の手順を省略し、**即座に**組織のメンバーとして追加されます
- SCIM **は**、IdPで変更が発生した際に、ユーザーのプロファイル情報（名前、メールアドレス、ユーザー名）を更新できます
- ユーザーが IdP でプロビジョニング解除されると、その Hugging Face アカウントは無効化され、アクセス権限は取り消されます

## SCIMを有効にする方法

SCIMを有効にするには、組織の設定に移動し、**SSO**タブを開いた後、**SCIM**サブタブを選択してください。

**SCIM Tenant URL**と、**SCIM token**を生成するためのボタンが表示されます。これら両方が必要になります。SCIM tokenはシークレット（秘密情報）であるため、IdPの設定内で安全に保管してください。

    
    

IdPでSCIMが有効になると、プロビジョニングされたユーザーは組織設定の**Users Management**タブに、プロビジョニングされたグループは**SCIM**タブに表示されます。

## グループプロビジョニング

ユーザープロビジョニングに加えて、SCIMは**グループプロビジョニング**をサポートしています。IdPからプッシュされたグループはHugging Face上でSCIMグループとして保存され、組織の設定の**SCIM**タブから[リソースグループ](./enterprise-resource-groups)にリンクできます。

### SCIMグループをリソースグループにリンクする

SCIMグループをリンクするには、組織の**SSO → SCIM**タブに移動します。プロビジョニングされたグループはテーブルにリスト表示されます。**Resource Groups**列では、各グループについて、まだリンクが存在しない場合は**Link resource groups**ボタンが、存在する場合は現在リンクされているリソースグループの数（例: "2 resource groups"）が表示されます。どちらをクリックしても、1つ以上のリソースグループを追加できるモーダルが開きます。各グループには独自のロール割り当てを設定できます。また、同じモーダルから既存のリンクを変更または削除することもできます。

リンクする前に、以下の条件が満たされていることを確認してください。

- Resource Groupには**既存のメンバーが存在しない**必要があります。メンバーが存在するResource Groupへのリンクは許可されていません。
- Resource Group には **自動参加が有効になっていない** 必要があります。自動参加（組織の新しいメンバーをすべて RG に自動的に追加する機能）は、SCIM 管理と排他的です。リンクする前に、RG の自動参加を無効にしてください。

SCIMグループは、それぞれ固有のロールを持つ複数のResource Groupにリンクできます。

### リンク後の処理

SCIMグループがリソースグループにリンクされると:

- **バックフィル**: SCIMグループに既に存在するメンバーは、設定されたロールで即座にリソースグループに追加されます。
- **継続的な同期**: IdPでのメンバーシップの変更は自動的に反映されます:
  - ユーザーがIdPのグループに**追加**されると、すべてのリンクされたリソースグループに追加されます。
  - ユーザーが IdP のグループから**削除**されると、他の SCIM グループを介してリンクされているものを除き、すべてのリンクされた Resource Group から削除されます。他の SCIM グループを介してリンクされている Resource Group については、ユーザーのロールが、他の SCIM グループによって付与された「最上位」のロールに更新されます。
  - IdPでSCIMグループが**削除**されると、他のSCIMグループを通じてそのResource Groupに属しているユーザーを除き、すべてのメンバーがリンクされたResource Groupから削除されます。該当する各Resource Groupについて、ユーザーのロールは、他のSCIMグループによって付与された「最上位」のロールに更新されます。
- **ロールの変更**: リンク上のロールを更新すると、そのリソースグループ内の現在のグループメンバー全員が、即座にそのロールに更新されます。

### SCIM管理のリソースグループ

SCIMグループにリンクされたリソースグループは、**SCIM管理**とみなされます。IdPはその通常ユーザーの唯一の信頼できる情報源です。その結果:

- 通常ユーザーに対して、Hub UIまたはAPIによる手動のメンバーシップ変更は**ブロック**されています。SCIM管理のResource Groupにおいて、通常ユーザーの追加、削除、またはロール変更を試みると、`403`エラーが返されます。
- [Service accounts](./enterprise-service-accounts)は例外です。SCIMを介してプロビジョニングされることは決してないため、SCIM管理のResource Group上で、Service accountの追加、削除、ロールの変更を手動で行うことができます。
- SCIMで管理されているResource Groupでは、**自動参加を有効にできません**。自動参加を再有効化するには、まずSCIMリンクを削除してください。

Resource Group の設定画面では、SCIM 管理の Resource Group には **SCIM synced** バッジが表示され、メンバーシップのフォームには、手動で追加または削除できるのはサービスアカウントのみであることが記載されています。

グループプロビジョニングは、Basic SSOとManaged SSOの両方で同じ方法で機能します。

## サポートされているユーザー属性

Hugging FaceのSCIMエンドポイントは、以下のユーザー属性をサポートしています:

| 属性 | 説明 | 基本的なSSO | 管理されたSSO |
| --- | --- | --- | --- |
| `userName` | Hugging Face ユーザー名 | 読み取り専用 | 読み書き |
| `name.givenName` | 名 | 読み取り専用 | 読み書き |
| `name.familyName` | 姓 | 読み取り専用 | 読み書き |
| `emails[type eq "work"].value` | メールアドレス | 読み取り専用 | 読み書き |
| `externalId` | IdPが割り当てた識別子 | 読み書き | 読み書き |
| `active` | ユーザーがアクティブメンバーかどうか | 読み書き | 読み書き |

Basic SSOでは、SCIM経由で変更できるのは`active`と`externalId`のみです。その他の属性は、ユーザーがHugging Faceアカウント上で管理します。

グループプロビジョニングでは、サポートされている属性は`displayName`、`members`、`externalId`です。

## デプロビジョニング

Deprovisioningの動作は、ユーザーが削除される方法と、使用するSSOモデルによって異なります。

**`active` を `false` に設定する**（ソフトデプロビジョニング）:

- ユーザーは組織へのアクセスを失います
- Basic SSOの場合: 招待は無効化されます
- Managed SSOの場合: ユーザーは組織から削除されますが、アカウントとコンテンツは保持されます — `active`を`true`に戻すことで、この操作は**取り消す**ことができます

**SCIMによるユーザーの削除**（ハードデプロビジョニング）：

- Basic SSOの場合: ユーザーは組織およびそのすべてのリソースグループから削除されます。Hugging Faceアカウントおよび個人コンテンツには**影響を与えません**。単に、あなたの組織のメンバーシップを失うだけです。
- Managed SSOの場合: ユーザーのHugging Faceアカウントは、ユーザーが作成したすべてのコンテンツとともに**恒久的に削除**されます。この操作は**取り消すことができません**。

## サポートされているIdentity Provider

SCIM 2.0プロトコルを実装しているIdPであれば、SCIMをサポートしています。最も人気のあるプロバイダーの一部については、個別のガイドをご用意しています:
- [Microsoft Entra IDでSCIMを設定する方法](./security-sso-entra-id-scim)
- [OktaでSCIMを設定する方法](./security-sso-okta-scim)

