gpt4 book ai didi

java - Spring-Security-OAuth2 中的 grant_type

转载 作者:行者123 更新时间:2023-11-30 07:00:10 26 4
gpt4 key购买 nike

我是 OAuth2 概念的新手。我必须在我的应用程序中实现它。此应用程序提供 REST API。我遵循了一些教程,做了一些研究,并在我的应用程序中以工作状态实现了它。

但在进行一些搜索时,我读到了 OAuth2 中不同类型的 grant_type。我试图了解它,但没有得到实际的区别,我应该使用哪个来保护 REST API。所以我想知道对于 grant_type 类型,“password”、“client_credential”等应该在哪种情况下使用,或者应该使用哪些来保护 REST API?

还有一些地方我发现/oauth/token的请求是不一样的。Authorization header 的某些地方被指定为 Basic 'some_encoded_string' 。在某个地方它是 Bearer 'some_encoded_string'。这些请求有什么区别?

总结起来我有 2 个问题 -

  1. 对于 grant_type 类型“password”、“client_credential”等,应该在什么情况下使用,或者应该使用哪些来保护 REST API?

  2. /oauth/token 请求 token 的方式有什么不同。

启发我在实现 spring-security-oauth2 方面的知识。

最佳答案

您需要使用的授权取决于您的用例和访问您的资源的客户端应用程序的性质。通常没有应用 REST API 资源的授权。您需要提供有关 API 是什么以及如何与它们交互的更多信息。

如果用户必须授予客户端访问 API 的权限,那么您通常会使用“授权码”授权。如果客户端在没有最终用户干预的情况下直接访问资源,那么它通常会使用“客户端凭据”授权。

在大多数情况下,您应该避免使用password 授权,因为这意味着用户必须向客户端应用程序提供他们的用户名和密码。如果应用程序可以使用其他授权,例如授权代码,那么这是更可取的。受信任的应用程序(例如用户在其计算机上安装的 native 应用程序)是可能使用密码授权的一种情况。

客户端通常会使用“基本”身份验证来访问 token 端点。 “承载”身份验证用于访问 protected 资源(例如您的 API),传递从授权服务器获得的访问 token 。

为什么您认为您需要使用 OAuth2?我很好奇,因为您说您不了解赠款类型的用途。您确实需要了解这一点,然后才能判断您将如何使用 OAuth2 或为什么使用 OAuth2。

关于java - Spring-Security-OAuth2 中的 grant_type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30846746/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com