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.