解决方案:

解决方案:

Azure SaaS(例如:Workday)的配置间隔默认设置为 40 分钟。除了重新启动配置之外,还有其他方法可以配置少于 40 分钟的时间吗?

答案1

如果不知道解决方案是如何部署的,就很难回答您的问题。如果使用 Azure 资源管理模板进行部署,如果不知道涉及哪些服务,那就更加困难了。

我们遇到过这样的情况:由于 Microsoft 正在对后端进行故障排除,Azure SQL 托管实例花了两天多的时间才部署完成。这是一个暂时现象,Azure 支持解决了后端问题后,这种情况就不会再发生了。

打开 Azure 支持案例来审查部署可能更有价值。

答案2

我刚刚写了一篇关于如何绕过 40 分钟配置间隔的小文章[1]:

您(可能)知道,在创建 Azure 活动目录应用程序注册(例如 AWS SSO)时,添加/删除用户时,根据 Microsoft 的规定,配置可能需要最多 40 分钟才能生效。

同步按照定期安排的时间间隔进行,通常每 40 分钟一次。

作为一家公司的 DevOps 工程师,这是不可接受的,开发人员经常请求访问某些产品帐户,然后需要等待约 40 分钟,然后向您抱怨。

初步解决方案首先,我可以进入应用程序配置,按下停止和启动,然后它会应用同步,但当然,这是一个明智的选择,应该是自动化的,这就是我们做到的。

解决方案:

  • 先决条件:

    • 电源自动化云流
    • Premium Power 自动化许可证

我们使用 Azure power automated 来自动化开发人员的访问流程,在更改之前它看起来像这样:

开发人员提交表单请求访问生产帐户 -> 这会触发 power automated,然后发送电子邮件以允许或拒绝开发人员访问(电子邮件发送给开发团队负责人)。
如果请求获得批准,长话短说,它会将用户添加到有权访问该应用程序的组中,启动计时器,并在完成后将用户从组中删除。

因此,我们希望在请求被批准并添加用户后,以编程方式停止/启动配置,以便立即进行更改。

第一部分:创建新应用注册

  • 在 Azure AD 中创建一个新的应用注册。
  • 为该应用程序创建客户端密钥并复制密钥值。
  • 在 API 权限中,添加 Synchronization.ReadWrite.All(需要管理员同意)
  • 转到应用程序概述并复制应用程序(客户端)ID。

第二部分:创建令牌的HTTP请求

  • 转到电源自动化并打开您的云流。
  • 创建新动作 HTTP
  • 修改方法为 POST
  • 对于 URI,请输入 https://login.microsoftonline.com/>your Tenant ID</oauth2/v2.0/token
  • 提示:您可以在 Microsoft Entra ID 工作区的概述中找到租户 ID。
  • 对于标题添加 Content-Type: application/x-www-form-urlencoded

对于主体添加:

grant_type=client_credentials&client_id=<Your client ID>&scope=https://graph.microsoft.com/.default&client_secret=<Your client secret value>
  • 客户端 ID 是您在第一部分操作 4 中复制的值
  • 客户端机密是您在第一部分操作 2 中复制的值)
  • 可选:如果您不想将机密存储为纯文本,请使用 Azure 密钥保管库,或创建具有有限访问权限的 Microsoft 列表,并添加获取项类型的预步骤以获取机密值(也可以在设置步骤以应用安全输入和输出)
  • 测试流程并确保获得令牌。
  • 添加解析 JSON 类型的新步骤。
  • 对于内容,请使用上一步中的正文(动态内容)
  • 对于架构添加:
{“type”:”object”,”properties”:{“token_type”:{“type”:”string”},”expires_in”:{“type”:”integer”},”ext_expires_in”:{“type”:”integer”},”access_token”:{“type”:”string”}}}

第三部分:停止/启动配置

在同一个电源自动化云流程中,在 JSON 部分后面添加一个新操作,类型为 HTTP,与上一步相同。

  • 将方法更改为 POST 在 URI 中,添加:
https://graph.microsoft.com/v1.0/servicePrincipals/<Your app object ID>/synchronization/jobs/<Your provisioning Job ID>/microsoft.graph.pause
  • 应用程序对象 ID 是目标应用程序对象 ID,可以在目标应用程序的概述中找到,就我的情况而言,这应该是与 AWS 通信的 SSO 应用程序

  • 也可以在目标应用程序中找到配置作业 ID,按配置按钮,单击概览,按查看技术信息复制作业 ID。

  • 在标题中添加授权,并为值添加 Bearer,并使用动态值从解析 JSON 操作中获取访问令牌。

  • 添加新动作以等待 10 到 20 秒。

  • 重复相同的步骤,将 URI 的结尾从 Microsoft.graph.pause 更改为 Microsoft.graph.start

就是这样。

参考: 1

相关内容