-
Notifications
You must be signed in to change notification settings - Fork 373
add okta configuration steps for scim #1854
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 4 commits
dd8c080
5cf0f0d
92e7d88
f882828
dbf902b
5c9b1a1
7381121
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| @@ -0,0 +1,63 @@ | ||||||||||||||||||||||||||||||||||||
| # How to configure SCIM with Okta | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| This guide explains how to set up SCIM user and group provisioning between Okta and your Hugging Face organization using SCIM. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| <Tip warning={true}> | ||||||||||||||||||||||||||||||||||||
| This feature is part of the <a href="https://huggingface.co/contact/sales?from=enterprise" target="_blank">Enterprise Plus</a> plan. | ||||||||||||||||||||||||||||||||||||
| </Tip> | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ### Step 1: Get SCIM configuration from Hugging Face | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| 1. Navigate to your organization's settings page on Hugging Face. | ||||||||||||||||||||||||||||||||||||
| 2. Go to the **SSO** tab, then click on the **SCIM** sub-tab. | ||||||||||||||||||||||||||||||||||||
| 3. Copy the **SCIM Tenant URL**. You will need this for the Okta configuration. | ||||||||||||||||||||||||||||||||||||
| 4. Click **Generate an access token**. A new SCIM token will be generated. Copy this token immediately and store it securely, as you will not be able to see it again. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| <div class="flex justify-center"> | ||||||||||||||||||||||||||||||||||||
| <img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/sso/scim-settings.png"/> | ||||||||||||||||||||||||||||||||||||
| <img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/sso/scim-settings-dark.png"/> | ||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ### Step 2: Enter Admin Credentials | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| 1. In Okta, go to **Applications** and select your Hugging Face app. | ||||||||||||||||||||||||||||||||||||
| 2. Go to the **Provisioning** tab and click **Integration** from the side nav. | ||||||||||||||||||||||||||||||||||||
| 3. Check **Enable API Integration**. | ||||||||||||||||||||||||||||||||||||
| 4. Enter the **SCIM Tenant URL** as the Base URL. | ||||||||||||||||||||||||||||||||||||
| 5. Enter the **access token** you generated as the OAuth Bearer Token. | ||||||||||||||||||||||||||||||||||||
| 6. Click **Test API Credentials** to verify the connection. | ||||||||||||||||||||||||||||||||||||
| 7. Save your changes. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This flow assumes the use of an app from the catalog. Since our SSO guide involves creating a custom app, I believe the flow is a bit different. also adding a screenshot here would be nice I think
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. added more specific steps enabling scim after creating an app with the sso guide |
||||||||||||||||||||||||||||||||||||
| ### Step 3: Configure Provisioning | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| 1. In the **Provisioning** tab, click **To App** from the side nav. | ||||||||||||||||||||||||||||||||||||
| 2. Click **Edit** and check to Enable all the features you need, i.e. Create, Update, Delete Users. | ||||||||||||||||||||||||||||||||||||
| 3. Click **Save** at the bottom. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ### Step 4: Configure Attribute Mappings | ||||||||||||||||||||||||||||||||||||
| 1. While still in the **Provisioning** tab scroll down to Attribute Mappings section | ||||||||||||||||||||||||||||||||||||
| 2. The default attribute mappings often require adjustments for robust provisioning. We recommend using the following configuration. You can delete attributes that are not here: | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| <div class="flex justify-center"> | ||||||||||||||||||||||||||||||||||||
| <img class="block dark:hidden" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/sso/scim-okta-mappings.png" alt="Okta SCIM mappings"/> | ||||||||||||||||||||||||||||||||||||
| <img class="hidden dark:block" src="https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/hub/sso/scim-okta-mappings-dark.png" alt="Okta SCIM mappings"/> | ||||||||||||||||||||||||||||||||||||
| </div> | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| ### Step 5: Assign Users or Groups | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| 1. Visit the **Assignments** tab, click **Assign** | ||||||||||||||||||||||||||||||||||||
| 2. Click **Assign to People** or **Assign to Groups** | ||||||||||||||||||||||||||||||||||||
| 3. After finding the User or Group that needs to be assigned, click **Assign** next to their name | ||||||||||||||||||||||||||||||||||||
| 4. In the mapping modal the Username needs to be edited to comply with the following rules. | ||||||||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||||||||
| > **Note:** | ||||||||||||||||||||||||||||||||||||
| > - Only regular characters and `-` are accepted in the Username. | ||||||||||||||||||||||||||||||||||||
| > - `--` (double dash) is forbidden. | ||||||||||||||||||||||||||||||||||||
| > - `-` cannot start or end the name. | ||||||||||||||||||||||||||||||||||||
| > - Digit-only names are not accepted. | ||||||||||||||||||||||||||||||||||||
| > - Minimum length is 2 and maximum length is 42. | ||||||||||||||||||||||||||||||||||||
| > - Username has to be unique | ||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||
| > **Note:** | |
| > - Only regular characters and `-` are accepted in the Username. | |
| > - `--` (double dash) is forbidden. | |
| > - `-` cannot start or end the name. | |
| > - Digit-only names are not accepted. | |
| > - Minimum length is 2 and maximum length is 42. | |
| > - Username has to be unique | |
| <tip> | |
| <ul> | |
| <li>Only regular characters and `-` are accepted in the Username.</li> | |
| <li>`--` (double dash) is forbidden.</li> | |
| <li>`-` cannot start or end the name.</li> | |
| <li>Digit-only names are not accepted.</li> | |
| <li>Minimum length is 2 and maximum length is 42.</li> | |
| <li>Username has to be unique.</li> | |
| </ul> | |
| </tip> |
Just in case you prefer the "tip" rendering style (light green background, as shown at the end of this section).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
can change to tip if that is preferred @Pierrci
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah yes, maybe even <Tip warning={true}> so that it's with an orange background actually, this is an important precision I think
also, I would move that at the end of Step 4 I think, where you list the attributes
can you also add the same thing in the Entra doc? (cc @Charlie-Boyer)
and finally: Username has to be unique within your org for the last item (maybe that's what you meant, but let's make it clear so that people don't panic, since we're prefixing all the usernames by the org name)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i think it makes sense to keep it where it is since this is where the username can be edited. After step 4 username is not able to be edited
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ok yes - can you also add it to the Entra doc?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes just added
Uh oh!
There was an error while loading. Please reload this page.