Skip to content

Commit 7b1eff9

Browse files
Restructure SSO & SCIM documentation (#2253)
1 parent 337d4e4 commit 7b1eff9

19 files changed

+406
-259
lines changed

docs/hub/_toctree.yml

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@
77
sections:
88
- local: enterprise-sso
99
title: Single Sign-On (SSO)
10-
- local: enterprise-advanced-sso
11-
title: Advanced Single Sign-On (SSO)
12-
- local: enterprise-scim
13-
title: User Provisioning (SCIM)
1410
- local: audit-logs
1511
title: Audit Logs
1612
- local: storage-regions
@@ -480,22 +476,33 @@
480476
- local: security-sso
481477
title: Single Sign-On (SSO)
482478
sections:
483-
- local: security-sso-okta-oidc
484-
title: How to configure OIDC with Okta
485-
- local: security-sso-okta-saml
486-
title: How to configure SAML with Okta
487-
- local: security-sso-okta-scim
488-
title: How to configure SCIM with Okta
489-
- local: security-sso-azure-saml
490-
title: How to configure SAML with EntraID (Azure AD)
491-
- local: security-sso-azure-oidc
492-
title: How to configure OIDC with EntraID (Azure AD)
493-
- local: security-sso-entra-id-scim
494-
title: How to configure SCIM with EntraID (Azure AD)
495-
- local: security-sso-google-saml
496-
title: How to configure SAML with Google Workspace
497-
- local: security-sso-google-oidc
498-
title: How to configure OIDC with Google Workspace
479+
- local: security-sso-basic
480+
title: Basic SSO
481+
- local: enterprise-advanced-sso
482+
title: Managed SSO
483+
- local: security-sso-user-management
484+
title: User Management
485+
- local: enterprise-scim
486+
title: User Provisioning (SCIM)
487+
- local: security-sso-configuration-guides
488+
title: Configuration Guides
489+
sections:
490+
- local: security-sso-okta-oidc
491+
title: How to configure OIDC with Okta
492+
- local: security-sso-okta-saml
493+
title: How to configure SAML with Okta
494+
- local: security-sso-okta-scim
495+
title: How to configure SCIM with Okta
496+
- local: security-sso-azure-saml
497+
title: How to configure SAML with EntraID (Azure AD)
498+
- local: security-sso-azure-oidc
499+
title: How to configure OIDC with EntraID (Azure AD)
500+
- local: security-sso-entra-id-scim
501+
title: How to configure SCIM with EntraID (Azure AD)
502+
- local: security-sso-google-saml
503+
title: How to configure SAML with Google Workspace
504+
- local: security-sso-google-oidc
505+
title: How to configure OIDC with Google Workspace
499506
- local: security-resource-groups
500507
title: Advanced Access Control (Resource Groups)
501508
- local: programmatic-user-access-control
Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,30 @@
1-
# Advanced Single Sign-On (SSO)
1+
# Managed SSO
22

33
> [!WARNING]
44
> This feature is part of the <a href="https://huggingface.co/contact/sales?from=enterprise" target="_blank">Enterprise Plus</a> plan.
55
6-
Advanced Single Sign-On (SSO) capabilities extend the standard [SSO features](./security-sso) available in Team & Enterprise plans, offering enhanced control and automation for user management and access across the entire Hugging Face platform for your organization members.
6+
Managed SSO **replaces the Hugging Face login entirely**. Your Identity Provider becomes the sole authentication method for your organization's members across the entire Hugging Face platform. The organization controls the full user lifecycle, from account creation to deactivation.
77

8-
## User Provisioning
8+
For a comparison with Basic SSO, see the [SSO overview](./enterprise-sso).
99

10-
Advanced SSO introduces automated user provisioning, which simplifies the onboarding and offboarding of users.
10+
## How it works
1111

12-
* **Just-In-Time (JIT) Provisioning**: When a user from your organization attempts to log in to Hugging Face for the first time via SSO, an account can be automatically created for them if one doesn't already exist. Their profile information and role mappings can be populated based on attributes from your IdP.
12+
> [!NOTE]
13+
> **Managed SSO replaces the Hugging Face login.** Your IdP is the only way for managed users to authenticate on Hugging Face — there is no separate Hugging Face login. Unlike Basic SSO, members do not need a pre-existing Hugging Face account. When a user authenticates through your IdP for the first time, an account is automatically created for them.
1314
14-
<div class="flex justify-center">
15-
<img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/sso/jit-flow-chart.png"/>
16-
<img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/sso/jit-flow-chart-dark.png"/>
17-
</div>
15+
Your IdP is the mandatory authentication route for all your organization's members interacting with any part of the Hugging Face platform. Members are required to authenticate via your IdP for all Hugging Face services, not just when accessing private or organizational repositories.
16+
17+
When a user is deactivated in your IdP, their Hugging Face account is deactivated as well. This gives your organization complete control over identity, access, and data governance.
18+
19+
## Getting started
1820

19-
* **System for Cross-domain Identity Management (SCIM)**: For more robust user lifecycle management, SCIM allows your IdP to communicate user identity information to Hugging Face. This enables automatic creation, updates (e.g., name changes, role changes), and deactivation of user accounts on Hugging Face as changes occur in your IdP. This ensures that user access is always up-to-date with their status in your organization.
21+
Managed SSO cannot be self-configured. To enable Managed SSO for your organization, please <a href="https://huggingface.co/contact/sales?from=enterprise" target="_blank">contact the Hugging Face team</a>. The setup is done in collaboration with our technical team to ensure a smooth transition for your organization.
22+
23+
Both SAML 2.0 and OIDC protocols are supported and can be integrated with popular identity providers such as Okta, Microsoft Entra ID (Azure AD), and Google Workspace.
24+
25+
## User provisioning
26+
27+
Managed SSO introduces automated user provisioning through [SCIM](./enterprise-scim), which manages the entire user lifecycle on Hugging Face. SCIM allows your IdP to communicate user identity information to Hugging Face, enabling automatic creation, updates (e.g., name changes, role changes), and deactivation of user accounts as changes occur in your IdP.
2028

2129
<div class="flex justify-center">
2230
<img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/sso/scim-flow-chart.png"/>
@@ -25,21 +33,19 @@ Advanced SSO introduces automated user provisioning, which simplifies the onboar
2533

2634
Learn more about how to set up and manage SCIM in our [dedicated guide](./enterprise-scim).
2735

28-
## Global SSO Enforcement
29-
30-
Beyond gating access to specific organizational content, Advanced SSO can be configured to make your IdP the mandatory authentication route for all your organization's members interacting with any part of the Hugging Face platform. Your organization's members will be required to authenticate via your IdP for all Hugging Face services, not just when accessing private or organizational repositories.
36+
## SSO features
3137

32-
This feature is particularly beneficial for organizations requiring a higher degree of control, security, and automation in managing their users on Hugging Face.
38+
Managed SSO supports [role mapping, resource group mapping, session timeout, and external collaborators](./security-sso-user-management). These features are configurable from your organization's settings.
3339

34-
## Limitations on Managed User Accounts
40+
## Restrictions on managed accounts
3541

3642
> [!WARNING]
37-
> Important Considerations for Managed Accounts.
43+
> Important considerations for managed accounts.
3844
39-
To ensure organizational control and data governance, user accounts provisioned and managed via Advanced SSO ("managed user accounts") have specific limitations:
45+
To ensure organizational control and data governance, managed user accounts have specific restrictions:
4046

41-
* **No Personal Content Creation**: Managed users cannot create any content (models, datasets, or Spaces) in their personal user namespace. All content must be created within the Organization.
42-
* **Organization-Bound Collaboration**: Managed users are restricted to collaborating solely within their managing Organization. They cannot join other organizations or contribute to repositories outside of their managing Organization.
43-
* **Content Visibility**: Content created by managed users resides within the Organization. While the managed users cannot create public content in their personal profile, they can **create public content within the Organization** if the Organization's settings permit it.
47+
* **No personal content creation**: Managed users cannot create any content (models, datasets, or Spaces) in their personal user namespace. All content must be created within the organization.
48+
* **Organization-bound collaboration**: Managed users are restricted to collaborating solely within their managing organization. They cannot join other organizations or contribute to repositories outside of their managing organization.
49+
* **Content visibility**: Content created by managed users resides within the organization. While the managed users cannot create public content in their personal profile, they can **create public content within the organization** if the organization's settings permit it.
4450

4551
These restrictions maintain your enterprise's security boundaries. For personal projects or broader collaboration outside your organization, members should use a separate, unmanaged Hugging Face account.

docs/hub/enterprise-resource-groups.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@ Resource Groups allow organizations to enforce fine-grained access control to th
99
<img
1010
class="block dark:hidden m-0!"
1111
src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/enterprise/resource-groups.png"
12-
alt="screenshot of Hugging Face Single Sign-On (SSO) feature"
12+
alt="screenshot of Hugging Face Resource Groups feature"
1313
/>
1414
<img
1515
class="hidden dark:block m-0!"
1616
src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/enterprise/dark-resource-groups.png"
17-
alt="screenshot of Hugging Face Single Sign-On (SSO) feature"
17+
alt="screenshot of Hugging Face Resource Groups feature"
1818
/>
1919
</div>
2020

docs/hub/enterprise-scim.md

Lines changed: 69 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,89 @@
11
# User Provisioning (SCIM)
22

33
> [!WARNING]
4-
> This feature is part of the <a href="https://huggingface.co/contact/sales?from=enterprise" target="_blank">Enterprise Plus</a> plan.
4+
> This feature is part of the <a href="https://huggingface.co/enterprise">Enterprise</a> and <a href="https://huggingface.co/contact/sales?from=enterprise" target="_blank">Enterprise Plus</a> plans.
55
6-
SCIM, or System for Cross-domain Identity Management, is a standard for automating user provisioning. It allows you to connect your Identity Provider (IdP) to Hugging Face to automatically manage your organization's members.
6+
SCIM (System for Cross-domain Identity Management) is a standard for automating user provisioning. It allows you to connect your Identity Provider (IdP) to Hugging Face to manage your organization's members.
77

8-
With SCIM, you can:
9-
- **Provision users**: Automatically create user accounts in your Hugging Face organization when they are assigned the application in your IdP.
10-
- **Update user attributes**: Changes made to user profiles in your IdP (like name or email) are automatically synced to Hugging Face.
11-
- **Provision groups**: Create groups in your Hugging Face organization based on groups in your IdP.
12-
- **Deprovision users**: Automatically deactivate user accounts in your Hugging Face organization when they are unassigned from the application or deactivated in your IdP.
8+
SCIM works differently depending on your SSO model. For a detailed comparison, see the [SSO overview](./enterprise-sso#user-provisioning-scim).
139

14-
This ensures that your Hugging Face organization's member list is always in sync with your IdP, streamlining user lifecycle management and improving security.
10+
## Basic SSO: invitation-based provisioning
11+
12+
With [Basic SSO](./security-sso-basic) (Enterprise plan), SCIM automates the **invitation** of existing Hugging Face users to your organization.
13+
14+
- Users **must already have a Hugging Face account** before they can be provisioned via SCIM
15+
- When your IdP provisions a user, Hugging Face sends them an **invitation email** to join the organization
16+
- The user must **accept the invitation** to become a member — provisioning does not grant immediate access
17+
- SCIM **cannot modify** user profile information (name, email, username) — the user retains full control of their Hugging Face account
18+
- When a user is deprovisioned in your IdP, their invitation is deactivated and their access to the organization is revoked
19+
20+
## Managed SSO: full lifecycle provisioning
21+
22+
With [Managed SSO](./enterprise-advanced-sso) (Enterprise Plus plan), SCIM manages the **entire user lifecycle** on Hugging Face.
23+
24+
- SCIM **creates a new Hugging Face account** when a user is provisioned — no pre-existing account is needed
25+
- The user is **immediately added** to the organization as a member, with no invitation step
26+
- SCIM **can update** user profile information (name, email, username) as changes occur in your IdP
27+
- When a user is deprovisioned in your IdP, their Hugging Face account is deactivated and their access is revoked
1528

1629
## How to enable SCIM
1730

1831
To enable SCIM, go to your organization's settings, navigate to the **SSO** tab, and then select the **SCIM** sub-tab.
1932

20-
You will find the **SCIM Tenant URL** and a button to generate an **access token**. You will need both of these to configure your IdP. The SCIM token is a secret and should be stored securely in your IdP's configuration.
33+
You will find the **SCIM Tenant URL** and a button to generate a **SCIM token**. You will need both of these to configure your IdP. The SCIM token is a secret and should be stored securely in your IdP's configuration.
2134

2235
<div class="flex justify-center">
2336
<img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/sso/scim-settings.png"/>
2437
<img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/sso/scim-settings-dark.png"/>
2538
</div>
2639

27-
Once SCIM is enabled in your IdP, users and groups provisioned will appear in the "Users Management" and "SCIM" tabs respectively.
40+
Once SCIM is enabled in your IdP, provisioned users will appear in the **Users Management** tab and provisioned groups will appear in the **SCIM** tab in your organization's settings.
41+
42+
## Group provisioning
43+
44+
In addition to user provisioning, SCIM supports **group provisioning**. Groups pushed from your IdP are stored as SCIM groups on Hugging Face and can be linked to [Resource Groups](./enterprise-resource-groups) from the **SCIM** tab in your organization's settings.
45+
46+
When a SCIM group is linked to a Resource Group, membership changes are **automatically synchronized**:
47+
48+
- When a user is **added** to a group in your IdP, they are automatically added to the linked Resource Groups with the configured role.
49+
- When a user is **removed** from a group in your IdP, they are automatically removed from the linked Resource Groups.
50+
- When a SCIM group is **deleted** in your IdP, all of its members are removed from the linked Resource Groups.
51+
52+
This allows you to manage Resource Group membership entirely from your Identity Provider, without manual configuration on Hugging Face.
53+
54+
Group provisioning works the same way for both Basic SSO and Managed SSO.
55+
56+
## Supported user attributes
57+
58+
The Hugging Face SCIM endpoint supports the following user attributes:
59+
60+
| Attribute | Description | Basic SSO | Managed SSO |
61+
| --- | --- | --- | --- |
62+
| `userName` | Hugging Face username | Read-only | Read/Write |
63+
| `name.givenName` | First name | Read-only | Read/Write |
64+
| `name.familyName` | Last name | Read-only | Read/Write |
65+
| `emails[type eq "work"].value` | Email address | Read-only | Read/Write |
66+
| `externalId` | IdP-assigned identifier | Read/Write | Read/Write |
67+
| `active` | Whether the user is an active member | Read/Write | Read/Write |
68+
69+
With Basic SSO, only `active` and `externalId` can be modified via SCIM — all other attributes are controlled by the user on their Hugging Face account.
70+
71+
For group provisioning, the supported attributes are `displayName`, `members`, and `externalId`.
72+
73+
## Deprovisioning
74+
75+
Deprovisioning behavior depends on how the user is removed and which SSO model you use.
76+
77+
**Setting `active` to `false`** (soft deprovision):
78+
79+
- The user loses access to the organization
80+
- With Basic SSO: the invitation is deactivated
81+
- With Managed SSO: the user is removed from the organization but their account and content are preserved — this is **reversible** by setting `active` back to `true`
82+
83+
**Deleting the user via SCIM** (hard deprovision):
84+
85+
- With Basic SSO: the user is removed from the organization and all its resource groups. Their Hugging Face account and personal content are **not affected** — they simply lose membership in your organization.
86+
- With Managed SSO: the user's Hugging Face account is **permanently deleted**, along with all content they created. This action is **irreversible**.
2887

2988
## Supported Identity Providers
3089

0 commit comments

Comments
 (0)