1

在我上一个问题中的@leastprivilege 回答之后,我得出结论,这两种解决方案都不是可能的:

  • 登录服务不支持 REST 身份验证(因此,无法使用IUserService.AuthenticateLocalAsync并仅连接到它)
  • 我不需要它是一个额外的提供者,我需要它来替代 IS3 之一,即,我需要 /login 页面是来自不同服务的页面,而不是显示本地登录 + 额外的提供者。

这可以定制还是我需要更改 IdentityService3 源?如果是这样,为了实现身份验证而不破坏授权,我需要确保明智地执行什么?

更新

按照这个答案,解决方案可能是创建一个新的提供程序并使用在某处设置自动重定向acr_values

4

1 回答 1

1

经过一番研究解决了。你需要这三个步骤:

  • 一个 Owin 身份验证中间件,它重定向到您想要的页面,提供受保护的状态(这将让您稍后完成身份验证过程)。你可以按照【Anders Abel 教程】
  • 覆盖该PreAuthentication方法并SignInMessage message.Idp使用您的中间件 ID 设置的自定义用户服务。代码示例:在此处查看
  • 身份验证成功后,您的页面应重定向到带有 state 参数的中间件回调。使用提到的虚拟中间件,它被设置为/signing-dummy
于 2015-06-09T12:07:45.193 回答