Post

IdentityServer Notes

它本质是个中间件

Concepts

  • Authorization
  • Authentication

JWT

<header>.<payload>.<signature>组成的base64编码,前两个解析之后是用户和算法信息,sig是加密字符串

签名算法:HS256/RS256/RS256,分别为HMAC、RSA、ECDSA + SHA-256,其中HS256是对称密钥,另外两个是非对称

OIDC中的Access Token一般都是JWT

Kubernetes的Bearer Token也是(并不必须)是JWT,我之前为了监控K8S集群帮客户折腾了那么久Token,几乎把他们所有的安全条例都破了一遍,居然没去了解过这玩意儿本身。

Authentication

  • SAML2p (most widely used and deployed)
  • WS-Federation
  • OpenID Connect (the future)

OIDC相关

OpenID Connect在OAuth2.0基础上引入部分额外特性,主要区别含:

  • ID Token
  • Userinfo 可以理解为在标准OAuth2.0认证通过之后调用的一个info接口
  • 标准化认证流程,OAuth2.0没有定义认证标准
  • 默认HTTPS

前公司某H开头的系统用的就是OIDC,当时为了简化任务流程还写过一个作弊脚本每天抓他们的Token。

##

Reference

  • RFC6749 OAuth2.0 https://datatracker.ietf.org/doc/html/rfc6749
  • https://www.youtube.com/watch?v=02Yh3sxzAYI
  • ruanyifeng的oauth讲解
    • https://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
    • 后来的版本更易读一些 https://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html
  • https://zhuanlan.zhihu.com/p/105644659
This post is licensed under CC BY 4.0 by the author.