首页 > 解决方案 > Azure AD:将用户分配给应用程序时发送欢迎电子邮件

问题描述

当 Azure AD 管理员将用户分配给应用程序(企业或自定义)时,我想向用户发送一封欢迎电子邮件。最好使用自定义模板来定义访问 URL 以及一些附加信息(如何使用、一些规则等)。我在 Azure 门户中没有发现任何类似的东西。

Azure AD 是否提供此类功能?或者我应该构建自定义实现(Graph API、EventGrid + Azure Functions、SCIM 协议等)?

标签: azureazure-active-directory

解决方案


据我了解,从根本上讲,您希望在将用户分配给企业应用程序(或自定义 - 假设也属于同一类)时发送一封电子邮件。我假设您不需要知道谁实际分配了权限。无论哪种方式,通过下面的查询,您应该有足够的时间开始工作。

据我所知,AD 中没有对此的本机支持(我根本找不到任何可用的东西,但我可能错了),但我们的解决方法是使用 Log Analytics + Azure Logic App 来实现。虽然我们的用例略有不同(我们使用它来监控并在登录到特定帐户时收到警报),但相同的逻辑可能适用于您 - 我将几行代码放在一起来查询日志分析。但我无法让警报部分工作 - Azure 现在可能只是昏昏欲睡。

编辑:警报在第二天起作用。我猜只是需要一些时间来热身。

试试看:

  1. 确保 Azure AD 已配置诊断设置以将日志发送到日志工作区
  2. 使用以下命令查询工作区:
AuditLogs
| where TimeGenerated > ago(5m) //Change as required
| where ActivityDisplayName has "Add app role assignment grant to user"
| project Time = TimeGenerated, Activity = ActivityDisplayName, Application=parse_json(TargetResources)[0].displayName, User=parse_json(TargetResources)[1].userPrincipalName
| where Application contains "myapp"
  1. 从 Log Analytics 创建警报(希望您可以立即使用它 - 每个警报的费用为 1.50 美元/月)。

    (a) 您需要创建一个Action Group

    (b) 在 下Action Group,在 中配置您的电子邮件Notifications

    (c) 您需要返回以将Action字段重新配置到您将在下面创建的逻辑应用程序。

  2. 创建一个逻辑应用并从HTTP 连接器作为触发器开始,以接收 JSON 格式的内容。

  3. 设置带有所有变量等的发送电子邮件 (v2)操作,或其他连接器(如果适用于您的情况)。自定义 HTML 格式的电子邮件

使用 Log Analytics 和警报的一种替代方法也可以是使用 PowerShell 查询 AAD 日志HTTP POST Url,然后通过保存 HTTP 连接器时显示的信息将信息解析到逻辑应用程序。

使用 HTTP 连接器的另一种替代方法是使用带触发器的O365 连接器When a new email arrives (v3)

需要考虑的事项:

  1. 记录和触发事件之间至少有 5 分钟的延迟。这正是警报查询的工作方式。
  2. 您需要使用要从中发送该电子邮件的邮箱登录到 Logic App。这就是您可能想要单独管理的东西 - 过期凭证等。

希望这能给你一些想法。


推荐阅读