Prerequisites
- A verified email domain, the organization Owner role, and an eligible plan. See Set up single sign-on.
- Admin access to your identity provider, with permission to create OAuth or OIDC applications.
What you exchange
CloudThinker requests the
openid, email and profile scopes. It reads the user’s email from the email claim (falling back to preferred_username) and the name from given_name and family_name. It doesn’t read groups.
Configure your provider
Go to Admin Settings → Identity and access → Setup SSO, choose OpenID Connect (OIDC), and click Next. The IdP Config step asks for Display Name (any label, for exampleOkta OIDC), Issuer URL, Client ID and Client Secret.
- Okta
- Microsoft Entra ID
- Google
- Other OIDC provider
1
Create an OIDC app
In the Okta Admin Console, go to Applications → Applications → Create App Integration. Choose OIDC - OpenID Connect and Web Application. Under Grant type, keep Authorization Code.
2
Add the redirect URI
Under Sign-in redirect URIs, paste CloudThinker’s redirect URI. Assign the people or groups who need access, then save.
3
Finish in CloudThinker
From the app’s General tab, copy the Client ID and Client secret. On the IdP Config step, enter:
- Issuer URL:
https://your-org.okta.com. If you use a custom authorization server, enter its issuer instead, for examplehttps://your-org.okta.com/oauth2/default. - Client ID and Client Secret: from the Okta app
What the connection test checks
On Manage → Overview, Run connection test checks your configuration without a full sign-in:
The test doesn’t verify the client secret or redirect URI. Do a real sign-in to confirm those.
What happens on first sign-in
OIDC follows the same rules as SAML:Rotate the client secret
CloudThinker stores one client secret. Most IdPs, including Entra ID and Okta, let two secrets be valid at once, so you can rotate with no downtime:1
Create a new secret in your IdP
Add a second client secret to the CloudThinker app. Leave the old one in place.
2
Save it in CloudThinker
Open Manage → Configuration on the Single sign-on card, paste the new value into Client Secret, and click Save Changes.
3
Test, then remove the old secret
Sign in through SSO in a private window. Once it works, delete the old secret in your IdP.
Troubleshooting
'Redirect URI mismatch' from your provider
'Redirect URI mismatch' from your provider
The redirect URI in your provider must match
https://<your-cloudthinker-api-host>/api/v1/sso/oidc/callback exactly, including https:// and the full path. Use the tip above to confirm the host.Issuer Match fails
Issuer Match fails
Copy the
issuer value straight from your provider’s discovery document. Common mistakes: pasting the full .well-known/openid-configuration address, or leaving out /v2.0 for Entra ID.Discovery Reachable fails
Discovery Reachable fails
CloudThinker must reach your issuer over the public internet. An issuer on a private network or behind a VPN can’t be discovered.
'Invalid client' or sign-in fails right after the IdP
'Invalid client' or sign-in fails right after the IdP
Check the Client ID and Client Secret. Expired secrets are a common cause on Entra ID. Follow Rotate the client secret.
Sign-in fails because no email is returned
Sign-in fails because no email is returned
Your provider isn’t returning an
email or preferred_username claim. Allow the email scope for the app and make sure the user has an email address in the directory.'SSO authentication failed. Please try again or contact your administrator.'
'SSO authentication failed. Please try again or contact your administrator.'
CloudThinker rejected the ID token or the token exchange. Check that the Issuer URL matches the discovery document, the client secret is current, and your IdP accepts
client_secret_post and PKCE for this client.Next steps
Test and require SSO
Run a test sign-in, choose provisioning, and turn on Require SSO
SCIM provisioning
Sync users and groups from your IdP automatically