身份验证重定向到IdentityServer

时间:2018-04-25 18:41:34

标签: identityserver4 openid-connect

我有IdentityServer 4和一个从IdentityServer获取身份的MVC应用程序。一切正常。

我的问题是为什么我必须登录IdentityServer而不是MVC项目?

我更愿意留在我的MVC项目中,而不是被重定向到IdentityServer并返回到我的MVC项目。有人可以解释为什么它必须这样工作吗?

重定向需要时间,不是即时的,并且会产生大量不必要的流量。我知道这种重定向,当有像Facebook这样的外部提供商时,但在我的情况下,我认为它没用。

IdentityServer 4是否可以在Mvc应用程序上登录/创建用户并从IS4服务器调用api函数以用于登录/创建用户?

1 个答案:

答案 0 :(得分:1)

您不喜欢的行为仅仅是一个协议。该协议称为OpenId Connect。 Identity Server只是实现了该协议。这个想法是,只有身份提供者本身才能对用户进行足够安全的身份验证。
有一个名为Resource Owner password flow or grant的变通办法,您可以在其中向用户询问客户端应用程序中的凭据,然后将该凭据传输到IdP。不建议将该流程用于一般用途,但是只要您同时拥有客户端应用和IdP,就可以使用该流程。
为您提供的另一种可能的解决方案(如果您拥有唯一的应用程序,并且出于某种非常奇怪的原因,想将Identity Server用作IdP)是将Identity Server托管在您的应用程序内部。然后,使用IdentityServerTools帮助程序类,无需进行网络调用即可访问IdSrv内部。
您可以在Identity Server Docs和OpenId Connect specification中找到有关这两种方法的更多信息。