阿里云MSE云原生网关认证

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

image.png

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

应用简介

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

操作步骤

一. 创建MSE应用

  1. 登录IDaaS管理控制台

  2. 选择IDaaS实例并在操作区域下方单击访问控制台image

  3. 前往应用 > 添加应用 > 应用市场,搜索阿里云-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控制台开启认证。

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

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

开通公网 NAT

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

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

前往网关管理

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

在左侧导航栏中,前往云原生网关 > 网关列表

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

创建测试路由(可选)

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

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

配置Mock路由

配置过程请参考MSE文档:通过云原生网关管理MSE Nacos中的服务

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

配置本地Host

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

若您的MSE没有域名,在后续的配置中,您需要额外配置您的本地Host,并在MSElDaaS的表单中填写映射的域名(以避免填写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