You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSO2 APIM通过Keycloak Introspect验证令牌返回900901无效凭证

问题分析与解决思路

核心问题

在WSO2 APIM集成Keycloak作为密钥管理器时,令牌自省(Introspect)验证返回900901“无效凭证”,调整声明映射配置后出现“未分类认证失败”,但JWT自验证功能正常。

排查与解决步骤

  1. 校验Keycloak自省端点权限与可用性

    • 确认WSO2 APIM使用的Keycloak客户端已开启Allow Introspection权限,或在客户端Scope中添加了introspect权限
    • 用curl直接测试Keycloak自省端点,验证凭证与令牌有效性:
      curl -X POST https://<keycloak域名>/realms/<领域名>/protocol/openid-connect/token/introspect \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -d "client_id=<APIM配置的客户端ID>&client_secret=<APIM配置的客户端密钥>&token=<待校验的access_token>"
      
    • 若curl返回包含active: true的正常结果,说明Keycloak端配置无问题,问题出在WSO2 APIM的映射或校验逻辑。
  2. 简化WSO2 APIM声明映射配置

    • 移除azp、iss的正则匹配规则:这类正则易因格式不匹配触发校验失败,先仅保留active声明映射——Claim Key设为active,Claim Value设为字符串true(注意大小写)
    • 用户名声明映射直接填写Keycloak返回的对应字段(通常是preferred_username或sub),无需额外正则。
  3. 调整WSO2 APIM密钥管理器自省配置

    • 确认Introspection Endpoint格式正确:https://<keycloak域名>/realms/<领域名>/protocol/openid-connect/token/introspect
    • 勾选Use Basic Auth for Introspection,确保WSO2 APIM用正确的客户端凭证调用自省端点
    • 查看WSO2 APIM的repository/logs/wso2carbon.log,定位“未分类认证失败”的堆栈跟踪,明确具体失败环节(如声明匹配错误、证书不信任等)
  4. 验证令牌本身有效性

    • 确保用于自省的是Keycloak颁发的access_token,而非id_token(id_token通常不支持自省)
    • 检查令牌是否过期或已在Keycloak中被吊销

关键注意事项

  • WSO2 APIM的声明映射对大小写敏感,需与Keycloak自省响应中的字段名完全一致
  • 若Keycloak启用HTTPS,需将其SSL证书导入WSO2 APIM的信任库,避免因证书不信任导致请求失败

内容的提问来源于stack exchange,提问作者muhammad nagah

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 10:27:03