Utilisation de l'authentification basée sur un jeton avec l'API REST
Les utilisateurs de REST API peuvent s'authentifier en fournissant un nom d'utilisateur et un mot de passe à la ressource REST API login à l'aide de la méthode HTTP POST. Un jeton LTPA est généré pour permettre à l'utilisateur d'authentifier les demandes futures. Ce jeton LTPA a le préfixe LtpaToken2. L'utilisateur peut se déconnecter en utilisant la méthode HTTP DELETE, et peut demander les informations de connexion de l'utilisateur actuel avec la méthode HTTP GET.
Avant de commencer
- Configurez les utilisateurs, les groupes et les rôles pour qu'ils soient autorisés à utiliser le REST API. Pour plus d'informations, voir Configuration des utilisateurs et des rôles.
- Par défaut, le nom du cookie qui inclut le jeton LTPA commence par
LtpaToken2et inclut un suffixe qui peut être modifié lorsque le serveur mqweb est redémarré. Ce nom de cookie aléatoire permet à plusieurs serveurs mqweb de s'exécuter sur le même système. Toutefois, si vous souhaitez que le nom du cookie reste cohérent, vous pouvez spécifier le nom du cookie à l'aide de la commande setmqweb . Pour plus d'informations, voir Configuration du jeton LTPA. - Par défaut, le cookie de jeton LTPA expire au bout de 120 minutes. Vous pouvez configurer l'heure d'expiration du cookie de jeton LTPA à l'aide de la commande setmqweb . Pour plus d'informations, voir Configuration du jeton LTPA.
- Vérifiez que vous utilisez une connexion sécurisée lorsque vous envoyez des demandes REST. Lorsque vous utilisez la méthode HTTP POST sur la ressource
login, la combinaison du nom d'utilisateur et du mot de passe envoyée avec la requête n'est pas cryptée. Par conséquent, vous devez utiliser une connexion sécurisée HTTPS lorsque vous utilisez l'authentification par jeton avec le site REST API. Par défaut, vous ne pouvez pas utiliser HTTP avec l'authentification par jeton LTPA. Vous pouvez permettre au jeton LTPA d'être utilisé par des connexions HTTP non sécurisées en définissant secureLTPA surFalse. Pour plus d'informations, voir Configuration du jeton LTPA. - Vous pouvez demander les informations d'identification de l'utilisateur actuel en utilisant la méthode HTTP GET sur la ressource
login, en fournissant le jeton LTPA pour authentifier la demande. Cette demande renvoie des informations sur le nom d'utilisateur et les rôles affectés à l'utilisateur. Pour plus d'informations, voir GET/login.
Procédure
Exemple
Q1, sur le gestionnaire de files d'attente QM1, avec authentification basée sur un jeton, sur les systèmes Windows :- Connectez-vous et ajoutez le jeton LTPA avec le préfixe
LtpaToken2au magasin de cookies local. Les informations de nom d'utilisateur et de mot de passe sont incluses dans le corps JSON. L'indicateur-cspécifie l'emplacement du fichier dans lequel stocker le jeton:curl -k https://localhost:9443/ibmmq/rest/v3/login -X POST -H "Content-Type: application/json" --data "{\"username\":\"mqadmin\",\"password\":\"mqadmin\"}" -c c:\cookiejar.txt - Créez une file d'attente. Utilisez la méthode HTTP POST avec la ressource mqsc, en vous authentifiant avec le jeton LTPA. Le jeton LTPA avec le préfixe
LtpaToken2est extrait du fichier cookiejar.txt à l'aide de l'indicateur-b. La protection CSRF est assurée par la présence de l'en-tête HTTPibm-mq-rest-csrf-token:curl -k https://localhost:9443/ibmmq/rest/v3/admin/admin/action/qmgr/QM1/mqsc -X POST -b c:\cookiejar.txt -H "ibm-mq-rest-csrf-token: value" -H "Content-Type: application/json" --data "{\"type\": \"runCommandJSON\", \"command\": \"define\", \"qualifier\": \"qlocal\", \"name\": \"Q1\"}" - Déconnectez-vous et supprimez le jeton LTPA du magasin de cookies local. Le jeton LTPA est extrait du fichier cookiejar.txt à l'aide de l'indicateur
-b. La protection CSRF est assurée par la présence de l'en-tête HTTPibm-mq-rest-csrf-token. L'emplacement du fichier cookiejar.txt est spécifié par l'indicateur-cafin que le jeton LTPA soit supprimé du fichier:curl -k https://localhost:9443/ibmmq/rest/v3/login -X DELETE -H "ibm-mq-rest-csrf-token: value" -b c:\cookiejar.txt -c c:\cookiejar.txt