OIDC - 使用 IdentityServer3 和 Spring Boot 实现 OAuth2
OIDC - Implementing OAuth2 with IdentityServer3 and Spring Boot
我们的应用程序是一个 Spring 启动应用程序,我们已经得到了使用 IdentityServer3 作为提供者来实现 OAuth2 授权的要求。
然而,在一切设置正确的情况下,当我们重定向到 SSO 系统的登录屏幕时,我们不断收到错误 The client application is not known or is not authorized.
。
使用postman
,我们可以在单击'Get New Access Token'
时访问登录屏幕
使用 AdvanceRestClient
,我们得到与 Spring 引导应用程序相同的错误。
检查这两个工具的日志,我发现在 postman 上,请求将首先 POST 到访问令牌 URL,而在 Spring 引导安全和AdvanceRESTClient,它会生成一个GET URI到authorize
URL.
POSTMAN 的示例:
POST https://login.xxx.com.my/LoginHost/core/connect/token
AdvanceRESTClient 第一次请求示例:
GET https://login.xxxx.com.my/LoginHost/core/connect/authorize?response_type=code&client_id=xxx.web&redirect_uri=https%3A%2F%2Fauth.advancedrestclient.com%2Foauth-popup.html&scope=openid%20email%20profile&state=XXX
这令人困惑。哪种行为是正确的?为什么会有差异?
希望任何人都可以帮助解决这个问题。谢谢。
* 更新 1 *
POSTMAN 设置:
AdvanceRESTClient:
查看两个客户端的控制台日志后,问题似乎是由 redirect-url
引起的。在 AdvancedRestClient 上更改重定向 url 以匹配邮递员设置后,它就可以工作了。
我们的应用程序是一个 Spring 启动应用程序,我们已经得到了使用 IdentityServer3 作为提供者来实现 OAuth2 授权的要求。
然而,在一切设置正确的情况下,当我们重定向到 SSO 系统的登录屏幕时,我们不断收到错误 The client application is not known or is not authorized.
。
使用postman
,我们可以在单击'Get New Access Token'
使用 AdvanceRestClient
,我们得到与 Spring 引导应用程序相同的错误。
检查这两个工具的日志,我发现在 postman 上,请求将首先 POST 到访问令牌 URL,而在 Spring 引导安全和AdvanceRESTClient,它会生成一个GET URI到authorize
URL.
POSTMAN 的示例:
POST https://login.xxx.com.my/LoginHost/core/connect/token
AdvanceRESTClient 第一次请求示例:
GET https://login.xxxx.com.my/LoginHost/core/connect/authorize?response_type=code&client_id=xxx.web&redirect_uri=https%3A%2F%2Fauth.advancedrestclient.com%2Foauth-popup.html&scope=openid%20email%20profile&state=XXX
这令人困惑。哪种行为是正确的?为什么会有差异?
希望任何人都可以帮助解决这个问题。谢谢。
* 更新 1 *
POSTMAN 设置:
AdvanceRESTClient:
查看两个客户端的控制台日志后,问题似乎是由 redirect-url
引起的。在 AdvancedRestClient 上更改重定向 url 以匹配邮递员设置后,它就可以工作了。