Security 关于OAuth2授权类型

Security 关于OAuth2授权类型,security,oauth-2.0,Security,Oauth 2.0,我正在读一篇关于OAuth2的文章。让我困惑的是补助金类型。上面说 授权代码:用于服务器端应用程序 隐式:用于移动应用程序或Web应用程序(在用户设备上运行的应用程序) 那么,服务器端应用程序和web应用程序之间的区别是什么,它们不一样吗?谁能给我举个例子,说明什么时候使用这两种补助金类型?谢谢。这是安全问题,所以很复杂。不太复杂 首先,您需要确定您的OAuth客户端(即您的应用程序)是否为“” 最好的规则是遵守 “隐性补助金提高了一些项目的响应能力和效率 客户端(例如作为浏览器内应用程序实现的

我正在读一篇关于OAuth2的文章。让我困惑的是补助金类型。上面说

授权代码:用于服务器端应用程序 隐式:用于移动应用程序或Web应用程序(在用户设备上运行的应用程序)


那么,服务器端应用程序和web应用程序之间的区别是什么,它们不一样吗?谁能给我举个例子,说明什么时候使用这两种补助金类型?谢谢。

这是安全问题,所以很复杂。不太复杂

首先,您需要确定您的OAuth客户端(即您的应用程序)是否为“”

最好的规则是遵守 “隐性补助金提高了一些项目的响应能力和效率 客户端(例如作为浏览器内应用程序实现的客户端), 因为它减少了获得许可所需的往返次数 访问令牌。但是,这种便利性应该与 使用隐式授权的安全影响,例如 如第10.3节和第10.16节所述,尤其是当
授权码授权类型可用。“

它是安全的,所以很复杂。不太复杂

首先,您需要确定您的OAuth客户端(即您的应用程序)是否为“”

最好的规则是遵守 “隐性补助金提高了一些项目的响应能力和效率 客户端(例如作为浏览器内应用程序实现的客户端), 因为它减少了获得许可所需的往返次数 访问令牌。但是,这种便利性应该与 使用隐式授权的安全影响,例如 如第10.3节和第10.16节所述,尤其是当
授权码授权类型可用。“

授权码授权提供了额外的安全性,适用于提供服务器会话的应用程序。通过用户代理和客户端的分离提供附加安全性。例如,在Stackexchange(客户端)上使用Facebook帐户登录的web浏览器(用户代理)。由于客户端web应用程序(服务器)可以安全地获取并存储访问令牌,因此令牌被破坏的风险较小

隐式代码授权的安全性较低,只有在没有web服务器或服务器会话(例如,本机移动应用程序、javascript应用程序)时才可选择。由于用户代理必须获取令牌,因此拥有中间凭据(如授权码)并在以后获取访问令牌是没有意义的


这可能有助于

授权码授权提供了额外的安全性,并且对于提供服务器会话的应用程序来说效果良好。通过用户代理和客户端的分离提供附加安全性。例如,在Stackexchange(客户端)上使用Facebook帐户登录的web浏览器(用户代理)。由于客户端web应用程序(服务器)可以安全地获取并存储访问令牌,因此令牌被破坏的风险较小

隐式代码授权的安全性较低,只有在没有web服务器或服务器会话(例如,本机移动应用程序、javascript应用程序)时才可选择。由于用户代理必须获取令牌,因此拥有中间凭据(如授权码)并在以后获取访问令牌是没有意义的


这可能会有所帮助

我喜欢把补助金看作一种东西,比如一枚硬币,而通行证则是另一种东西,一把打开大门的钥匙

为了得到钥匙,你必须交出一枚硬币。接受哪种硬币

嗯,你可以交一枚写有密码的硬币。这表明你知道你的密码,因此,硬币被接受,你得到一把钥匙。这是资源所有者密码凭据授予

web服务器可以设置登录表单,用户输入web服务器看到的密码。web服务器使用密码获取密钥

除了密钥之外,您可能还获得了一个刷新令牌。所以稍后,你可以交出一枚刻有刷新标记的硬币。这枚硬币被接受,你会得到一把新钥匙。这是刷新令牌授权

您可能不知道您的密码。你的父母为你记录你的密码。你让你的父母去给你拿一个“密码”。他们与当局交谈并给出密码,然后收到他们给你的密码。现在你可以把密码放在硬币上,把硬币交出来,然后收到钥匙。你没有看到密码,你父母也没有看到钥匙。这是授权码授权

一个网络服务器要求你“登录谷歌”。谷歌会询问你的密码,并给你一个授权码,该密码会传回网络服务器。web服务器可以在不查看密码的情况下从Google获取密钥

你可能与当局有着特殊的关系,并且拥有一个秘密。你不需要密码。在这种情况下,你可以把这个秘密放在硬币上,然后把它换成钥匙。这是客户端凭据授予

您可能是后端服务器,需要密钥,但没有用户名或密码。你只需要一个秘密就可以拿到钥匙

如果你是VIP,你甚至不需要硬币!你可以挥挥手,然后拿到一把钥匙。这是一种“隐性”硬币——也就是说,没有硬币!这是隐性补助


你可能是一个手机应用程序,实际上没有一个安全的地方让你保守秘密,所以你只是挥手去拿你的钥匙。

我喜欢把补助金看作一种东西,比如一枚硬币,而访问令牌则是另一种东西,一把钥匙打开了门

为了得到钥匙,你必须交出一枚硬币。接受哪种硬币

嗯,你可以交一枚写有密码的硬币。这表明你知道你的密码,因此,硬币被接受,你得到一把钥匙。这是资源所有者密码凭据授予