<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Configure SCIM provisioning on Grafana Labs</title><link>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-access/configure-scim-provisioning/</link><description>Recent content in Configure SCIM provisioning on Grafana Labs</description><generator>Hugo -- gohugo.io</generator><language>en</language><atom:link href="/docs/grafana/v12.4/setup-grafana/configure-access/configure-scim-provisioning/index.xml" rel="self" type="application/rss+xml"/><item><title>Manage users and teams with SCIM</title><link>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-access/configure-scim-provisioning/manage-users-teams/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-access/configure-scim-provisioning/manage-users-teams/</guid><content><![CDATA[&lt;h1 id=&#34;manage-users-and-teams-with-scim&#34;&gt;Manage users and teams with SCIM&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in 
    &lt;a href=&#34;/docs/grafana/v12.4/introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;SCIM streamlines identity management in Grafana by automating user lifecycle and team membership operations. This guide explains how SCIM works with existing Grafana setups, handles user provisioning, and manages team synchronization.&lt;/p&gt;
&lt;p&gt;With SCIM, you can:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Automate user lifecycle&lt;/strong&gt; from creation to deactivation&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Manage existing users&lt;/strong&gt; by linking them with identity provider identities&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automate team lifecycle&lt;/strong&gt; by automatically creating teams when groups are added, updating team memberships, and deleting teams when groups are removed&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Maintain security&lt;/strong&gt; through automated deprovisioning&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Replace Team Sync&lt;/strong&gt; with more robust SCIM group synchronization&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;user-provisioning-with-scim&#34;&gt;User provisioning with SCIM&lt;/h2&gt;
&lt;p&gt;SCIM provisioning works in conjunction with existing user management methods in Grafana. While SCIM automates user provisioning from the identity provider, users can still be created through SAML just-in-time provisioning when they log in, manually through the Grafana UI, or via automation tools like Terraform and the Grafana API. For the most consistent user management experience, we recommend centralizing user provisioning through SCIM.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;User provisioning requires &lt;code&gt;user_sync_enabled = true&lt;/code&gt; in the SCIM configuration. See &lt;a href=&#34;../../configure-scim-provisioning#configure-scim-in-grafana&#34;&gt;Configure SCIM in Grafana&lt;/a&gt; for more information.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;After a user is provisioned through SCIM, they cannot be deleted from Grafana - they can only be deactivated through the identity provider. This is important to consider when planning your user management strategy, especially for compliance and data retention requirements.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;For detailed configuration steps specific to the identity provider, see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../configure-scim-with-entraid/&#34;&gt;Configure SCIM with Entra ID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../configure-scim-with-okta/&#34;&gt;Configure SCIM with Okta&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;how-scim-identifies-users&#34;&gt;How SCIM identifies users&lt;/h3&gt;
&lt;p&gt;SCIM uses a specific process to establish and maintain user identity between the identity provider and Grafana:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Initial user lookup:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The administrator configures SCIM at the Identity Provider, defining the &lt;strong&gt;Unique identifier field&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;The identity provider looks up each user in Grafana using this unique identifier field as a filter&lt;/li&gt;
&lt;li&gt;The identity provider expects a single result from Grafana for each user&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Identity linking based on lookup results:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;If there&amp;rsquo;s a single matching result:&lt;/strong&gt; The identity provider retrieves the user&amp;rsquo;s unique ID at Grafana, saves it, confirms it can fetch the user&amp;rsquo;s information, and updates the user&amp;rsquo;s information in Grafana&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;If there are no matching results:&lt;/strong&gt; The identity provider attempts to create the user in Grafana. If successful, it retrieves and saves the user&amp;rsquo;s unique ID for future operations. If a user with the same email address already exists in Grafana, the user is updated and will be managed by SCIM from that point forward.&lt;/li&gt;
&lt;li&gt;The identity provider learns the relationship between the found Grafana user and the Grafana internal ID&lt;/li&gt;
&lt;li&gt;The identity provider updates Grafana with the External ID&lt;/li&gt;
&lt;li&gt;Grafana updates the authentication validations to expect this External ID&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Matching the User During Login:&lt;/strong&gt;
When a user logs in via SAML, Grafana needs to securely match them to the correct user account provisioned by SCIM. This requires using a consistent, unique identifier across both processes (for example, the user&amp;rsquo;s &lt;code&gt;objectId&lt;/code&gt; in Entra ID).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Configure SAML Claims:&lt;/strong&gt; Set up your identity provider (e.g., Entra ID) to include this unique identifier in the information it sends during SAML login.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configure Grafana SAML:&lt;/strong&gt; In the Grafana SAML settings, use the &lt;code&gt;assertion_attribute_login&lt;/code&gt; setting to specify which incoming SAML attribute contains this unique identifier.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Configure SCIM Mapping:&lt;/strong&gt; To complete the link, ensure your SCIM attribute mapping in the identity provider sets the user&amp;rsquo;s Grafana &lt;strong&gt;externalId&lt;/strong&gt; attribute to be the &lt;em&gt;same&lt;/em&gt; unique identifier provided via SAML (for example, the user&amp;rsquo;s &lt;code&gt;objectId&lt;/code&gt; in Entra ID).&lt;/li&gt;
&lt;li&gt;See &lt;a href=&#34;../../configure-authentication/saml/#integrating-with-scim-provisioning&#34;&gt;SAML configuration details&lt;/a&gt; for specific configuration guidance.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;This process ensures secure and consistent user identification across both systems, preventing security issues that could arise from email changes or other user attribute modifications.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;During provisioning, if the identity provider sends user attributes that has no use in Grafana, those attributes will be gracefully ignored.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;existing-grafana-users&#34;&gt;Existing Grafana users&lt;/h3&gt;
&lt;p&gt;For users who already exist in the Grafana instance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SCIM establishes the relationship through the External ID matching process&lt;/li&gt;
&lt;li&gt;Creates a secure link with the identity provider identity&lt;/li&gt;
&lt;li&gt;Preserves all existing settings and access&lt;/li&gt;
&lt;li&gt;Keeps the account active and unchanged until assigned in the identity provider&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id=&#34;handling-users-from-other-provisioning-methods&#34;&gt;Handling users from other provisioning methods&lt;/h4&gt;
&lt;p&gt;To prevent conflicts and maintain consistent user management, disable or restrict other provisioning methods when implementing SCIM. This ensures that all new users are created through SCIM and prevents duplicate or conflicting user records.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;SAML Just-in-Time (JIT) provisioning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Disable &lt;code&gt;allow_sign_up&lt;/code&gt; in SAML settings to prevent automatic user creation&lt;/li&gt;
&lt;li&gt;Existing JIT-provisioned users will continue to work but should be migrated to SCIM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Terraform or API provisioning:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Stop creating new users through these methods&lt;/li&gt;
&lt;li&gt;Existing users will continue to work but should be migrated to SCIM&lt;/li&gt;
&lt;li&gt;Consider removing or archiving Terraform user creation resources&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Manual user creation:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Restrict UI-based user creation to administrators only&lt;/li&gt;
&lt;li&gt;Plan to migrate manually created users to SCIM&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;new-users&#34;&gt;New users&lt;/h3&gt;
&lt;p&gt;For users who don&amp;rsquo;t yet exist in Grafana:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SCIM creates accounts when users are assigned to Grafana in the identity provider&lt;/li&gt;
&lt;li&gt;Sets up initial access based on identity provider group memberships and SAML role mapping&lt;/li&gt;
&lt;li&gt;No manual Grafana account creation needed&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;role-management&#34;&gt;Role management&lt;/h3&gt;
&lt;p&gt;SCIM handles user synchronization but not role assignments. Role management is handled through &lt;a href=&#34;../../configure-authentication/saml#configure-role-sync&#34;&gt;Role Sync&lt;/a&gt;, and any role changes take effect during user authentication.&lt;/p&gt;
&lt;h2 id=&#34;migrating-existing-users-to-scim-provisioning&#34;&gt;Migrating existing users to SCIM provisioning&lt;/h2&gt;
&lt;p&gt;If you have an existing Grafana instance with manually created users and want to migrate to IDP-based SCIM provisioning, you can leverage the SCIM identification mechanism to seamlessly link existing users with their IDP identities.&lt;/p&gt;
&lt;h3 id=&#34;migration-overview&#34;&gt;Migration overview&lt;/h3&gt;
&lt;p&gt;The migration process uses the same &lt;a href=&#34;#how-scim-identifies-users&#34;&gt;user identification mechanism&lt;/a&gt; described earlier, but focuses on linking existing Grafana users with their corresponding IDP identities rather than creating new users.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Key benefits of this approach:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Preserves all existing user settings, dashboards, and permissions&lt;/li&gt;
&lt;li&gt;No disruption to user access during migration&lt;/li&gt;
&lt;li&gt;Gradual migration possible (users can be migrated in batches)&lt;/li&gt;
&lt;li&gt;Maintains audit trails and historical data&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;migration-steps&#34;&gt;Migration steps&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Prepare the identity provider:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ensure all existing Grafana users have corresponding accounts in your IDP&lt;/li&gt;
&lt;li&gt;Verify that the unique identifier field (e.g., email, username, or object ID) matches between systems&lt;/li&gt;
&lt;li&gt;Configure SCIM application in your IDP but don&amp;rsquo;t assign users yet&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Configure SCIM in Grafana:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Set up SCIM endpoint and authentication as described in &lt;a href=&#34;../../configure-scim-provisioning#configure-scim-in-grafana&#34;&gt;Configure SCIM in Grafana&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Enable &lt;code&gt;user_sync_enabled = true&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Configure the unique identifier field to match your IDP setup&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;To restrict login access to only SCIM-provisioned users, enable the &lt;code&gt;[auth.scim][reject_non_provisioned_users]&lt;/code&gt; option. Cloud Portal users can always sign in regardless of this setting.&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;ini&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-ini&#34;&gt;[auth.scim]
reject_non_provisioned_users = true&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;ol start=&#34;3&#34;&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Test the matching mechanism:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Use the SCIM API to verify that existing users can be found using the unique identifier:&lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;curl --location &amp;#39;https://{$GRAFANA_URL}/apis/scim.grafana.app/v0alpha1/namespaces/{$STACK_ID}/Users?filter=userName eq &amp;#34;existing.user@company.com&amp;#34;&amp;#39; \
--header &amp;#39;Authorization: Bearer glsa_xxxxxxxxxxxxxxxxxxxxxxxx&amp;#39;&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;This should return exactly one user record for each existing user&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Assign users in the IDP:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Begin assigning existing users to the Grafana application in your IDP&lt;/li&gt;
&lt;li&gt;The SCIM identification process will automatically link existing Grafana users with their IDP identities&lt;/li&gt;
&lt;li&gt;Monitor the process for any conflicts or errors&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Verify the migration:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Check that users can still access Grafana with their existing permissions&lt;/li&gt;
&lt;li&gt;Verify that SAML/SSO login works correctly for migrated users&lt;/li&gt;
&lt;li&gt;Ensure External ID is properly set for each migrated user&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;migration-considerations&#34;&gt;Migration considerations&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Before migration:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Backup your Grafana database&lt;/strong&gt; - Always have a recovery plan&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Audit existing users&lt;/strong&gt; - Document current user accounts and their access levels&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Plan for exceptions&lt;/strong&gt; - Some users might need manual intervention if unique identifiers don&amp;rsquo;t match&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;During migration:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Monitor logs&lt;/strong&gt; - Watch for SCIM errors or conflicts during the linking process in Grafana and your Identity Provider&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Batch processing&lt;/strong&gt; - Consider migrating users in small batches to identify issues early&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Communication&lt;/strong&gt; - Inform users about the migration timeline and any required actions&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;After migration:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Disable manual provisioning&lt;/strong&gt; - Prevent new users from being created outside of SCIM&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Update documentation&lt;/strong&gt; - Ensure team procedures reflect the new IDP-based workflow&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Regular audits&lt;/strong&gt; - Periodically verify that IDP and Grafana users remain in sync&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;troubleshooting-migration-issues&#34;&gt;Troubleshooting migration issues&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Multiple users found for unique identifier:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Review your unique identifier field configuration&lt;/li&gt;
&lt;li&gt;Check for duplicate accounts in Grafana or the IDP&lt;/li&gt;
&lt;li&gt;Consider using a more specific identifier (e.g., object ID instead of email)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;User not found during lookup:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Verify the unique identifier value matches exactly between systems&lt;/li&gt;
&lt;li&gt;Check that the user exists in both Grafana and the IDP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Authentication failures after migration:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Confirm the SAML assertion &lt;code&gt;assertion_attribute_external_uid&lt;/code&gt; includes the correct unique identifier&lt;/li&gt;
&lt;li&gt;Verify that your SAML configuration uses the same unique identifier for both SCIM and SAML authentication&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;team-provisioning-with-scim&#34;&gt;Team provisioning with SCIM&lt;/h2&gt;
&lt;p&gt;SCIM provides automated team management capabilities that go beyond what Team Sync offers. While Team Sync only maps identity provider groups to existing Grafana teams, SCIM can automatically create and delete teams based on group changes in the identity provider.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Team provisioning requires &lt;code&gt;group_sync_enabled = true&lt;/code&gt; in the SCIM configuration. See &lt;a href=&#34;../../configure-scim-provisioning#configure-scim-in-grafana&#34;&gt;Configure SCIM in Grafana&lt;/a&gt; for more information.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;



&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;Teams provisioned through SCIM cannot be deleted manually from Grafana - they can only be deleted by removing their corresponding groups from the identity provider. Optionally, you can disable SCIM group sync to allow manual deletion of teams.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;For detailed configuration steps specific to the identity provider, see:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../configure-scim-with-entraid/&#34;&gt;Configure SCIM with Entra ID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../configure-scim-with-okta/&#34;&gt;Configure SCIM with Okta&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;scim-vs-team-sync&#34;&gt;SCIM vs Team Sync&lt;/h3&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;Do not enable both SCIM Group Sync and Team Sync simultaneously as these methods can conflict with each other. However, you can use SCIM for user provisioning while keeping Team Sync for team management until migration support is available.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Choose one team synchronization method:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;If you enable SCIM Group Sync, disable Team Sync and use SCIM for team management&lt;/li&gt;
&lt;li&gt;If you prefer Team Sync, do not enable SCIM Group Sync&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-warning&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Warning&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Team Sync Migration:&lt;/strong&gt; Support for migrating from Team Sync to SCIM Group Sync is coming soon. Until this support is released, we recommend keeping your existing Team Sync setup for team management. You can still benefit from SCIM user provisioning capabilities while using Team Sync for team management.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;key-differences&#34;&gt;Key differences&lt;/h3&gt;
&lt;p&gt;SCIM Group Sync provides several advantages over Team Sync:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Automatic team creation:&lt;/strong&gt; SCIM automatically creates Grafana teams when new groups are added to the identity provider&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Automatic team deletion:&lt;/strong&gt; SCIM removes teams when their corresponding groups are deleted from the identity provider&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Real-time updates:&lt;/strong&gt; Team memberships are updated immediately when group assignments change&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Simplified management:&lt;/strong&gt; No need to manually create teams in Grafana before mapping them&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;how-team-synchronization-works&#34;&gt;How team synchronization works&lt;/h3&gt;
&lt;p&gt;SCIM manages teams through the following process:&lt;/p&gt;
&lt;p&gt;Group assignment:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;User is assigned to groups in the identity provider&lt;/li&gt;
&lt;li&gt;SCIM detects group membership changes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Team creation and mapping:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Creates Grafana teams for new identity provider groups&lt;/li&gt;
&lt;li&gt;Maps users to appropriate teams&lt;/li&gt;
&lt;li&gt;Removes users from teams when group membership changes&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Team membership maintenance:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Continuously syncs team memberships&lt;/li&gt;
&lt;li&gt;Removes users from teams when removed from groups&lt;/li&gt;
&lt;li&gt;Updates team memberships when groups change&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../troubleshooting/&#34;&gt;Troubleshoot SCIM provisioning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../configure-scim-with-entraid/&#34;&gt;Configure SCIM with Entra ID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../configure-scim-with-okta/&#34;&gt;Configure SCIM with Okta&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="manage-users-and-teams-with-scim">Manage users and teams with SCIM&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in
&lt;a href="/docs/grafana/v12.4/introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>SCIM streamlines identity management in Grafana by automating user lifecycle and team membership operations. This guide explains how SCIM works with existing Grafana setups, handles user provisioning, and manages team synchronization.&lt;/p></description></item><item><title>Configure SCIM with Entra ID</title><link>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-access/configure-scim-provisioning/configure-scim-with-entraid/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-access/configure-scim-provisioning/configure-scim-with-entraid/</guid><content><![CDATA[&lt;h1 id=&#34;configure-scim-with-entra-id&#34;&gt;Configure SCIM with Entra ID&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in 
    &lt;a href=&#34;/docs/grafana/v12.4/introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;This guide explains how to configure SCIM provisioning with Entra ID to automate user and team management in Grafana.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Important SAML and SCIM Configuration:&lt;/strong&gt;
When using SAML for authentication alongside SCIM provisioning with Entra ID, it is crucial to correctly align user identifiers.
For detailed information on why this is critical for security and how to configure it, refer to the main &lt;a href=&#34;../&#34;&gt;SCIM provisioning documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Refer to the &lt;a href=&#34;../../configure-authentication/saml/configure-saml-with-azuread/&#34;&gt;SAML authentication with Entra ID documentation&lt;/a&gt; for specific instructions on how to configure SAML claims and Grafana SAML settings for your Entra ID SCIM setup.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Before configuring SCIM with Entra ID, ensure you have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Grafana Enterprise or a paid Grafana Cloud account with SCIM provisioning enabled.&lt;/li&gt;
&lt;li&gt;Admin access to both Grafana and Entra ID&lt;/li&gt;
&lt;li&gt;SCIM feature enabled in Grafana&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;configure-scim-in-grafana&#34;&gt;Configure SCIM in Grafana&lt;/h2&gt;
&lt;p&gt;To enable SCIM provisioning in Grafana, create a service account and generate a service account token that will be used to authenticate SCIM requests from Entra ID.&lt;/p&gt;
&lt;h3 id=&#34;create-a-service-account&#34;&gt;Create a service account&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Navigate to &lt;strong&gt;Administration &amp;gt; Users and access &amp;gt; Service accounts&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;strong&gt;Add service account&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a new service account with &lt;strong&gt;Role: &amp;ldquo;None&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the service account &lt;strong&gt;Permissions&lt;/strong&gt; tab, add these permissions:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Allow the service account to sync users:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;org.users:read&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.users:write&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.users:add&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.users:remove&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Allow the service account to sync groups:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;teams:read&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;teams:create&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;teams:write&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;teams:delete&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a new token for the newly created service account and save it securely&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This token will be used in the Entra ID configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;configure-scim-in-entra-id&#34;&gt;Configure SCIM in Entra ID&lt;/h2&gt;
&lt;p&gt;Configure the enterprise application in Entra ID to enable automated user and team synchronization with Grafana. This involves creating a new application and setting up both authentication and provisioning.&lt;/p&gt;
&lt;h3 id=&#34;create-the-enterprise-application&#34;&gt;Create the enterprise application&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Open Azure Portal Entra ID (Entra ID)&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;&#43; Add&lt;/strong&gt; dropdown&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Add Enterprise Application&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;&#43; Create Your Own Application&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Name the application and select &lt;strong&gt;non-gallery&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;configure-provisioning&#34;&gt;Configure provisioning&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;In the application overview, select &lt;strong&gt;Provisioning&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;&#43; New Configuration&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Configure the following settings:&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tenant URL:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can copy the tenant URL directly from the SCIM UI at &lt;strong&gt;Administration &amp;gt; Authentication &amp;gt; SCIM&lt;/strong&gt;. Your stack domain and stack ID can also be found in the SCIM UI.&lt;/p&gt;
&lt;p&gt;Alternatively, you can construct the URL manually:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For Grafana Cloud instances:

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;https://{stack-name}.grafana.net/apis/scim.grafana.app/v0alpha1/namespaces/stacks-{stack-id}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
Replace &lt;code&gt;{stack-name}&lt;/code&gt; and &lt;code&gt;{stack-id}&lt;/code&gt; with your Grafana Cloud stack name and ID.&lt;/li&gt;
&lt;li&gt;For self-hosted instances:

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;https://{your-grafana-domain}/apis/scim.grafana.app/v0alpha1/namespaces/default&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
Replace &lt;code&gt;{your-grafana-domain}&lt;/code&gt; with your Grafana instance&amp;rsquo;s domain (e.g., &lt;code&gt;grafana.yourcompany.com&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Secret Token:&lt;/strong&gt; Enter the service account token from Grafana&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ol start=&#34;4&#34;&gt;
&lt;li&gt;Click &lt;strong&gt;Test connection&lt;/strong&gt; to verify the configuration&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Create&lt;/strong&gt; to save the settings&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;configure-attribute-mappings&#34;&gt;Configure attribute mappings&lt;/h3&gt;
&lt;p&gt;After setting the Tenant URL and Secret Token, navigate to the &lt;strong&gt;Mappings&lt;/strong&gt; section within the same &lt;strong&gt;Provisioning&lt;/strong&gt; settings in your Entra ID enterprise application and then click &lt;strong&gt;Provision Microsoft Entra ID Users&lt;/strong&gt;. This is where you will define how Entra ID attributes correspond to the SCIM attributes for Grafana, including the mandatory &lt;code&gt;externalId&lt;/code&gt;.&lt;/p&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;ul&gt;
&lt;li&gt;Only work email addresses are supported. Entra ID must be configured to use &lt;code&gt;emails[type eq &amp;quot;work&amp;quot;].value&lt;/code&gt; for email mapping.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;externalId&lt;/code&gt; attribute in Grafana is mandatory. Entra ID uses this to uniquely identify users and groups. You must map an attribute from Entra ID to the &lt;code&gt;externalId&lt;/code&gt; attribute in Grafana. This Entra ID attribute must be &lt;strong&gt;a stable and a unique identifier for each individual user&lt;/strong&gt; (for example, the &lt;code&gt;objectId&lt;/code&gt; attribute in Entra ID is commonly used for this purpose).&lt;/li&gt;
&lt;/ul&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;Configure the following required attributes:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;Entra ID Attribute&lt;/th&gt;
              &lt;th&gt;Grafana Attribute&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;userPrincipalName&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;userName&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;mail&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;emails[type eq &amp;quot;work&amp;quot;].value&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;displayName&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;displayName&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;objectId&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;externalId&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;Switch([IsSoftDeleted], , &amp;quot;False&amp;quot;, &amp;quot;True&amp;quot;, &amp;quot;True&amp;quot;, &amp;quot;False&amp;quot;)&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;active&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;During provisioning, if the identity provider sends user attributes that has no use in Grafana, those attributes will be gracefully ignored.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h3 id=&#34;enable-provisioning&#34;&gt;Enable provisioning&lt;/h3&gt;
&lt;p&gt;Click &lt;strong&gt;Start provisioning&lt;/strong&gt; from the top action bar in the &lt;strong&gt;Overview&lt;/strong&gt; page from your Entra ID enterprise application.&lt;/p&gt;
&lt;h3 id=&#34;configure-group-provisioning&#34;&gt;Configure group provisioning&lt;/h3&gt;
&lt;p&gt;To enable group synchronization:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;Groups&lt;/strong&gt; tab in provisioning&lt;/li&gt;
&lt;li&gt;Enable &lt;strong&gt;Group provisioning&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Select the groups to synchronize with Grafana&lt;/li&gt;
&lt;li&gt;Save the changes&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;test-the-integration&#34;&gt;Test the integration&lt;/h2&gt;
&lt;p&gt;After completing the configuration:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Test the SCIM connector in Entra ID&lt;/li&gt;
&lt;li&gt;Assign a test user to the application&lt;/li&gt;
&lt;li&gt;Verify the user is provisioned in Grafana&lt;/li&gt;
&lt;li&gt;Test group synchronization if configured&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="configure-scim-with-entra-id">Configure SCIM with Entra ID&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in
&lt;a href="/docs/grafana/v12.4/introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>This guide explains how to configure SCIM provisioning with Entra ID to automate user and team management in Grafana.&lt;/p></description></item><item><title>Configure SCIM with Okta</title><link>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-access/configure-scim-provisioning/configure-scim-with-okta/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-access/configure-scim-provisioning/configure-scim-with-okta/</guid><content><![CDATA[&lt;h1 id=&#34;configure-scim-with-okta&#34;&gt;Configure SCIM with Okta&lt;/h1&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;Available in 
    &lt;a href=&#34;/docs/grafana/v12.4/introduction/grafana-enterprise/&#34;&gt;Grafana Enterprise&lt;/a&gt; and &lt;a href=&#34;/docs/grafana-cloud/&#34;&gt;Grafana Cloud&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;p&gt;This guide explains how to configure SCIM provisioning with Okta to automate user and team management in Grafana.&lt;/p&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;p&gt;Before configuring SCIM with Okta, ensure you have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Grafana Enterprise or a paid Grafana Cloud account with SCIM provisioning enabled.&lt;/li&gt;
&lt;li&gt;Admin access to both Grafana and Okta&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../../configure-authentication/saml/configure-saml-with-okta/&#34;&gt;SAML authentication configured with Okta&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;SCIM feature enabled in Grafana&lt;/li&gt;
&lt;/ul&gt;


&lt;div class=&#34;admonition admonition-note&#34;&gt;&lt;blockquote&gt;&lt;p class=&#34;title text-uppercase&#34;&gt;Note&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Important SAML and SCIM Configuration:&lt;/strong&gt;
When using SAML for authentication alongside SCIM provisioning with Okta, it is crucial to correctly align user identifiers.
For detailed information on why this is critical for security and how to configure it, refer to the main &lt;a href=&#34;../&#34;&gt;SCIM provisioning documentation&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Ensure your Okta SAML application is configured to send a stable, unique identifier (that will map to the Grafana SCIM &lt;code&gt;externalId&lt;/code&gt;) as a SAML claim. Then, configure the Grafana SAML settings to use this claim. For general Okta SAML setup, refer to &lt;a href=&#34;../../configure-authentication/saml/configure-saml-with-okta/&#34;&gt;Set up SAML with Okta&lt;/a&gt;.&lt;/p&gt;&lt;/blockquote&gt;&lt;/div&gt;

&lt;h2 id=&#34;configure-scim-in-grafana&#34;&gt;Configure SCIM in Grafana&lt;/h2&gt;
&lt;p&gt;To enable SCIM provisioning in Grafana, create a service account and generate an access token that will be used to authenticate SCIM requests from Okta.&lt;/p&gt;
&lt;h3 id=&#34;create-a-service-account&#34;&gt;Create a service account&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Navigate to &lt;strong&gt;Administration &amp;gt; Users and access &amp;gt; Service accounts&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;strong&gt;Add service account&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a new service account with &lt;strong&gt;Role: &amp;ldquo;None&amp;rdquo;&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;In the service account &lt;strong&gt;Permissions&lt;/strong&gt; tab, add these permissions:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Allow the service account to sync users:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;org.users:read&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.users:write&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.users:add&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;org.users:remove&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Allow the service account to sync groups:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;teams:read&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;teams:create&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;teams:write&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;teams:delete&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Create a new token for the newly created service account and save it securely&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;This token will be used in the Okta configuration&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;configure-scim-in-okta&#34;&gt;Configure SCIM in Okta&lt;/h2&gt;
&lt;p&gt;Configure both SAML authentication and SCIM provisioning in Okta to enable automated user and team synchronization with Grafana. Start by creating a SAML application, then enable and configure SCIM provisioning for that application.&lt;/p&gt;
&lt;h3 id=&#34;enable-scim-provisioning&#34;&gt;Enable SCIM provisioning&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &lt;strong&gt;General&lt;/strong&gt; tab of your SAML App Integration in Okta&lt;/li&gt;
&lt;li&gt;Enable SCIM provisioning
&lt;ul&gt;
&lt;li&gt;A new provisioning tab will appear&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;configure-provisioning-settings&#34;&gt;Configure provisioning settings&lt;/h3&gt;
&lt;p&gt;To enable user provisioning through SCIM, configure the SCIM integration settings in Grafana by specifying the connector URL, authentication mode, and supported provisioning actions. Follow these steps to complete the integration.&lt;/p&gt;
&lt;h3 id=&#34;configure-scim-integration&#34;&gt;Configure SCIM integration&lt;/h3&gt;
&lt;p&gt;In the &lt;strong&gt;Integration&lt;/strong&gt; tab, configure:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;SCIM Connector base URL:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;You can copy the complete SCIM Connector base URL directly from the SCIM UI at &lt;strong&gt;Administration &amp;gt; Authentication &amp;gt; SCIM&lt;/strong&gt;. This is displayed as the Tenant URL in the UI. Your stack domain and stack ID can also be found in the SCIM UI.&lt;/p&gt;
&lt;p&gt;Alternatively, you can construct the URL manually:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For Grafana Cloud instances:

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;https://{stack-name}.grafana.net/apis/scim.grafana.app/v0alpha1/namespaces/stacks-{stack-id}&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
Replace &lt;code&gt;{stack-name}&lt;/code&gt; and &lt;code&gt;{stack-id}&lt;/code&gt; with your Grafana Cloud stack name and ID.&lt;/li&gt;
&lt;li&gt;For self-hosted instances:

&lt;div class=&#34;code-snippet code-snippet__mini&#34;&gt;&lt;div class=&#34;lang-toolbar__mini&#34;&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet code-snippet__border&#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-none&#34;&gt;https://{your-grafana-domain}/apis/scim.grafana.app/v0alpha1/namespaces/default&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
Replace &lt;code&gt;{your-grafana-domain}&lt;/code&gt; with your Grafana instance&amp;rsquo;s domain (e.g., &lt;code&gt;grafana.yourcompany.com&lt;/code&gt;).&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Unique identifier field:&lt;/strong&gt; userName&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Supported provisioning actions:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Import New Users and Profile Updates&lt;/li&gt;
&lt;li&gt;Push New Users&lt;/li&gt;
&lt;li&gt;Push Profile Updates&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Authentication Mode:&lt;/strong&gt; HTTP Header&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Authorization:&lt;/strong&gt; Bearer {your-grafana-service-account-token}&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click &lt;strong&gt;Test Connector Configuration&lt;/strong&gt; and then save the configuration&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;In the &lt;strong&gt;To App&lt;/strong&gt; tab, enable:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Create Users&lt;/li&gt;
&lt;li&gt;Update User Attributes&lt;/li&gt;
&lt;li&gt;Deactivate Users&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After completing the configuration:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Test the SCIM connector in Okta&lt;/li&gt;
&lt;li&gt;Assign a test user to the application&lt;/li&gt;
&lt;li&gt;Verify the user is provisioned in Grafana&lt;/li&gt;
&lt;/ol&gt;
]]></content><description>&lt;h1 id="configure-scim-with-okta">Configure SCIM with Okta&lt;/h1>
&lt;div class="admonition admonition-note">&lt;blockquote>&lt;p class="title text-uppercase">Note&lt;/p>&lt;p>Available in
&lt;a href="/docs/grafana/v12.4/introduction/grafana-enterprise/">Grafana Enterprise&lt;/a> and &lt;a href="/docs/grafana-cloud/">Grafana Cloud&lt;/a>.&lt;/p>&lt;/blockquote>&lt;/div>
&lt;p>This guide explains how to configure SCIM provisioning with Okta to automate user and team management in Grafana.&lt;/p></description></item><item><title>Troubleshoot SCIM provisioning</title><link>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-access/configure-scim-provisioning/troubleshooting/</link><pubDate>Fri, 03 Apr 2026 19:43:06 +0000</pubDate><guid>https://grafana.com/docs/grafana/v12.4/setup-grafana/configure-access/configure-scim-provisioning/troubleshooting/</guid><content><![CDATA[&lt;h1 id=&#34;troubleshoot-scim-provisioning&#34;&gt;Troubleshoot SCIM provisioning&lt;/h1&gt;
&lt;p&gt;This page provides solutions for common issues you might encounter when configuring and using SCIM provisioning in Grafana.&lt;/p&gt;
&lt;h2 id=&#34;user-provisioning-issues&#34;&gt;User provisioning issues&lt;/h2&gt;
&lt;h3 id=&#34;error-invalid-namespace&#34;&gt;Error: &amp;ldquo;invalid namespace&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; The SCIM endpoint URL is incorrectly formatted.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Verify your URL follows the correct format:&lt;/p&gt;

&lt;div class=&#34;code-snippet &#34;&gt;&lt;div class=&#34;lang-toolbar&#34;&gt;
    &lt;span class=&#34;lang-toolbar__item lang-toolbar__item-active&#34;&gt;Bash&lt;/span&gt;
    &lt;span class=&#34;code-clipboard&#34;&gt;
      &lt;button x-data=&#34;app_code_snippet()&#34; x-init=&#34;init()&#34; @click=&#34;copy()&#34;&gt;
        &lt;img class=&#34;code-clipboard__icon&#34; src=&#34;/media/images/icons/icon-copy-small-2.svg&#34; alt=&#34;Copy code to clipboard&#34; width=&#34;14&#34; height=&#34;13&#34;&gt;
        &lt;span&gt;Copy&lt;/span&gt;
      &lt;/button&gt;
    &lt;/span&gt;
    &lt;div class=&#34;lang-toolbar__border&#34;&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;div class=&#34;code-snippet &#34;&gt;
    &lt;pre data-expanded=&#34;false&#34;&gt;&lt;code class=&#34;language-bash&#34;&gt;https://{$GRAFANA_URL}/apis/scim.grafana.app/v0alpha1/namespaces/{$STACK_ID}/Users&lt;/code&gt;&lt;/pre&gt;
  &lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Where:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;{$GRAFANA_URL}&lt;/code&gt; is your Grafana URL (subdomain format)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;{$STACK_ID}&lt;/code&gt; is your Grafana stack ID:
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Grafana Cloud:&lt;/strong&gt; Format like &lt;code&gt;stack-123&lt;/code&gt; (found in your Grafana Cloud dashboard)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;On-premises:&lt;/strong&gt; Use &lt;code&gt;default&lt;/code&gt; or the name of the organization&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;authentication-issues&#34;&gt;Authentication issues&lt;/h2&gt;
&lt;h3 id=&#34;error-http-403-forbidden&#34;&gt;Error: &amp;ldquo;HTTP 403 Forbidden&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; Either incorrect token or insufficient permissions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Check token:&lt;/strong&gt; Generate a new token from the Service Account details page&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify permissions:&lt;/strong&gt; Ensure the service account has &lt;code&gt;Editor&lt;/code&gt; or &lt;code&gt;Admin&lt;/code&gt; role in the Grafana instance&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;error-http-401-unauthorized&#34;&gt;Error: &amp;ldquo;HTTP 401 Unauthorized&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; Invalid or expired authentication token.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Generate a new token from the Service Account details page in Grafana.&lt;/p&gt;
&lt;h2 id=&#34;login-issues&#34;&gt;Login issues&lt;/h2&gt;
&lt;h3 id=&#34;error-user-sync-failed&#34;&gt;Error: &amp;ldquo;User sync failed&amp;rdquo;&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Cause:&lt;/strong&gt; The user&amp;rsquo;s unique identifier field is not correctly configured in SAML assertions.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Solution:&lt;/strong&gt; Add the required SAML assertion based on your identity provider:&lt;/p&gt;
&lt;section class=&#34;expand-table-wrapper&#34;&gt;&lt;div class=&#34;button-div&#34;&gt;
      &lt;button class=&#34;expand-table-btn&#34;&gt;Expand table&lt;/button&gt;
    &lt;/div&gt;&lt;div class=&#34;responsive-table-wrapper&#34;&gt;
    &lt;table&gt;
      &lt;thead&gt;
          &lt;tr&gt;
              &lt;th&gt;SAML Assertion&lt;/th&gt;
              &lt;th&gt;Identity Provider&lt;/th&gt;
              &lt;th&gt;Value&lt;/th&gt;
          &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;userUID&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Entra ID&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;objectId&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
          &lt;tr&gt;
              &lt;td&gt;&lt;code&gt;userUID&lt;/code&gt;&lt;/td&gt;
              &lt;td&gt;Okta&lt;/td&gt;
              &lt;td&gt;&lt;code&gt;user.getInternalProperty(&amp;quot;id&amp;quot;)&lt;/code&gt;&lt;/td&gt;
          &lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;
  &lt;/div&gt;
&lt;/section&gt;&lt;h2 id=&#34;next-steps&#34;&gt;Next steps&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;../manage-users-teams/&#34;&gt;Manage users and teams with SCIM provisioning&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../configure-scim-with-entraid/&#34;&gt;Configure SCIM with Entra ID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;../configure-scim-with-okta/&#34;&gt;Configure SCIM with Okta&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
]]></content><description>&lt;h1 id="troubleshoot-scim-provisioning">Troubleshoot SCIM provisioning&lt;/h1>
&lt;p>This page provides solutions for common issues you might encounter when configuring and using SCIM provisioning in Grafana.&lt;/p>
&lt;h2 id="user-provisioning-issues">User provisioning issues&lt;/h2>
&lt;h3 id="error-invalid-namespace">Error: &amp;ldquo;invalid namespace&amp;rdquo;&lt;/h3>
&lt;p>&lt;strong>Cause:&lt;/strong> The SCIM endpoint URL is incorrectly formatted.&lt;/p></description></item></channel></rss>