Web services authentifiés (ws)
De Wiki1000
(Différences entre les versions)
(→Obtenir un identifiant de session) |
(→Déclarer qu'un service requiert une authentification) |
||
(3 révisions intermédiaires par un utilisateur sont masquées) | |||
Ligne 1 : | Ligne 1 : | ||
L'exécution d'une requête Web service nécessite une session pour fournir le contexte d'exécution, par défaut le serveur crée une session anonyme attachée au contexte de l'utilisateur du serveur. | L'exécution d'une requête Web service nécessite une session pour fournir le contexte d'exécution, par défaut le serveur crée une session anonyme attachée au contexte de l'utilisateur du serveur. | ||
− | L'exécution des requêtes Web Services sans authentification est possible cependant l'authentification est nécessaire dans le cadre du multi-société. | + | L'exécution des requêtes Web Services sans authentification est possible cependant '''l'authentification est nécessaire dans le cadre du multi-société'''. |
Différentes solutions sont possibles pour authentifier un Web Service, dans tous les cas il faut fournir au serveur un identifiant de session correspondant à un contexte utilisateur. | Différentes solutions sont possibles pour authentifier un Web Service, dans tous les cas il faut fournir au serveur un identifiant de session correspondant à un contexte utilisateur. | ||
Ligne 11 : | Ligne 11 : | ||
[[Image:authentifier_un_paquet_de_service.jpg]] | [[Image:authentifier_un_paquet_de_service.jpg]] | ||
− | * | + | * Les requêtes publiées comme service requièrent toutes une authentification |
− | + | ||
− | + | ||
− | + | ||
==Obtenir un identifiant de session== | ==Obtenir un identifiant de session== | ||
Ligne 45 : | Ligne 42 : | ||
* Invoquer la méthode du service web d'authentification | * Invoquer la méthode du service web d'authentification | ||
− | :Ce service est accessible à l'adresse suivante : | + | :(Pour un service non interactif) |
+ | |||
+ | :Ce service est accessible à l'adresse suivante : | ||
http://hostname/servicename/server/soap.l1000?wsdl=Sage1000Authentication | http://hostname/servicename/server/soap.l1000?wsdl=Sage1000Authentication | ||
==Passer un identifiant de session== | ==Passer un identifiant de session== | ||
+ | |||
+ | Plusieurs solutions sont possibles pour passer un identifiant de session : | ||
* En affectant sessionId dans l'en tête soap du message | * En affectant sessionId dans l'en tête soap du message | ||
:Cette approche est aisée avec les outils qui consomment les services web | :Cette approche est aisée avec les outils qui consomment les services web | ||
− | * Par un cookie http positionné dans | + | * Par un cookie http positionné dans l’en tête http du message |
:Cette approche peut être délicate à implémenter | :Cette approche peut être délicate à implémenter | ||
− | *Par un paramètre passé dans chaque appel de service. | + | *Par un paramètre passé dans chaque appel de service métier. |
:Cette approche nécessite que le code métier change le contexte de session avant d’exécuter le service. | :Cette approche nécessite que le code métier change le contexte de session avant d’exécuter le service. | ||
Version actuelle en date du 31 décembre 2009 à 09:19
L'exécution d'une requête Web service nécessite une session pour fournir le contexte d'exécution, par défaut le serveur crée une session anonyme attachée au contexte de l'utilisateur du serveur.
L'exécution des requêtes Web Services sans authentification est possible cependant l'authentification est nécessaire dans le cadre du multi-société.
Différentes solutions sont possibles pour authentifier un Web Service, dans tous les cas il faut fournir au serveur un identifiant de session correspondant à un contexte utilisateur.
Déclarer qu'un service requiert une authentification
- Pour un paquet de service local
- Les requêtes publiées comme service requièrent toutes une authentification
Obtenir un identifiant de session
Plusieurs solutions sont possibles pour obtenir un identifiant de session :
- Appel de l'écran de connexion du serveur
- (Pour un service interactif)
- La navigation vers l'url suivante permet à l'utilisateur de saisir ses informations d'authentification dans une fenetre (+ positionnement contexte société le cas échéant).
http://hostname/servicename/server/connect.l1000?cburl=about:blank&SID=NO_SID
- cburl représente une url vers la quelle le serveur vous redirige à l'issue d'une authentification réeussie.
- Lors de cette redirection, le serveur positionne l'identifiant de session comme paramètre de l'url.
- Avec l'appel précédent, l'url vers laquelle on est redirigé est "about:blank?SID=XXXXXX-123456789"
- Il est possible également de récupérer en retour l'identifiant de session positionné par le serveur dans un cookie de la réponse.
- Appel du service REST de gestion des sessions
- (Pour un service non interactif)
- Invoquer la méthode du service web d'authentification
- (Pour un service non interactif)
- Ce service est accessible à l'adresse suivante :
http://hostname/servicename/server/soap.l1000?wsdl=Sage1000Authentication
Passer un identifiant de session
Plusieurs solutions sont possibles pour passer un identifiant de session :
- En affectant sessionId dans l'en tête soap du message
- Cette approche est aisée avec les outils qui consomment les services web
- Par un cookie http positionné dans l’en tête http du message
- Cette approche peut être délicate à implémenter
- Par un paramètre passé dans chaque appel de service métier.
- Cette approche nécessite que le code métier change le contexte de session avant d’exécuter le service.