我正在将 WSO2AM 与我们内部专有的身份提供商 (IDP) 集成。我正在关注 wso2 文档“与 OAuth2 交换 SAML2 承载令牌 - SAML 扩展授予类型 https://docs.wso2.com/display/AM210/SAML+Extension+Grant“。我已经在 API Manager 的管理控制台中添加了身份提供商,并添加了 IDP 的公共证书 .pem。接下来,我在 IDP 上添加了 wso2am 作为服务提供商。我已经从 idp 生成了一个 saml 令牌,现在我准备将其交换为来自 API Manager 的 OAuth 令牌。我收到以下错误:
{
"error": "invalid_grant",
"error_description": "Provided Authorization Grant is invalid"
}
以下是我的 API 调用参数:
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: Basic xxxxxx" -H "Cache-Control: no-cache" -H "Postman-Token: 83896bce-7243-7580-a616-19232c372ff7" -d 'grant_type=urn:ietf:params:oauth:grant-type:saml2-bearer&assertion=xxxxxx&scope=PRODUCTION' "https://<wso2am-host>:9443/oauth2/token"
其中断言是 Base64 编码的 SAML 令牌,授权是 Base64 编码的消费者密钥:消费者秘密。
请告知有什么问题。谢谢。
由于受众限制不匹配,我遇到了类似的问题。 saml 响应中的受众元素具有 IP 地址和创建 SP 时的配置具有域名。但 AM 进行了字符串匹配来检查观众,因此失败了。您可以启用调试并进一步解决问题。
在 /repository/conf/log4j.properties 中添加以下行并启动服务器进行调试
log4j.logger.org.wso2.carbon.identity.oauth2=DEBUG
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)