繁体   English   中英

授权码包含什么?

[英]What does a Authorization Code contains?

授权码流-用户从客户端应用登录,授权服务器向应用返回授权码。 然后,应用程序将授权码交换为访问令牌,因此,我想知道授权服务器作为授权码发送的内容是什么?我的意思是授权码包含什么代码或签名?

oAuth的RFC在1.3.1节(称为授权代码)中说明了oAuth中的授权代码。 看到:

通过使用授权服务器作为客户端和资源所有者之间的中介,可以获取授权代码。 客户端不是直接从资源所有者请求授权,而是将资源所有者定向到授权服务器(通过[RFC2616]中定义的用户代理),后者又将资源所有者与授权代码一起引导回客户端。

在使用授权码将资源所有者引导回客户端之前,授权服务器对资源所有者进行身份验证并获得授权。 由于资源所有者仅通过授权服务器进行身份验证,因此资源所有者的凭据永远不会与客户端共享。

授权代码提供了一些重要的安全益处,例如对客户端进行身份验证的能力,以及将访问令牌直接传输到客户端的过程,而无需将其传递给资源所有者的用户代理,并且可能会将其暴露给其他人,包括资源所有者。

在4.1授权代码授权和10.5授权代码中将使用框图更详细地说明该功能。 看到:

上面引用的文档中的一些相关引用:

授权代码的传输应在安全通道上进行,如果URI标识了网络资源,则客户端应要求使用带有其重定向URI的TLS。 由于授权代码是通过用户代理重定向发送的,因此有可能通过用户代理历史记录和HTTP引用来源标头公开它们。

授权代码用作纯文本承载凭据,用于验证在授权服务器上授予授权的资源所有者是否与返回客户端以完成该过程的资源所有者相同。 因此,如果客户端依靠授权码进行自己的资源所有者身份验证,则客户端重定向终结点务必要求使用TLS。

授权码必须是短期的且只能使用一次。 如果授权服务器观察到多次尝试为访问令牌交换授权代码,则授权服务器应尝试基于泄露的授权代码撤回已授予的所有访问令牌。

如果可以对客户端进行身份验证,则授权服务器必须对客户端进行身份验证,并确保将授权代码发布给相同的客户端。

有关更多详细信息,请参见RFC 6749的其余部分:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM