« Annuaire OAuth2 » : différence entre les versions

De Wiki1000
Aucun résumé des modifications
Aucun résumé des modifications
 
(27 versions intermédiaires par 2 utilisateurs non affichées)
Ligne 10 : Ligne 10 :
* Vos utilisateurs sont automatiquement connectés lorsqu'ils sont authentifiés sur le fournisseur de l'annuaire.
* Vos utilisateurs sont automatiquement connectés lorsqu'ils sont authentifiés sur le fournisseur de l'annuaire.


Vous devrez cependant déclaré explicitement les utilisateurs dans l'Administration 1000 pour les autoriser.
Vous devrez cependant déclarer explicitement les utilisateurs dans l'administration 1000 pour les autoriser.


{{tip|Les annuaires OAuth sont le pendant dans le monde Web des annuaires d'Entreprise de type LDAP ou AD, ils prennent en charge la fonction authorisation mais pas la fonction autorisation.}}
{{tip|Les annuaires OAuth sont le pendant dans le monde Web des annuaires d'Entreprise de type LDAP ou AD, ils prennent en charge la fonction authentification mais pas la fonction autorisation.}}


===Cas d'utilisation standards===
===Cas d'utilisation standards===
Ligne 18 : Ligne 18 :
Par exemple si vous mettez en oeuvre l'annuaire Google :
Par exemple si vous mettez en oeuvre l'annuaire Google :


Lors de la première connexion d'un utilisateur au Service 100
Lors de la première connexion d'un utilisateur au Service 1000
* Il est redirigé sur la page de connexion Google
* Il est redirigé sur la page de connexion Google
* Il doit alors autoriser le Service 1000 à accéder à ses informations d'identification.
* Il doit alors autoriser le Service 1000 à accéder à ses informations d'identification.
Ligne 33 : Ligne 33 :
* Il ne pourra plus se connecter car bien que authentifié il ne sera pas autorisé.
* Il ne pourra plus se connecter car bien que authentifié il ne sera pas autorisé.


===Prés requis===
===Pré-requis===
La mise en oeuvre d'un annuaire OAuth2 nécessite que vous enregistriez votre Service 1000 auprès de l'annuaire OAuth2. Les informations mises en oeuvre au cours de cette étapes sont généralement :  
La mise en oeuvre d'un annuaire OAuth2 nécessite que vous enregistriez votre Service 1000 auprès de l'annuaire OAuth2. Les informations mises en oeuvre au cours de cette étapes sont généralement :  


* Une URL de call back pointant sur votre Service 1000  
* Une URL de rappel pointant sur votre Service 1000  
* Un identifiant ClientID  
* Un identifiant ClientID  
* Un secret client associé à cet identifiant  
* Un secret client associé à cet identifiant  


L'URL de call back que vous fournissez à l'annuaire est une URL pointant sur votre Service 1000, bien que cela ne soit pas indispensable au protocole, cette URL doit généralement être publique. Si votre Service 1000 n'est pas publique, vous pouvez mettre en oeuvre un serveur intermédiaire publique se chargeant de la redirection.
L'URL de rappel que vous fournissez à l'annuaire est une URL pointant sur votre Service 1000, bien que cela ne soit pas indispensable au protocole, cette URL doit généralement être publique. Si votre Service 1000 n'est pas public, vous pouvez mettre en oeuvre un serveur intermédiaire public se chargeant de la redirection.


Voici par exemple le code d'un service node.js réalisant la redirection nécessaire :
===Mise en oeuvre===
 
====Créer une application oAuth2====
 
La création d'une application oAuth2 permet d'obtenir le ''clientId'' et le ''clientSecret'' nécéssaires au fonctionnement de l'authentification.
 
* Choisir comme type d'application "Application web"
* Renseigner dans l'annuaire l'adresse de rappel qui doit être http://[hôte_public]/oauth2_success.l1000'}}
* Exemple d'url de configuration
 
[https://cloud.google.com/console Google][[image:paramgoogle.png|thumb]]
 
 
[https://account.live.com/developers/applications LiveId][[image:paramliveid.png|thumb]]
 
 
[https://developers.facebook.com/apps Facebook][[image:paramfacebook.png|thumb]]
 
====Paramétrer l'annuaire dans la console d'administration====
 
* Le service 1000 dispose d'une adresse publique
 
Il suffit de renseigner
 
* le "clientID"
* le "clientSecret".
 
 
* Le service 1000 ne dispose pas d'une adresse publique
 
Ce cas d'utilisation n'est pas recommandé.[[Annuaire_OAuth2_nonpublic|un paramétrage supplémentaire est nécessaire]]
 
 
[[image:annuaire_oauth2.png]]
 
* Le fournisseur n'est pas encore paramétré
 
Il faut renseigner les paramètres annuaires afin de permettre à Sage 1000 de récupérer le nom prénom et courriel de l'utilisateur
 
Il faut ensuite modifier le fichier "/1000Site/csss/sage.css" pour renseigner l'image à afficher sur la fenêtre de connexion.
 
Le nom de la classe est : "login-" suivi du nom de l'annuaire.
 
[[image:param_css.png]]
 
La fenêtre de connexion affiche les annuaires oAuth2 actifs
 
[[image:login_form.png]]
 
 
 
====Autoriser les utilisateurs====
 
*Autorisation préalable
 
Il est possible d'autoriser préalablement les utilisateurs.
Il faut créer l'utilisateur le lier à l'annuaire et renseigner l'identifiant annuaire.
L'identifiant annuaire correspond au paramétrage annuaire "UserIdPath"
Par exemple si "UserIdPath" retourne l'adresse email de l'utilisateur, il faut renseigner l'adresse email dans l'identifiant annuaire.
 
[[image:param_annuaire_oauth2.png]]
 
{{warning|UserIdPath doit correspondre à une information qui permet d'identifier l'utilisateur (ne pas mettre un prénom dans cette zone)}}
 
*Autorisation à la demande
 
Si un utilisateur souhaite se connecter à l'application mais qu'il n'est pas reconnu, une demande d'autorisation est envoyée aux utilisateurs qui ont le rôle d'administration des utilisateurs et dossier.
 
Les rôles nécessaires pour recevoir le message :
 
[[image:role_admin.png]]


<source lang="javascript">
var express = require('express')
  , appPort = process.env['app_port'] || 3000
  , app = express();   


app.get('/redirect', function(req, res){
Le traitement des demandes d'autorisation :
  if (req.query.code!='')
 
res.redirect('https://'+req.query.host+'/server/'+req.query.service+'/sso_success.l1000?code='+req.query.code);   
[[image:demande_autorisation.png]]
  else
 
res.redirect('https://'+req.query.host+'/server/'+req.query.service+'/sso_failure.l1000?error='+req.query.error);
Cet assistant crée l'utilisateur, le lie à l'annuaire, et l'ajoute aux utilisateurs autorisés du dossier choisi.
});
app.listen(appPort);
console.log("Express server listening on port %d", appPort);
</source>


===Mise en oeuvre===


===Multi-annuaires===
Une fois la demande acceptée un message est envoyé au demandeur.


===Diagramme de séquence===
===Diagramme de séquence===
[[image:OAuth2 Sequence Diagram.jpg]]
[[image:OAuth2 Sequence Diagram.jpg]]


[[Category:Latest]]
Voir aussi : [[Annuaire_OAuth2_AZD|Paramétrer Azure Active Directory]]
 
[[Category:Administration]]
[[Category:Administration]]
[[Category:Annuaires]]
[[Category:OAuth2]]

Dernière version du 12 février 2018 à 09:20

Les annuaires OAuth2 sont des annuaires de gestion d'identités implémentant le protocole d'authentification OAuth2

De nombreux fournisseurs de service implémentent OAuth2 comme par exemple Google ou Microsoft LiveID

Les bénéfices de l'utilisation d'un annuaire OAuth2 sont les suivants :

  • Vous n'avez plus besoin de gérer les identités des utilisateurs.
  • Vos utilisateurs se connectent avec les identifiants du fournisseurs de l'annuaire.
  • Vos utilisateurs sont automatiquement connectés lorsqu'ils sont authentifiés sur le fournisseur de l'annuaire.

Vous devrez cependant déclarer explicitement les utilisateurs dans l'administration 1000 pour les autoriser.

Tip : Les annuaires OAuth sont le pendant dans le monde Web des annuaires d'Entreprise de type LDAP ou AD, ils prennent en charge la fonction authentification mais pas la fonction autorisation.

Cas d'utilisation standards

Par exemple si vous mettez en oeuvre l'annuaire Google :

Lors de la première connexion d'un utilisateur au Service 1000

  • Il est redirigé sur la page de connexion Google
  • Il doit alors autoriser le Service 1000 à accéder à ses informations d'identification.
  • Il est ensuite redirigé sur le Service 1000
  • Il est connecté.

Lors des accès suivant au Service 1000:

  • Il est automatiquement connecté au Service 1000 sans passer par la page de connexion.

Si l'utilisateur révoque son autorisation dans la gestion de son compte Google :

  • Au prochain accès au Service 1000 il devra de nouveau se connecter et recommencer la phase d'autorisation.

Si l'administrateur du Service 1000 supprime ou désactive l'utilisateur :

  • Il ne pourra plus se connecter car bien que authentifié il ne sera pas autorisé.

Pré-requis

La mise en oeuvre d'un annuaire OAuth2 nécessite que vous enregistriez votre Service 1000 auprès de l'annuaire OAuth2. Les informations mises en oeuvre au cours de cette étapes sont généralement :

  • Une URL de rappel pointant sur votre Service 1000
  • Un identifiant ClientID
  • Un secret client associé à cet identifiant

L'URL de rappel que vous fournissez à l'annuaire est une URL pointant sur votre Service 1000, bien que cela ne soit pas indispensable au protocole, cette URL doit généralement être publique. Si votre Service 1000 n'est pas public, vous pouvez mettre en oeuvre un serveur intermédiaire public se chargeant de la redirection.

Mise en oeuvre

Créer une application oAuth2

La création d'une application oAuth2 permet d'obtenir le clientId et le clientSecret nécéssaires au fonctionnement de l'authentification.

  • Choisir comme type d'application "Application web"
  • Renseigner dans l'annuaire l'adresse de rappel qui doit être http://[hôte_public]/oauth2_success.l1000'}}
  • Exemple d'url de configuration

Google


LiveId


Facebook

Paramétrer l'annuaire dans la console d'administration

  • Le service 1000 dispose d'une adresse publique

Il suffit de renseigner

* le "clientID" 
* le "clientSecret".


  • Le service 1000 ne dispose pas d'une adresse publique

Ce cas d'utilisation n'est pas recommandé.un paramétrage supplémentaire est nécessaire


  • Le fournisseur n'est pas encore paramétré

Il faut renseigner les paramètres annuaires afin de permettre à Sage 1000 de récupérer le nom prénom et courriel de l'utilisateur

Il faut ensuite modifier le fichier "/1000Site/csss/sage.css" pour renseigner l'image à afficher sur la fenêtre de connexion.

Le nom de la classe est : "login-" suivi du nom de l'annuaire.

La fenêtre de connexion affiche les annuaires oAuth2 actifs


Autoriser les utilisateurs

  • Autorisation préalable

Il est possible d'autoriser préalablement les utilisateurs. Il faut créer l'utilisateur le lier à l'annuaire et renseigner l'identifiant annuaire. L'identifiant annuaire correspond au paramétrage annuaire "UserIdPath" Par exemple si "UserIdPath" retourne l'adresse email de l'utilisateur, il faut renseigner l'adresse email dans l'identifiant annuaire.

Attention : UserIdPath doit correspondre à une information qui permet d'identifier l'utilisateur (ne pas mettre un prénom dans cette zone)
  • Autorisation à la demande

Si un utilisateur souhaite se connecter à l'application mais qu'il n'est pas reconnu, une demande d'autorisation est envoyée aux utilisateurs qui ont le rôle d'administration des utilisateurs et dossier.

Les rôles nécessaires pour recevoir le message :


Le traitement des demandes d'autorisation :

Cet assistant crée l'utilisateur, le lie à l'annuaire, et l'ajoute aux utilisateurs autorisés du dossier choisi.


Une fois la demande acceptée un message est envoyé au demandeur.

Diagramme de séquence

Voir aussi : Paramétrer Azure Active Directory