如何将用户凭据从Microsoft Flow传递至Microsoft Graph?
实现Microsoft Flow用用户凭据访问Microsoft Graph的可行方案
当然有人成功实现过!我之前帮团队解决过类似的需求,想要用用户身份让Flow调用Microsoft Graph获取Planner的额外属性,这里给你几个靠谱的思路:
优先推荐:使用Office 365内置的Graph请求动作
这是最简单且安全的方案,完全不需要额外的应用注册:
- 在Power Automate(原Microsoft Flow)里添加Office 365连接器的「Send an HTTP request to Microsoft Graph」动作。
- 这个动作默认会使用触发Flow的用户的凭据进行OAuth用户身份验证,不需要你手动配置应用权限。
- 只需要填写对应的Graph端点(比如要获取Planner计划详情就填
/planner/plans/{planId}/details)、选择HTTP方法(GET为主),就能直接拿到Planner连接器未提供的属性了。我之前用这个方法获取过Planner任务的自定义扩展字段,亲测稳定有效。 - 注意:确保触发Flow的用户拥有对应的Microsoft Graph权限(比如
Planner.Read.All或Planner.ReadWrite.All,根据你的操作需求),因为请求是基于用户身份发起的,权限不足会导致访问失败。
备选方案:给HTTP连接器配置用户密码授权流
如果一定要用原生HTTP连接器,也可以通过配置用户名密码授权来实现:
- 先在Azure AD中注册一个应用,在「认证」选项里开启「允许公共客户端流」,并在「API权限」中添加需要的Graph权限(选择“委托权限”类型)。
- 在Power Automate的HTTP连接器中,选择OAuth 2.0授权类型,然后选择「User Password Credentials」子类型。
- 填写租户ID、客户端ID、用户的用户名和密码,以及Graph的作用域(比如
https://graph.microsoft.com/.default)。 - 完成配置后,HTTP连接器就会用这个用户的身份去访问Graph了。
⚠️ 注意:这个方案需要存储用户密码,安全性相对较低,而且如果用户密码过期或修改,Flow会直接失效,所以除非有特殊需求,不推荐优先使用。
内容的提问来源于stack exchange,提问作者cyclebot1967
相关产品推荐
相关产品推荐

