如何获取本地部署的铂金版Anypoint Platform访问令牌?
问题
我需要获取部署在本地服务器、拥有铂金订阅的Anypoint Platform访问令牌,该平台采用混合模式,可正常访问Anypoint Platform内容。使用试用账户凭据调用https://anypoint.mulesoft.com:443/accounts/login时,能正常返回包含access_token的响应:
{"access_token": "9123-4e33-84df-abc124","token_type": "bearer","redirectUrl": "/home/"}
但使用客户端凭据调用同一端点时,返回的却是包含验证链接及request参数的响应,而非访问令牌:
{"url": "https://verify.salesforce.com/verify/","body": {"request": "eyJhFUzI1NiIsInR5cCI6Imp3dCIsImtpZCI6ImFueXBvaW50X2lhbV9wcm9kLWMyYy02NS0xNjYxNzMxMjI0Mjk5IiwidmVyIjoiMS4wIn0.eyJzdHkiOiJUZW5InRydXN0X3ZlcmlmaWVkX2RldmljZXMiOmZhbHNlLCJlbWFpbCI6IlNUaGlydXBhdGhpQEtDU291dGhlcm4uY29tIiw-E_-N4q4hBBkMq5NQ"}}
解决方案
- 切换到客户端凭据流专属端点:
/accounts/login是用户登录专用端点,不兼容客户端凭据模式。应使用Anypoint官方OAuth2令牌端点https://anypoint.mulesoft.com/accounts/api/v2/oauth2/token,通过POST请求传递以下参数:grant_type=client_credentialsclient_id=你的客户端IDclient_secret=你的客户端密钥
- 调整IDP授权策略:返回Salesforce验证链接说明组织配置了Salesforce作为身份提供商(IDP),且客户端凭据流被要求额外验证。可在Anypoint Platform组织设置中,修改IDP的客户端授权规则,允许直接为客户端凭据颁发令牌,跳过额外验证步骤。
- 检查客户端权限范围:确认创建的客户端应用已分配必要权限(如
anypoint:platform:access、exchange:read等),权限不足会触发安全验证流程。 - 适配本地混合环境端点:若为本地部署的混合模式,优先使用本地Anypoint Control Plane的令牌端点,而非公网的
anypoint.mulesoft.com,具体地址可查看本地部署文档。 - 临时验证流程(不推荐自动化场景):若无法调整配置,可按返回的
url和body里的request参数,发起POST请求到验证链接,完成验证后获取令牌,但此方式不适用于批量或自动化调用。
内容的提问来源于stack exchange,提问作者Thiru
相关产品推荐
相关产品推荐

