Skip to main content

将 API 网关与 OIDC 配合使用

可以使用 OpenID Connect (OIDC) 令牌对工作流进行身份验证。

将 API 网关与 OIDC 配合使用

借助 GitHub Actions,可以使用 OpenID Connect (OIDC) 令牌对 GitHub Actions 之外的工作流进行身份验证。 例如,可以在专用网络的边缘运行 API 网关,该网关使用 OIDC 令牌对传入请求进行身份验证,然后代表专用网络中的工作流发出 API 请求。

下图概述了此解决方案的体系结构:

OIDC 网关体系结构示意图,该体系结构从 GitHub Actions 运行器开始,以专用网络的专用服务结尾。

重要的是,不仅要验证 OIDC 令牌来自 GitHub Actions,而且还要验证它专门来自你预期的工作流,以使其他 GitHub Actions 用户无法访问专用网络中的服务。 可以使用 OIDC 声明创建这些条件。 有关详细信息,请参阅“关于使用 OpenID Connect 进行安全强化”。

这种方法的主要缺点是,必须实现 API 网关来代表你发出请求,并在网络边缘运行网关。

具有以下优点。

  • 无需配置任何防火墙,也无需修改专用网络的路由。
  • API 网关是无状态的,可以水平缩放以处理高可用性和高吞吐量。

有关详细信息,请参阅 github/actions-oidc-gateway 存储库中的 API 网关的参考实现。 此实现需要对用例进行自定义,并且无法按原样随时运行。 有关详细信息,请参阅“关于使用 OpenID Connect 进行安全强化”。