Integrate Red Hat Edge Manager with an external OpenID Connect (OIDC) identity provider to enable Single Sign-On (SSO) for user authentication.
Before you begin
- A running Red Hat Edge Manager installation on Red Hat Enterprise Linux. See Installing the Red Hat Edge Manager RPM package.
- Administrative access (root or sudo) on the Red Hat Edge Manager host.
- An external OIDC provider configured with a client application for Red Hat Edge Manager (for example, a realm and client in Red Hat Build of Keycloak).
Procedure
-
Stop the flightctl services before editing your
service-config.yaml file:
sudo systemctl stop flightctl.target
-
Configure the integration settings by editing the configuration file:
sudo vi /etc/flightctl/service-config.yaml
-
Update the configuration file to integrate with OIDC:
global:
baseDomain: YOUR_EDGE_MANAGER_HOSTNAME
auth:
type: oidc
insecureSkipTlsVerify: false
oidc:
oidcAuthority: "https://YOUR_IDP_HOST/realms/YOUR_REALM"
externalOidcAuthority: "https://YOUR_IDP_PUBLIC_HOST/realms/YOUR_REALM"
oidcClientId: "YOUR_OIDC_CLIENT_ID"
- baseDomain
- The DNS name for the Red Hat Edge Manager host that clients use with the HTTPS gateway on port
443 (for example, edge.example.com). Register OIDC redirect URIs that use https://<baseDomain>/ on port 443.
- type
- Set this to
oidc to enable OIDC authentication.
- insecureSkipTlsVerify
- Set to
false. Only set this to true to skip TLS certificate verification for your identity provider URLs. For production environments, configure a proper CA truststore instead of leaving verification disabled.
- oidcAuthority
- The base URL to your Realm’s OpenID Connect configuration endpoint.
- externalOidcAuthority
- The publicly accessible URL for the same Keycloak realm endpoint.
- oidcClientId
- The Client ID you defined when registering your application in the Keycloak console.
-
Start the services:
sudo systemctl start flightctl.target
Results
sudo systemctl status flightctl.target reports active services.
- Sign in to the Red Hat Edge Manager web console at
https://<baseDomain>/ by using an OIDC-backed user account.
flightctl login https://<baseDomain> --web completes the browser-based sign-in flow successfully.