美文网首页
Oauth2——身份认证

Oauth2——身份认证

作者: 大黑跟小白的日常 | 来源:发表于2019-10-15 22:45 被阅读0次

    用户认证

    是否能让该请求客户端访问当前系统?校验客户端(用户)身份,判断是否已经登录,可以知道当前访问是哪个用户的;

    用户授权

    用户访问的这个系统资源,是否拥有权限。比如:一个电商后台管理系统,用户登录的角色可能很多,非财务人员的账户,不能访问财务数据模块;

    单点登录

    多个服务,都需要用户认证,每访问不同的服务,如果都需要重写认证用户信息,那么就不合理,因为对于用户来说,他访问的是同一个体系系统。而后就有了单点登录一说,同一个客户端访问系统所有服务,只要认证一次,就相当于认证了所有服务。
    比如:后台管理系统、数据报表系统、定时任务管理系统、数据配置中心...都需要做用户身份认证的,并且他们都是单独部署,不属于同一个进程服务。然而访问这些子系统时,每个系统都要重新认证用户信息就不合适,因为这些系统,同属于一个公司的后台系统,这个时候就需要单点登录;

    第三方认证

    其他平台账号、密码认证,我们从第三方获取用户认证信息;比如:微信认证、qq、微博,账号登录认证;

    授权码模式(code)

    ——前提是用户已经登录,如果没有登录需要先登录。目的是:让认证中心知道是哪个用户发起的授权

    image.png
    1、用户授权:用户同意认证中心给某某客户端(传入客户端身份id)授权,让这个客户端可以访问这个用户的信息。前提是用户已经登录认证中心,认证中心知道当前请求是哪个用户发起的;
    image.png
    如果同意授权,跳转到redirect_uri地址,并且在uri后面追加返回的code,如https://www.baidu.com/?code=o4YrCS。这里一般是重定向到客户端服务接口,客户端接口获取授权码,然后去申请令牌;
    2、认证中心返回给客户端授权码:返回给客户端的方式就是认证中心重定向到回调url(发起授权时指定的redirect_uri)并携带授权码,认证中心告诉客户端说,你可以申请访问这个用户信息的令牌了;
    3、客户端申请用于访问该用户信息的令牌:客户端拿着授权码、拿着认证中心分配给自己的身份密码(与客户端身份id配对的一个密码,并不是所有客户端都能有资格去认证中心申请令牌)就去认证中心申请令牌,发送一个post请求;
    4、返回令牌:认证中心对客户端身份进行认证,结合授权码信息返回用户身份授权令牌;
    5、客户端携带用户身份令牌访问用户信息:客户端请求获取用户相关信息,存储用户信息相关的服务校验令牌的正确性(公钥校验令牌、去认证中心校验...),认证通过,将资源信息响应给客户端;
    博客详解见
    https://blog.csdn.net/u013887008/article/details/80616422
    https://blog.csdn.net/lixiang987654321/article/details/83381494
    源码见
    https://github.com/haoxiaoyong1014/springboot-examples/tree/master/springboot-oauth2-authorization-server
    具体应用实践参考:腾讯云
    [https://cloud.tencent.com——微信二维码授权
    [https://cloud.tencent.com——qq账号密码登录后授权
    认证服务给具体的客户端(访问者)授权;比如:某个客户端服务想要访问用户微信信息,微信认证给各个客户端(商业平台)授权,然后各个平台就可以去访问微信用户相关的信息;

    密码模式(password)

    ——用户未登录,用户提交登录信息请求客户端,客户端再请求认证中心,获取用户授权令牌,授权客户端拥有访问资源的权限

    简化模式(implicit)

    详细见
    https://www.cnblogs.com/lexiaofei/p/6934447.html

    客户端模式(client credentials)

    这种模式直接根据client的id和密钥即可获取token,无需用户参与
    这种模式比较合适消费api的后端服务,比如拉取一组用户信息等
    不支持refresh token,主要是没有必要

    cas 单点登陆

    https://www.cnblogs.com/Eleven-Liu/p/10336181.html

    相关文章

      网友评论

          本文标题:Oauth2——身份认证

          本文链接:https://www.haomeiwen.com/subject/sjckmctx.html