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 ?
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"
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.