文档

阿里云 MSE 云原生网关认证

更新时间:

本文为您介绍如何在 IDaaS 中配置阿里云 MSE 微服务引擎,实现 MSE 网关认证鉴权,在 MSE 中指定地址需由用户进行身份认证后,才能访问。

image.png

为了便于配置,IDaaS 预集成了 MSE 应用模板。管理员只需在 IDaaS 中创建 MSE 应用,并依照 OIDC 协议在 MSE 中完成配置即可。

应用简介

微服务引擎MSE面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持Nacos/ZooKeeper/Eureka)、云原生网关(原生支持Ingress/Envoy)、微服务治理(原生支持Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。

操作步骤

1. 创建 MSE 应用

  1. 登录 IDaaS管理控制台

  2. 前往 应用-添加应用-应用市场,搜索到【阿里云 - MSE】应用模板。点击 添加应用

image

  1. 确认应用名称,即可完成添加,自动跳转到应用管理的【单点登录】配置页。

image.png

  1. 填写表单

  • 表单参数:

    • 【授权模式】保持不变,只勾选【授权码模式】即可。

      • 注意不要勾选【PKCE】。

      • 【登录 Redirect URI】固定为 MSE 网关访问地址 + /oauth2/callback。例如若 MSE 访问地址为 http://a.example.com,则该 URI 应为 http://a.example.com/oauth2/callback。该 URI 应该同样填写到 MSE 网关认证鉴权的【重定向 URL】字段中,两个字段值需保持一致。

    • 【授权范围】可暂时选择【全员可访问】。若希望指定可访问应用的 IDaaS 账户,请参考应用授权进行配置。

  1. 点击保存,完成应用配置。

  2. 您还需要额外复制几个信息出来,在后续配置中填写到 MSE 中。

  • 字段参数:

    • Issuer:从下方【应用配置信息】中获取。

    • client_id:从应用管理页面的【通用配置】标签获取。

    • client_secret:从应用管理页面的【通用配置】标签获取。

您已完成 IDaaS 侧配置,接下来可前往 MSE 控制台开启认证。

2. 在 MSE 中配置网关认证鉴权

在 MSE 侧的配置需分为如下 4 个步骤。配置中,由于存在缓存,部分配置修改后,可能需要等待 3~5 分钟后才会生效。

2.1 开通公网 NAT

为了实现网关认证,MSE 需要与 IDaaS 进行通信,所以需要保障您的 MSE 所在的 VPC 具备出方向公网访问能力。若不具备该能力,MSE 可能在发起认证请求时,默认采用系统中上一次的缓存记录,无法成功。

您可前往 阿里云专有网络公网 NAT 网关控制台 创建公网 NAT 网关,并确保出方向公网访问通顺。

2.2 前往网关管理

  1. 登录 阿里云 MSE 微服务引擎控制台

  2. 在左侧导航栏中,前往【云原生网关】【网关列表】。

  3. 在您希望开启认证鉴权的网关上,点击网关名称,进入管理页面。若您尚未创建网关,也可以创建一个进行认证配置测试。

2.3 创建测试路由(可选)

为了便于测试,我们建议您先在 MSE 网关中添加一个测试路由,便于快速完整地体验网关认证能力。

若您已有路由,可跳过这一步,并在下一步骤中,将路由地址填写到黑名单中,以开启保护能力。

2.3.1. 配置 Mock 路由

配置过程请参考 MSE 文档:云原生网关进阶体验

配置完成后,您在后续环节中即可选择通过 /mock 地址来测试网关认证配置。

2.3.2 配置本地 Host

出于安全考量,MSE 的认证流程中限制了使用 IP 作为回调地址的访问。

若您的 MSE 没有域名,在后续的配置中,您需要额外配置您的本地 Host,并在 MSE 和 IDaaS 的表单中填写映射的域名(以避免填写 IP)。

假设您的 MSE 网关公网入口地址为 47.96.xxx.xxx,您可以在您设备的本地 Host 文件中添加一行:

47.96.xxx.xxx  a.example.com

通过 a.example.com 替代对 MSE 网关公网 IP 的访问。在 IDaaS 中的应用【登录 Redirect URI】应配置为http://a.example.com/oauth2/callback,网关认证鉴权设置中的【重定向URL】也应作同样应用。

2.4 配置认证鉴权

接下来我们可开启 MSE 的认证鉴权机制。

  1. 在网关管理页的左侧导航栏中,前往【安全能力】选择【认证鉴权】。

  2. 点击创建鉴权,填写弹出的表单。

字段名称

填写说明

鉴权名称

自定义名称即可。

鉴权类型

请选择 OIDC 类型。这里的选项中会有 IDaaS,对应 IDaaS 旧版。若您是 IDaaS 新版客户,请选择 OIDC 类型。

Issuer

从 IDaaS 应用管理中复制出来。

重定向URL

若在上一步中配置了 Host,则可填写,http://a.example.com/oauth2/callback。或填写 MSE 网关的公网域名地址。

这一地址不能是 IP,只能是域名。

Client-ID

从 IDaaS 应用管理中复制出来。

Client-Secret

从 IDaaS 应用管理中复制出来。

Cookie-Domain

若在上一步中配置了 Host,则可填写,a.example.com。或填写 MSE 网关的公网域名地址。

Scope

固定为 openid 即可。

授权

为了测试,请先选择【黑名单模式】,意味着只有明确指定的 Path 才需进行认证。

点击【添加新的规则条件】,并指定访问 /mock 地址需要认证。

image.png

填写效果如下:

image.png

  1. 创建成功后,点击开启。

  2. 配置 oauth2-proxy 路由。在您开启网关认证鉴权后,MSE 会自动创建一个 OIDC 配套路由,以实现授权回调。

  3. 请前往左侧菜单中【路由配置】,检索到处于【未发布】状态的【oauth2-proxy】。

  4. 在该路由上点击【编辑】,直接点击【下一步】,点击【保存并上线】,即可完成路由的配置更新。

您已完成所有配置,可以尝试访问的认证效果了。

3. 尝试访问

1. 访问地址

在浏览器中打开 http://a.example.com/mock 地址或您在上述步骤中配置的被网关认证保护的地址。

MSE 会检测到该请求需要 IDaaS 认证,若 IDaaS 尚未登录,则会自动跳转到 IDaaS 登录页。

image.png

2. 进行认证

您可使用 IDaaS 中支持和配置的多种登录方式,进行登录,包括短信验证码、钉钉扫码、AD 身份登录等,同时管理员可以在 IDaaS 中开启多因素认证 MFA,以加强认证安全性。

3. 认证成功!

登录完成后,浏览器会回调到刚才尝试访问的地址中,展示对应结果,意味着认证成功。

image.png

  • 本页导读 (0)