Product-apim: L'authentification JWT ne fonctionne pas en raison d'une sélection de certificat non valide à partir du magasin de confiance client

Créé le 15 nov. 2019  ·  10Commentaires  ·  Source: wso2/product-apim

Nous configurons un nom d'hôte personnalisé avec le certificat approprié généré par l'autorité CA de confiance.

Je peux générer avec succès un jeton JWT à partir d'API Gateway. Sa propriété d'en-tête "x5t" est l'empreinte SHA-1.

Dans le répertoire système /repository/resources/security il y a deux JKS.

  • wso2carbon.jks – avec un alias de paire de clés privée/publique nommé wso2carbon
  • client-truststore.jks – avec un alias de certificat nommé wso2carbon

les deux entrées wso2carbon ont la même empreinte que celle spécifiée dans la propriété d'en-tête JWT. Pourtant, la réponse à l'appel de l'API est de Invalid JWT token. Signature verification failed.

Y a-t-il une configuration que nous aurions pu manquer ou est-ce un bug ?

Affecte3.0.0 TypQuestion

Tous les 10 commentaires

Quelle est la version d'API Manager que vous utilisez ?

@tmkasun 3.0.0. AFAIK utilisant le jeton JWT au lieu de Oauth2 est une nouvelle fonctionnalité introduite. Je parle de "Type de jeton"

image

Dans notre environnement, nous sommes revenus au type de jeton OAUTH, qui fonctionne comme prévu. Le type de jeton JWT est celui avec lequel nous avons eu des problèmes.

Salut,

nous sommes également confrontés au même problème, en utilisant la version v3.1.0-m2.
Nous obtenons une erreur ci-dessous après avoir généré le jeton JWT à partir de l'application et appelé l'API

<ams:fault xmlns:ams="http://wso2.org/apimanager/security">
    <ams:code>900901</ams:code>
    <ams:message>Invalid Credentials</ams:message>
    <ams:description>Invalid JWT token. Signature verification failed.. Make sure you have provided the correct security credentials</ams:description>
</ams:fault>

L'appel suivant imprime ce journal :

TID: [-1234] [] [2019-12-05 15:03:05,267] ERROR {org.wso2.carbon.apimgt.gateway.handlers.security.jwt.JWTValidator} - Invalid JWT token. XXXXXfVgQW9bdmg
TID: [-1234] [] [2019-12-05 15:03:05,270]  WARN {org.wso2.carbon.apimgt.gateway.handlers.security.APIAuthenticationHandler} - API authentication failure due to Invalid Credentials

Comme OP l'a mentionné, OAuth fonctionne bien. J'ai juste un problème avec JWT.

Une mise à jour sur ce problème?
Merci.

Ah, ça va.

J'ai résolu ce problème en suivant ce lien de la documentation:
https://apim.docs.wso2.com/en/latest/Learn/APISecurity/OAuth2DeepDive/AccessTokenTypes/jwt-tokens/#importing -the-public-certificate-into-the-client-trust-store

Merci.

On dirait que le problème est dû à un alias spécifique gateway_certificate_alias - c'est ce que j'ai trouvé dans le code source. Je vais le tester, merci @imchivaa pour le lien vers la documentation mise à jour

Bonjour,
J'ai toujours un problème similaire à celui-ci.
J'utilise un IDP tiers en tant que gestionnaire de clés (IDP basé sur keycloak)
J'ai importé le certificat public dans le truststore sous le gateway_certificate_alias .

Cependant, dans la documentation du gestionnaire de clés tiers, dans la section "Extension du gestionnaire de validation de clé", il est indiqué que la validation des jetons est effectuée dans la méthode getTokenMetaData(), qui n'est jamais appelée dans ma configuration. J'ai besoin de cette méthode pour être appelée afin que mon IDP puisse valider le jeton.

Je suis également confronté au même problème. Nous utilisons APIm 3.1.0 et IS-KM 5.10.0. Nous avons importé le certificat d'IS-KM dans APIm avec gateway_certificate_alias et redémarré mais le problème n'est toujours pas résolu.

Bonjour, je l'ai fait fonctionner, dans mon cas, j'ai du importer le certificat public du royaume en RH-SSO qui signait le jeton jwt sous un alias correspondant à son KID.

La bonne nouvelle est que WSO2 APIM 3.2.0, la version la plus récente au moment d'écrire ces lignes, prend en charge l'ajout de keymanager via son interface d'administration, ce qui facilite le processus, mais je devais quand même importer le certificat comme je l'ai indiqué ci-dessus.

Cette page vous a été utile?
0 / 5 - 0 notes