全部产品
Search
文档中心

API 网关:配置OIDC认证鉴权

更新时间:Jun 30, 2026

通过OIDC协议与企业的认证鉴权系统整合,可以实现对内部服务的统一认证和授权管理,避免了重复的对接工作,同时简化了认证流程。云原生API网关提供了统一认证鉴权,加强了系统的安全性,并提供了更加灵活的安全策略配置。整合OIDC协议还能实现单点登录,您只需一次登录即可访问多个服务。

前提条件

已创建统一的认证鉴权服务,且支持标准的OIDC(OpenID Connect)协议。

背景信息

网关作为外界访问内部服务的一个控制点,需要对外部的请求进行认证鉴权,确保内部服务的安全性。企业内一般会自建一套统一的认证鉴权体系,云原生API网关支持通过OIDC协议与自建的认证鉴权体系打通,支持对接入的内部服务做统一认证鉴权,避免每个服务都需要对接认证鉴权体系。

基于OIDC认证

OIDC(OpenID Connect)是一种安全认证机制,第三方应用连接到身份认证提供商(Identify Provider)获取用户信息,并把这些信息以安全可靠的方式返回给第三方应用。OIDC对OAuth2.0协议进行了扩展,通过扩展的ID Token字段,提供用户基础身份信息,ID Token使用JWT(JSON Web Token)格式进行封装,提供自包含性、防篡改机制,可以安全地传递给第三方应用程序并容易被验证。

假设有以下四个角色:

  • 客户端:直接为用户提供服务。

  • 认证服务:OpenID提供方,通常是指OpenID认证服务器,为第三方颁发用于认证的ID Token。

  • 业务服务:提供业务服务。

  • 用户:指资源持有者。

业务流程如下:

  1. 客户端发送认证请求给认证服务。

  2. 用户在认证页面进行授权确认(通过用户名和密码登录)。

  3. 认证服务对认证请求进行验证,并返回Code给客户端。

  4. 客户端向业务服务请求回调接口,请求中携带Code。

  5. 业务服务请求认证服务颁发Token,请求中携带Code、Client ID、Client Secret。

  6. 认证服务验证合法性,并返回ID Token。

  7. 认证成功,业务服务返回ID Token给客户端。

  8. 客户端向业务请求,请求中携带ID Token。

  9. 业务服务验证ID Token是否合法,然后返回业务应答。

云原生API网关OIDC认证流程

在上述OIDC认证流程中,如果有不同的业务服务,例如用户服务、订单服务等,则每个业务服务都需要实现认证鉴权逻辑,包括校验请求是否合法、对接认证服务等。通过云原生API网关的OIDC认证功能,可以实现在网关统一认证鉴权。

业务流程如下:

  1. 客户端向网关申请认证。

  2. 网关向认证服务申请认证。

  3. 认证服务返回 Code 给网关。

  4. 网关返回 Code 给客户端。

  5. 客户端携带 Code 回调网关。

  6. 网关向认证服务交换 Token。

  7. 认证服务返回 ID Token 给网关。

  8. 网关向客户端返回认证成功响应,并设置 Cookie。

  9. 客户端携带 Cookie 发起业务请求,网关验证 Token。

  10. 网关携带 ID Token 转发业务请求给业务服务。

  11. 业务服务应答经网关返回客户端。

在整个认证鉴权过程中,云原生API网关会验证请求是否合法。如果请求不合法,云原生API网关会重定向到用户登录页面,并能代理请求认证服务实现用户登录认证,实现业务服务对认证服务无感知。

创建认证鉴权规则

  1. 登录云原生API网关控制台

  2. 在左侧导航栏,选择实例,并在顶部菜单栏选择地域。

  3. 实例页面,单击目标网关实例名称。

  4. 在左侧导航栏,单击安全管理 > 全局认证鉴权

  5. 在页面左上角,单击创建鉴权配置网关鉴权相关参数,然后单击确定

    云原生API网关OIDC认证鉴权参数说明如下。

    参数

    描述

    开启

    是否开启云原生API网关鉴权。

    鉴权名称

    自定义云原生API网关鉴权的名称。

    鉴权类型

    选择OIDC认证方式。

    域名

    鉴权规则生效的域名。

    Issuer

    设置认证服务的Issuer,即签发人。

    重定向URL

    输入授权成功后的重定向地址,需要与OIDC中配置的重定向地址保持一致。

    重要

    格式为http(s)://yourdomain/path(地址中的path必须为 /oauth2/callback

    Client ID

    输入服务注册的应用ID。

    Client Secret

    输入服务注册的应用Secret。

    Cookie Domain

    输入Cookie的域名,认证通过后会将Cookie发送到指定的域名,保持登录状态。例如:设置Cookie-domain=a.example.com,则Cookie会发送到域名a.example.com;设置Cookie-domain=.example.com,则Cookie会发送到example.com的所有子域名。

    Cookie Secret

    用于在创建Cookie时添加数字签名,确保其不会被非法篡改。

    Scope

    输入授权作用域,多个域值用英文分号(;)分隔。

    授权

    授权模式支持白名单模式黑名单模式

    • 白名单模式:白名单中的hosts+paths不需要校验即可访问,其余的都需要校验。

    • 黑名单模式:黑名单中的hosts+paths需要校验,其余可直接访问。

    单击规则条件,设置请求域名和路径。

    • 域名:请求访问的域名,即hosts。

    • 路径(Path):请求访问的接口路径,即paths。

查看鉴权详情

  1. 登录云原生API网关控制台

  2. 在左侧导航栏,选择实例,并在顶部菜单栏选择地域。

  3. 实例页面,单击目标网关实例名称。

  4. 在左侧导航栏单击安全管理 > 全局认证鉴权

  5. 全局认证鉴权页面,单击鉴权规则名称或操作列的详情,可查看当前认证配置授权信息的管理。

    认证配置详情页面包含三个区域:基本信息显示名称和来源;认证配置显示IssuerClient-IDCookie-Domain重定向URLClient-SecretScope等字段;授权信息显示当前授权模式(白名单模式或黑名单模式),多行规则条件之间为"或"关系,每行规则条件内的多个匹配项之间为"与"关系。

您可在授权信息区域单击创建授权信息,在对话框中输入请求域名请求Path,并选择匹配方式,单击确定新增授权规则。

结果验证

返回全局认证鉴权页面查看鉴权信息,如果已包含新建网关鉴权信息,则说明网关认证鉴权新建成功。

相关操作

您还可以执行以下其他操作,管理网关的认证鉴权:

  • 开启鉴权:在全局认证鉴权页面,单击目标鉴权规则操作列的开启,使认证鉴权信息生效。

  • 关闭鉴权:在全局认证鉴权页面,单击目标鉴权规则操作列的关闭,关闭网关认证鉴权信息。

  • 编辑鉴权:在全局认证鉴权页面,单击目标鉴权规则操作列的编辑,可编辑网关认证鉴权信息。

  • 删除鉴权:在全局认证鉴权页面,单击目标鉴权规则操作列的删除,可删除网关认证鉴权信息。

说明

只有在认证鉴权信息关闭的状态下才可执行删除操作。

相关文档

如果您想了解其他认证鉴权机制,请参见全局认证鉴权