我正在使用 ASP.NET 5 开发站点重新架构的原型,并且我正在讨论使用 IdentityServer4 进行身份验证和授权。我已经查看了很多关于设置 IdentityServer3 和 4 的示例和文章,如果它能够以适当的方式处理我的客户的要求,我正在努力解决问题。这是我的要求。
我有 3 个需要授权的站点。站点 1 (abc.com) 将需要 Windows 身份验证,并且将是使用角色(或转换为声明的角色)进行授权的 mvc 和 webapi 调用的组合。站点 2 (def.com) 是一个受信任的站点,它希望在其站点上有一个带有用户名/密码/rememberme 文本框的登录小部件,当提交该小部件时,将对用户进行身份验证并将他们重定向到站点 3 (xyz.com)。站点 3 也将有自己的登录页面,并且将是使用声明的 mvc 和 webapi 调用的组合。站点 2 和 3 将不使用 Windows 身份验证,并且客户端不希望他们重定向到身份服务器登录屏幕,而是拥有自己的登录屏幕并使用凭据从代码调用身份服务器进行登录。
这是我关于这种情况和 IdentityServer4 的问题。
- Idsvr4 可以使用 Windows 身份验证处理一个客户端,而另一个使用用户名/密码身份验证处理一个客户端吗?
- 如果是这样,是否有理由在 idsvr4 中使用 Windows 身份验证,还是应该只在 webapp 中使用标准的 Windows 身份验证?
是否可以设置 idsvr4 让客户端收集用户名/密码/rememberme 值并通过代码传递它们以获得 mvc 和 webapi 的正确 jwt 令牌?
如果是这样,它可以将它们登录到另一个站点上的 mvc 和 webapi 应用程序中吗?
如果是这样,这是否绕过了 identityserver4 的真正目的,因此是一个坏主意?
如果它可以处理这种情况并且是一个好主意,我将如何设置客户端、范围和代码以通过代码和重定向处理登录?
示例非常好,非常受欢迎,但我什至不确定使用什么措辞来搜索这种情况,所以即使指出我正确的方向也会有很大帮助。