Connexion initiale
La première requête doit être un login dans un domaine spécifique afin d’obtenir un token (bearer).
Ce token devra ensuite être fournit dans les header des requêtes subséquentes.
| Paramètre | Type | Requis | Description |
|---|---|---|---|
user |
String | Oui | Nom d’utilisateur. |
password |
String | Oui | Mot de passe. |
domainId |
String | Oui | Domaine d’authentification. |
La requête ci-dessous permet de s’authentifier avec les paramètres mentionnés:
curl --insecure -v \
'https://<host>/SNV4SRV-ws-war/api/v1/login?user=<user>&password=<password>&domainId=<domain>'
En ligne de commande, attention à bien mettre l’URL entre guillemets ('), sinon cela ne fonctionnera pas car le & est utilisé pour lancer un processus en arrière-plan.
Si l’authentification est passée, le serveur renverra le code HTTP 200 ainsi que le message suivant:
{"message":"logged in domain <domain>"}
En cas d’erreur d’accès (codes 401 ou 403), les éléments suivants doivent être vérifiés:
- le nom d’utilisateur et mot de passe sont corrects (et ont été correctements échappés en ligne de commande).
- l’utilisateur est actif dans SYS02 (ou dans l’ActiveDirectory).
- l’accès à l’API a été activé en SYS22.
Il n’y a pas de paramètre spécial pour qu’un utilisateur ait accès à l’API. Si l’utilisateur peut se connecter à SAINet (via le client riche), alors il a accès l’API.
Dans la réponse HTTP retournée, il y a 2 valeurs retournées dans les en-têtes (headers):
| Cookie | Description |
|---|---|
Sai-Server-Instance |
Nom de l’instance sur lequel la requête a été faite. Cette valeur doit être précisée dans les appels, notamment dans le cas de multi-instances. S’il n’y a qu’une seule instance, ce header n’est pas nécessaire. |
Sai-Bearer-Token |
Token d’authentification pour les appels. Ce token doit être ensuite passé dans le header Authorization sous la forme Authorization: Bearer <token>. Ce header est nécessaire pour tous les prochains appels. |
Les en-têtes se présentent comme suit dans la requête d’authentification (grâce à l’option -v de cURL):
< sai-bearer-token: ZXlKMGVYQWlPaUpLVjFRaUxDSmxZDVySV9Fa3pmMA==
< sai-server-instance: NA
Il suffit de reprendre les valeurs ci-dessus dans les requêtes suivantes:
curl --insecure \
-H "Sai-Server-Instance: NA" \
-H "Authorization: Bearer ZXlKMGVYQWlPaUpLVjFRaUxDSmxZDVySV9Fa3pmMA==" \
'https://<host>/SNV4SRV-ws-war/api/v1/SYS02'
L’option -v génère du texte parasite à l’intérieur de la réponse JSON, le rendant invalide et empêchant son formatting. Il ne faut donc l’utiliser que lors du login afin de récupérer le token d’authentification.