【问题标题】:Is is possible avoid deleting a user via SCIM provisioning when AccountEnabled=false in an Azure AD Enterprise Application?当 Azure AD 企业应用程序中的 AccountEnabled=false 时,是否可以避免通过 SCIM 预配删除用户?
【发布时间】:2020-07-02 14:52:22
【问题描述】:

我的 Azure AD 管理员为我创建了一个企业应用程序,我是它的配置所有者。

应用 Provisioning 设置为:

  • 预配 Azure Active Directory 组
  • 预配 Azure Active Directory 用户

到我的 SCIM 服务器。

设置工作正常,通过创建用户和更新组。

我的问题是,在我的公司工作流程中,当续订顾问合同时,用户的 AccountEnabled 属性设置为 false,然后使用 AccountEnabled=true 重新启用,这现在正在转换为删除/创建通过我的应用程序中的 SCIM。

我的印象是AccountEnabled=false 将转换为isSoftDeleted=true(如Customizing user provisioning attribute-mappings for SaaS application in Azure Active Directory 中所述),然后又将转换为SCIM Disable User request,因为应用程序的属性映射设置是映射 Azure应用程序中的 Active Directory 属性 Not([IsSoftDeleted])active 属性。

但它并没有禁用它正在删除它的用户。

用户驻留在本地 Active Directory 中,然后同步到 Azure AD。

我能找到的所有信息(如this)表明,SCIM 删除应该只在用户被硬删除的 30 天后发生,而不是在AccountEnabled=false 时发生,所以我想这可能是另一个因素。

那么,如何阻止 Azure AD 在我的应用中为禁用用户发出删除用户?

编辑:我在 Azure AD 中使用本地用户进行了测试(未从本地 AD 同步),并且当用户被禁用时,它会触发更新用户而不是删除。所以它必须只与同步用户相关(我还在排查问题)

【问题讨论】:

    标签: azure-active-directory scim


    【解决方案1】:
    1. 某些应用程序不支持软删除,因此 Azure AD 预配服务会发送删除来代替更新。您使用的是什么应用?
    2. 属性映射刀片允许您取消选择删除选项,当您这样做时删除是否停止?
    3. 我建议使属性映射尽可能接近默认值。

    【讨论】:

    • 这是我开发的自定义非图库应用(SCIM服务器也是我开发的),SCIM服务器支持禁用用户。但也许 Azure AD 不知道这一点。是否有任何配置参数告诉 Azure Ad 此应用支持软删除?我可以取消选中删除复选框,但我相信会停止所有删除(没有硬删除),我想要硬删除 -> scim 删除,软删除 -> scim 禁用用户。
    • 我已经尝试使用本地 Azure AD 用户(而不是从本地 Active Directory 同步的用户)并且它可以工作。我的意思是当 Azure AD 中禁用用户帐户时,SCIM 预配会使用active=false 更新用户。同步的用户似乎发生了一些特别的事情
    【解决方案2】:

    尝试删除“not”函数并使用默认属性映射。默认映射使用 switch 语句将 false 映射到 true 并将 true 映射到 false。它以字符串而不是布尔值的形式发送请求。

    【讨论】:

    • Not([IsSoftDeleted]) 是正确的,所以是 IsSoftDeleted=true 然后是 active=false。您有一点,在创建请求中,活动参数作为布尔值active: true 发送,但在更新请求中作为字符串active: 'False' 发送。我处理这两种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 2016-10-16
    • 1970-01-01
    • 2020-04-30
    • 1970-01-01
    相关资源
    最近更新 更多