0

我正在尝试创建一个使用 Azure AD 连接器和“获取用户”操作的流。

然后我初始化一个变量,它允许我从列表中选择动态内容(例如商务电话、位置等)。如果我查看代码,我会看到 body/businessPhone 或 body/location。我以为我可以在我的表达式中使用 body/{any attribute} ,但事实并非如此。

在 Azure 中,我想要的属性显然是“OtherMail”,而在 O365 中,具有相同值的属性是“AlternateEmailAddresses”。表达式中的这些值都不起作用。有趣的是,这些值在大括号中报告为 {myemail@domain.com}。

如果我使用动态内容列出公司名称(其代码是 body/companyName)并在 Azure AD 中插入一个电子邮件地址,则流程可以工作。

不过,为了清楚起见,我觉得应该在 Azure AD 中使用备用电子邮件地址属性,但 Flow 不想工作。

4

1 回答 1

0

首先我们需要知道, Azure AD 连接器在后端请求microsoft graph api的“获取用户”操作。它请求图形 api 但不请求图形api。如果请求图形 api,它将响应用户的所有字段,如下图所示: v1.0betabeta在此处输入图像描述

但是,如果请求v1.0图形 api,它将默认响应 12 个字段,如下图所示: 在此处输入图像描述

这就是您无法 otherMails 从“获取用户”操作中获取该字段的原因。

为了实现您的要求,有两种解决方案:

第一个解决方案:

在“获取用户”操作 ?$select=otherMails中的用户 ID 之后添加。在此处输入图像描述

我在我身边测试它,有时它有效,有时它不。我不知道为什么。你可以在你身边测试这个解决方案,如果你能接受这个解决方案,那很好,因为它非常简单。

第二种解决方案:

您需要使用“ HTTP ”操作手动请求图形 API,而不是使用“ Get User ”操作。

首先,您需要在 Azure AD中注册一个应用程序。将两个id(" Application(client)ID "和" Directory(tenant)ID ")复制到记事本中以备后用。 在此处输入图像描述

然后单击“ API 权限”选项卡。“添加权限”->“ Microsoft Graph ”。 在此处输入图像描述

选择“应用程序权限”->“ User.Read.All ”。 在此处输入图像描述

添加权限,不要忘记授予管理员同意。 在此处输入图像描述

然后单击“证书和机密”选项卡->“新客户端机密”。 在此处输入图像描述

现在,回到你的电力自动化。添加一个带有 URI 的“ HTTP ”操作,如下图所示: 在此处输入图像描述

在“ HTTP ”操作的底部,添加一个新参数“ Authentication ”。在“ Tenant ”输入框中填写您的租户 id,在“ Client ID ”输入框中填写注册应用的“Application(客户端)ID”,在“ Secret ”输入框中填写您的客户端密码上面生成。 在此处输入图像描述

运行电源自动化后,您可以获得该字段otherMails

于 2021-02-04T08:41:33.110 回答