使用 Microsoft Entra ID 自动将用户预配到 Slack

注意

不支持将 Slack 与自定义/BYOA 应用程序集成。 支持使用本文中所述的图库应用程序。 库应用程序已经过自定义,可与 Slack 的 SCIM v1 服务器一起使用。

本文旨在说明如何在 Slack 和 Microsoft Entra ID 中执行必要步骤,以便将用户帐户从 Microsoft Entra ID 自动预配和取消预配到 Slack。 有关此服务的功能、工作原理以及常见问题解答的重要详细信息,请参阅使用 Microsoft Entra ID 自动将用户预配到 SaaS 应用程序和取消预配

支持的功能

  • 在 Slack 中创建用户
  • 当用户不再需要访问权限时,请删除 Slack 中的用户
  • 使用户属性在 Microsoft Entra ID 和 Slack 之间保持同步
  • 在 Slack 中预配组和组成员身份
  • 单一登录至 Slack(推荐)

先决条件

本文中概述的方案假定你已具有以下项:

注意

此集成也可以通过 Microsoft Entra 美国政府云环境使用。 可以在“Microsoft Entra 美国政府云应用程序库”中找到此应用程序,并以公有云相同的方式对其进行配置。

步骤 1:规划预配部署

  1. 了解 预配服务的工作原理
  2. 确定哪些人员在预配范围内。
  3. 确定要在Microsoft Entra ID 和 Slack 之间映射的数据

从 Microsoft Entra 应用程序库添加 Slack,以开始管理对 Slack 的预配。 如果以前为 SSO 设置过 Slack,则可以使用同一应用程序。 但是,我们建议在最初测试集成时创建单独的应用。 在此处详细了解如何 从库中添加应用程序。

步骤 3:定义预配范围内的人员

通过Microsoft Entra 预配服务,你可以根据应用程序分配或用户或组的属性来限定预配的人员的范围。 如果您选择根据分配来决定将哪些用户预配到您的应用程序,则可以使用 步骤将用户和组分配到应用程序。 如果选择仅根据用户或组的属性来限定预配的人员,则可以 使用范围筛选器

  • 先小部分测试。 在向全员推出之前,请先使用少量的用户和组进行测试。 如果预配范围设置为分配的用户和组,则可以先尝试将一两个用户或组分配到应用。 将范围设置为所有用户和组时,可以指定 基于属性的范围筛选器

  • 如果需要额外的角色,可以 更新应用程序清单 以添加新角色。

步骤 4:配置对 Slack 的自动用户预配

本部分介绍了如何将 Microsoft Entra ID 连接到 Slack 的用户帐户预配 API 并配置预配服务,以便在 Slack 中根据 Microsoft Entra ID 中的用户和组分配创建、更新和禁用分配的用户帐户。

在 Microsoft Entra ID 中配置 Slack 的自动用户帐户预配:

  1. 以至少云应用程序管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到 Entra ID>企业应用

    “企业应用程序”边栏选项卡

  3. 在应用程序列表中,选择“Slack”

    应用程序列表中的 Slack 链接的屏幕截图。

  4. 选择“预配”选项卡。

    “管理”选项的屏幕截图,其中突出显示了“预配”选项。

  5. 选择 + 新建配置

    “预配”选项卡的屏幕截图(自动)。

  6. “租户 URL ”字段中,输入 Slack 租户 URL 和机密令牌。 选择测试连接以确保Microsoft Entra ID可以连接到 Slack。 如果连接失败,请确保 Slack 帐户具有所需的管理员权限,然后重试。

    预配测试连接的屏幕截图。

  7. 在新窗口中,使用团队管理员帐户登录到 Slack。 在生成的授权对话框中,选择要为其启用预配的 Slack 团队,然后选择“ 授权”。 完成后,返回到Microsoft Entra 管理中心以完成预配配置。

    授权对话框

  8. 选择 “创建 ”以创建配置。

  9. “概述”页上选择“属性”。

  10. “通知电子邮件 ”字段中,输入应接收预配错误通知的人员的电子邮件地址,并在 发生故障时选中“发送电子邮件通知 ”复选框。

    “预配属性”页的屏幕截图,其中显示了通知和删除设置。

  11. 在左侧面板中选择 “属性映射 ”,然后选择 用户

  12. Attribute-Mapping 部分中查看从 Microsoft Entra ID 同步到 Slack 的用户属性。 选择为 “匹配” 属性的属性用于在 Slack 中匹配用户账户以便进行更新操作。 如果选择更改 匹配的目标属性,则需要确保 Slack API 支持基于该属性筛选用户。 选择“保存”按钮以提交任何更改 。

    特征 类型
    活动 布尔
    externalId 字符串
    displayName 字符串
    姓名.姓氏 字符串
    name.givenName 字符串
    title 字符串
    emails[type eq "工作"].value 字符串
    用户名 字符串
    昵称 字符串
    addresses[type eq “untyped”].streetAddress 字符串
    addresses[type eq “untyped”].locality 字符串
    addresses[type eq “untyped”].region 字符串
    addresses[type eq “untyped”].postalCode 字符串
    addresses[type eq “untyped”].country 字符串
    phoneNumbers[type eq "移动"].value 字符串
    phoneNumbers[type eq "工作"].value 字符串
    roles[primary eq “True”].value 字符串
    区域设置 字符串
    name.honorificPrefix 字符串
    photos[type eq “photo”].value 字符串
    profileUrl 字符串
    时区 字符串
    用户类型 字符串
    首选语言 字符串
    urn:scim:schemas:extension:enterprise:1.0.department 字符串
    urn:scim:schemas:extension:enterprise:1.0.manager 参考
    urn:scim:schemas:extension:enterprise:1.0.employeeNumber 字符串
    urn:scim:schemas:extension:enterprise:1.0.costCenter 字符串
    urn:scim:schemas:extension:enterprise:1.0.organization 字符串
    urn:scim:schemas:extension:enterprise:1.0.division 字符串
  13. “属性映射 ”部分中,查看从 Microsoft Entra ID 同步到 Slack 的组属性。 选择为 匹配 属性的属性用于在 Slack 中匹配组以执行更新操作。 选择“保存”按钮以提交任何更改 。

    特征 类型
    displayName 字符串
    members 参考
  14. 若要配置范围筛选器,请参阅 范围筛选器文章中提供的说明。

  15. 在组织中更广泛地部署之前,使用 按需预配 来验证与少数用户的同步。

  16. 准备好预配后,从“概述”页中选择“开始预配”。

步骤 5:监视部署

配置预配后,请使用以下资源来监视部署:

  1. 使用 预配日志 确定哪些用户已成功或未成功预配
  2. 检查 进度栏 以查看预配周期的状态及其完成程度
  3. 如果预配配置似乎处于不正常状态,则应用程序进入隔离状态。 要了解有关隔离状态的详细信息,请参阅应用程序预配隔离状态文章。

故障排查提示

  • 配置 Slack 的 displayName 属性时,请注意以下行为:

    • 值并不完全唯一(例如,两个用户可以具有相同的显示名称)

    • 支持非英语字符、空格、大写。

    • 允许使用的标点符号包括句点、下划线、连字符、撇号、括号(例如 ( [ { } ] ))和分隔符(例如 , / ;)。

    • displayName 属性不能有“@”字符。 如果包含“@”,则可能会在预配日志中找到一个跳过的事件,其说明为“AttributeValidationFailed”。

    • 只有在 Slack 工作区/组织中配置以下两个设置时才更新:启用配置文件同步用户无法更改其显示名称

  • Slack 的 userName 属性必须低于 21 个字符,并且具有唯一值。

  • Slack 仅允许与特性“userName”和“email”匹配

  • 常见错误代码记录在官方 Slack 文档中 - https://api.slack.com/scim#errors

更改日志

  • 06/16/2020 - 修改后的 DisplayName 特性仅在创建新用户期间更新。

更多资源