To allow end users to authenticate through an IDP using Open ID Connect protocol, the following parameters must be configured on the IDP.
OIDC Application Configuration
-
The Identity Provider (IDP) must be set up with a valid OIDC application.
-
The application must include a redirect URI in the following format, provided the IDP validates the
redirect_uriin the incoming request.https://<LB_URL>/portal/oidcAuthCodeCallback -
The
<LB_URL>must correspond to the value found in one of the following HTTP headers in the request sent to Unified Access Gateway.- X-Forwarded-Host
- Host
-
If both X-Forwarded-Host and Host are present, X-Forwarded-Host is used.
Discovery Document Requirements
When Unified Access Gateway requests the OIDC discovery endpoint (usually /.well-known/openid-configuration), the IDP must respond with at least the following fields.
| Field Name | Description |
|---|---|
issuer | The unique identifier for the IDP |
authorization_endpoint | URL for the authorization request |
token_endpoint | URL to exchange the authorization code for tokens |
userinfo_endpoint | URL to retrieve user information |
jwks_uri | URL to retrieve the public keys for token verification |
Token Endpoint Response Requirements
The response from the token_endpoint must include the following information.
| Token Name | Required | Description |
|---|---|---|
access_token | Yes | Used to authorize access to protected resources |
id_token | Yes | Contains user identity claims |
The id_token must include the following claims.
| Claim | Required | Description |
|---|---|---|
iss | Yes | Issuer identifier |
sub | Yes | Subject (user identifier) |
exp | Yes | Expiration time |
preferred_username | Yes* | Preferred username |
email | Yes* | Email of the user |
name | Yes* | Full name of the user |
*If any of preferred_username or email or name are absent in the id_token, they must be obtained from the userinfo_endpoint.
Userinfo Endpoint Requirements
If utilized, the userinfo_endpoint must return the following claims.
| Claim | Required |
|---|---|
preferred_username | Yes |
email | Yes |
name | Yes |
Sample Token
{
"sub": "00ukuzchb1ZY7krC85d7",
"name": "firstname lastname",
"email": "test@domain.com",
"ver": 1,
"iss": "https://test.okta.com",
"aud": "client-id",
"iat": 1748414018,
"exp": 1748417618,
"jti": "ID.8hVUu3gS920KVfDWXmqgrlVoJ4BAmysH1r37DUI96qc",
"amr": [
"pwd"
],
"idp": "00okuy73u8S5TYsaz5d7",
"preferred_username": "test@domain.com",
"auth_time": 1748413974,
"at_hash": "iBpNiNV69JpmmrhV1xfn_g"
}
Was this page helpful?