要允许最终用户使用 Open ID Connect 协议通过 IDP 进行身份验证,必须在 IDP 上配置以下参数。
OIDC 应用程序配置
-
必须使用有效的 OIDC 应用程序设置身份提供程序 (IDP)。
-
应用程序必须包含以下格式的重定向 URI,前提是 IDP 验证了入站请求中的
redirect_uri。https://<LB_URL>/portal/oidcAuthCodeCallback -
<LB_URL>必须与发送到 Unified Access Gateway 的请求中以下 HTTP 标头之一中的值相对应。- X-Forwarded-Host
- 主机
-
如果同时存在 X-Forwarded-Host 和 Host,则使用 X-Forwarded-Host。
发现文档要求
如果 Unified Access Gateway 请求 OIDC 发现端点(通常为 /.well-known/openid-configuration),IDP 必须至少使用以下字段进行响应。
| 字段名称 | 描述 |
|---|---|
issuer | IDP 的唯一标识符 |
authorization_endpoint | 授权请求的 URL |
token_endpoint | 用于交换令牌授权代码的 URL |
userinfo_endpoint | 用于检索用户信息的 URL |
jwks_uri | 用于检索令牌验证所需公钥的 URL |
令牌端点响应要求
来自 token_endpoint 的响应必须包含以下信息。
| 令牌名称 | 必需 | 描述 |
|---|---|---|
access_token | 是 | 用于授权访问受保护的资源 |
id_token | 是 | 包含用户身份声明 |
id_token 必须包含以下声明。
| 声明 | 必需 | 描述 |
|---|---|---|
iss | 是 | 颁发者标识符 |
sub | 是 | 主体(用户标识符) |
exp | 是 | 过期时间 |
preferred_username | 是* | 首选用户名 |
email | 是* | 用户的电子邮件 |
name | 是* | 用户的全名 |
*如果 id_token 中缺少 preferred_username、email 或 name 中的任何一个,则必须从 userinfo_endpoint 中获取它们。
用户信息端点要求
如果使用了 userinfo_endpoint,它必须返回以下声明。
| 声明 | 必需 |
|---|---|
preferred_username | 是 |
email | 是 |
name | 是 |
令牌示例
{
"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"
}
此页面对您有帮助吗?