通过 oauth 服务器使用 zool 通过 spring 网关授权请求
Authorizing requests through spring gateway with zool via oauth server
我的应用程序在带有 zuul 代理的 (spring) 网关后面有微服务。还有内部 (spring) oauth2 授权服务器。我想为来自外部的微服务调用实现 client_credentials 授权类型 - 用于 M2M 通信。
当我为网关 client_id 和 client_secret 配置时,其 application.yml 请求通过网关发出,但没有请求者检查 - 结果是 oauth 授权网关本身根本没有授权。我可以使用授权代码授予类型,但它需要 web-client 授权,而(网络客户端)用户可能没有。
如果我从 oauth 微服务请求身份验证令牌,我将获得此应用程序的正确令牌。
如何强制网关使用请求者的 client_id 和 client_secret 从 oauth 获取令牌? - 例如我可以通过 header 将它们作为基本授权提供。
或者我可以向网关提供请求者从 oauth 获得的令牌吗?
这个问题与另一个问题非常相似:Implementing authentication and authorization using Zuul Proxy, Oauth2 on REST Microservices
除了可能没有 Web 客户端,而是外部微服务。
我已经回答了问题Implementing authentication and authorization using Zuul Proxy, Oauth2 on REST Microservices。
在我的例子中,最重要的是配置 zuul 代理以将授权 header 转发给下游服务。最初我考虑过使用 zuul 过滤器,但解决方案要简单得多 - 只需为 zuul 配置敏感的 headers:
server:
port: 8080
zuul:
sensitiveHeaders: Cookie,Set-Cookie # <--- this line
routes:
spring-security-oauth-resource:
path: /spring-security-oauth-resource/**
url: http://localhost:8081/spring-security-oauth-resource
oauth:
path: /oauth/**
url: http://localhost:8083/spring-security-oauth-server/oauth
使用 oauth JWT 令牌成功验证 client/user 后,网关将转发到下游。
当然,此网关必须允许未经身份验证的访问 oauth 资源并要求对所有其他资源进行身份验证。
有关主题的更多详细信息,请参阅文章
https://www.baeldung.com/spring-security-zuul-oauth-jwt
我的应用程序在带有 zuul 代理的 (spring) 网关后面有微服务。还有内部 (spring) oauth2 授权服务器。我想为来自外部的微服务调用实现 client_credentials 授权类型 - 用于 M2M 通信。
当我为网关 client_id 和 client_secret 配置时,其 application.yml 请求通过网关发出,但没有请求者检查 - 结果是 oauth 授权网关本身根本没有授权。我可以使用授权代码授予类型,但它需要 web-client 授权,而(网络客户端)用户可能没有。
如果我从 oauth 微服务请求身份验证令牌,我将获得此应用程序的正确令牌。
如何强制网关使用请求者的 client_id 和 client_secret 从 oauth 获取令牌? - 例如我可以通过 header 将它们作为基本授权提供。 或者我可以向网关提供请求者从 oauth 获得的令牌吗?
这个问题与另一个问题非常相似:Implementing authentication and authorization using Zuul Proxy, Oauth2 on REST Microservices 除了可能没有 Web 客户端,而是外部微服务。
我已经回答了问题Implementing authentication and authorization using Zuul Proxy, Oauth2 on REST Microservices。
在我的例子中,最重要的是配置 zuul 代理以将授权 header 转发给下游服务。最初我考虑过使用 zuul 过滤器,但解决方案要简单得多 - 只需为 zuul 配置敏感的 headers:
server:
port: 8080
zuul:
sensitiveHeaders: Cookie,Set-Cookie # <--- this line
routes:
spring-security-oauth-resource:
path: /spring-security-oauth-resource/**
url: http://localhost:8081/spring-security-oauth-resource
oauth:
path: /oauth/**
url: http://localhost:8083/spring-security-oauth-server/oauth
使用 oauth JWT 令牌成功验证 client/user 后,网关将转发到下游。 当然,此网关必须允许未经身份验证的访问 oauth 资源并要求对所有其他资源进行身份验证。
有关主题的更多详细信息,请参阅文章 https://www.baeldung.com/spring-security-zuul-oauth-jwt