当我试图了解MicrosoftAccount、AzureAD和OpenIDConnect身份验证之间的区别时,我感到非常困惑。
我正在尝试构建一个 .Net Core MVC 应用程序,该应用程序允许一些用户使用本地帐户进行身份验证,但有些用户使用 Microsoft 帐户进行身份验证。对于这两种类型的身份验证,我确实需要在 DB 中有一个本地用户,因为我有一些基于此的自定义授权机制。
我首先从模板创建应用程序并选择“本地帐户”身份验证。然后我根据本教程添加了 MicrosoftAccount 身份验证(https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/microsoft-logins?view=aspnetcore-3.1)。这是使用 Microsoft.AspNetCore.Authentication.MicrosoftAccount 并且似乎工作正常。
但是,当我从模板创建新应用并选择“工作或学校帐户”身份验证时,我可以看到它使用了不同的库 - Microsoft.AspNetCore.Authentication.AzureAD.UI。它似乎做同样的事情。我可以看到我可以挂钩以将 AAD 用户与我的本地数据库连接的事件。
浏览网络时,我发现了一些其他使用 OpenIDConnect 实现相同目的的教程。
这些方法有何不同?我应该使用哪一个,为什么?
将来我希望能够在用户目录中查询其他用户的列表。这三种方法中的任何一种都会更容易满足这一要求吗?