0

我正在使用 AspNet Core 身份对我的用户进行身份验证。我想连接到远程身份提供商(Microsoft 和 Google)。对于 Google,我认为我可以使用 Microsoft.AspNetCore.Authentication.Google ( https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.authentication.google )。

不过,对于 Micorosft,我有几个选择:

  • Microsoft.AspNetCore.Authentication.AzureAD
  • Microsoft.AspNetCore.Authentication.MicrosoftAccount
  • Microsoft.AspNetCore.Authentication.OpenIdConnect

我第一次使用 Microsoft.AspNetCore.Authentication.AzureAD。然后我切换到 Microsoft.AspNetCore.Authentication.MicrosoftAccount。我假设这不会产生太大影响,但事实证明现在我的用户的所有名称标识符都已更改。所以,表面上是有区别的。

我发现不太清楚不同选项的优缺点是什么。有人可以帮我做出一个好的选择吗?

4

1 回答 1

0

Microsoft.AspNetCore.Authentication.MicrosoftAccount

此命名空间包含支持基于 Microsoft 帐户 OAuth 的身份验证的类型。它使用户能够使用他们现有的凭据登录:

1)方便用户。

2) 将管理登录过程的许多复杂性转移到第三方。

有关更多详细信息,请参阅此文档

Microsoft.AspNetCore.Authentication.OpenIdConnect

此命名空间包含支持基于 OpenIdConnect 的身份验证的类型。OpenID Connect 是 OAuth 2.0 协议之上的身份层。它允许客户端请求和接收有关经过身份验证的会话和最终用户的信息。

如果您需要向应用程序添加身份验证并且希望使用第三方作为身份验证提供者,那么推荐的实现方式是使用 OpenId Connect。

与 Google 或 Facebook 一样,OneLogin 也是一个OpenId Connect 提供程序,这意味着如果您使用 OneLogin 来存储和管理用户的身份,您还可以使用 OneLogin 在您的自定义构建应用程序上对这些用户进行身份验证。

有关更多详细信息,请参阅此文档

Microsoft.AspNetCore.Authentication.AzureAD

 库Microsoft.AspNetCore.Authentication.AzureAD包。根据 <a href="https://docs.microsoft.com/en-us/dotnet/core/compatibility/aspnet-core/5.0/authentication-aad-packages-obsolete" rel="nofollow noreferrer">文档,自 ASP.NET core 5.0 起,用户应使用Microsoft.Identity.Web 包与 Azure AD 和 Azure ADB2C 集成。

要从 Microsoft.AspNetCore.Authentication.AzureAD 迁移到 Microsoft.Identity.Web,请参阅此文档

于 2021-09-27T09:43:10.403 回答