从授权端点控制目标重定向页面

时间:2018-01-04 00:22:58

标签: identityserver4

我是从Identity Server 3迁移的,当我们需要从授权端点重定向到帐户控制器时,我有一个关于控制哪些页面被重定向的问题。

当前解决方案使用UserService上的PreAuthenticateAsync方法在授权请求中结合prompt = login查找自定义acr_value键/值。

示例用例允许深入链接到“注册”页面,或者如果用户已登录则允许进入“管理”配置文件页面。

在IDSrvr4检测到登录重定向后,我无法找到一个简单的钩子来控制我们去的地方。

我找到了IAuthorizeInteractionResponseGenerator接口,并想知道自定义实现(或覆盖IdentityServer4.ResponseHandling.AuthorizeInteractionResponseGenerator中某个ProcessXXXAsync方法的默认行为)是否合适,但这感觉就像一个大锤的方法。

IdSrv github repo中的QuickStart场景#6是我尝试重定向到Register时想要完成的一个接近的例子,或者如果登录则管理控制器

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以为未经身份验证的用户配置您要访问的页面,如下所示:

services.AddIdentityServer(options => options.UserInteraction.LoginUrl = "/account/login");

要将经过身份验证的用户发送回该页面,您需要实施IAuthorizeInteractionResponseGenerator - 或者更确切地说是从默认用户派生。