我正在为我的公司尝试 Azure Active Directory 中的 Multi-Tenancy 功能。我们希望为我们的 Web 应用程序的用户提供单点登录和基于声明的身份验证和授权。一些客户拥有自己的 Azure AD,而其他客户则将在我们拥有的 Azure AD 中获得用户。我们希望允许其他已批准的 Azure 租户的所有用户进行身份验证,但只应授权特定用户,因为我们向客户按每个应用程序的每个用户收费。希望我们的 Azure AD 组可以用于此目的。我已成功创建一个测试应用程序,允许来 self 的 Azure AD 和另一个租户的用户登录我们的应用程序。
我的问题是这样的:是否可以将另一个 Azure AD(我们无法控制)的用户添加到我们 Azure AD 中的组,以便我们可以使用用户的组成员身份来允许访问不同的组我们构建的应用程序?这可能吗,还是我误解了一些基本的东西? :) 我们是否应该放弃 Azure AD 组并使用我们自己的单独数据库来存储可以在 ASP 安全管道期间分配给所有租户的用户的声明?
我测试的应用程序具有对其他 Azure AD 的读取访问权限以及对我们的 Azure AD 的读/写访问权限。我无法通过 Azure 管理门户将用户(来自另一个 Azure AD)分配到我们的组(“您有权访问的目录中不存在具有此用户名的用户。”),到目前为止我还无法执行此操作使用应用程序中的图形 api。将我在 Azure AD 中创建的用户添加到我们的组中效果很好。
最佳答案
从根本上来说,您需要一个数据库来保存用户映射。
既然我们在这里,请考虑 Stackoverflow - 您可以使用 stackechange 创建身份,但您也可以使用来自 google、yhaoo 或 facebook 的现有身份。这意味着 SO 需要在某个数据库中记录您的身份,并在旁边记录允许您做什么和不允许做什么。
不过,在许多方面,您可以将 WaaD 简单地视为数据库并自动创建用户记录,但请记住,用户不会通过您的 AD 进行身份验证。您只需使用图形 API 基于键进行查询,这可能在专用数据库或可以说是 Azure 表存储之类的数据库上更有效地完成。
鉴于您无论如何都需要查询 WaaD 图形 API 来获取组成员身份(初始声明集未提供),您可以改为查询表存储。
关于asp.net - 您可以将其他 Azure AD 中的用户添加到您自己的 Azure AD 中的组吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22104539/