Auth0 的合适 Azure 替代品
Posted
技术标签:
【中文标题】Auth0 的合适 Azure 替代品【英文标题】:Suitable Azure replacement for Auth0 【发布时间】:2020-02-08 16:30:00 【问题描述】:我有一个作为 Azure 应用服务托管的 ASP .Net Core 2.2 Web API。然后是一个使用这个 API 的 Angular SPA,它作为一个静态网站托管在 Azure 存储上。
我目前使用 Auth0 作为我们的身份验证和身份服务器。我正在考虑用 Azure 替换 Auth0,但我花了几天时间试图弄清楚我应该做什么,但我完全迷失了。
因此,Auth0 当前服务的目的是保护我的 Web API,并为其提供身份服务,以便 API 知道哪个用户已登录。所以当前端调用 API,Auth0 自动将其重定向到登录页面。在这里,用户可以使用现有帐户(包括社交帐户)登录,也可以创建一个新帐户。登录后,Auth0 会为前端提供访问令牌。然后,前端将这个访问令牌包含在每个 API 调用的标头中。访问令牌包括 API 用来知道哪个用户在进行调用的身份信息。所有用户都存储在 Auth0 中。因此,当新用户使用前端 Web 应用程序时,Auth0 会将他们重定向到登录屏幕,在那里他们选择“注册”,并在 Auth0 中创建一个帐户。顺便说一句,任何用户都可以这样做 - 这是一个任何人都可以注册和使用的公共网络应用程序。
所以,当考虑使用 Azure 而不是 Auth0 时,首先让我感到困惑的是有各种身份验证服务:
在 Azure 门户中,在我的应用服务下,在“身份验证/授权”下,有一个标记为“应用服务身份验证”的切换开关。如果我打开它,我可以设置身份验证提供程序。
在 Azure 门户中,有 Azure Active Directory,我猜这与上述内容有关?
还有 Azure B2C。
Azure 应用服务身份验证和 Azure B2C 有什么区别?我应该使用哪一个?上面第 1 点和第 2 点有什么区别?我见过的一些例子使用第 1 点和一些使用第 2 点。
抱歉,这是一个非常模糊的问题。我只是在努力弄清楚该朝哪个方向前进。我发现 Auth0 非常简单,但不幸的是我不能对 Azure 身份验证说同样的话。我基本上只是想弄清楚哪个 Azure 选项最适合替换 Auth0,因为我现在正在使用它。谢谢
【问题讨论】:
您在使用 Auth0 时遇到了什么问题? 嗨,丹。 Auth0 没有问题。我只是认为在 Azure 上托管所有内容会很好。我已经在 Azure 上获得了后端 API 和前端 SPA,并且我正在使用 Azure Blob 存储来存储文档。所以我想如果我也将身份验证转移到 Azure,那么一切都可以在 Azure 上融合在一起。认为这可能很方便... 【参考方案1】:Azure B2C 是替代用户身份验证的正确选择,但是您必须使用 OWIN 或其他解决方案才能实际提供特定于应用程序的身份/授权管道。 对于面向公众的网站,我不会直接使用 azure AD 进行客户登录,这更多地针对具有联合、office365 或本地 Active Directory 中的身份的企业客户。
说实话,我很惊讶您计划从 auth0 迁移到 AAD。我正在考虑做相反的事情。
【讨论】:
感谢德米特里的回复。我考虑从 Auth0 切换到 AAD 的唯一原因是因为我已经将 API 作为应用程序服务托管在 Azure 上,前端也在 Azure 存储上作为静态网站,另外我最近从 Amazon S3 移动了文档存储到 Azure Blob 存储。所以我认为现在唯一缺少的就是使用 Azure 进行身份验证。那么整个解决方案将很好地驻留在一个位置/一个提供商中......没有其他原因...... :) 我去年将 B2C 选项与 Auth0 进行了比较,Auth0 似乎是一个更强大的选择,具有更好的支持和文档。我知道 Azure 团队的迭代速度非常快,因此他们现在可能在 B2C 中拥有其他功能,使其更接近 Auth0 级别。【参考方案2】:我认为“替换”将使用 Identity Server,但 Azure 上没有适用于它的 PaaS 版本。所以你应该选择 Azure AD 或 Azure AD B2C。
如果您只想创建用户和组,您应该使用 Azure AD。但是,如果您计划启用 3rd 方身份来访问您的应用程序(例如 Facebook、Google 或 Linkedin),那么您应该使用 Azure AD B2C。更多信息请阅读:https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-overview
【讨论】:
以上是关于Auth0 的合适 Azure 替代品的主要内容,如果未能解决你的问题,请参考以下文章
Microsoft.Azure.WebHosts.JobHostConfiguration 的替代品是啥
Microsoft.Azure.Management.HDInsight.Job 的 .Netcore 替代品?