如何使用 Pivotal Spring Cloud Gateway 从单点登录 (SSO) 服务器获取用户详细信息?
How do I get the user details from the Single Sign-On (SSO) server with Pivotal Spring Cloud Gateway?
我已经能够使用以下文档成功地为我的 AngularJS 应用配置单点登录:
当点击 URL 时,应用程序被重定向到我们的内部 SSO 页面,其余的事情随之发生并且运行良好。
此时我不确定如何获取正在登录应用程序的用户的详细信息。例如,登录人的用户id?
要访问位于 Spring 云网关实例后面的服务中的用户详细信息,您需要使用 TokenRelay 过滤器。
https://docs.pivotal.io/spring-cloud-gateway/1-0/using-sso.html#tokenrelay
只需将 "token-relay": true
添加到您的配置即可启用此功能:
示例:
$ cf bind-service cook my-gateway -c '{ "routes": [ { "path": "/cook/**", "sso-enabled": true, "token-relay": true } ] }'
此处记录了 TokenRelay 过滤器。
您还需要记住 TokenRelay 过滤器仅将令牌传递到网关后面的服务器应用程序。
例如:Browser -> SCG -> (token id added here) -> your server app
您的服务器应用程序将正常响应,很可能是您的静态 HTML/CSS。如果您想从客户端(即 browser/single 页面 app/Angular 应用程序)访问用户信息,那么您的服务器应用程序将需要将该信息公开给您的应用程序。
我已经能够使用以下文档成功地为我的 AngularJS 应用配置单点登录:
当点击 URL 时,应用程序被重定向到我们的内部 SSO 页面,其余的事情随之发生并且运行良好。
此时我不确定如何获取正在登录应用程序的用户的详细信息。例如,登录人的用户id?
要访问位于 Spring 云网关实例后面的服务中的用户详细信息,您需要使用 TokenRelay 过滤器。
https://docs.pivotal.io/spring-cloud-gateway/1-0/using-sso.html#tokenrelay
只需将 "token-relay": true
添加到您的配置即可启用此功能:
示例:
$ cf bind-service cook my-gateway -c '{ "routes": [ { "path": "/cook/**", "sso-enabled": true, "token-relay": true } ] }'
此处记录了 TokenRelay 过滤器。
您还需要记住 TokenRelay 过滤器仅将令牌传递到网关后面的服务器应用程序。
例如:Browser -> SCG -> (token id added here) -> your server app
您的服务器应用程序将正常响应,很可能是您的静态 HTML/CSS。如果您想从客户端(即 browser/single 页面 app/Angular 应用程序)访问用户信息,那么您的服务器应用程序将需要将该信息公开给您的应用程序。