WSO2 APIM配置有效SSL后Publisher端调用API报无效凭证错误
解决WSO2 APIM中Publisher Try Out调用API报"Invalid Credentials"(900901)的问题
问题场景
为WSO2 APIM配置域名SSL证书后,开发者门户可正常响应,但在Publisher端使用Try Out功能调用API时,返回以下错误:
{ "code": "900901", "message": "Invalid Credentials", "description": "Invalid Credentials. Make sure you have provided the correct security credentials" }
排查JWT令牌发现iss字段存在不一致:
- Publisher生成的令牌:
"iss": "https://domain_name.com:9443/oauth2/token" - 开发者门户生成的令牌:
"iss": "https://IP_machine:9443/oauth2/token"
问题原因
WSO2 APIM的API网关在验证JWT令牌时,会校验iss(签发者)字段是否与自身配置的OAuth2签发者一致。当前场景下,网关仍以机器IP作为签发者值,但Publisher已使用域名生成令牌,导致签发者不匹配,触发凭证无效校验。
解决步骤
统一网关OAuth2签发者配置
修改<APIM_HOME>/repository/conf/deployment.toml文件,将网关的OAuth2签发者设置为域名:[apim.oauth_config] issuer = "https://domain_name.com:9443/oauth2/token"更新Publisher端点配置
在deployment.toml中确保Publisher的内部端点使用域名而非IP:[apim.publisher] url = "https://domain_name.com:9443/publisher" [apim.gateway.environment] service_url = "https://domain_name.com:${mgt.transport.https.port}/services/"重启APIM服务
保存配置文件后,重启WSO2 APIM服务,使所有配置生效。验证配置效果
再次通过Publisher的Try Out生成JWT令牌,检查iss字段是否与网关配置的签发者一致,随后调用API验证是否正常响应。
补充:若此前已有发布的API,建议重新发布或同步网关配置,确保网关更新签发者验证规则。
内容的提问来源于stack exchange,提问作者Vikas Patil
相关产品推荐
相关产品推荐

