• helloworld
    2021-07-26
    本文的意思是说正常的生产环境下,iam-apiserver和iam-authz-server的api的认证功能其实都应该放到网关来实现的,本文之所以由iam项目亲自来实现就是为了方便讲解认证的具体实现方法,我理解的对不对?

    作者回复: 老哥理解的没毛病

    
    8
  • Geek_f23c82
    2022-05-29 来自广东
    麻烦问下authserver什么时候派发的jwt token?

    作者回复: iamctl jwt sign 通过这个命令签发token,authzserver解析token进行认证

    
    3
  • 冷峰
    2021-08-17
    为什么每个用户都要有一个SecretKey, 所有的用户用同一个SecretKey不行吗?

    作者回复: 这样不安全了,A、B、C都使用同一个secretKey,那都依赖于同一个secretKey,如果A想更改secretKey的过期时间,不就影响到B、C了。secretKey也属于用户资源,每个用于都应该有一个,符合产品设计思路

    共 11 条评论
    3
  • 🌀🐑hfy🐣
    2022-09-26 来自广东
    请问老师为什么bearer认证里面还要basic认证?

    作者回复: bearer认证中没有basic认证。是不是理解错了?可以再看看,有问题再留言

    共 2 条评论
    2
  • 党
    2021-11-11
    jwt需要后端解析并从缓存中拿用户对应秘钥在进行运算进行鉴权,这些流程是不是有点复杂和多余啊,登录时候直接随机生成一个token(uuid hash)传给前端并保存到缓存中,缓存中token直接对应用户的session,每次前端传过来token 根据是否能用token获取缓存中的session来鉴权 这样岂不是实现简单 也安全啊

    作者回复: 这样做不太合理: 1. 如果很多用户,那应用程序会缓存并维护很多session,对应用程序是一种压力,如果应用程序重启,那登录会失效,这种是不合理的 2. jwt token中能够包含很多信息,可以基于这些信息做更多的认证逻辑

    
    2
  • season
    2022-10-13 来自广东
    第四步,设置HTTP Header username: colin 。 应该是 第四步,给gin.Context中添加 username: colin 。 ?

    作者回复: 嗯嗯,是一样的

    
    1
  • season
    2022-10-13 来自广东
    ParseWithClaims怎么理解? func (p *Parser) ParseWithClaims(tokenString string, claims Claims, keyFunc Keyfunc) (*Token, error) {} 使用Claims来解析,并返回 token?

    作者回复: 用来解析Token,并将解析后的claims存放到传入的claims变量中

    
    1
  • season
    2022-10-13 来自广东
    技巧2:使用抽象工厂模式 auth.go文件中,通过newBasicAuth、newJWTAuth、newAutoAuth创建认证策略时,返回的 都是接口。通过返回接口,可以在不公开内部实现的情况下,让调用者使用你提供的各种认证 功能。 1. 不公开内部实现的情况下,是指不公开哪个函数的内部实现? 2. 让调用者使用你提供的各种认证功能,指的是哪些方法?

    作者回复: 1. 相对于调用者来说,不用公开newBasicAuth、newJWTAuth、newAutoAuth方法的实现。 2. basic认证、jwt认证、和basic+jwt自动选择的认证方式

    
    1
  • 党
    2021-11-29
    jwt貌似不可以实现实时踢人吧 一个账号登录了 在登录一次 让上次的token失效 这个jwt不可以吧

    作者回复: 这个JWT是没这种功能的

    共 4 条评论
    1
  • yandongxiao
    2021-11-27
    总结: IAM系统采用 Basic + bearer 两种认证方式。Basic 认证要求输入用户名和密码,返回 JWT Token;虽然客户端在访问 iam-apiserver 或者 iam-auth-server 时,在 bearer 认证中携带该 Token,服务端对该请求进行认证。 1. 服务端basic认证实现逻辑:通过 gin middleware 实现了签发 JWT 的功能。jwt.New 对象在实例化时,传递多个回调函数,比如 Authentiactor, LoginResponse 等。 2. 服务端bearer认证实现逻辑:在 gin 中以 middleware 的方式存在,借助 jwt package 完成认证。认证完成后,会在 Context 中保存Username,方便后面的handler使用

    作者回复: 总结的好细!

    
    1