我们想开始将 OAuth2 for SSO 用于一系列 Web 应用程序。一种解决方案是使用 Azure 提供的 OAuth2。它只是看起来不合理地昂贵,我想一定有什么我错过了。
正如我从Microsoft身份平台(v2.0(概述 - Azure中了解到的那样,任何需要使用Azure的OAuth2解决方案登录的用户都需要在Active Directory中。我们不需要用户能够做任何其他事情,而是登录我们的应用程序,但我们确实希望他们是我们的帐户,而不是他们可能已经拥有的任何其他帐户Microsoft。
查看AD价目表,如果我们想要"公司品牌(自定义登录和注销页面,访问面板("和SLA,我们说的是每月6美元的用户。
因此,假设我们有 100,000 名用户,即 OAuth2 每月 600,000 美元的公关费用,以便他们可以登录?即使我们可以通过"钻石-黄金-铂金合作伙伴"之类的东西,并以1/10的价格得到它,它仍然是离谱的。
我们正在考虑的其他替代方案是Auth0,Okta或托管我们自己的Keycloak实例,因此有(非常(便宜的替代方案,但这是使用OAuth2通过Azure托管的OAuth2进行应用程序登录的最便宜的方式吗?
这是否会干扰他们也拥有Microsoft的其他身份,例如与我们的应用程序无关的任何 Office365 帐户?
如果你正在为组织的用户(以及应用、设备、组等(寻找企业标识服务,那么是的,Azure Active Directory Premium P1 将为你提供(具有一大堆附加功能和 SLA(,目前成本约为 6 美元/用户/月。
但是,如果只是为适用于任何用户(不一定是一个组织的用户和协作者(的应用查找标识提供者,则可能需要使用者标识和访问管理 (CIAM( 产品。在Microsoft标识产品中,这将是 Azure AD B2C(定价(,它提供登录和注册体验、用户配置文件存储、多重身份验证和 OpenID Connect/OAuth 2.0 的完全自定义。
如果您只想托管用户帐户并使用OpenId和OAuth将它们签名到各种应用程序,那么免费版就足够了。
现在,如果您开始探索诸如"公司品牌(自定义登录和注销页面,访问面板("之类的选项,那么是的,它们需要花钱。
有趣 - 我认为这只会部分回答您的问题,但希望它有助于提供一个方向:
用户设置
听起来您想在自己的组织下添加用户,例如"yourcompany.com",并根据用户自己的公司为用户分配一封电子邮件:"john.smith@somepartner.com"。
我很确定这将正常工作,因为具有相同电子邮件的任何其他 Azure 帐户都是不同的用户对象:
- 当用户在 login.yourcompany.com 点登录并输入电子邮件时,该帐户将在 Azure AD 域中匹配。
保持您的选择开放
供应商授权服务器的功能和成本在不断变化,所有这些都有烦恼。我建议尽早关注风险/表演障碍。
一种有用的机制是一个简单的代码示例,它侧重于登录品牌等方面,并且可以指向任何符合标准的授权服务器。
保持 UI 和 API 代码的可移植性
将 OAuth 2.0 有效地集成到您的 UI 和 API 中涉及学习曲线。保持您的 UI 和 API 标准为基础,并使用最好的库。
资源
如果对这种方法感兴趣,我的一些视觉帖子可能会有用,其中包括:
- 可用于评估的 Azure AD 代码 Web UI + API 代码示例
- 专注于托管软件平台的 AWS 云解决方案