单点登录系统知识点总结( 五 )


(2.)通过配置对谁颁发令牌,客户端有什么特点
@Overridepublic void configure(ClientDetailsServiceConfigurer clients) throws Exception {//super.configure(clients);clients.inMemory()//定义客户端要携带的id(客户端访问此服务时要携带的id,这个是自己定义的字符串).withClient("gateway-client")//定义客户端要携带的秘钥(这个秘钥也 是官方定义的一个规则,客户端要携带,字符串可与自己).secret(passwordEncoder.encode("123456"))//定义作用范围(所有符合定义规则的客户端,例如:client、secret 。。。).scopes("all")//定义允许的认证方式(基于密码和刷新令牌的方式实现认证).authorizedGrantTypes("password","refresh_token");}
(3.)登录时要对哪个URL发起请求,通过哪个URL可以解析令牌
//配置要对外暴露的认证URL,刷新令牌的URL,检查令牌的URL@Overridepublic void configure(AuthorizationServerSecurityConfigurer security) throws Exception {//super.configure(security);//1.定义(公开)要认证的url(permitAll()是官方定义好的)//公开oauth/token_key端点security.tokenKeyAccess("permitAll()")//公开检查token有效性的URL.checkTokenAccess("permitAll()")//允许通过表单提交方式进行认证.allowFormAuthenticationForClients();}
5.生成token令牌的组成
上述的固定参数key要和以下配置类中定义的数据保持一致,否则会出现401错误
资源服务工程设计 1.资源服务设计架构()
资源服务工程为一个业务数据工程,此工程中数据在访问通常情况下是受限访问,例如有些资源有用户,可以访问,有些资源必须认证才可访问,有些资源认证后,有权限才可以访问 。
用户访问资源时的认证,授权流程设计如下
如何设计对这个资源工程的访问?
单点登录中常用的依赖
1.feign进行远程调用
org.springframework.cloudspring-cloud-starter-openfeign
2.nacos 服务注册
com.alibaba.cloudspring-cloud-starter-alibaba-nacos-discovery
3.Nacos 服务配置
com.alibaba.cloudspring-cloud-starter-alibaba-nacos-config
4.SSO技术方案: +JWT+
该依赖中包含 (安全)、(安全检查)、jwt(生成令牌)、(安全协议、定义一个规范)的依赖 。
org.springframework.cloudspring-cloud-starter-oauth2
资源服务器中添加该依赖只做授权,不做认证,添加完此依赖以后,在项目中我们要做哪些事情?对受限访问的资源可以先判断是否登录了,已经认证用户还要判断是否有权限?
5. Web依赖
org.springframework.bootspring-boot-starter-web
IDEA知识小点总结
1.Pojo实现类中自动生成UID——序列化ID的唯一标识
2.在IDEA中打开数据库并管理表信息
【单点登录系统知识点总结】三级目录