为Okta配置SCIM发放

预览

此功能已在公共预览

本文介绍如何使用Okta设置Databricks供应。

您可以在Databricks帐户级别或Databricks工作空间级别设置配置。

Databricks建议您将用户、服务主体和组分配到帐户级别,并将用户和组分配到使用的工作区联合身份验证.如果有任何工作区未启用身份联合,则应该继续将用户、服务主体和组直接提供给这些工作区。

要在DBOB低频彩atabricks中了解有关SCIM配置的更多信息,包括身份联合对配置的影响的解释,以及关于何时使用帐户级和工作空间级配置的建议,请参见从您的标识提供程序同步用户和组

要配置Okta单点登录,请参见设置单点登录

特性

Databricks是Okta集成网络(OIN)中的一个供应应用程序,允许您使用Okta自动为用户和组提供Databricks。

Databricks Okta应用程序允许您:

  • 邀请用户到Databricks帐户或工作区

  • 将邀请用户或活动用户添加到组中

  • 停用Databricks帐户或工作区中的现有用户

  • 管理组和组成员

  • 更新和管理配置文件

需求

  • 您的Databricks帐户必须具有优质及以上计划

  • 您必须是Okta开发人员用户。

  • 要为您的Databricks帐户设置供应,您必须是Databricks帐户admin。

  • 要为Databricks工作空间设置供应,您必须是Databricks工作空间管理员。

使用Okta设置帐户级别的SCIM供应

本节描述如何配置Okta SCIM连接器,以便为您的帐户提供用户和组。

在Databricks中获取SCIM令牌和帐户SCIM URL

  1. 以“admin”帐号登录数据库账户控制台

    1. 点击用户设置图标设置

    2. 点击用户配置

    3. 点击启用用户预置

      复制SCIM令牌和Account SCIM URL。您将使用这些来配置Okta中的连接器。

在Okta中配置SCIM供应

  1. 登录Okta管理门户。

  2. 应用程序并点击浏览应用目录

  3. 中的“数据库”搜索浏览应用集成目录

  4. 点击添加集成

  5. 添加砖配置如下:

    • 应用程序标签,为您的应用程序输入名称。

    • 选择不向用户显示应用程序图标

    • 选择在Okta手机App中不显示应用程序图标

  6. 点击完成

  7. 点击供应并输入以下内容:

    • 配置基础URL,输入从Databricks复制的SCIM URL。

    • 配置API令牌,输入从Databricks复制的SCIM令牌。

  8. 点击测试API凭证,验证连接成功后,单击保存

  9. 重新加载供应选项卡。在成功测试API凭证之后会出现其他设置。

  10. 若要配置将Okta更改推送到Databricks时的行为,请单击发放到应用程序

    • 点击编辑.启用所需的特性。Databricks建议启用创建用户更新用户属性,禁用用户

    • 数据属性映射,验证你的数据库属性映射。这些映射将依赖于您在上面启用的选项。您可以添加和编辑映射以满足您的需要。看到在Provisioning页面上映射应用程序属性在Okta文档中。

  11. 若要配置将Databricks更改推送到Okta时的行为,请单击对Okta.默认设置适用于Databricks供应。如果要更新默认设置和属性映射,请参见发放和取消发放在Okta文档中。

测试集成

要测试配置,请使用Okta邀请一个用户到您的Databricks帐户。

  1. 在Okta,转到应用程序并点击

  2. 点击供应

  3. 点击分配,然后分配给人们

  4. 搜索“Okta”用户,单击分配

  5. 确认用户的详细信息,单击分配并返回,然后按完成

  6. 登录账户控制台,点击Account控制台用户管理图标用户管理,确认用户添加成功。

完成这个简单的测试后,您可以执行中所述的批量操作使用Okta管理Databricks中的用户和组

使用Okta设置工作空间级别的SCIM供应

本节描述如何设置从Okta直接供应到Databricks工作区。

在Databricks中获取API令牌和SCIM URL

  1. 作为Databricks工作区管理员,生成一个个人访问令牌。看到令牌管理.将个人访问令牌存储在安全位置。

    重要的

    拥有此个人访问令牌的用户不能在Okta中进行管理。否则,从Okta中删除用户将破坏SCIM集成。

  2. 请记录以下URL,这是配置Okta所需的URL:

    https:// < databricks-instance > / api / 2.0 /预览/ scim / v2

    取代< databricks-instance >工作空间的URL您的Databricks部署。看到获取工作区资产的标识符

保持这个浏览器选项卡打开。

在Okta中的Databricks SAML应用程序中配置SCIM供应

  1. 应用程序并点击

  2. 点击供应.输入从上述部分获得的以下信息:

    • Provisioning Base URL:供应端点

    • 供应API令牌:个人访问令牌

  3. 点击测试API凭证

  4. 重新加载供应选项卡。在成功测试API凭证之后会出现其他设置。

  5. 若要配置将Okta更改推送到Databricks时的行为,请单击到应用程序

    • 一般,点击编辑.启用所需的特性。Databricks建议启用创建用户至少。

    • 数据属性映射,验证你的数据库属性映射。这些映射将依赖于您在上面启用的选项。您可以添加和编辑映射以满足您的需要。看到在Provisioning页面上映射应用程序属性在Okta文档中。

  6. 若要配置将Databricks更改推送到Okta时的行为,请单击对Okta.默认设置适用于Databricks供应。如果要更新默认设置和属性映射,请参见发放和取消发放在Okta文档中。

测试集成

要测试配置,请使用Okta邀请一个用户到Databricks工作空间。

  1. 在Okta,转到应用程序并点击

  2. 点击供应

  3. 点击分配,然后分配给人们

  4. 搜索“Okta”用户,单击分配

  5. 确认用户详细信息,然后单击分配并返回.点击完成

  6. 在Databricks工作区管理控制台中,单击用户并确认用户已添加。至少要授予用户Workspace权限。

在这个简单的测试之后,您可以执行批量操作,如下面的部分所述。

使用Okta管理Databricks中的用户和组

本节描述了您可以使用Okta SCIM配置对Databricks帐户或工作区执行的批量操作。

从Databricks工作区导入用户到Okta

从“Databricks”导入用户到“Okta”,请执行进口选择并单击现在进口.系统会提示您检查和确认没有通过电子邮件地址自动匹配到现有Okta用户的任何用户的分配。

将用户和组分配添加到Databricks

要验证或添加用户和组分配,请转到作业选项卡。

将组推送到数据库

若要将组从Okta推送到Databricks,请转到推动组织选项卡。“数据库”中已存在的用户按邮件地址进行匹配。

从帐户中删除用户或组

如果从Okta中的帐户级Databricks应用程序中删除用户,则该用户将在Databricks帐户中删除,并失去对所有工作区的访问权,无论这些工作区是否启用了身份联合。

如果从Okta中的帐户级Databricks应用程序中删除一个组,该组中的所有用户都将从该帐户中删除,并失去对他们曾经访问过的任何工作空间的访问权除非他们是另一个组的成员,或者直接被授予访问帐户或任何工作区的权限.您应该避免删除帐户级别的组,除非您希望它们失去对帐户中所有工作区的访问权。

删除用户的后果如下:

  • 使用用户生成的令牌的应用程序或脚本将不再能够访问Databricks API

  • 用户拥有的作业将失败

  • 用户所属的集群将停止运行

  • 由用户创建并使用Run as Owner凭据共享的查询或仪表板必须分配给新的所有者,以防止共享失败

从工作区中删除一个未激活的用户

如果从Okta中的工作空间级Databricks应用程序中删除一个用户,则该用户为停用在Databricks工作空间中,但没有从工作空间中删除。未激活的用户没有workspace-accessdatabricks-sql-access权利。重新激活一个被停用的用户是可逆的,可以在Okta中重新添加用户,也可以直接使用Databricks SCIM API。从Databricks工作空间中删除用户是破坏性的且不可逆的。

重要的

请勿去激活配置Okta SCIM发放应用的管理员,否则将导致SCIM集成无法向Databricks进行认证。

从Databricks工作区中删除一个用户:

  1. 在管理控制台中,转到用户选项卡。

  2. 单击x在用户行的末尾。

请注意删除用户的后果:

  • 使用用户生成的令牌的应用程序或脚本将不再能够访问Databricks API

  • 用户拥有的作业将失败

  • 用户所属的集群将停止运行

  • 由用户创建并使用Run as Owner凭据共享的查询或仪表板必须分配给新的所有者,以防止共享失败

使用Okta管理工作区管理员、授权和IAM角色

Databricks在Okta中支持从工作空间级Databricks应用程序分配工作空间管理员、IAM角色和工作空间授权。Okta中的帐户级Databricks应用程序不支持角色和权限的分配。如果您想从Okta中分配IAM角色和工作空间权限,则必须在Okta中为该工作空间创建一个工作空间级Databricks应用程序。

Databricks建议您在Okta中使用帐户级Databricks应用程序来为帐户级提供用户、服务主体和组。将用户和组分配给工作区使用联合身份验证并在Databricks中管理他们的权限和IAM角色。

同步工作空间管理员

Databricks支持从Okta中的工作空间级Databricks应用程序分配工作空间管理员角色。工作区管理员是Databricks的成员管理员组。数据库组自动推送到Okta。要在Okta中添加一个新的admin用户,请将该用户添加到管理员组。

重要的

不要删除配置Okta SCIM发放应用程序的管理员,也不要从管理员组。否则,SCIM集成无法向Databricks进行身份验证。

从Okta分配工作区权限

Databricks支持从Okta中的工作空间级Databricks应用程序分配授权。但是,在大多数情况下,Databricks建议从Databricks内部管理授权。在Databricks中,您可以轻松地分配或撤销权限。在Okta中配置映射非常复杂,必须为每个授权配置两个映射。

本节描述如何配置映射以授予databricks-sql-accessOkta用户的授权。

重要的

默认情况下,Databricks用户继承workspace-accessdatabricks-sql-access福利。默认情况下,Databricks admin用户继承创建集群权利。您不需要从Okta分配这些继承的权利。

若要撤销从用户继承的授权,可以将用户从组中移除,或将授权从组中移除。要删除授权,必须使用Databricks管理控制台。

要分配databricks-sql-access权利:

  1. 在Okta管理控制台中,转到目录>配置文件编辑器

  2. 单击配置文件Okta用户配置文件的编辑按钮。

  3. 单击+添加属性按钮,添加角色。

  4. 在“添加属性”对话框中,设置显示名称SQL变量名databricks_sql

    请注意

    Okta变量不能包含连字符(-)字符。

  5. 返回到概要文件编辑器并单击配置文件Databricks供应应用程序用户配置文件的编辑按钮。

  6. 单击+添加属性按钮,添加角色。

  7. 在Add Attribute对话框中,为角色属性设置如下值:

    • 显示名称SQL

    • 变量名databricks_sql

    • 外部的名字在格式中福利。^ [type = = '美元类型']value美元的类型API名称权利。例如,的外部名称databricks-sql-access福利。^ [type = = ' databricks-sql-access '] value

    重要的

    在“外部名称”格式中,必须使用撇号字符().如果使用大括号字符(),一个请求unparseable发生错误。

    • 外部名称空间urn: ietf:参数:scim:模式:核心:2.0:用户

    添加Databricks角色属性
  8. 返回到概要文件编辑器并单击映射Databricks供应应用程序用户配置文件的编辑按钮。

  9. 数据到Okta、地图appuser.databricks_sql在“数据库”列中databricks_sql在Okta专栏。

  10. ok to Databricks、地图user.databricks_sql在“数据库”列中databricks_sql在Okta专栏。

  11. 点击保存映射

  12. 若要为用户添加授权值,请转到>用户,选择用户,进入配置文件页。

    单击编辑按钮。在授权字段中,输入授权的API名称,例如databricks-sql-access.当您将用户分配给应用程序时,角色将使用您输入的值填充。

重复此过程可分配其他权限。

从Okta中分配IAM角色

为了从Okta中为用户分配IAM角色,您必须在Okta用户配置文件和Okta Databricks供应应用程序配置文件中创建一个多值属性,然后将这些属性映射到Databricks SCIM API中的属性。例如,如果要为一个用户分配两个IAM角色,则必须在Databricks发放应用程序中创建两个属性,并将一个Okta用户属性映射到每个角色。

Databricks建议从Databricks内部管理IAM角色分配。在Databricks中,您可以轻松地分配或撤销IAM角色。在Okta中配置映射非常复杂,必须为每个IAM角色配置单独的映射。

下面的指令分配primary_role属性。

  1. 在Okta管理控制台中,转到目录>配置文件编辑器

  2. 单击配置文件Okta用户配置文件的编辑按钮。

  3. 单击+添加属性按钮,添加角色。

  4. 在“添加属性”对话框中设置显示名称主要的角色变量名primary_role

    添加okta角色属性
  5. 返回到概要文件编辑器并单击配置文件Databricks供应应用程序用户配置文件的编辑按钮。

  6. 单击+添加属性按钮,添加角色。

  7. 在Add Attribute对话框中,为角色属性设置如下值:

    显示名称主要的角色

    变量名primary_role

    外部的名字在格式中角色。^ [type = = '美元类型']value,在那里美元的类型描述角色的字符串;在本例中,如果$TYPE为主要的^[type== ' primary '].value。

    重要的

    在“外部名称”格式中,必须使用撇号字符().如果使用大括号字符(),一个请求unparseable发生错误。

    外部名称空间urn: ietf:参数:scim:模式:核心:2.0:用户

    添加Databricks角色属性
  8. 返回到概要文件编辑器并单击映射Databricks供应应用程序用户配置文件的编辑按钮。

  9. 数据到Okta、地图appuser.primary_role在“数据库”列中primary_role在Okta专栏。

  10. ok to Databricks、地图user.primary_role在“数据库”列中primary_role在Okta专栏。

  11. 点击保存映射

  12. 若要为用户添加角色属性值,请转到>用户,选择用户,进入配置文件页。

    单击编辑按钮,为用户输入“主角色”值。当您将用户分配给应用程序时,角色将使用您输入的值填充。

重复此步骤可分配其他角色。

限制

  • 从工作空间级别的Okta应用程序中删除用户会使Databricks中的用户失效,而不是删除该用户。你必须直接从Databricks中删除用户

  • 您可以重新激活一个停用的用户删除,然后重新添加他们到Okta,与完全相同的电子邮件地址。

故障排除和提示

  • Databricks配置文件中没有姓或名的用户不能作为新用户导入到Okta。

  • 在配置设置之前在Databricks中存在的用户:

    • 自动链接到Okta用户,如果他们已经存在于Okta,并根据电子邮件地址(用户名)匹配。

    • 可以手动链接到现有用户,或者在Okta中创建一个新用户,如果他们没有自动匹配。

  • 在删除用户的组成员资格后,通过组成员资格单独分配和复制的用户权限仍然保留。

  • 从Databricks工作空间删除的用户将失去对该工作空间的访问权,但他们仍然可以访问其他Databricks工作空间。

  • 管理员group为“数据库”中的保留组,不可删除。

  • 不能在“数据库”中重命名组;不要试图在Okta重新命名它们。

  • 你可以使用数据库Groups API 2.0(遗留)或者是组织用户界面获取Databricks工作空间级组的成员列表。

  • 无法更新Databricks用户名和电子邮件地址。