IdentityServer4登录和web应用程序中的用户

IdentityServer4登录和web应用程序中的用户,identityserver4,asp.net-core-identity,Identityserver4,Asp.net Core Identity,我正在web应用程序中创建用户身份验证,我想使用Identity Server保护资源 示例代码和文档显示了用户在为Identity Server创建帐户后如何登录该服务器。也就是说,他们使用自己的Identity Server帐户登录。quickstart甚至提供了一个UI 但我不希望我的应用程序的用户必须登录到Identity Server,一个外部网站。我希望他们只需要登录到web应用程序 那么如何进行呢?从文档中看,似乎根本不清楚您应该如何处理这个场景,我认为这是最常见的 我是否只使用预

我正在web应用程序中创建用户身份验证,我想使用Identity Server保护资源

示例代码和文档显示了用户在为Identity Server创建帐户后如何登录该服务器。也就是说,他们使用自己的Identity Server帐户登录。quickstart甚至提供了一个UI

但我不希望我的应用程序的用户必须登录到Identity Server,一个外部网站。我希望他们只需要登录到web应用程序

那么如何进行呢?从文档中看,似乎根本不清楚您应该如何处理这个场景,我认为这是最常见的

我是否只使用预定义的API作用域和用户进行令牌验证,为所有网站用户保留?这似乎不是很安全,因为网站的任何用户或任何拥有客户名称和密码的人都会拥有有效的令牌。如果安全性这么容易解决的话,我不确定它有什么意义

或者,在用户在web应用程序中注册后,我是否以某种方式与Identity Server实例交互,并将新用户存储在数据库中?我在文档中找不到这方面的任何提及。老实说,这一切似乎都很混乱


有人能解释一下吗?这里的“标准”方法是什么?是否让用户登录到外部Identity Server网站?这似乎是一个让用户烦恼的好方法。

如果您只有一个应用程序,并且不打算添加更多需要共享用户的应用程序,那么您应该查看


OpenID Connect/IdentityServer的关键在于将用户/密码(身份验证)的管理和处理委托给一个中心实体。因此,单个应用程序不需要处理这种复杂性。当您有多个应用程序或有更复杂的集成需求时,IdentityServer非常有用。如果您需要根据自己的需要对其进行定制,那么它也是完美的。如果您不需要定制部件,您也可以将其外包给其他人,这样可以为您提供像IdentityServer一样的服务体验。

谢谢您的回答。这确实有助于解释。不幸的是,文档中根本没有明确说明这一点。我怀疑整件事都是因为人们对自己的诚实感到困惑。必须有一种更简单的方法,只需在一个人的头中进行集中身份验证和令牌。这一切都是关于安全性,确保用户安全和用户凭据安全。今天,你希望你可以使用Google/Twitter/FB/GitHub账户登录大多数应用程序(移动/网络…),但与此同时,我永远不会相信这些应用程序拥有我真正的Google用户名/密码。因此,使用open connect,您始终会打开一个新窗口,并在不让应用程序看到我的秘密密码的情况下进行身份验证。如果您只需要机器到机器的通信(不涉及用户),那么openid connect已经定义了一个客户端凭证流。