问题标签 [spring-oauth2]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring-security - 如何使用 Postman 身份验证助手调用 JHipster (Spring) OAuth2 Rest 服务器
Postman 有身份验证助手来帮助进行身份验证的调用,我正在尝试使用OAuth 2.0 助手来调用JHipster使用Spring(安全、社交等)创建的 REST 服务器。
我已经尝试了很多配置,这是屏幕(客户端 ID 和 Secret 被屏蔽):
对于我尝试过的授权 URL :
我从收到一个令牌返回 Postman 越接近:
我不知道为什么会出现这样的错误。也许我错误地设置了回调 URL?我需要在服务器或客户端(AngularJS)中执行此操作吗?
有谁知道出了什么问题?我感谢您的帮助。
spring-security-oauth2 - 如何用 curl 测试 sparklr2 样本?
首先作为初学者开始使用 oAuth2,我运行 sparklr2 示例,它工作正常,然后我尝试测试一些不同类型的授权场景。
作为参考 AuthorizationServerConfiguration 类的配置方法是:
我在运行 curl 时成功的第一个是 grant_type=client_credentials
回复 :
现在我正在尝试测试 grant_type=password 场景:
并得到回应:
我已经测试了很多组合都没有成功,这个请求有什么问题?我发现这是使用 curl 手动测试请求以了解使用 oAuth2 的不同场景的好方法。
谢谢您的帮助。
java - 带有 REST 请求的 Spring OAuth2 身份验证
背景
我按照本教程使用 spring-security-oauth2 配置 OAuth2 服务器。
到目前为止,它是这样工作的:
- 当用户尝试连接到服务器时,会显示一个普通的旧身份验证对话框
- 如果提供了正确的凭据,用户将被重定向到默认的 Spring 确认表单。
- 如果用户选择“允许”,则用户将被重定向到我想要的任何页面,并带有可用于获取访问令牌的授权码。
SSCCE
我将这个准备运行的示例放在我的 github 帐户上(这或多或少是教程给出的代码)
克隆:
执行:
然后导航到:
通过以下方式进行身份验证:
问题
现在,我想改变行为:
- 我更喜欢登录/密码表单,而不是普通的旧身份验证对话框。
- 我不想要要求用户授权的第二步:我只想获得一个访问令牌。
到目前为止,我可以通过以下步骤来做到这一点:
- 用户以自定义形式输入其凭据。
- 我发送一个 GET 请求到
http://localhost:9999/uaa/oauth/authorize?response_type=code&client_id=acme&redirect_uri=http://example.com
- 我收到一个HTML 响应(这是确认表单),但并不真正关心它,只要它是 HTTP 200。它还为我提供了一些下一步所需的 cookie。
http://localhost:9999/uaa/oauth/authorize
我使用默认弹簧确认表单发送的相同正文参数 发送 POST 请求:- user_oauth_approval = true
- scope.openid = true
它有效:用户被重定向到我想要的页面(在这种情况下:http ://example.com?code= $authorization_code$)
问题
我真正想要的只是摆脱 Spring 的确认表单。在我的情况下它是无用的:我只想获取当前会话的访问令牌,而不是永久授权客户端访问私有资源。有没有这样的配置?
相关代码是:
java - 如何将安全管理端点添加到 Spring OAuth2 Server?
我们正在开发一个基于 Spring Oauth2 的 Auth Server。我们已经设法通过自定义UserDetails
实现(和一些其他自定义组件)向令牌添加自定义数据,以便我们可以将身份验证服务器中的用户映射到应用程序中的实体。
应用程序后台还将支持通过管理界面创建新用户。出于这个原因,我们打开了一些从 开始的端点/users
。
我们希望这个 ednpoints 只能被具有信任范围的经过身份验证的客户端访问。因此,对这些端点的请求应提供一个带有通过客户端凭据授予获得Authorization
的有效令牌的标头。Bearer
我们已尝试配置这些端点的安全性,扩展WebSecurityConfigurerAdapter
. 以下是该configure(HttpSecurity http)
方法和结果的不同版本:
这个有效!但是没有保障。
失败!。似乎未应用进行身份验证的过滤器,我得到了403 Forbidden
响应。authenticated()
用hasRole(...)
orhasAuthority(...)
或任何其他建议经过身份验证的客户端的配置替换也会发生同样的情况。
问题是如何配置端点以保护具有受信任范围的客户端的安全?
spring-boot - 从授权服务器获取资源服务器中的用户角色
我有一个授权服务器,它根据用户名和密码从数据库中获取用户详细信息以及角色。
现在在访问资源服务器中的受保护资源(通过access_token)时,我想根据角色授权其余调用。我该怎么做?因为,当我在资源服务器中检查 Principal 用户时,它得到了默认的 [ROLE_USER]
请指导..提前谢谢
spring-security - Spring OAuth2 的外部身份验证
是否可以在为其提供外部身份验证的同时将 Spring OAuth2 用作纯授权解决方案?还是应该以这种方式使用 Spring OAuth2?如果是,那么这种配置的注入点是什么?
如果您熟悉Kong,那么它基本上就是 OAuth 插件的工作方式:
这里Login Webapp(负责认证)是Kong OAuth的外部应用。
spring-security - Spring Boot 和 OAuth2 社交登录,无法获取 refreshToken
有一个指南如何使用 Spring 和 Spring Boot 实现 OAuth2 https://spring.io/guides/tutorials/spring-boot-oauth2/
我需要在我的数据库中存储 OAuth2 信息,例如 accessToken、refreshToken 以供将来使用。现在我只能得到accessToken。根据本指南,我无法弄清楚如何获取 refreshToken 。
使用本指南中描述的方法获取 refreshToken 的正确方法是什么?
更新
我可以访问refreshToken
inOAuth2ClientAuthenticationProcessingFilter.attemptAuthentication
方法,但只能accessToken
访问ResourceServerTokenServices.loadAuthentication
方法。
现在我不明白如何在 Facebook 成功授权后基于这种方法获取 OAuth2 信息并将其重用于 Facebook API 调用。请指教。
更新
我已添加JdbcClientTokenServices
到我的 SSO 过滤器,但它不起作用
spring - 如何使用 Spring Cloud Security 实现 OAuth2“令牌交换”
我想知道是否有人有一个例子来了解如何使用 Spring Cloud Security(使用 OAuth2)实现“令牌交换”技术。
目前,我已经在使用 ZuulProxy 的微服务环境中实现了“令牌中继”技术来“中继”OAuth2 令牌并实现 SSO。这很好,但意味着每个微服务都使用相同的 clientId(在 ZuulProxy 设置中指定,因为 ZuulProxy 仅使用 authentication_code 授权类型和提供的 clientId 中继令牌)。但是,对于内部微服务调用,我想“交换”令牌。这意味着在某些情况下,ZuulProxy 中继的令牌不是我需要用来验证/授权微服务 A 作为微服务 B 的客户端的令牌。
Spring Cloud 参考文档目前说:“在 Spring Boot 和 Spring Security OAuth2 的基础上,我们可以快速创建实现单点登录、令牌中继和令牌交换等常见模式的系统。” ( http://cloud.spring.io/spring-cloud-security/spring-cloud-security.html )
我想参考文档中的“令牌交换”是指 OAuth2 扩展的实现,在本规范中进行了解释,这基本上是我需要的: https ://datatracker.ietf.org/doc/html/draft- ietf-oauth-token-exchange-03
正如我所说,我了解如何使用 SSO 和令牌中继,但我无法在参考文档中看到有关如何实现“令牌交换”的进一步说明。我也找不到实现示例。
有谁知道我在哪里可以找到更多信息或示例?
非常感谢!
spring - Cannot inject LoadBalanced annotated OAuth2RestTemplate
I am using Spring Cloud Angel.SR4. My Configuration class for creating an OAuth2RestTemplate
bean is as follows:
This configuration is totally fine since I am using this RestTemplate
in a Feign RequestInterceptor
for injecting access tokens to the feign requests. The problem is that when I annotate an autowired OAuth2RestTemplate
with @LoadBalanced
the dependency injection engine raises a NoSuchBeanDefinitionException
exception. For example, the following would raise an exception:
and when I remove the @LoadBalanced
, everything works fine. What is wrong with @LoadBalanced
? Do I need any additional configurations (I already have @EnableEurekaClient
)?
spring-boot - 如何使用 spring eureka 连接 spring oauth?
我使用 Spring 教程创建了一个单页应用程序,用于使用 AngularJS 和 OAuth 制作一个,可以在此处找到: https ://spring.io/guides/tutorials/spring-security-and-angular-js/#_multiple_ui_applications_and_a_gateway_single_page_application_with_spring_and_angular_js_part_vi
这是 SPA 应用程序的 application.yml 文件:
我想知道如何更改 zuul 路由和 user-info-uri,这样我就不必指定 url,所有这些都可以通过使用 service-id 来完成。我在这里查看了使用尤里卡的教程:
但我不太明白如何在不将所有 java 添加到我的代码的情况下实现我的目标,因为基本的 eureka 服务器似乎已经注册了我的所有服务。