如何在Postman获取Microsoft Graph API的ADFS令牌及服务器配置
ADFS令牌获取与配置问题解答
场景说明
我尝试用Postman获取ADFS令牌:原本为获取微软账户令牌,向https://login.microsoftonline.com/{tenant}/oauth2/token发送POST请求,请求体包含grant_type:password、client_id、client_secret、resource:https://graph.microsoft.com、username、password(客户端对应Azure应用),但这种方法无法获取ADFS账户令牌。之后将请求URL改为POST https://{adfs-domain}/adfs/oauth2/token,收到错误:
Error details: MSIS7065: There is no registered protocol handler to process the incoming request on the /adfs/oauth2/token path
问题1:若在ADFS服务器配置协议,是否可获取包含访问令牌和刷新令牌、可用于Microsoft Graph API的令牌?
可以,但需要满足以下条件:
- 你的ADFS服务器需配置为Azure AD的联合身份提供者(IdP),建立ADFS与Azure AD的信任关系。
- 配置完成后,ADFS颁发的令牌会被Azure AD认可,可用于调用Microsoft Graph API。同时:
- 要确保ADFS颁发的令牌包含Microsoft Graph所需的声明和权限。
- ADFS 2016及以上版本支持OAuth 2.0的刷新令牌流程,旧版本可能不支持。
问题2:如何在ADFS服务器创建或配置协议处理器?是否需要开发自定义处理器,还是ADFS服务器原生支持OAuth2处理器?
ADFS 2016及以上版本原生支持OAuth 2.0协议,无需开发自定义处理器。出现MSIS7065错误通常是由以下原因导致,对应解决方法如下:
- ADFS版本过低:ADFS 2012 R2及更早版本不支持
/adfs/oauth2/token端点,仅支持WS-Federation或SAML协议,需升级到2016或更高版本。 - OAuth 2.0功能未启用:即使是ADFS 2016+,也需手动启用OAuth 2.0支持,可通过PowerShell命令启用:
Enable-AdfsOAuthEndpoint -TargetPath "/adfs/oauth2/token" -Proxy $true - 客户端未在ADFS中注册:必须在ADFS服务器上注册对应客户端应用(而非仅在Azure AD注册),步骤如下:
- 打开ADFS管理控制台,进入应用程序组,创建新的应用程序组。
- 选择对应应用类型(服务器应用/客户端应用),配置客户端ID、重定向URI等信息。
- 为应用分配Microsoft Graph相关的资源权限。
- 端点路径错误:ADFS 2019及以上版本推荐使用v2端点,正确路径应为
https://{adfs-domain}/adfs/oauth2/v2.0/token,确认路径是否匹配你的ADFS版本。
内容的提问来源于stack exchange,提问作者손동진
相关产品推荐
相关产品推荐

