TL;DR:是否可以让terraform执行Microsoft Graph步骤,为Azure AD和Databricks提供SCIM?
我正在尝试为Databricks配置自动SCIM设置,以便用户和组管理可以通过Azure Active Directory而不是在Databricks本身中完成。我正试图弄清楚如何通过terraform实现这种配置。
我在这里看到以下Azure数据块文档,用于手动配置SCIM设置。看起来可以通过企业应用程序或使用Microsoft Graph来完成。
在撰写本文时,azuread terraform提供程序上有一个打开的pull请求,要求通过看起来像企业应用程序的方法添加供应。由于我不想等待PR被合并,我一直在试图弄清楚Microsoft Graph方法现在是否可以通过terraform实现。如果是的话,我不知道怎么做。
我使用的是azuread提供商的最新版本,它说从2.0开始;仅使用Microsoft Graph连接到Azure Active Directory">
我一直在查看azuread_application文档,遵循手动配置步骤,并试图弄清楚这些步骤的地形等效物是什么,但首先还不清楚这是否可能。
是的,完全可以将用户从AAD配置到Databricks。实现相对较大,可以完全放入答案中,但你可以在这里找到工作版本(我知道不推荐链接,但它是>100行的terraform代码,加上代码会不时更新,以处理更新版本的terraform&provider(。高级工作流程如下:
- 使用
databricks_group
资源在Databricks中创建每个组;给予他们必要的权限(可以创建集群,可以访问DBSQL等( - 对于每个指定的组,从AAD获取用户列表
- 从所有组的用户创建一个集合-以确保我们没有重复
- 将用户与服务主体分离,并使用
databricks_user
资源在Databricks中创建它们(注意force
标志,因此它将自动导入手动添加的用户( - 对使用
databricks_service_principal
资源的服务主体执行相同操作 - 分配用户&使用
databricks_group_member
资源为组提供服务主体(这是理解起来最复杂的部分,因为我们需要两个嵌套循环(
当前限制:
- 不处理嵌套组,尽管可以添加