WSO2AM - SAML - 提供的授权授予无效

时间:2017-01-23 22:55:38

标签: wso2 wso2-am wso2carbon

我正在将WSO2AM与我们内部的专有身份提供商(IDP)集成。我正在关注wso2文档" Exchanging SAML2 Bearer Tokens with OAuth2 - SAML Extension Grant Type"。我在API Manager的管理控制台中添加了Identity Providers,并添加了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编码的消费者密钥:消费者秘密。

请告知错误。感谢。

1 个答案:

答案 0 :(得分:3)

由于观众限制不匹配,我遇到了类似的问题。在创建SP具有域名时,saml响应中的受众元素具有IP地址和配置。但AM做一个字符串匹配来检查观众因此失败了。您可以启用调试并解决问题。

在/repository/conf/log4j.prorperties中添加以下行并启动服务器以进行调试

log4j.logger.org.wso2.carbon.identity.oauth2=DEBUG