Prerequisites
- An OIDC-capable identity provider with admin access
- Bifrost Enterprise deployed and accessible
- Your Bifrost callback URL:
https://<your-bifrost-domain>/login - The ability to create a confidential (client secret) OAuth 2.0 application in your IdP
- Bifrost roles created for the roles you plan to map
Step 1: Create an OIDC application in your IdP
Register a new application
Configure redirect URIs
Step 2: Configure token claims
Ensure the required scopes are requested
openid- required for OIDCprofile- providesname,given_name,family_nameemail- provides the user’s email addressoffline_access- provides a refresh token for session maintenance (if supported)
Include group or role claims
Step 3: Copy your credentials
Note the Issuer URL, Client ID, and Client Secret
https://auth.company.com or https://auth.company.com/realms/my-realm. Bifrost uses it to discover endpoints via <issuer>/.well-known/openid-configuration.Step 4: Assign users
Grant users access to the application
- Explicit assignment - add users directly to the application
- Group-based access - assign a group; all members get access
- Policy-based - configure an access policy
Step 5: Configure Bifrost
Open User Provisioning and choose Generic OIDC

Select Generic OIDC Provider from the list of identity providers.
Fill in the provider configuration

Provider Configuration - enter your OIDC issuer URL and client credentials, then Discover endpoints to validate.
Discover claims

Discover Claims - shows all claims the IdP is returning in the JWT so you can reference exact names when building mappings.
openid, profile, and email scopes and that the discovery callback URI is registered.Set up attribute mappings
- The role with the most permissions (default)
- The first matching role, by list order (drag rows to set priority)
- Use a specific value (e.g.
engineering) to map that exact claim value to a named team - Use
*to sync the claim value directly as the team name - Use
${*}to extract part of the string - e.g./${*}matches/Engineeringand creates team Engineering

Attribute Mapping - configure role, team, and business unit rules based on the claims your IdP sends.
* maps the claim value directly as the entity name. Value comparisons are case-insensitive.Review and enable

Review & Enable - confirm your connection and mappings before activating the provider.
How background sync works
Bifrost refreshes active OIDC sessions every 15 minutes. If a session cannot be refreshed, Bifrost checks with your IdP whether the user is still active; if the IdP reports the user as inactive, Bifrost decommissions that user locally. For providers that support it, see SCIM with Generic OIDC to enable real-time user and group provisioning.Troubleshooting
User is not redirected to the IdP - verify the provider is enabled in Bifrost and the server was restarted after saving. Confirm the Issuer URL has no trailing slash and is reachable from your Bifrost server. JWKS validation fails - Bifrost fetches<issuer>/.well-known/openid-configuration to discover the JWKS endpoint. Ensure this URL is reachable from your Bifrost host.
Audience mismatch - set the Audience field in Bifrost to match the aud claim in the JWT. Leave blank to default to the Client ID.
Claims are present in Discover Claims but role mapping is not working - confirm the claim name matches exactly what the IdP sends (case-sensitive, including namespacing). Dotted paths (e.g. realm_access.roles) are supported.
Login fails after successful IdP authentication - check that the redirect URI in your IdP exactly matches https://<your-bifrost-domain>/login. Trailing slashes and path differences are not allowed.
