Identity Server 4 / OpenID Connect默认重定向URL

时间:2017-05-18 14:06:37

标签: identityserver4

我开始使用Identity Server 4(在ASP.NET Core下)使用Implicit流来保护Angular 2前端(到Web API服务)。

使用oidc-client JS library,我可以成功地从示例的默认页面重定向到我的登录页面,让用户进行身份验证,然后重定向(通过/ connect / authorize)返回Angular站点的回调。

如果用户直接浏览 到我的身份验证登录页面(而不是Angular主页),我可以进行身份​​验证,但无处可重定向到。如果我手动重定向到auth服务器的/ connect / authorize页面,OIDC客户端将报告“在存储中找不到匹配状态”。 (据推测,OIDC客户端是否在本地持久化以验证对原始请求的响应?)。

一个显而易见的解决方案是Auth服务器将任何请求重定向,而不将指定的重定向指定给Angular客户端,然后可以正常重定向回Auth服务器。这感觉好像很多往返。

1 个答案:

答案 0 :(得分:3)

是的 - 因为这不是它的工作原理。身份验证流程从客户端应用程序开始 - 而不是身份提供者。

OpenID Connect提供商通常拥有多个客户端 - 因此它需要上下文信息(也就是有效的OIDC授权请求)。

如果您希望旅程从提供者处开始,您需要执行类似于您提议的操作 - 但是一旦您拥有第二个客户端,您需要更加智慧(例如选择屏幕等)。