OpenID Connect (OIDC) Authentication¶
Testflinger supports OpenID Connect (OIDC) authentication for simplifying the management of user logins. This enables integration with existing enterprise identity systems (such as SSO providers), centralizes access control, and allows administrators to manage user lifecycle through the identity provider rather than the Testflinger server itself.
When OIDC is enabled, Testflinger restricts access to its resources to
authenticated users only. Users accessing the web interface must authenticate
via the OIDC provider while CLI users must either authenticate with the OIDC
provider or with a Testflinger client_id and secret_key pair before
they can use any functionality. When OIDC is not configured, the server allows
anonymous access for non-restricted endpoints. For a list of endpoints and their
restriction to different roles, please refer to API endpoint roles.
See also
- How to Enable OIDC
Steps to configure a provider and enable OIDC on a Testflinger server.
- Reference OIDC Configuration
Complete list of OIDC options configurable by the Testflinger Juju charm.
Provider Capabilities¶
Testflinger relies on specific OIDC capabilities that the configured provider must support:
Token authentication: Testflinger uses
client_secret_basic(HTTP Basic Auth in the Authorization header) for confidential clients, or falls back to including the OIDCclient_idin the request body for public clients.Authorization Code Flow: required for web interface authentication, using the
authorization_codegrant type.Device Authorization Flow: required for CLI authentication, using the
urn:ietf:params:oauth:grant-type:device_codegrant type.Scopes: Testflinger requests
openid,profile, andemailscopes. Theemailclaim is used as the user’s stable identity within Testflinger.Redirect URI: the provider must support a redirect URI with the following format for the Authorization Code Flow:
https://<testflinger-server-hostname>/auth/callback