OpenID Connect (OIDC)协议入门
目录
一个鉴权(authentication )协议 , OAuth 2.0 协议族之上的身份认证层,允许第三方APP对用户进行身份认证以获取其个人信息。
它使用 JWT(JSON Web Token)。
OAuth 2.0 是关于资源访问和共享的,而 OIDC 是关于用户鉴权(身份认证)。
它旨在让你能一次登录多个站点,每次你需要使用 OIDC 登录一个网站时,你会被重定向到你登录过的 OpenID网站,然后再返回到这个网站。
OpenID是一个去中心化的网上身份认证系统。对于支持OpenID的网站,用户不需要记住像用户名和密码这样的传统验证标记。取而代之的是,他们只需要预先在一个作为OpenID身份提供者(identity provider, IdP)的网站上注册。OpenID是去中心化的,任何网站都可以使用OpenID来作为用户登录的一种方式,任何网站也都可以作为OpenID身份提供者。OpenID既解决了问题而又不需要依赖于中心性的网站来确认数字身份。
用一张图就可以解释:
其中3和4为求简化,就没有再细化,总之先登录再授权。
-
Access Token:访问API的凭证,可以是String、JWT或其他令牌 。
-
ID Token:JWT,包含身份信息(通常用于UI展示)。应符合行业标准( RFC 7519),包含三部分:header、body、signature。尽管 OpenID Connect specification 定义了 standard claims,但是还是推荐自己定制信息。
参考文献: