当前位置:首页 > 经验 >

http协议认证方式(http认证方式)

来源:原点资讯(www.yd166.com)时间:2022-11-09 14:15:56作者:YD166手机阅读>>



隐式流程

在OAuth2.0中,隐式授权使用的response_type是token,而在OIDC中,变为了id_token token或是仅id_token,当仅使用id_token时,则不会返回Access token了。其余参数则和OAuth2.0中的隐式授权一致。但OIDC中相比OAuth2.0隐式流程额外增加了一个参数nonce

  • nonce:必填。字符串值,用于将第三方应用的会话与 Id token关联,并缓解重放攻击。该值未经修改地从身份验证请求传递到 Id token中。为了防止攻击者猜中值,随机数值中必须存在足够的熵。

注意:隐式流程中OAuth2.0的state和OIDC的nonce区别

https://stackoverflow.com/questions/46844285/difference-between-oauth-2-0-state-and-openid-nonce-parameter-why-state-cou

1、第三方应用(RP)携带参数跳转到授权服务器(OP)的认证授权页面,等待用户认证与执行授权。

http协议认证方式,http认证方式(9)

2、当授权服务器(OP)完成对用户认证信息的审核和授权范围的校验,重定向回第三方应用(RP)并按照请求时的response_type返回id token、access token(当仅设置id_token时不返回)。注意url的hash部分(#后面)。

http协议认证方式,http认证方式(10)

3、后续便是请求用户信息或是授权内的资源。



混合流程

这种是将授权码和隐式流程结合起来,一部分token来源于授权服务器(OP)重定向到第三方应用(RP)时带过来,一部分来源于第三方应用(RP)向授权服务器(OP)发起请求而得到。这种流程中,response_type,可以混合着用,如code id_token,code token或是code id_token token。

1、第三方应用(RP)向授权服务器(OP)发起认证请求。此处使用授权码和隐式中仅id_token的组合。

http协议认证方式,http认证方式(11)

2、当授权服务器(OP)完成对用户认证信息的审核和授权范围的校验,重定向回第三方应用(RP)并按照请求时的response_type返回id token、access token(当仅设置id_token时不返回)。

  • access_token:当response_type中有token选项时,则会返回access_token
  • id_token:当response_type中有id_token选项时,则会返回id_token
  • code:混合流程中,这个是必选的,所以总是会返回code。

3、第三方应用(RP)通过code来请求授权服务器(OP)换取Token。这和授权码流程一致了。



Id token格式

认证服务返回的ID Token需要严格遵守JWT(JSON Web Token)的定义,下面是JWT(JSON Web Token)的定义细节:

  • iss=Issuer Identifier: 必须。认证服务的唯一标识,一个区分大小写的https URL,不包含query和fragment组件。
  • sub=Subject Identifier:必须。iss提供的终端用户的标识,在iss范围内唯一,最长为255个ASCII个字符,区分大小写。
  • aud=Audience(s):必须。标识ID Token的受众,必须包含OAuth2的client_id,分大小写的字符串数组。
  • exp=Expiration time:必须。超过此时间的ID Token会作废。
  • iat=Issued At Time:必须。JWT的构建的时间。
  • auth_time=AuthenticationTime:终端用户完成认证的时间。
  • nonce:发送认证请求的时候提供的随机字符串,用来减缓重放攻击,也可以用来关联客户端Session。如果nonce存在,第三方应用必须验证nonce。
  • acr=Authentication Context Class Reference:可选。表示一个认证上下文引用值,可以用来标识认证上下文类。
  • amr=Authentication Methods References:可选。表示一组认证方法。
  • azpAuthorized party:可选。结合aud使用。只有在被认证的一方和受众(aud)不一致时才使用此值,一般情况下很少使用。
    如下是一个典型ID Token的示例:

{ "exp": 1614187991, "iss": "https://authorization-server.com/oauth", "sub": "a0903223-a120-91e0-c342-10bd237c24c1", "aud": "client1", "iat": 1614151991, "auth_time": 0, "nonce": "n-0S6_WzA2Mj", "acr": "1", "azp": "client1", "nbf": 0, "typ": "ID", "session_state": "150df80e-92a1-4b0c-a5c5-8c858eb5a848", "userId": "123456", "preferred_username": "testera", "given_name": "tester", "family_name": "a", "email": "testera@myweb.com" }

关于ID Token的更详细的定义请参见OpenID Connect Core 1.0。



参考

https://openid.net/connect/

https://www.jianshu.com/p/2c602974bc98

https://baike.baidu.com/item/OpenID?wtp=tt

http://www.imooc.com/article/4167

https://www.cnblogs.com/linianhui/p/openid-connect-core.html

来源:https://www.cnblogs.com/CKExp/p/16084545.html

栏目热文

如何去掉http校验(http怎么校验)

如何去掉http校验(http怎么校验)

HTTP 方法用于执行创建、读取、更新和删除(或 CRUD)操作。最常用的方法是 POST、GET、PUT、PATCH ...

2022-11-09 13:44:53查看全文 >>

http用户验证步骤(http服务的正确范例)

http用户验证步骤(http服务的正确范例)

前言在上一章节中,一一哥 带大家搭建了第一个Spring Security项目,相信小伙伴已经学会了如何利用Spring...

2022-11-09 14:02:23查看全文 >>

http认证过程(产品认证证书查询)

http认证过程(产品认证证书查询)

HttpBasic 认证有一定的局限性与安全隐患,因此在实际项目中使用并不多,但是,有的时候为了测试方便,开启 Http...

2022-11-09 14:15:38查看全文 >>

http认证方法有哪些(http协议基础认证)

http认证方法有哪些(http协议基础认证)

我将在此处描述的问题和解决方案是“基本Http身份验证”的基本对话框的解决方法。尝试统一身份验证流程时遇到了这样的问题...

2022-11-09 14:27:22查看全文 >>

http认证四个方式(http认证方法有哪些)

http认证四个方式(http认证方法有哪些)

HTTP(HyperText Transfer Protocol,超文本传输协议)被用于在Web浏览器和网站服务器之间传...

2022-11-09 14:22:34查看全文 >>

怎么能把http去掉(http要关掉吗)

怎么能把http去掉(http要关掉吗)

作者 | billpchen来源 | 占小狼的博客(ID:whywhy_zj)头图 | CSDN下载自视觉中国2015 ...

2022-11-09 14:17:17查看全文 >>

http代理的认证方式(如何做http代理)

http代理的认证方式(如何做http代理)

什么是HTTPS代理随着代理服务器的广泛使用,大家对代理应该有一定的了解。代理根据协最常见的分类是http代理、http...

2022-11-09 14:27:41查看全文 >>

怎样删除http协议(http协议简介)

怎样删除http协议(http协议简介)

HTTP简介HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维...

2022-11-09 14:04:17查看全文 >>

不加密的http传输协议怎么取消(怎么对http协议加密)

不加密的http传输协议怎么取消(怎么对http协议加密)

https 加密传输协议很多新手呢他并不知道,当我们去打开一个网站的时候,这个网站的域名前面会有一个http:/冒号双斜...

2022-11-09 13:41:16查看全文 >>

http协议怎么修改(如何配置http协议)

http协议怎么修改(如何配置http协议)

1.简介有的小伙伴或者童鞋们可能会好奇地问:不是讲解和分享抓包工具了怎么这里开始讲解HTTP和HTTPS协议了。这是因为...

2022-11-09 14:15:40查看全文 >>

文档排行