Vous pouvez vérifier et analyser les jetons JWT par programmation en configurant l'élément de consommateur JWT dans la configuration du serveur et en implémentant les API com.ibm.websphere.security.jwt.JwtConsumer et com.ibm.websphere.security.jwt.JwtToken dans vos applications.
Pourquoi et quand exécuter cette tâche
Pour obtenir des informations sur les API JWT, veuillez vous reporter à la
documentation sur les jetons Web JSON
Java ou à la documentation d'API fournie dans le produit dans le répertoire ${wlp.install.dir}/dev.
Procédure
- Dans le fichier server.xml, ajoutez la fonction jwt-1.0.
<featureManager>
<feature>jwt-1.0</feature>
...
</featureManager>
- Configurez le consommateur JWT en modifiant l'élément jwtConsumer.
Pour obtenir des informations sur les attributs jwtConsumer que vous pouvez configurer,
consultez Consommateur JWT (jwtConsumer).
Lorsque vous ajoutez la fonction
jwt-1.0 et sauvegardez vos modifications,
Liberty ajoute l'élément
jwtConsumer par défaut suivant.
<jwtConsumer id="defaultJWTConsumer">
</jwtConsumer>
Dans cette configuration par défaut, les valeurs suivantes sont implicites :
- L'en-tête alg du JWT consommé est RS256. Vous pouvez configurer cette valeur sur l'attribut signatureAlgorithm.
- Un JWT est considéré comme valide durant les 5 minutes des revendications exp, nbf et iat. Vous pouvez configurer cette valeur sur
l'attribut clockSkew.
Vous pouvez reconfigurer cet élément jwtConsumer par défaut ou créer un ou plusieurs autres éléments jwtConsumer. Chaque élément jwtConsumer
doit avoir une chaîne unique à URL sécurisée spécifiée comme l'attribut id. Si l'ID est manquant, l'élément jwtConsumer n'est pas traité.
Pour les jetons JWT qui sont signés avec RS256 et un certificat X.509, vous devez configurer les attributs
trustStoreRef et
trustAliasName pour pouvoir
localiser la clé de vérification de signature.
- Importez le certificat X.509 de l'émetteur JWT dans le magasin de clés de confiance.
- Dans l'élément jwtConsumer, spécifiez l'ID du magasin de clés de confiance et l'alias de certificat.
<jwtConsumer id="defaultJWTConsumer" trustStoreRef="truststore_id" trustAliasName="certificate_alias">
</jwtConsumer>
- Vérifiez et analysez les jetons JWT par programmation en implémentant les API
com.ibm.websphere.security.jwt.JwtConsumer et com.ibm.websphere.security.jwt.JwtToken dans votre application.
Pour plus d'informations, veuillez vous
reporter à la documentation sur les jetons Web JSON Java.
- Créez un objet JwtConsumer
Si vous ne spécifiez pas un ID de configuration, l'objet est lié à la configuration de
jwtConsumer par défaut.
com.ibm.websphere.security.jwt.JwtConsumer jwtConsumer = JwtConsumer.create();
Si vous spécifiez un ID de configuration, l'objet est lié à la configuration de
jwtConsumer avec l'ID spécifié.
com.ibm.websphere.security.jwt.JwtConsumer jwtConsumer = JwtConsumer.create("jwtConsumer_configuration_id");
- Vérifiez et analysez un jeton JWT en implémentant l'API com.ibm.websphere.security.jwt.JwtToken.
JwtToken jwtToken = jwtConsumer.createJwt("Base64_encoded_JWT_token>");