使用用户统一安全认证服务
应用场景
如果我们的接口面向用户前端,此时必然涉及用户身份验证及权限验证问题,虽然通过authorizer配置项可以使用JavaScript脚本来实现用户身份验证及权限验证,但总的来说实现还是稍显繁琐了。
此时我们可以通过security配置项来对接口定义用户及权限角色访问控制。
注:security配置项需要用户统一安全认证服务组件支持。
配置方法
security可以针对接口配置以下验证方式:
- 可以访问接口的登录用户或角色
- 不能访问接口的登录用户或角色
  security {
    //是否允许匿名访问,为true时不判定用户身份
    anonymous = false
    //用户所属组织域:参见<https://snz1.cn/k8s/javadoc/sc-client-api/doc/org/scope.html>
    scope = "employee"
    //判定角色列表
    roles = [ "ADMIN" ]
    //判定用户列表
    users = [ "neeker" ]
    //角色或用户判定策略:
    //      为include时表示请求用户必须包含roles中定义的角色、用户必须在users定义的列表中
    //      为exclude时表示请求用户不能是roles定义的角色、用户不能再users定义的列表中
    //条件不满足则返回403应答
    policy = "allow"
  }
运行配置
开启security配置功能需要在启动命令行中加入uumapi、useridtype、userscope参数:
- uumapi表示用户统一安全认证服务地址
- useridtype表示通过请求头获取到的用户身份标识类型(包括:id、uname等)
- userscope表示登录用户所在的组织域代码(登录的用户必须在该组织域下才能访问)