> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# SCIM vs Team Sync

> Explains differences between SAML, SCIM, and Team Sync for GitHub Enterprise identity management, covering authentication, provisioning/deprovisioning, and group to team mapping

In this lesson we clarify three commonly confused technologies in GitHub Enterprise administration: SAML, SCIM, and Team Sync. Understanding their distinct roles is essential for secure identity management and for exam preparation.

* SAML (Security Assertion Markup Language) — handles authentication (who can sign in).
* SCIM (System for Cross-Domain Identity Management) — handles provisioning and deprovisioning (who is a member).
* Team Sync — maps identity-provider groups to GitHub teams (which teams a member belongs to).

Use the hotel metaphor to form a quick mental model:

* SAML is the front-desk clerk who checks your ID at arrival (authentication).
* SCIM is the hotel's automated management system that issues and revokes room keys (provisioning/deprovisioning).
* Team Sync is the loyalty-tier system that assigns floors or perks based on status (group/team membership mapping).

![A presentation slide titled "SCIM Is the Automated Key System" illustrating a hotel's automated management system where a room key (room 412) is issued at check-in and automatically deactivated at checkout. The graphic includes icons and brief notes about checkout time and not needing to collect the key.](https://mintcdn.com/kodekloud-c4ac6d9a/TlnHw4JjIHBx3Cta/images/GitHub-Administration-Certification/Identity-and-Access-Management/SCIM-vs-Team-Sync/scim-automated-hotel-key-system.jpg?fit=max\&auto=format\&n=TlnHw4JjIHBx3Cta\&q=85\&s=ed624a09d17d05f5ab4dafc054ec2b71)

For a 2,000-room enterprise, automation is the only scalable approach. Without SCIM, thousands of “ghost” keys could remain valid long after checkout — a significant security risk.

A critical operational gap: SAML alone does not deprovision users.

![A slide titled "The Gap SAML Leaves Open" showing two panels: left says "Can they log in? Handled by SAML" with a device icon and checkmark, and right asks "Are they still a member? Nobody is watching" with a "gap" labeled between them. The image is from KodeKloud.](https://mintcdn.com/kodekloud-c4ac6d9a/TlnHw4JjIHBx3Cta/images/GitHub-Administration-Certification/Identity-and-Access-Management/SCIM-vs-Team-Sync/saml-login-membership-gap-kodekloud.jpg?fit=max\&auto=format\&n=TlnHw4JjIHBx3Cta\&q=85\&s=3b29069d118d1b189fc37edfc999e392)

Example scenario: when Jane’s Okta account is disabled after she resigns, SAML prevents her from authenticating via SSO, but it does not remove her GitHub organization membership. She can still appear as an org member, retain repository access, and any active sessions remain valid until they expire or are revoked.

![A slide titled "But She Is Still a Member" showing an "acme-engineering" people list with "jane-d" highlighted as having left the company. To the right are three notes saying she's still in the members list, still has all her repositories, and has an active session still open.](https://mintcdn.com/kodekloud-c4ac6d9a/Ae2SeWV4btujbkSt/images/GitHub-Administration-Certification/Identity-and-Access-Management/SCIM-vs-Team-Sync/acme-engineering-janed-still-member.jpg?fit=max\&auto=format\&n=Ae2SeWV4btujbkSt\&q=85\&s=ea84df286c0eaef5bd8b815b6249e6ad)

SCIM closes that gap by enabling automated provisioning and deprovisioning through the GitHub SCIM REST API. When your identity provider emits a deprovision event, SCIM can immediately remove the user from the GitHub organization.

Technically, SCIM uses bearer tokens for API authentication (unlike SAML, which relies on signed assertions). A typical SCIM PATCH request to mark a user inactive looks like this:

```http theme={null}
PATCH /scim/v2/Users/01234567-89ab-cdef-0123-456789abcdef
Host: api.github.com
Authorization: Bearer ghs_XXXXXXXXXXXXXXXXXXXX
Content-Type: application/scim+json

{
  "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
  "Operations": [
    { "op": "replace", "path": "active", "value": false }
  ]
}
```

![A presentation slide titled "Treat the Token as a Secret." It shows two boxed tips: "Rotate it periodically" and "Treat it as highly privileged" with small icons and a KodeKloud copyright.](https://mintcdn.com/kodekloud-c4ac6d9a/TlnHw4JjIHBx3Cta/images/GitHub-Administration-Certification/Identity-and-Access-Management/SCIM-vs-Team-Sync/treat-token-as-secret-rotate-privileged.jpg?fit=max\&auto=format\&n=TlnHw4JjIHBx3Cta\&q=85\&s=e29c4e3c9e03c05c9e952361ad31ab55)

The SCIM bearer token is highly privileged: anyone with it can add or remove organization members. Rotate it periodically, store it securely, and limit access to trusted systems and administrators.

Team Sync operates one level deeper than SCIM. SCIM answers "Is this person allowed in our organization?" Team Sync answers "Which specific team(s) should they be in?" Team Sync maps identity-provider groups to GitHub teams so that team membership mirrors group membership in your IdP.

![A presentation slide titled "Team Sync Goes One Level Deeper" with a green banner reading "One level deeper than SCIM." It shows comparison boxes asking SCIM vs Team Sync questions and a right-side list for "acme-engineering" with the "payments" team highlighted.](https://mintcdn.com/kodekloud-c4ac6d9a/TlnHw4JjIHBx3Cta/images/GitHub-Administration-Certification/Identity-and-Access-Management/SCIM-vs-Team-Sync/team-sync-one-level-deeper-scim.jpg?fit=max\&auto=format\&n=TlnHw4JjIHBx3Cta\&q=85\&s=60611be9c4309fc024131004ac47e86e)

For complete automation, run SCIM and Team Sync together: SCIM manages organization-level lifecycle (provisioning/deprovisioning) while Team Sync maps groups to teams inside the organization.

![A slide titled "Run Both, Not One" showing two rounded boxes labeled "SCIM in the organization?" and "Team Sync on which team?" with arrows merging. The arrows point to the text "A fully automated identity lifecycle."](https://mintcdn.com/kodekloud-c4ac6d9a/TlnHw4JjIHBx3Cta/images/GitHub-Administration-Certification/Identity-and-Access-Management/SCIM-vs-Team-Sync/run-both-scim-team-sync-lifecycle.jpg?fit=max\&auto=format\&n=TlnHw4JjIHBx3Cta\&q=85\&s=1cbe12542a13efd458a36d9697d76cf9)

For exam and operational purposes, remember:

* If asked which technology automatically removes a GitHub organization member when their identity-provider account is deprovisioned, the correct answer is SCIM — not SAML or Team Sync.

![A slide titled "The One to Remember" showing an exam question asking which technology removes a GitHub organization member when their identity provider account is deprovisioned, with answer B: SCIM selected. A small caption reads "Remember this one for the exam" and a © KodeKloud credit appears at the corner.](https://mintcdn.com/kodekloud-c4ac6d9a/TlnHw4JjIHBx3Cta/images/GitHub-Administration-Certification/Identity-and-Access-Management/SCIM-vs-Team-Sync/scim-removes-github-org-member.jpg?fit=max\&auto=format\&n=TlnHw4JjIHBx3Cta\&q=85\&s=47dfd2697b4274b8b5a3d933e86e54e8)

Support and compatibility at a glance:

* SAML: broadly compatible with many identity providers (for example, [Google Workspace](https://support.google.com/a/answer/6087519), [Ping Identity](https://www.pingidentity.com/en/products/single-sign-on.html)).
* SCIM: supported by major IdPs such as [Okta](https://developer.okta.com/docs/concepts/scim/), [Azure AD](https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups), and [OneLogin](https://developers.onelogin.com/scim).
* Team Sync: has stricter prerequisites and more limited provider support — verify compatibility and licensing before relying on it.

Use SAML for authentication (SSO), SCIM for provisioning/deprovisioning (identity lifecycle), and Team Sync to map IdP groups to GitHub teams. Combining SCIM and Team Sync provides the most complete automation for GitHub Enterprise.

Comparison table — quick reference

| Technology | Primary Function | Example outcome | Typical auth |
| - | - | - | - |
| SAML | Authentication / SSO | Allows or blocks sign-in to GitHub via IdP | Signed SAML assertions (certificates) |
| SCIM | Provisioning / Deprovisioning | Adds/removes users from the GitHub organization | Bearer token to SCIM API |
| Team Sync | Group-to-team mapping | Automatically assigns GitHub teams based on IdP groups | Uses SCIM/org membership + Team Sync mapping |

Links and references

* GitHub SCIM REST API: [https://docs.github.com/en/enterprise-cloud@latest/admin/user-management/provisioning-with-scim](https://docs.github.com/en/enterprise-cloud@latest/admin/user-management/provisioning-with-scim)
* Team Sync docs: [https://docs.github.com/en/organizations/managing-membership-and-access-to-your-organization/using-team-sync](https://docs.github.com/en/organizations/managing-membership-and-access-to-your-organization/using-team-sync)
* Okta SCIM overview: [https://developer.okta.com/docs/concepts/scim/](https://developer.okta.com/docs/concepts/scim/)
* Azure AD SCIM guide: [https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups](https://learn.microsoft.com/en-us/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups)
* Google Workspace SAML: [https://support.google.com/a/answer/6087519](https://support.google.com/a/answer/6087519)
* Ping Identity SSO: [https://www.pingidentity.com/en/products/single-sign-on.html](https://www.pingidentity.com/en/products/single-sign-on.html)

> [card] [Watch Video](https://learn.kodekloud.com/user/courses/github-administration-certification/module/dcb84798-d0b6-4722-a8f6-fa86e279f82a/lesson/6af2bc2c-4091-4cc2-b4cd-8e0850bb27ea)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.