跳过身份服务器 4 登录页面并将 IDP 和资源服务器放在同一域中

Skip identity server 4 login page and put IDP & resource server on the same domain

使用 identity server4 授权代码流时,是否必须重定向到 IDP 域才能进行身份验证?

例如,

  1. 我可以只使用我的客户端登录页面而不是被重定向到 IDP 并使用他们的登录页面吗?
  2. 是否可以将IDP身份4和资源服务器放在一个地方?因此它们可以 运行 在同一个端口(例如:localhost:3000)

我认为当我的应用程序相对较小且 auth 不会被其他客户端应用程序共享时,在单独的域上部署三次(客户端、IDP、资源)是不合理的。

最适合我的情况的方法是什么?

可以使用资源所有者密码凭据授权在客户端登录,这是您永远不应该做的事情。 Read here why。 将 IDP 和资源 API 组合在同一个端口上也是您不应该尝试做的事情。 IDP、客户和资源都是独立的实体。如果您希望使用 Identity Server 并正确使用它,那么您当前拥有的是正确的:使用 Identity Server 进行用户身份验证的客户端,以及 IS 授予客户端使用的资源。如果您只想拥有一个带有登录页面和 API 的客户端,您可以做到这一点,在这种情况下您不需要 Identity Server。

我同意 LucaBNW 的观点,将 IdentitySerer 保留为一个单独的服务是一个好主意,因为当它们在同一服务中发生故障时,很难推断出发生了什么。

如果您将它们放在单独的域中或在同一域中但具有不同的端口则无关紧要 (security-wise),因为当端口不同时它​​们仍被视为不同来源。

如果您确实想使用 OAuth/OpenID-Connect/IdentityServer,则永远不要使用自己的登录屏幕。您应该始终重定向到 IDP。这是一个很大的 no-no,安全明智。因为作为用户,您不知道自己 login-to 的实际位置,也不知道 UI 处理 username/password.

的能力如何