2017-05-18 29 views
1

我开始使用隐式流来保护Angular 2前端(Web API服务)的Identity Server 4(在ASP.NET Core下)。Identity Server 4/OpenID Connect默认重定向URL

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

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

一个明显的解决方案是Auth服务器将任何请求重定向到没有指定重定向到Angular客户端,然后可以重定向到正常的Auth服务器。这感觉像是很多往返旅行。

回答

2

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

OpenID Connect提供程序通常具有多个客户端 - 因此它需要上下文信息(又名有效的OIDC授权请求)。

如果您希望旅程从提供商开始,您需要按照您的建议进行操作 - 但是一旦您拥有第二个客户端,您需要更智能化(例如选择屏幕等)。

+0

感谢您抽出宝贵时间来确认我并不太了解。 (事实上​​,有些用户会永远为登录页面添加书签,所以从这个角度来看,至少有时候它是如何工作的。)Google(例如)几乎可以像你说的那样重定向到一个帐户管理员页面作为默认页面。 真的很感谢您的意见;谢谢。 –