当前位置: 首页 > 知识库问答 >
问题:

Spring Cloud OAuth2:密码授予类型与资源安全性

爱刚捷
2023-03-14

关于使用OAuth2的spring-cloud-security我有两个问题:

>

  • 如何通过grant_type保护资源?我想用client_credentials保护我的REST API,然后通过密码授权类型保护用户特定的资源。这可能吗?

    与本教程相一致的是,密码授予类型不需要客户端秘密,尽管spring cloud oauth2似乎总是需要客户端秘密。我怎么处理这个?通过设置一个像“ABC”这样的无稽之谈客户秘密而只是不在乎它?

    如果我有一个带有@enableoauth2sso的客户端应用程序,尽管我不提供授权类型“授权代码”,但我只得到一个到授权Uri的重定向。如果我只提供密码授权类型,那么重定向到令牌Uri不是更有意义吗?

  • 共有1个答案

    徐友樵
    2023-03-14

    如何通过grant_type保护资源?我想用client_credentials保护我的REST API

    使用OAuth2访问规则并指定只需要客户端。例如。使用#oauth2表达式变量和#oauth2.isclient()(此处为源代码)。

    密码授予类型不需要客户端机密

    如果我有一个带有@enableoauth2sso的客户端应用程序,尽管我不提供授权类型“授权代码”,但我只得到一个到授权Uri的重定向。如果我只提供密码授权类型,那么重定向到令牌Uri不是更有意义吗?

    不,令牌endpoint是一个反向通道,它不是这样工作的(即使您允许从GET授予令牌,用户将如何处理响应?)。外部web应用程序没有使用密码授权的协议(主要针对本机应用程序)。在web应用程序中,应该使用auth代码。

     类似资料:
    • 本文向大家介绍oauth 资源所有者密码凭证授予,包括了oauth 资源所有者密码凭证授予的使用技巧和注意事项,需要的朋友参考一下 示例 资源

    • 应用程序需要连接到仅支持OAuth2资源所有者密码凭据授予的API。我尝试使用下面的代码,但得到的响应代码为400“错误请求”。使用相同的代码,我可以连接到一个正常的网站并检索内容。 我知道API代码是工作,因为使用邮递员工作。在邮递员中,我只是发出一个帖子请求,提供用户名、密码和grant_type,并使用x-www. form-urlencoded 连接的返回是一个json。 你知道怎么了吗?

    • 我一直在广泛阅读有关OAuth和OpenID Connect的内容,但此问题专门涉及OAuth2资源所有者密码授予(又名OAuth2资源所有者凭据授予,又名OAuth2密码授予) 某些资源(例如Justin Richer的《OAuth2 in Action》一书)说不要使用OAuth2资源所有者密码授予进行身份验证-请参阅书中的第6.1.3节。 以下其他好资源都说我们可以使用OAuth2资源所有者

    • null 用户在登录表单中输入凭据->应用程序1将使用用户凭据从应用程序2获取令牌,其具有密码授予类型->使用令牌访问应用程序1的资源。 问题是Spring Security 5是否支持客户端的密码授予类型?我在Spring Security 5实现中找到了所有rest授予类型,但没有找到密码。

    • 如何将Spring Cloud Gateway中的路由配置为使用具有的OAuth2客户端?换句话说,如何将请求中带有令牌的授权头添加到API?因为我正在与遗留应用程序集成,所以必须使用grant类型密码。 我有这个申请: 用一个实际的令牌替换,一切正常。 我发现这个项目做了类似的事情:https://github.com/jgrandja/spring-security-oauth-5-2-mig

    • 产品-服务:具有受保护路由的简单下游服务 jwt-resoure-server:当包含在下游服务中时,使其成为提取jwt令牌并将其设置在安全contex中的资源服务器的jar。 尤里卡-服务:发现服务 zuul-server:边缘服务器 Okta是我的auth服务器 我已经将oauth grant类型设置为be-Authorization code(我知道对于spa来说,建议使用隐式grant类型