问题标签 [spring-cloud-security]

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.

0 投票
0 回答
228 浏览

spring - Spring Cloud 安全资源服务器和 JSON 漏洞防护

根据JSON Vulnerability Protection,我为 JSON 响应添加前缀:

它适用于 AngularJS,但不适用于@EnableOAuth2Resource-App,因为 Jackson 无法解析来自授权服务器的响应。此外,我无法覆盖

org.springframework.cloud.security.oauth2.resource.ResourceServerTokenServicesConfiguration.JwtTokenServicesConfiguration由于自动配置排序和SPR-13980 ,定义从配置 ObjectMapper/RestTemplate 。

也许我缺少解决方案?

0 投票
1 回答
27 浏览

cloud - 网络中的云数据安全

云平台上的网络如何根据IP地址限制使用?如果我为我的员工分配了特定的 IP 地址并且他们移动到其他 IP,他们不应该访问我的网络。在这种情况下,什么解决方案会有所帮助?

0 投票
1 回答
2189 浏览

spring-security - Spring Cloud Netflix Zuul、CSRF 和表单提交

我对 Spring Cloud 和 CSRF 保护有一些问题。我使用 Spring Cloud Security、OAuth2 等保护了我的应用程序(网关和注册服务)。

我授予每个人 (permitAll) 对 /signup 的访问权限,这是网关路由到实际注册服务的地方。我还授予注册服务器本身上的每个人的访问权限。这按预期工作。

让我头疼的是 CSRF 保护。网关和注册服务都自己创建一个 CSRF 令牌。来自网关的令牌将被发送到客户端,并且来自注册服务的令牌丢失(在网关的某处)。

如果我向注册服务发布一些内容,CSRF 保护就会启动并说令牌为空,或者实际值与预期值不匹配,如果我尝试重用来自网关的值,该值在 HTTP 中可用标题。

我已经让它在注册服务上禁用 CSRF,但它似乎不是正确的解决方案,因为它仅在有人从客户端发送回令牌时才有效,例如 Angular SPA。当我尝试从浏览器提交表单(在注册服务上呈现)时,由于缺少 _csrf 参数而失败。如果我在注册服务上激活 CSRF 并将 _csrf 参数添加到表单中,网关的 CSRF 保护就会启动并说实际令牌与预期不匹配,这是绝对正确的,因为实际令牌是一个来自注册服务,而预期的令牌来自网关。

我可以在网关上禁用 CSRF,但这将导致我必须在 REST 客户端或 SPA 使用的每个服务上配置 CSRF 内容。

我已经在 HttpSecurity.csrf() 配置中尝试了 ignoreAntMatchers() ,我可以在其中排除特定路径,但这对我也没有帮助。期望值是完全不同的东西。似乎为 POST 请求创建了一个新会话。

那么我有没有机会在网关上使用 CSRF 并同时使用带有表单提交和 Zuul 的注册服务?

0 投票
1 回答
1383 浏览

spring - 通过 Resttemplate 与 Spring Cloud 进行服务到服务通信(Oauth 2)

您好我正在尝试通过 Rest-template 从不同的服务调用 Spring Boot 服务。我现在使用 consul 作为服务发现 Service1-->rest-->Service2

我不希望通过 Zuul 的这种通信 service1 应该能够直接调用 service2 但功能区应该通过 consul 发现第二个服务。一切正常,但是当我尝试将 service1 调用到 service2 时,我在 service1 处遇到异常

下面是我的代码

注意:一切都在 https 上

0 投票
2 回答
4191 浏览

spring-security - 微服务之间的安全

我有两个微服务,例如 A 和 B。微服务 B 的其余端点必须只能从微服务 A 访问。如何限制微服务之间的访问?如果可能的话,最好的做法是什么?

我正在使用弹簧云安全性(oauth2,jwt)。

0 投票
1 回答
49 浏览

spring - 调用 refresh_token 不会刷新令牌中的资源 ID

流程是这样的:

  1. 我们有一个注册了特定资源 ID 的 oauth 应用程序,所以这个应用程序可以访问那些
  2. 一段时间后,需要添加另一个资源 ID,因为我们正在扩展客户端应用程序的功能
  3. 客户端应用程序有时会刷新令牌,这可能是由于错误或 access_token 过期。
  4. 在新的 access_token 上使用 check_token 为我们提供了一组旧的资源 ID。似乎它取自某些缓存或旧令牌本身。

问题:不应该刷新令牌也刷新资源 ID?这是反对oauth rfc(在其中找不到有关此特殊情况的任何信息)吗?

我们当然可以撤销 oauth 应用程序的所有令牌,但这需要我们所有的用户再次登录,这是我们想要避免的。

我不确定它是否与弹簧云安全性或更确切地说是 oAuth 本身有关。C

0 投票
1 回答
1514 浏览

spring-security - Spring Cloud Security - 允许未经身份验证的请求

我有一个允许用户注册帐户的应用程序。我们的身份验证和用户服务是 UAA,因此我需要能够在没有用户实际在场的情况下与其安全端点进行通信。

如何设置 Spring Cloud Security 以允许从 1 个微服务调用另一个,然后与 UAA 通信以创建用户?

因此,有 2 个主要的微服务在发挥作用。第一个托管 Web 应用程序并将使用 Zuul 的调用转发到第二个微服务。此微服务与 UAA 通信并处理任何其他特定于应用程序的用户请求。

我在第一个微服务(LandingPage)上有这个 WebSecurityConfigurerAdapter

这在第二个微服务(UserInformation)中:

不幸的是,我很难访问第一个微服务上的 REST 端点,也无法将任何内容转发到第二个微服务。我通常会收到 401 响应代码。它们各自的 application.yaml 文件被设置为作为客户端和资源服务器与 UAA 通信

登陆页面应用程序.yaml

和 UserInfoService Application.yaml

任何帮助是极大的赞赏。

0 投票
1 回答
426 浏览

spring-cloud - 具有 UI 和身份验证服务器的微服务架构

我正在考虑将我们的单一公司门户转移到微服务中。为此,我需要创建一个具有某种冗余的门户 HTML UI,这样我们就不会在更新期间出现故障,并且还包括角色和权限在内的完整 Spring 安全性。

目前我一直在决定什么是最佳实践以及在哪里放置 UI。

需要不同微服务的样本

我的选择:

  1. 合并 API Gateway 和 EDGE,使其 UI 与任何其他微服务相同,并将 /ui/** 转发给它。(用这个向后绘制是资源路径,因为 Zuul 没有通过添加 /ui 前缀来更新它们,所以我想把它作为默认转发)
  2. 如上图所示,创建两个单独的网关。
  3. 如果 2 是最佳解决方案,来自 HTML 的 Rest Calls 应该直接发送到 API 网关,还是转到边缘并从它发送到 API 网关?
0 投票
1 回答
703 浏览

angular - 如何将 Angular 2 应用程序与 spring-oauth2 服务器连接?

我有一个使用“spring-cloud-oauth2”和“spring-cloud-security”保护的 oauth-server,该应用程序是一个 spring-boot 应用程序。我正在尝试从 Angular 2 应用程序获取 access_token,即我想从 Angular 2 应用程序登录。在我的 oauth-server 中,我有一个 client-id=microservice 和 client-secret=microservicesecret。我从邮递员那里检查了 oauth-server,在授权部分,对于用户名和密码,我分别使用了 client-id 和 client-secret。在正文部分,我使用grant_type=password、client_id=microservice、username=m@email.com、password=passw0rd,一切正常。

但是,我在使用 Angular 2 应用程序中的配置时遇到了问题。我使用了以下代码片段。

这里 userEmail 和 userPassword 是由用户插入的。令牌网址是

但是,我得到 401 错误。我需要解决方案。

0 投票
0 回答
531 浏览

spring - 访问spring客户端时使用Spring Boot自定义授权服务器获取HTTP 401

大家好,我无法继续进行以下设置。感谢您的小指点。

问题陈述 我正在尝试将spring cloud security和OAuth2提供的自定义授权服务器与我的Web应用程序一起使用,以便它可以将访问令牌传播到后端的微服务。

我可以看到我的授权服务器可以提供访问令牌,并且当尝试摄取访问令牌以调用后端微服务的端点时,它按预期工作

当我在 Spring Boot Web 客户端中提供以下配置时面临的问题(这将调用我的后端微服务)

在 application.properties

我提供

在我的浏览器中。它要求提供凭据。我提供与授权服务器一样的凭据。一旦提供了有效凭据,授权服务器就会要求有效范围。

但是当我的网络客户端路由到授权服务器时,我观察到一件重要的事情,它有redirect_uri

(因为最初我输入了http://localhost:8080,所以不行) 我也收到 HTTP 401 错误