Power Automate HTTP触发流:微软身份验证、用户邮箱获取及Graph API连接错误
Power Automate HTTP触发流获取微软用户信息及权限问题解决
原始需求
我创建了一个由HTTP请求触发的Power Automate流,需要获取调用该链接的微软用户信息,请问能否重定向至login.microsoftonline.com或通过其他方式实现?如何读取用户邮箱?
问题更新
尝试通过自定义连接Microsoft Graph API处理此问题,已将“enable onbehalf of login”设置为“true”,但现在出现以下错误:
连接无法用于激活此流,原因可能是该连接无效或您无访问权限。请替换为您可访问的有效连接,或让连接所有者激活流以在此流上下文中与您共享该连接。
一、HTTP触发流获取用户信息的可行方案
方案1:OAuth 2.0授权码流程(重定向到login.microsoftonline.com)
- 配置HTTP触发器的高级设置,启用身份验证,选择OAuth 2.0,并填入对应Azure AD应用注册信息:
- 身份提供者:Azure Active Directory
- 客户端ID:你的Azure AD应用ID
- 范围:
User.Read(读取用户基本信息)或User.ReadBasic.All - 登录URL:
https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/authorize - 令牌URL:
https://login.microsoftonline.com/{租户ID}/oauth2/v2.0/token
- 用户访问流的HTTP链接时,会自动跳转至微软登录页,验证通过后流将获取到用户的访问令牌,后续可调用Microsoft Graph API的
GET /me接口读取用户邮箱等信息。
方案2:使用内置动作直接获取
如果流已在用户身份上下文运行,可直接添加Office 365用户连接器的「获取我的配置文件」动作,无需额外调用Graph API,就能直接获取用户邮箱、姓名等核心信息。
二、自定义Graph API连接权限错误的解决步骤
针对你遇到的连接无效/无权限问题,按以下步骤排查修复:
- 核查Azure AD应用权限配置
- 确保应用已添加
User.Read委派权限,且完成管理员同意(租户级应用需此操作) - 启用"enable onbehalf of login"要求应用配置
oauth2Permissions中间层权限,需确认该权限已正确添加并授权
- 确保应用已添加
- 重新创建授权连接
- 删除当前的自定义Graph API连接,使用具备对应权限的账户(如全局管理员或已获权限的用户)重新创建并完成授权
- 确认流的运行上下文
- 若为手动/特定用户触发的流,需保证连接所有者与流运行者为同一用户,或所有者已将连接共享给运行者
- 若为自动触发的HTTP流,建议使用系统托管身份或服务主体连接,而非个人用户连接
内容的提问来源于stack exchange,提问作者etalon11
相关产品推荐
相关产品推荐

