OpenID Connect详解

OpenID Connect 1.0是建立在OAuth 2.0上的一个身份验证机制,它允许客户端通过授权服务对用户进行认证并获取简单的用户信息。

前置知识:读者需要了解OAuth2.0的授权码模式和隐藏模式两种工作流程,要了解JWT、JWE、JWS等概念。这在我的前两篇文章都有详细讲解

概览

名词解释

  • OP:OpenID Provider,即OAuth2.0中的授权服务,用于对用户鉴权

  • RP:Relying Part,依赖方,即OAuth2.0中的客户端,它从OP除获取对用户的鉴权和用户信息

  • ID Token:是一个JWT,包含本次授权的基本信息。具体包含字段如下

    字段 必须? 说明
    iss 发布者,一个https开头的地址
    sub 主体,OP对用户的唯一标识,不超过255个ASCII字符
    aud 客户,即使用者。值为OAuth2.0协议中客户端注册的client_id
    exp 过期时间,遵从RFC 3339协议,即epoch seconds
    iat 签发时间,同上
    auth_time 可选 鉴权时间
    nonce 随机值。两个作用
    一是RP发送时带上,OP响应时带上,用于RP对比
    二是防重放攻击
    acr 可选 Authentication Context Class Reference,暂不知义,忽略
    amr 可选 Authentication Methods References,暂不知义,忽略
    azp 可选 Authorized party,暂不知义,忽略

总体流程

类似OAuth2.0,有一个总体流程和若干细分模式的流程,OpenID Connect协议总体流程为:RP发起请求 -> OP对用户鉴权并获取授权 -> OP响应RP并带上ID Token和Access Token -> RP通过访问凭证向OP请求用户信息 -> OP返回用户信息给RP

+--------+                                   +--------+
|        |                                   |        |
|        |---------(1) AuthN Request-------->|        |
|        |                                   |        |
|        |  +--------+                       |        |
|        |  |        |                       |        |
|        |  |  End-  |<--(2) AuthN & AuthZ-->|        |
|        |  |  User  |                       |        |
|   RP   |  |        |                       |   OP   |
|        |  +--------+                       |        |
|        |                                   |        |
|        |<--------(3) AuthN Response--------|        |
|<
  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值