适合 Auth0 的 Azure 替代品

Suitable Azure replacement for Auth0

我有一个 ASP .Net Core 2.2 Web API 作为 Azure 应用服务托管。然后有一个 Angular SPA 使用此 API,作为静态网站托管在 Azure 存储上。

我目前使用 Auth0 作为我们的身份验证和身份服务器。我正在考虑用 Azure 替换 Auth0,但我已经花了几天时间试图弄清楚我应该做什么,但我完全迷路了。

因此,Auth0 目前服务的目的,也是我希望 Azure 服务的目的,是保护我的 Web API,并为其提供身份服务,以便 API 知道哪个用户登录了。因此当前端调用 API 时,Auth0 会自动将其重定向到登录页面。在这里,用户可以使用现有帐户(包括社交帐户)登录,也可以创建一个新帐户。登录后,Auth0 会向前端提供访问令牌。然后,前端将此访问令牌包含在每个 API 调用的 header 中。访问令牌包括身份信息,API 使用该信息来了解哪个用户正在进行调用。所有用户都存储在 Auth0 中。因此,当新用户使用前端 Web 应用程序时,Auth0 将他们重定向到登录屏幕,在那里他们 select "Sign Up",并在 Auth0 中创建一个帐户。顺便说一句,任何用户都可以这样做 - 这是一个 public 网络应用程序,任何人都可以注册和使用。

因此,当考虑使用 Azure 而不是 Auth0 时,首先让我感到困惑的是存在各种身份验证服务:

  1. 在 Azure 门户中,在我的应用程序服务下,在 "Authentication / Authorization" 下,有一个标记为 "App Service Authentication" 的切换开关。如果我打开它,我可以设置身份验证提供程序。

  2. 在 Azure 门户中,有 Azure Active Directory,我想这与上述有关?

  3. 还有Azure B2C。

Azure 应用服务身份验证和 Azure B2C 有什么区别?我应该使用哪一个?上面第1点和第2点有什么区别?我见过的一些示例使用第 1 点,一些使用第 2 点。

抱歉,如果这是一个非常模糊的问题。我只是在努力弄清楚该朝哪个方向前进。我发现 Auth0 非常简单,但不幸的是我不能对 Azure 身份验证说同样的话。我基本上只是想弄清楚哪个 Azure 选项最适合替换我现在使用的 Auth0。谢谢

我认为 "replacement" 会使用 Identity Server,但 Azure 上没有适用于它的 PaaS 版本。所以你应该使用 Azure AD 或 Azure AD B2C。

如果您只想创建用户和组,您应该使用 Azure AD。但是,如果您计划启用第 3 方身份来访问您的应用程序(例如 Facebook、Google 或 Linkedin),那么您应该使用 Azure AD B2C。更多信息,请阅读:https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-overview

Azure B2C 是替换用户身份验证的正确选项,但是您必须使用 OWIN 或其他解决方案来实际提供特定于应用程序的 identity/authorization 管道。 对于面向 public 的站点,我不会直接使用 azure AD 进行客户登录,它更多地针对具有联合身份、office365 或本地 Active Directory 身份的企业客户。

老实说,我很惊讶您计划从 auth0 迁移到 AAD。我正在考虑反其道而行之。