Power Platform - 记录一个与MFA有关的错误

1. 简单介绍

当前微软已经强制用户试用MFA(Multi-Factor Authentication)方式去登录Azure portal以及Microsoft 365 admin center等平台。配置了MFA后一段时间,发现自己使用的一些Power Automate flows出现了一些报错,比如下面这个flow,本人打算访问Power BI rest API去获取特定dataset的刷新历史记录,在调用Power BI Rest API之前需要得到一个access token,结果出现了与MFA有关的报错。

Get Access Token Action配置如下,试用的grant type是 password的方式,

具体的错误信息如下所示,可以看出和MFA确实有关联,

Error description如下,

AADSTS50076: Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access '00000009-0000-0000-c000-000000000000

下面记录一下本人采用的解决方法,

2.具体说明

由于在获取access token的时候,本人使用了grant type是password的方式,使用的username刚好是在MFA相关的Microsoft Extra Conditional Access policy影响范围的。

note, 可以点击Conditional Access 链接进入到条件访问界面进行policy的查看和配置。

2.1 解决方法

找到一个没有受到MFA影响的Microsoft Extra ID User或者配置Conditional Access policy将某个user排除MFA的影响。

2.1.1 配置条件访问策略

如下步骤为更改现有的MFA policy将特定user排除

  1. 访问Conditional Access policy的页面,点击特定的policy,
  1. 在policy的配置界面中,点击 Users or agents (Preview) section,在弹出的右侧面板中,选择Exclude->Users and groups,然后添加特定的用户即可,
2.1.2 修改Power Automate

修改报错的Power Automate flow,将用来获取access token的username配置为特定的user(已经被MFA policy排除),最后保存flow。

2.1.3 测试Flow

运行flow,发现又能正常获取到access token了,如下所示,

返回到的Fabric dataset refresh history如下图所示,

2.1.4 其他
2.1.4.1 权限分配

用来获取access token的特定用户帐户需要配置一下权限,如下图所示,

  1. 在Microsoft Fabric workspace中,点击特定semantic model的...上下文菜单,然后点击Manage permissions选项,
  1. 在出现的权限分配界面中,点击Add user按钮,
  1. 在弹出的Grant people access窗口中,输入用户的email,然后点击Grant access按钮,如下图所示,
  1. 最后权限添加成功,
2.1.4.2 其他测试

如果改为需要MFA登录的用户,则之前的错误又重新出现,

3.总结

本文简单介绍了一下Power Automate flow 运行过程中与MFA有关的一个错误及其解决方法。如果是以username/password方式来获取access token,可以更改Conditonal access policy或者单独新建一个Conditional access policy对特定的用户进行排除。获取access token的帐号可以使用专门的service account,这样可能更为安全一些。MFA相关的问题可能有更好的解决方法。关于Conditional Access具体信息,还可以参考mslearn文章

note, 由于微软已经强制要求用户需要使用MFA进行Azure portal, Microsoft 365 admin center等平台的登录,上述用来获取access token的特定用户是登录不了Azure portal等平台的。

本文如果哪里有错误,麻烦告之,谢谢谢谢!