SylviaBABY commented on code in PR #6895: URL: https://github.com/apache/apisix/pull/6895#discussion_r854931591
########## docs/zh/latest/plugins/openid-connect.md: ########## @@ -23,45 +29,59 @@ title: openid-connect ## 描述 -OAuth 2 / Open ID Connect(OIDC)插件为 APISIX 提供身份验证和自省功能。 +`openid-connect` 插件通过 [OpenID Connect](https://openid.net/connect/) 为 APISIX 提供身份验证和自省功能。 ## 属性 -| 名称 | 类型 | 必选项 | 默认值 | 有效值 | 描述 | -| ---------------------------------- | ------- | ------ | --------------------- | ------- | ---------------------------------------------- | -| client_id | string | 必须 | | | OAuth 客户端 ID | -| client_secret | string | 必须 | | | OAuth 客户端 secret | -| discovery | string | 必须 | | | 身份服务器的发现端点的 URL | -| scope | string | 可选 | "openid" | | 用于认证 | -| realm | string | 可选 | "apisix" | | 用于认证 | -| bearer_only | boolean | 可选 | false | | 设置为 `true` 将检查请求中带有承载令牌的授权标头 | -| logout_path | string | 可选 | "/logout" | | | -| post_logout_redirect_uri | string | 可选 | | | 调用登出接口后想要跳转的地址 | -| redirect_uri | string | 可选 | "ngx.var.request_uri" | | | -| timeout | integer | 可选 | 3 | [1,...] | 超时时间,单位为秒 | -| ssl_verify | boolean | 可选 | false | | | -| introspection_endpoint | string | 可选 | | | 身份服务器的令牌验证端点的 URL | -| introspection_endpoint_auth_method | string | 可选 | "client_secret_basic" | | 令牌自省的认证方法名称 | -| public_key | string | 可选 | | | 验证令牌的公钥 | -| token_signing_alg_values_expected | string | 可选 | | | 用于对令牌进行签名的算法 | -| set_access_token_header | boolean | 可选 | true | | 在请求头设置访问令牌 | -| access_token_in_authorization_header | boolean | 可选 | false | | 当值为 `true` 时,将访问令牌设置在请求头参数 `Authorization`,否则将使用请求头参数 `X-Access-Token`。| -| set_id_token_header | boolean | 可选 | true | | 是否将 ID 令牌设置到请求头参数 `X-ID-Token` | -| set_userinfo_header | boolean | 可选 | true | | 是否将用户信息对象设置到请求头参数 `X-Userinfo` | +| 名称 | 类型 | 必选项 | 默认值 | 有效值 | 描述 | +| ------------------------------------ | ------- | ------ | --------------------- | ------- | ---------------------------------------------------------------------------------------------------- | +| client_id | string | 是 | | | OAuth 客户端 ID。 | +| client_secret | string | 是 | | | OAuth 客户端 secret。 | +| discovery | string | 是 | | | 身份服务器的发现端点的 URL。 | +| scope | string | 否 | "openid" | | 用于认证的范围。 | +| realm | string | 否 | "apisix" | | 用于认证的领域。 | +| bearer_only | boolean | 否 | false | | 设置为 `true` 时,将检查请求中带有承载令牌的授权标头。 | +| logout_path | string | 否 | "/logout" | | 登出路径。 | +| post_logout_redirect_uri | string | 否 | | | 调用登出接口后想要跳转的 URL。 | +| redirect_uri | string | 否 | "ngx.var.request_uri" | | 身份提供者重定向返回的 URI。 | +| timeout | integer | 否 | 3 | [1,...] | 请求超时时间,单位为秒 | +| ssl_verify | boolean | 否 | false | [true, false] | 当设置为 `true` 时,验证身份提供者的 SSL 证书。 | +| introspection_endpoint | string | 否 | | | 身份服务器的令牌验证端点的 URL。 | +| introspection_endpoint_auth_method | string | 否 | "client_secret_basic" | | 令牌自省的认证方法名称。 | +| public_key | string | 否 | | | 验证令牌的公钥。 | +| token_signing_alg_values_expected | string | 否 | | | 用于对令牌进行签名的算法。 | +| set_access_token_header | boolean | 否 | true | [true, false] | 在请求头设置访问令牌。 | +| access_token_in_authorization_header | boolean | 否 | false | [true, false] | 当值为 `true` 时,将访问令牌设置在请求头参数 `Authorization`,否则将使用请求头参数 `X-Access-Token`。| +| set_id_token_header | boolean | 否 | true | [true, false] | 是否将 ID 令牌设置到请求头参数 `X-ID-Token`。 | +| set_userinfo_header | boolean | 否 | true | [true, false] | 是否将用户信息对象设置到请求头参数 `X-Userinfo`。 | + +## 操作模式 + +`openid-connect` 插件提供三种操作模式: + +1. 可以将**插件**配置为:仅验证预期会出现在请求标头中的访问令牌。在这种模式下,没有令牌或带有无效令牌的请求将被拒绝。这需要将 `bearer_only` 属性设置为 `true` 并配置 `introspection_endpoint` 或 `public_key` 属性。这种操作模式可用于服务到服务的通信,在这种模式下,请求者可以合理地获取和管理有效的令牌。 + +2. 可以将插件配置为:通过 OIDC 授权对没有有效令牌的请求进行身份验证。然后该插件充当 OIDC 依赖方。在这种情况下,认证成功后,该插件可以获得并管理会话 Cookie 中的访问令牌,包含 Cookie 的后续请求将使用访问令牌。你需要将 `bearer_only` 属性设置为 `false` 才可以使用这种模式。这种操作模式可用于支持以下情况:客户端或请求者是通过 Web 浏览器进行交互的用户。 + +3. 插件也可以通过将 `bearer_only` 设置为 `false`,并配置 `introspection_endpoint` 或 `public_key` 属性来支持以上两种场景。在这种情况下,对来自请求头的现有令牌的自省优先于依赖方流程。也就是说,如果一个请求中包含一个无效的令牌,那么该请求将会被拒绝,不会从重定向到 ID 提供者获得一个有效的令牌。 + +用于验证请求的方法会影响到 header,你可以在将请求发送到上游服务之前对其执行。 ### 令牌自省 令牌自省通过针对 Oauth 2 授权服务器验证令牌来帮助验证请求。 Review Comment: ```suggestion 令牌自省是通过针对 Oauth 2 授权的服务器来验证令牌及相关请求。 ``` -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: notifications-unsubscr...@apisix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org