一、鉴权原理
鉴权流程如下:
服务鉴权功能支持白名单和黑名单两种鉴权方式。
·白名单:当请求匹配任意一条鉴权规则时,允许调用;否则拒绝调用。
·黑名单:当请求匹配任意一条鉴权规则时,拒绝调用;否则允许调用。
以下视频将为你介绍 TSF 服务鉴权原理:
二、多个鉴权规则
一个服务可能有多个鉴权规则,多个鉴权规则之间是逻辑或(OR)的关系,只要请求满足任意一条鉴权规则,就相当于匹配成功。
三、示例1:
需求:服务 provider-demo 只允许来自 consumer-demo 服务且带有 user=foo 的自定义标签的请求调用。
解决方案:要满足上面的鉴权需求,用户可以在 provider-demo 的鉴权页面,设置鉴权方式为白名单,鉴权规则如下(注意最后要将生效状态改为生效):
结论:要满足 逻辑与 AND (既满足条件 A ,又满足条件 B)时,需要使用标签表达式。
四、示例2:
需求:服务 provider-demo 只允许来自 consumer-demo 服务或带有 user=foo 的自定义标签的请求调用。
解决方案:要满足上面的鉴权需求,用户可以在 provider-demo 的鉴权页面,设置鉴权方式为白名单,创建2条鉴权规则:
结论:要满足 逻辑与 OR (满足条件 A 或 条件 B)时,需要使用多条鉴权规则。
五、说明
白名单鉴权方式示例:
鉴权规则内容是 username 等于 foo,当请求中带有 username=foo 的 tag 时,因为匹配规则,服务允许调用;当请求中带有 username=bar 的 tag 时,因为不匹配规则,服务拒绝调用。
黑名单鉴权方式示例:鉴权规则内容是 username 等于 foo,当请求中带有 username=foo 的 tag 时,因为匹配规则,服务拒绝调用;当请求中带有 username=bar 的 tag 时,因为不匹配规则,服务允许调用。