全局鉴权
微服务治理中心提供全局鉴权能力,通过创建鉴权规则,无需变更所有服务即可便捷地实现多个微服务之间通信的身份验证,搭建微服务架构安全访问体系。
功能入口
- 登录微服务治理控制台。
- 在控制台左侧栏选择安全治理,单击全局鉴权。
相关操作
- 创建鉴权规则:单击 创建鉴权 ,配置鉴权信息,单击确认完成创建。
- 查看鉴权规则:单击目标鉴权规则操作列的详情 ,查看鉴权规则信息。
- 开启鉴权规则:单击目标鉴权规则操作列的开启 ,使鉴权规则生效。
- 关闭鉴权规则:单击目标鉴权规则操作列的关闭 ,关闭鉴权规则。
- 编辑鉴权规则:单击目标鉴权规则操作列的编辑 ,编辑鉴权规则。
- 删除鉴权规则:单击目标鉴权规则操作列的删除 ,删除鉴权规则。
JWT鉴权
JWT(JSON Web Token)用于网络应用间以JSON安全传输信息,该信息可以由使用密钥(使用 HMAC 算法)或使用RSA密钥对进行签名,因此JWT是可以被信任和验证的。
微服务治理中心的JWT鉴权能力基于JWT标准实现了一套服务安全调用的身份验证机制,无需中心化的鉴权服务,只需接入微服务治理中心并配置JWT鉴权,应用即可通过Token验证请求者的身份。
创建鉴权
- 进入全局鉴权页,单击创建鉴权。
- 在鉴权类型中选择JWT鉴权,配置JWT鉴权相关参数,最后单击确定。
配置项 | 描述 |
---|---|
鉴权名称 | 唯一标识鉴权规则的名称。 |
鉴权类型 | 选择JWT。 |
加密算法 | 支持HS256、HS512、RS256。 |
base64编码 | 选择HS256/ HS512算法时填写,指定密钥是否base64编码。 |
密钥 | 选择HS256/ HS512算法时填写,提供密钥。 |
RSA密钥 | 选择RS256算法时填写,需要提供RSA算法公钥和私钥。 |
JWT Token配置 | 从请求获取JWT Token的位置,支持选择header、query或Cookie,并指定对应的key。 |
过期时间 | JWT Token过期时间(单位:秒),默认值86400。 |
鉴权应用 | 选择需要鉴权的应用范围。注意 :应用将验证令牌,并携带令牌信息进行下游调用,因此对于每个鉴权应用,其上游调用链路中的应用需纳入鉴权范围。 |
验证鉴权
- 开启鉴权。
- 请求鉴权应用,预期请求结果为拒绝访问。
- 通过微服务治理中心OpenAPI获取签发的Token。
- 根据配置携带Token请求鉴权应用,预期请求结果为正常访问。
自建服务鉴权
当Token为用户自定义的格式,服务受到请求后,需要访问中心化鉴权服务来验证该Token,以实现对Token的安全验证。
微服务治理中心的自建服务鉴权能力支持服务在接收请求时,携带Token访问额外的鉴权服务验证身份,实现接口的安全调用。
创建鉴权
- 进入全局鉴权页,单击创建鉴权。
- 在鉴权类型中选择自建服务鉴权,配置自建服务鉴权相关参数,最后单击确定。
配置项 | 描述 |
---|---|
鉴权名称 | 唯一标识鉴权规则的名称。 |
鉴权类型 | 选择自建服务鉴权。 |
鉴权服务 | 选择自建鉴权服务,可以通过下拉选择已接入服务和地址或手动输入服务地址。 |
鉴权API | 鉴权服务提供的鉴权API的路径。 |
Token配置 | 从请求获取Token的位置,支持选择header、Cookie,并指定对应的key。 |
鉴权请求中允许携带的头部 | 如果需要额外携带客户端请求中的头部,那么需要在字段中按需配置头部。说明: Host、Path头部会被默认添加。 |
超时时间 | 请求鉴权服务最大等待时间(单位:秒),默认值:10。 |
模式 | 支持宽松模式和严格模式,默认使用宽松模式: 宽松模式:当鉴权服务不可用时(鉴权服务建立连接失败或者返回5xx请求),接受客户端请求。 严格模式:当鉴权服务不可用时(鉴权服务建立连接失败或者返回5xx请求),拒绝客户端请求。 |
鉴权应用 | 选择需要鉴权的应用范围。注意 :应用将验证令牌,并携带令牌信息进行下游调用,因此对于每个鉴权应用,其上游调用链路中的应用需纳入鉴权范围。 |
校验规则:
自建鉴权服务接收请求后,可根据Token和请求头完成身份验证,并返回验证结果。
- 仅通过HTTP状态码判定。
- 鉴权服务返回HTTP状态码为200,表明Token有权限访问该后端资源。
- 鉴权服务返回HTTP状态码为401或403,表明Token无权访问该后端资源。
- 通过指定HTTP响应头部判定,适用于响应HTTP状态码要求为200。
- 鉴权服务的响应头部x-msgc-auth-result=true,表明Token有权限访问该后端资源。
- 鉴权服务的响应头部x-msgc-auth-result=false,表明Token无权访问该后端资源。
验证鉴权
- 开启鉴权。
- 请求鉴权应用,预期请求结果为拒绝访问。
- 根据配置携带自主颁发的Token请求应用,鉴权应用将携带Token向自建鉴权服务发出请求,若请求结果符合校验规则,则预期请求结果为正常访问,否则拒绝访问。
服务鉴权
在微服务场景中,若提供者和消费者使用的是同一个注册中心,则消费者默认可以调用同一个注册中心下的提供者服务。服务鉴权可以为提供者的服务设置鉴权规则,允许或拒绝某个消费者访问服务。
版本限制
框架 | 限制 | 详情 |
---|---|---|
Spring Cloud | Spring Cloud Dalston及以上版本 | 客户端:Feign、RestTemplate |
Dubbo | 2.5.3+ | 无 |
jdk版本 | 1.8+ | 无 |
开通服务鉴权
- 登录微服务治理控制台。
- 在左侧导航栏选择安全治理,点击服务鉴权。
- 在服务鉴权页面单击创建服务鉴权。
服务鉴权规则参数说明:
参数 | 说明 |
---|---|
规则名称 | 服务鉴权规则的名称。 |
被调用方应用 | 鉴权规则生效的应用。 |
被调用方框架 | SpringCloud或者Dubo。 |
接口规则:
鉴权方式 | 白名单/黑名单 |
---|---|
调用方 | 涉及的调用方。 |
默认状态 | 默认开启关闭状态。 |