Provider guides
The steps at each identity provider the presets cover: Google Workspace, Microsoft Entra ID, Okta, Keycloak, authentik, Auth0, and any other OpenID Connect provider.
Describes Ronne AI Marketplace 0.4.0.
Google Workspace
- In the Google Cloud console, APIs & Services › Credentials, create an OAuth client ID of type Web application, and add the redirect URI (
https://ronne.example.com/api/auth/sso/callback/<id>) under Authorized redirect URIs. - Set the OAuth consent screen to Internal, so only your Workspace can use it.
- Bring back the client ID and the client secret. The issuer is
https://accounts.google.com. - List your Workspace's domain under Who may sign in to create accounts on first sign-in.
Google doesn't put groups in its ID token, so group mappings can't be used with it.
Ronne reads sub, email, email_verified (it must be true), name, and the groups claim if you map groups. Test sign-in shows what arrived. The usual mistakes are under Adding a provider.
Microsoft Entra ID
- In the Entra admin center, App registrations › New registration, single tenant, with the redirect URI (
https://ronne.example.com/api/auth/sso/callback/<id>) as a Web platform URI. Then Certificates & secrets › New client secret. - Bring back the Directory (tenant) ID (the preset makes the issuer,
https://login.microsoftonline.com/<tenant>/v2.0), the Application (client) ID and the secret's Value (not its ID). - Token configuration › Add optional claim › ID:
emailandxms_edov. Entra never sendsemail_verified; for this preset Ronne acceptsxms_edov(the email's domain is verified in your tenant) instead. Without it, sign-ins are refused. - Groups (optional): Token configuration › Add groups claim › Security groups. Entra sends group object IDs: map those. Past 200 groups the claim is left out, so assign only the groups Ronne maps to the application.
Ronne reads sub, email, email_verified (it must be true), name, and the groups claim if you map groups. Test sign-in shows what arrived. The usual mistakes are under Adding a provider.
Okta
- Applications › Create App Integration › OIDC, Web Application, with the redirect URI (
https://ronne.example.com/api/auth/sso/callback/<id>) as a sign-in redirect URI. Assign the people or groups who may use Ronne. - Bring back the client ID and client secret from the application's General tab. The issuer is your Okta domain,
https://<your-org>.okta.com(the org authorization server). - Groups (optional): on the application's Sign On tab, set the groups claim: name
groups, filter Matches regex.*(or only the groups Ronne maps). Add thegroupsscope.
Ronne reads sub, email, email_verified (it must be true), name, and the groups claim if you map groups. Test sign-in shows what arrived. The usual mistakes are under Adding a provider.
Keycloak
- In the realm, Clients › Create client: OpenID Connect, Client authentication on, Standard flow only, and the redirect URI (
https://ronne.example.com/api/auth/sso/callback/<id>) under Valid redirect URIs. - Bring back the client ID, and the client secret from the client's Credentials tab. The issuer is the realm's address,
https://<host>/realms/<realm>. A Keycloak on a private address works: only root can type an issuer. - Groups (optional): Client scopes › the client's dedicated scope › Add mapper › Group Membership, token claim name
groups, Full group path off.
Ronne reads sub, email, email_verified (it must be true), name, and the groups claim if you map groups. Test sign-in shows what arrived. The usual mistakes are under Adding a provider.
authentik
- Applications › Providers › Create › OAuth2/OpenID Provider, confidential, with the redirect URI (
https://ronne.example.com/api/auth/sso/callback/<id>) as a strict redirect URI. Then an application using it; its slug is in the issuer. - Bring back the client ID and client secret from the provider's page. The issuer is
https://<host>/application/o/<slug>/, with its trailing slash. - Groups: the
profilescope already sends them (the group names) in thegroupsclaim.
Ronne reads sub, email, email_verified (it must be true), name, and the groups claim if you map groups. Test sign-in shows what arrived. The usual mistakes are under Adding a provider.
Auth0
- Applications › Create Application › Regular Web Application, and the redirect URI (
https://ronne.example.com/api/auth/sso/callback/<id>) under Allowed Callback URLs. - Bring back the domain (the issuer is
https://<domain>/, with its trailing slash), the client ID and the client secret from the application's Settings tab. - Groups (optional): Auth0 has no groups claim of its own. Add a post-login Action that sets the custom claim
https://ronne.ai/groupson the ID token (from roles or app metadata); the preset reads that claim.
Ronne reads sub, email, email_verified (it must be true), name, and the groups claim if you map groups. Test sign-in shows what arrived. The usual mistakes are under Adding a provider.
Other OpenID Connect
- Register a confidential web application using the authorization code flow with PKCE, and the redirect URI (
https://ronne.example.com/api/auth/sso/callback/<id>) exactly as shown. - Bring back the issuer (the address whose
/.well-known/openid-configurationthe provider publishes, exactly as that document's issuer says it), the client ID and the client secret. It must behttps://. - Groups (optional): the claim that lists them, usually
groups.
Ronne reads sub, email, email_verified (it must be true), name, and the groups claim if you map groups. Test sign-in shows what arrived. The usual mistakes are under Adding a provider.