使用 Ingress 的容器化应用程序
通过 IBM Cloud® App ID,您可以使用 IBM Cloud Kubernetes Service 中的 Ingress 联网功能,以一致的方式来强制实施策略驱动的安全性。 使用这种方法,您可以同时对集群中的所有应用程序执行身份验证和授权策略,而无需更改应用程序代码!
自 2020 年 12 月 1 日起,不推荐使用 Kubernetes Service 定制 Ingress 映像。 本教程已更新为使用社区 Kubernetes Ingress 映像。 要查看此文档的先前版本,请参阅 Kubernetes Service 文档。

- 用户打开应用程序,并触发了对 Web 应用程序或 API 的请求。
- 在 API 流程中,Ingress 控制器会尝试验证提供的令牌。 如果使用网络流,则会启动三段式 OIDC 身份验证流程。
- App ID 在认证过程中首先会显示登录窗口小部件。
- 用户提供用户名或电子邮件和密码。
- Ingress 控制器从 App ID 获取访问权和身份令牌以用于授权。
- Ingress 控制器验证并转发到应用程序的每个请求都具有包含令牌的授权头。
准备工作
开始之前,请确保您已满足以下先决条件。
-
在部署群集的同一区域配置的App ID实例。 服务名称必须仅包含字母数字字符或连字符 (-),并且不能包含空格。
-
标准 Kubernetes Service 集群,每个可用专区中至少有两个工作程序节点。
-
以下IBM CloudIAM 角色:
- 集群:管理员平台角色
- Kubernetes命名空间:管理器服务角色
- App ID: 编辑者 平台角色和 编写者 服务角色
-
以下 CLI:
-
Kubernetes Service 和 Container Registry CLI 插件
为确保集成的最佳性能,建议您始终使用最新版本的IBM Cloud Kubernetes Service应用程序负载平衡器 (ALB)。 默认情况下,群集已启用自动更新。
添加重定向 URL
重定向 URL 是应用程序的回调端点; 用户在成功登录或注销应用程序后发送的位置。 为防止网络钓鱼攻击,App ID 根据您添加到服务的重定向 URL 的允许列表来验证请求的 URL。 通过向允许列表添加 URL,您可以授予 App ID 许可权以将用户转发到该位置。 了解有关重定向 URI 的更多信息。
-
在 IBM Cloud 控制台中,从资源列表中选择 App ID 实例。
-
浏览至 App ID实例的“管理认证”页面。
-
在 身份提供者 选项卡中,确保身份提供者设置为开启。
如果没有选择提供商,用户将不会通过身份验证,但仍会获得一个访问令牌,用于匿名访问应用程序。
-
在 认证设置 选项卡中,添加重定向 URL,然后单击
+
符号以保存更改。 重定向 URL 的格式应与以下示例类似:https://<hostname>/oauth2-<AppIDServiceInstanceName>/callback
-
定制域:
A URL that is registered with a custom domain might look like:
http://mydomain.net/myapp2path/oauth2-myappid/callback
. 如果要公开的应用程序在同一个群集中,但处于不同的命名空间,则可以使用通配符指定所有应用程序。 这在开发期间可能很有用,但建议您在生产中使用通配符时谨慎操作。 例如,https://custom_domain.net/*/oauth2-myappid/callback
-
Ingress 子域:
如果您的应用程序注册了IBM KubernetesIngress 子域,您的回调 URL 可能看起来像这样:
https://mycluster.us-south.containers.appdomain.cloud/myapp1path/oauth2-myappid/callback
-
更新 Ingress 资源
Ingress 资源用于定义要如何公开应用程序。 该资源包含用于定义如何将入局请求路由到应用程序的规则。 要向应用程序添加 App ID 认证,请遵循 IBM Cloud Kubernetes Service 文档 中的步骤。
后续步骤
既然应用程序已在 Kubernetes 集群中运行并且 Ingress 已配置,您可以尝试以下操作: