使用外部登录页面进行身份验证

时间:2020-11-11 17:26:18

标签: identityserver4

因此,我们正在开发一个公共rest api,该API由我们自己的Identity服务器通过授权代码流进行保护。在流程中间的某个地方,我们还实施了同意步骤(使用其他Web应用程序),以授予Api访问属于我们自己的另一个Web应用程序用户帐户的某些数据的权限。当前,同意页面受OpenIdConnect保护,该登录页面在Identity服务器本身中实现。但是,我们希望尽可能少地向公众公开身份服务器。

考虑到这一点,是否可以在身份服务器之外实现仍可以对用户进行身份验证并获得同意的登录页面?如果可以,怎么办?

1 个答案:

答案 0 :(得分:0)

我将首先说明流程。

  1. 当应用将用户重定向到Identityserver时,他们会来到授权端点来验证请求。
  2. 当请求无效时,将触发错误。
  3. 当请求有效且用户通过身份验证(具有身份验证cookie)时,他们只需使用代码返回客户端应用即可。
  4. 当请求有效且用户未通过认证时,下一个重定向将是登录页面。在这里可以检查凭据,设置cookie (针对Identityserver应用)并重定向回授权端点以进一步获得同意或最终重定向到客户端应用。

答案已经很清楚了吗?登录页面几乎是Identityserver唯一必要的功能,它可以为任何进一步的SSO设置身份验证cookie。

尽管如此,您仍可以将登录处理委派给外部应用程序(另一个Identityserver实例?)。在这种情况下,您的前端登录应用将执行步骤(1-2-3-4),设置第一级cookie,重定向回客户端Identityserver应用,这将在 external auth callback <上设置第二级cookie < / em>操作,最后重定向到原始调用者。这是适合您的方案吗?可能是这样。最初的解释有点不确定。