安全认证(kems-plug-auth-xxx)

功能介绍

基于koca提供了servletwebflux两个版本的安全认证组件,KEMS也对应实现了kems-plug-auth-webfluxkems-plug-auth-security两个版本的插件,除坐标不同之外,提供的功能及使用配置完全一致:

  • 登录认证(authentication)对登录部分做认证扩展,对部门现用的登录过程作统一集成。

  • API鉴权(authorization)API授权的管理工作在PMI中完成,此处仅完成鉴权认证工作。

    koca安全认证更多功能,请参考安全认证

引用说明

maven配置

webflux版本(springcloud gateway基于webflux实现,故使用webflux版本):

 <dependency>
      <groupId>com.kingengine.kems.plug</groupId>
      <artifactId>kems-plug-auth-webflux</artifactId>
 </dependency>

servlet版本:

 <dependency>
      <groupId>com.kingengine.kems.plug</groupId>
      <artifactId>kems-plug-auth-security</artifactId>
 </dependency>

yml配置

koca:
  security:
    auth:
      api-access-control:
        enabled: true #是否开启api鉴权,默认开启
        strategy-name: kems-api-control #kems扩展权限校验策略,默认为default
      ##其他配置
      security:
        ##其他配置
        auth-strategy:
          strategy-name: kems-username-password # kems扩展用户名密码登录策略
          auth-url: http://modules-system/user/login/password #用户名密码登录URL,服务调用方式

        mutil-login:
          - type: phoneAuthcode #手机验证码登录
            login-url: /auth/phone/authcode
            strategy-name: kems-phone-authcode #kems扩展手机验证码登录策略
            auth-url: http://modules-system/user/login/phoneAuthCode #手机验证码登录校验URL,服务调用方式

考虑到网关与提供登录策略的接口服务不一定共用注册中心,所以该插件额外提供了直接调用方式。配置时加上前缀url:即可。如:

auth-url: url: http://localhost:8003/user/login/phoneAuthCode

服务间凭据认证(kems-plug-auth-request)

功能介绍

项目上线运行中,如何应对非法请求并将其过滤,这是一个很重要的步骤。而服务被外界调用的途径,一般来说分为以下两种情况:

  • 请求从网关进入,然后网关调用目标服务。这种情况下可以在网关对其进行拦截,保证进入到目标服务的请求是合法的。
  • 直接请求目标服务。这种情况下突破了网关,就需要在目标服务入口处增加认证,对请求进行拦截。

此插件引入“凭据”定义,在请求发出前、后对请求头作设置和校验,进而实现服务间认证能力。

认证基础能力由kems-plug-auth-request-core提供。

本插件仅针对feign请求作自动设置,RestTemplateHttpClient等可以基于kems-plug-auth-request-core完成实现。

引用说明

maven配置

 <dependency>
      <groupId>com.kingengine.kems.plug</groupId>
      <artifactId>kems-plug-auth-request4feign</artifactId>
 </dependency>

yml配置

request:
  credential:
    enabled: true # 是否启用认证。默认启用
    key: kingengine # key。默认为kingengine
    salt: kingengine # 盐。默认为kingengine
    include-path-patterns: /** # 添加校验的路径正则(优先级高于排除的)。默认为/**,即拦截所有请求
    exclude-path-patterns: /user/login # 排除校验的路径正则(优先级低于校验的)。默认为空,即不过滤
Copyright © 2017-2023 深圳金证引擎科技有限公司 all right reserved,powered by Gitbook该文件最后修订时间: 2023-09-01 14:01:37

results matching ""

    No results matching ""