SSO 单点登录
OAuth2.0 第三方鉴权

  • 微信登录
  • github登录
  • 钉钉登录等

身份认证技术,也就是所谓的登录功能,WEB系统的基础设施。

OAuth2.0协议

OAuth2.0 协议标准 https://oauth.net/2/
OAuth 2.0 Authorization Framework https://datatracker.ietf.org/doc/html/rfc6749

Implement the OAuth 2.0 Authorization Code with PKCE Flow
auth.svg
[

](https://developer.okta.com/blog/2019/08/22/okta-authjs-pkce)

image.png

开发企业web统一用户认证和权限控制平台

  • 提供用户管理、认证和权限接入的能力
  • 避免各个系统重复建设造成资源的浪费
  • 使用微信、dingding等账号登录的方案,来避免繁琐的注册流程
    • 你(用户)
    • 授权极客时间(第三方软件)
    • 代表你使用在微信平台(授权服务)的个人信息(受保护资源)来登录

4 大授权许可类型
快速接入 OAuth 2.0 的方法
实现一个 OIDC 用户身份认证协议
基于 OAuth 2.0/JWT 的微服务架构参考

OAuth2.0相关问题

  • 授权码许可类型的流程
    • 资源拥有者凭据许可
    • 隐式许可
    • 客户端凭据许可的原理
    • 如何选择适合自己实际场景的授权类型?
  • 在授权码许可类型中,为什么一定要有授权码?为什么要有两次重定向
  • 在Web应用中到底应该怎么使用授权码流程,移动App中还能使用授权码流程吗?
  • 在开发应用时,如何解决授权码被拦截的安全问题?
  • OAuth 2.0安全漏洞有哪些?
  • 如何利用OAuth 2.0实现一个OpenID Connect用户身份认证协议?

四大授权许可类型

  1. 授权码 authorization-code
    1. jwt
  2. 隐藏式 implicit
  3. 密码式 password
  4. 客户端凭证 client credentials

白名单认证

某些类型的 URL和 api全部免登陆,如何跳过鉴权?

  1. URL通过 ignore配置项实现,同时 webProxy要开启,否则访问 URL就是 404,因为服务器没有代理这路由。
  2. api的免登陆,通过 http referer判断,如果 referer的 URL,在控制列表中,就跳过登录