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

# Single Sign-On (SSO)

> Let your team sign in to G360 with your organization's identity provider instead of a G360 password.

Single sign-on lets people sign in to G360 using the account they already have with your organization's identity provider (IdP) — Microsoft Entra ID, Okta, PingOne, OneLogin, Google, or any standards-compliant OIDC provider — instead of a separate G360 password.

Once SSO is configured, your identity provider handles authentication end to end. **G360 never sees or stores your users' passwords.** Password policies, MFA, and password resets stay under your existing IT controls.

<Info>
  Setting up SSO is a **one-time task performed by a G360 administrator**. Individual users do not need to configure anything — they just use the **Sign in with SSO** button.
</Info>

## How it works

Setting up SSO involves work on both sides of the connection.

<Steps>
  <Step title="In your identity provider">
    Create an application that represents G360, so your IdP knows about G360 and which users are allowed to use it. The screens and field names differ for every provider.
  </Step>

  <Step title="In G360">
    Enter the credentials from that application so G360 knows which identity provider to send users to.
  </Step>
</Steps>

Once both sides are connected, a **Sign in with SSO** button appears on the G360 login page. Clicking it redirects the user to the identity provider; after authenticating there, they are redirected back into G360.

## Before you begin

<AccordionGroup>
  <Accordion title="A G360 administrator account">
    The super-user account created during G360 setup, or another account with the **Admin** role. You sign in with an email address and password for this part, because the SSO button is not available until SSO has been configured.
  </Accordion>

  <Accordion title="Administrator access to your identity provider">
    Permission to create and configure applications in your IdP. On some providers, adding a second application for SCIM later needs a higher permission level than creating the sign-in application — this is called out on each provider's page.
  </Accordion>

  <Accordion title="Your organization's email domain(s)">
    For example `yourcompany.com`. Only users whose email address is on an allowed domain can sign in through SSO.
  </Accordion>
</AccordionGroup>

<Note>
  Steps 1, 2, 3, 5, 6 and 7 below are the same regardless of which identity provider you use — they all happen inside G360. **Step 4 is different for every provider**, so open your provider's page and follow it exactly.
</Note>

***

## Step 1: Open SSO settings

1. Sign in to G360 with your administrator email address and password.
2. Select **Settings** under **Administration** in the left sidebar.
3. Open the **SSO Settings** section. The header shows when the configuration was last updated.

## Step 2: Enable single sign-on

Turn on the **Enable single sign-on** toggle.

<Warning>
  This toggle **does not save anything on its own**. It only reveals the rest of the setup below it. Each section that follows — **Identity Provider**, **Access Policy**, and **SCIM Provisioning** — has its own Save button. Your configuration is not stored until you save the relevant section.
</Warning>

<Frame caption="SSO Settings with the Enable single sign-on toggle on and the Identity Provider section revealed.">
  <img src="https://mintcdn.com/na-f445b234/ZrLZb0Hxd2QWyc0L/images/g360/sso/sso-enable-toggle.jpg?fit=max&auto=format&n=ZrLZb0Hxd2QWyc0L&q=85&s=9cf1ac8722e50ed1b2ce22fce159535a" alt="G360 SSO Settings page showing the Enable single sign-on toggle and the Identity Provider section" width="1400" height="625" data-path="images/g360/sso/sso-enable-toggle.jpg" />
</Frame>

## Step 3: Copy the callback URL

With the toggle on, an **Identity Provider** section appears. At the top is a read-only **Callback URL** field with a **Copy** button.

Copy this value — you paste it into your identity provider in the next step. Depending on the provider, the field there may be called **Sign-in redirect URI**, **Callback URL**, **Redirect URI**, or **Authorized redirect URI**.

<Warning>
  The callback URL must match **exactly** in both places, **including the trailing slash**. A mismatch is the single most common cause of a failed sign-in when everything else looks correctly configured.
</Warning>

## Step 4: Create an application in your identity provider

Switch to your identity provider's admin console and create an application for G360. This step is genuinely different for every provider — the console, the field names, and the traps are all vendor-specific.

<Columns cols={3}>
  <Card title="Microsoft Entra ID" icon="microsoft" href="/g360/sso-entra">
    Single-tenant app registration, `/v2.0/` issuer URL.
  </Card>

  <Card title="Okta" icon="https://mintcdn.com/na-f445b234/5C4ikUH0nvZc6hev/images/icons/okta.svg?fit=max&auto=format&n=5C4ikUH0nvZc6hev&q=85&s=e3cdf89c48cf3c8a301d8dbd7c338de8" href="/g360/sso-okta" width="24" height="24" data-path="images/icons/okta.svg">
    OIDC Web App, org authorization server.
  </Card>

  <Card title="PingOne" icon="fingerprint" href="/g360/sso-pingone">
    OIDC Web App, Client Secret Post.
  </Card>

  <Card title="OneLogin" icon="key" href="/g360/sso-onelogin">
    Generic OIDC connector, per-user assignment.
  </Card>

  <Card title="Google" icon="google" href="/g360/sso-google">
    Google Cloud OAuth client, test users list.
  </Card>

  <Card title="Other OIDC provider" icon="https://mintcdn.com/na-f445b234/5C4ikUH0nvZc6hev/images/icons/openid.svg?fit=max&auto=format&n=5C4ikUH0nvZc6hev&q=85&s=20f49dbb47e4eadc1945fc06f92a307e" href="/g360/sso-oidc" width="24" height="24" data-path="images/icons/openid.svg">
    Any standards-compliant OIDC provider.
  </Card>
</Columns>

### Collecting the credentials

Whichever provider you use, you should end up with these three values.

| Value             | What it is                                                                                                                                                                             |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Client ID**     | The public identifier for the G360 application. Usually on the application's overview or configuration page.                                                                           |
| **Client Secret** | The private key that lets G360 authenticate as this application. **Every provider in this guide shows it only once, at creation** — if you didn't copy it, generate a new one.         |
| **Issuer URL**    | The OIDC discovery endpoint. May be listed as *OIDC Discovery Endpoint*, *Well-known Configuration*, or *Metadata URL*, and almost always ends in `/.well-known/openid-configuration`. |

<Frame caption="The G360 application in an identity provider console, showing the Client ID and Client Secret.">
  <img src="https://mintcdn.com/na-f445b234/ZrLZb0Hxd2QWyc0L/images/g360/sso/idp-client-credentials.jpg?fit=max&auto=format&n=ZrLZb0Hxd2QWyc0L&q=85&s=6a5721ab6449c68bc7acd5e90346afe5" alt="Identity provider application overview showing Environment ID, Client ID, and masked Client Secret" width="1400" height="625" data-path="images/g360/sso/idp-client-credentials.jpg" />
</Frame>

<Warning>
  **Treat the client secret like a password.** Copy it directly into G360 — do not share it over email or chat. Confirm the issuer URL in your provider's console rather than typing it from memory; the correct URL depends on your region, tenant, and environment.
</Warning>

## Step 5: Enter the details in G360

Return to **Settings → SSO Settings** and fill in the **Identity Provider** section. If a configuration already exists, click **Edit** first.

| Field                                | What to enter                                                                                                            |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| **Identity Provider** (required)     | Select your provider from the dropdown.                                                                                  |
| **Client ID** (required)             | The client ID from the application you created.                                                                          |
| **Client Secret** (required)         | The client secret. Stored encrypted and masked after saving.                                                             |
| **Issuer URL** (required)            | The OIDC discovery endpoint from your provider.                                                                          |
| **Allowed email domains** (required) | Your organization's email domain(s), for example `yourcompany.com`. Only users on these domains can sign in through SSO. |

<Frame caption="Identity Provider section filled in with Client ID, Client Secret, Issuer URL, and allowed email domains.">
  <img src="https://mintcdn.com/na-f445b234/ZrLZb0Hxd2QWyc0L/images/g360/sso/sso-identity-provider.jpg?fit=max&auto=format&n=ZrLZb0Hxd2QWyc0L&q=85&s=a6e426ec198de209d3726bf019b313a9" alt="G360 Identity Provider settings form with callback URL, client ID, client secret, issuer URL, and allowed email domains" width="1400" height="625" data-path="images/g360/sso/sso-identity-provider.jpg" />
</Frame>

## Step 6: Test the connection

Click **Test Connection**. G360 contacts your identity provider using the details you entered and reports the result on screen.

* **Success** — the two applications are communicating correctly. Continue.
* **Failure** — the message explains what went wrong, usually an incorrect client ID, client secret, or issuer URL. Correct the value and test again.

<Tip>
  Test the connection **before** saving. It's much easier to catch a mistyped credential now than after users start reporting failed logins.
</Tip>

## Step 7: Save and verify

Save the **Identity Provider** section. Your basic SSO setup is complete, and a **Sign in with SSO** button appears on the G360 login page.

<Frame caption="G360 login page showing the Sign in with SSO button.">
  <img src="https://mintcdn.com/na-f445b234/ZrLZb0Hxd2QWyc0L/images/g360/sso/sso-login-button.jpg?fit=max&auto=format&n=ZrLZb0Hxd2QWyc0L&q=85&s=fbf44bf3d7af70b71c9c6ee373f46dfa" alt="G360 login page with email and password fields and a Sign in with SSO button below" width="1400" height="625" data-path="images/g360/sso/sso-login-button.jpg" />
</Frame>

Before telling your team, verify the setup end to end:

<Steps>
  <Step title="Open a private or incognito window">
    This avoids reusing an existing session.
  </Step>

  <Step title="Go to the G360 login page and click Sign in with SSO">
    Confirm that you are redirected to your identity provider.
  </Step>

  <Step title="Authenticate with your organization's account">
    Confirm that you are redirected back into G360.
  </Step>
</Steps>

***

## Access policy

The **Access Policy** section controls who can use single sign-on and what happens when someone new signs in for the first time.

| Setting                            | What it does                                                                                                                                                                                          |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **New-user provisioning**          | Whether a G360 account is created automatically the first time someone from an allowed domain signs in through SSO. Set to **Create automatically on first sign-in** to let users onboard themselves. |
| **Default role for new SSO users** | The role assigned to automatically created accounts. The default is **User**, the least privileged role.                                                                                              |
| **Enforce SSO**                    | Disables password sign-in for everyone on the allowed domains, making SSO the only way in. Support accounts are always exempt.                                                                        |

Click **Save Changes** after configuring these settings.

<Frame caption="Access Policy section — new-user provisioning, default role, and Enforce SSO.">
  <img src="https://mintcdn.com/na-f445b234/ZrLZb0Hxd2QWyc0L/images/g360/sso/sso-access-policy.jpg?fit=max&auto=format&n=ZrLZb0Hxd2QWyc0L&q=85&s=3e0909d6d2b39577fcb08aca1b0532d6" alt="G360 Access Policy settings with new-user provisioning dropdown, default role dropdown, and Enforce SSO toggle" width="1400" height="625" data-path="images/g360/sso/sso-access-policy.jpg" />
</Frame>

### What Enforce SSO looks like to users

When **Enforce SSO** is enabled, anyone who tries to sign in with an email address and password sees a message on the login page telling them to use their organization's account and the **Sign in with SSO** button.

<Warning>
  **Only enable Enforce SSO after confirming that SSO sign-in works end to end.** If the identity provider connection is broken while SSO is enforced, users lose the password fallback. Turning Enforce SSO back off restores password sign-in immediately.
</Warning>

<Frame caption="The message shown when Enforce SSO is enabled and a user tries to sign in with a password.">
  <img src="https://mintcdn.com/na-f445b234/ZrLZb0Hxd2QWyc0L/images/g360/sso/sso-enforced-message.jpg?fit=max&auto=format&n=ZrLZb0Hxd2QWyc0L&q=85&s=62b1e9b166a28a8a857b5cff1c7480ac" alt="G360 login page showing a red message explaining that this instance requires signing in with the organization's account" width="1400" height="614" data-path="images/g360/sso/sso-enforced-message.jpg" />
</Frame>

## Roles and what users can see

New SSO users are created with the **User** role by default. Signing in successfully does not, by itself, grant access to engineering or cost data. A user with this role sees:

> No developer data linked to your account yet. Contact your admin.

<Frame caption="What a newly signed-in user sees before a role with data access is assigned.">
  <img src="https://mintcdn.com/na-f445b234/ZrLZb0Hxd2QWyc0L/images/g360/sso/sso-no-data-message.jpg?fit=max&auto=format&n=ZrLZb0Hxd2QWyc0L&q=85&s=1defcb06d35914c3870791981adc1425" alt="G360 dashboard showing the message No developer data linked to your account yet" width="1400" height="633" data-path="images/g360/sso/sso-no-data-message.jpg" />
</Frame>

To give someone broader access, assign a higher role — such as an engineering or FinOps leadership role — under [User & Team Management](/g360/manage-users). The metrics and dashboard sections a person can open depend on the role assigned to them.

<Note>
  A role change takes effect at the **next sign-in**. Ask the user to sign out and sign back in through SSO to receive their new access.
</Note>

## Keep accounts in sync with SCIM

SCIM keeps your G360 user list automatically synchronized with your identity provider — new joiners are created, name changes flow through, and leavers are suspended without an administrator touching anything.

<Card title="SCIM provisioning" icon="arrows-rotate" href="/g360/sso-scim">
  Provider availability, token generation, and what SCIM syncs. **Not available on every provider or plan** — check before planning a rollout around it.
</Card>

***

## Signing in with SSO

This section applies to everyone in your organization, not just administrators.

<Frame caption="The G360 login page. Use Sign in with SSO rather than the email and password fields.">
  <img src="https://mintcdn.com/na-f445b234/ZrLZb0Hxd2QWyc0L/images/g360/sso/sso-login-button.jpg?fit=max&auto=format&n=ZrLZb0Hxd2QWyc0L&q=85&s=fbf44bf3d7af70b71c9c6ee373f46dfa" alt="G360 login page with email and password fields and a Sign in with SSO button below them" width="1400" height="625" data-path="images/g360/sso/sso-login-button.jpg" />
</Frame>

<Steps>
  <Step title="Go to the G360 login page">
    Open G360 in your browser.
  </Step>

  <Step title="Click Sign in with SSO">
    Use the button below the email and password fields instead of entering a password.
  </Step>

  <Step title="Authenticate with your organization's account">
    You are redirected to your organization's sign-in page. Enter the credentials you use for your other work applications. If your organization requires MFA or a first-time password change, you are prompted for it here — this is handled entirely by your identity provider, not by G360.
  </Step>

  <Step title="You're signed in">
    After authentication you are redirected back to G360 and taken to your dashboard.
  </Step>
</Steps>

<Note>
  If you see *"No developer data linked to your account yet. Contact your admin."*, your sign-in **was** successful — your account simply has not been assigned a role with access to that data. Ask your G360 administrator to update your role, then sign out and sign in again.
</Note>

***

## Troubleshooting

<AccordionGroup>
  <Accordion title="Test Connection fails">
    **Possible causes**

    * The client ID or client secret was copied incorrectly, or includes a leading or trailing space.
    * The issuer URL points to the wrong environment, tenant, or region.
    * The application in your identity provider is disabled or was never saved.

    **Resolution**

    * Re-copy each value using your provider's copy button instead of retyping it.
    * Confirm the issuer URL ends in `/.well-known/openid-configuration` and opens in a browser.
    * Check the application is enabled in your identity provider, then test again.
  </Accordion>

  <Accordion title="The Sign in with SSO button does not appear">
    **Possible causes**

    * **Enable single sign-on** is turned off.
    * The **Identity Provider** section was filled in but never saved.

    **Resolution**

    * Sign in as an administrator, go to **Settings → SSO Settings**, and confirm the toggle is on.
    * Re-open the Identity Provider section, confirm all fields are populated, and save it.
  </Accordion>

  <Accordion title="Sign-in fails after the redirect back to G360">
    **Possible causes**

    * The callback URL in your identity provider does not exactly match the one shown in G360.
    * The user's email domain is not listed under **Allowed email domains**.
    * The user is not assigned to the G360 application in the identity provider.

    **Resolution**

    * Copy the callback URL from G360 again and compare it character for character, including the trailing slash.
    * Add the user's domain to **Allowed email domains** and save.
    * Assign the user or their group to the G360 application in your identity provider.
  </Accordion>

  <Accordion title="A user cannot sign in with their password">
    **Possible cause** — **Enforce SSO** is enabled, which disables password sign-in for everyone on the allowed domains.

    **Resolution** — This is expected behavior. Ask the user to use the **Sign in with SSO** button. If SSO itself is broken, an administrator can turn Enforce SSO off to restore password sign-in while the issue is investigated.
  </Accordion>

  <Accordion title="A user signed in but cannot see any data">
    **Possible cause** — The account was created with the default **User** role, which provides minimal access.

    **Resolution** — Assign a higher role under **Administration → User & Team Management**, then ask the user to sign out and sign in again. Role changes apply at the next sign-in.
  </Accordion>
</AccordionGroup>

For provider-specific error messages (`AADSTS50011`, `invalid_client`, `access_denied`, and similar), see the troubleshooting section on your provider's page.

## Best practices

* **Test before you enforce.** Verify SSO sign-in works end to end with a real account before turning on Enforce SSO.
* **Enable SCIM before onboarding at scale**, on a provider that supports it, so accounts are created, updated, and deactivated automatically from day one instead of becoming a manual backlog.
* **Keep allowed domains tight.** List only the domains your organization actually owns — every extra domain widens who can create a G360 account through SSO.
* **Rotate and revoke SCIM tokens deliberately.** Only one token can be active at a time, so plan rotations for a low-traffic window and update your identity provider immediately.
* **Review roles periodically.** New SSO users get the least privileged role by default; make sure access still matches people's current responsibilities.
* **On Entra ID, Okta and OneLogin, watch both applications.** These providers split SSO and SCIM across two separate applications. A user assigned to only one either can't sign in, or can sign in but will never be deprovisioned.
