OpenID Connect (OIDC)
The OIDC login provider uses the OpenID Connect (OIDC) authorization code flow to authenticate a user. All OIDC-compliant identity providers (IdP) are supported, this includes Keycloak, Microsoft Azure (Entra ID), Google.
Redirect URL
The redirect URL is where your identity provider sends an authorization code after authentication. It is a critical security feature that ensures that authorization codes are only sent to the intended recipient. For Studo Flow this needs to be set to:
https://<your-flow-domain>/oidc/callback
PKCE (Proof Key for Code Exchange)
Although PKCE was originally introduced for public clients (mobile/SPA apps that cannot keep a client secret), the OAuth 2.0 Security Best Current Practice (RFC 9700) now recommends it for all clients, including confidential ones like Studo Flow. The upcoming OAuth 2.1 standard is expected to make PKCE mandatory across the board.
Studo Flow supports PKCE (RFC 7636) as an optional security enhancement for
the authorization code flow. PKCE protects against authorization code interception attacks. It can be enabled via the
enablePkce configuration key on the OIDC login provider.
PKCE requires your IdP to support it. Most modern IdPs (Keycloak 8+, Entra ID, Google) do. Enable it only after confirming support — mismatched PKCE configuration will break logins.
Backchannel logout
If the OIDC provider supports backchannel logout, Studo Flow also supports it. The IdP must be configured to send backchannel logout requests to the Studo Flow backchannel logout endpoint:
https://<your-flow-domain>/oidc/backChannelLogout
Setup Flow to use your OIDC client
Requirements
You have set up a new OIDC client on your Identity Provider of choice. You will need the following configuration values:
- OIDC client ID
- OIDC client secret
- OIDC metadata document url
Configuration
Go to your Flow server's web UI, and log in as an admin user.
In case of the hosted option, this configuration has to be done by Studo.
- Go to System Configuration and click Configure login providers in the toolbar.
- Scroll down to OidcLoginProvider, set enable to "true" and click Save configuration.
- Set clientId to your client's id.
- Set clientSecret to your client's secret.
- Set openIdConfigUrl to your OpenID Endpoint Configuration URL (.well-known/openid-configuration).
- Optional: Set enablePkce to "true" if PKCE is supported by your provider.
Getting the user IDs right
Flow gets all its users from its importers. The userId of these users must either match
- the subject ("sub" field in the userinfo response)
- the username ("preferred_username" field in the userinfo response)
Configure the userIdField according to your needs.
Limitations
All users who log in via the OIDC login provider must already exist in the Studo Flow database (created by an importer). Currently, it's not possible to create a user "on-demand" when logging in. If this is a requirement contact us.
Guides
Keycloak
This short tutorial shows how to set up Studo Flow's OIDC login provider with Keycloak.
Microsoft Entra ID
This short tutorial shows how to set up Studo Flow's OIDC login provider with Microsoft Entra ID.
Every CAMPUSonline deployment has a Keycloak instance.