自定义登录屏幕 - 集成 Windows 后备身份验证
Custom Login Screen - Integrated Windows Auth with fall back
我想创建一个自定义登录屏幕,它将尝试通过集成的 Windows 身份验证(使用 SPNEGO 或其他)对用户进行身份验证,如果该尝试失败,则回退到基于表单的方法。
该过程理想情况下会像这样工作...
用户以有效 AD 用户身份登录
- 用户尝试访问应用程序并被重定向到 IdentityServer。
- 自定义逻辑尝试使用 AD 凭据验证用户并成功。
- 用户已通过身份验证并重定向...
用户未以有效 AD 用户身份登录
- 用户尝试访问应用程序并被重定向到 IdentityServer。
- 自定义逻辑尝试使用 AD 凭据验证用户但失败了。
- 用户会看到一个用于输入用户名和密码的表单。
- 用户已通过身份验证并重定向...
我希望创建一个自定义的 IUserService
实现来实现这一点,但通过阅读文档,我并不清楚如何做到这一点。
我是否必须创建自定义身份提供程序才能实现此目的?
任何指导将不胜感激。
我认为,您不必担心自定义 IUserService。一旦 IdSrv3 从用户那里收集了凭据,IUserService 就会查找用户。所以你的整合需要更早发生。
棘手的是后退。如果您有一个受 windows 身份验证保护的页面,则由客户端决定它是否可以进行身份验证。如果它无法对用户进行身份验证,它通常会提示用户输入凭据并尝试提交这些凭据。它不会自动知道要做什么。
可能最好的用户体验方法是显示一个页面并允许用户选择如何登录,就像您可以选择使用 Google 等登录一样。然后您可以将其连接起来作为外部提供商。
我想创建一个自定义登录屏幕,它将尝试通过集成的 Windows 身份验证(使用 SPNEGO 或其他)对用户进行身份验证,如果该尝试失败,则回退到基于表单的方法。
该过程理想情况下会像这样工作...
用户以有效 AD 用户身份登录
- 用户尝试访问应用程序并被重定向到 IdentityServer。
- 自定义逻辑尝试使用 AD 凭据验证用户并成功。
- 用户已通过身份验证并重定向...
用户未以有效 AD 用户身份登录
- 用户尝试访问应用程序并被重定向到 IdentityServer。
- 自定义逻辑尝试使用 AD 凭据验证用户但失败了。
- 用户会看到一个用于输入用户名和密码的表单。
- 用户已通过身份验证并重定向...
我希望创建一个自定义的 IUserService
实现来实现这一点,但通过阅读文档,我并不清楚如何做到这一点。
我是否必须创建自定义身份提供程序才能实现此目的?
任何指导将不胜感激。
我认为,您不必担心自定义 IUserService。一旦 IdSrv3 从用户那里收集了凭据,IUserService 就会查找用户。所以你的整合需要更早发生。
棘手的是后退。如果您有一个受 windows 身份验证保护的页面,则由客户端决定它是否可以进行身份验证。如果它无法对用户进行身份验证,它通常会提示用户输入凭据并尝试提交这些凭据。它不会自动知道要做什么。
可能最好的用户体验方法是显示一个页面并允许用户选择如何登录,就像您可以选择使用 Google 等登录一样。然后您可以将其连接起来作为外部提供商。