Intégration SAML 2.0 pour Microsoft ADFS

Cette documentation reprend les informations nécessaires pour permettre à vos utilisateurs de se connecter au backoffice de la plate-forme Agendize avec les identifiants et mots de passe de votre propre référentiel Microsoft

Active Directory Federation Services.


Contactez-nous si vous souhaitez configurer SAML avec Agendize pour votre entreprise.


Note : les identifiants de vos utilisateurs doivent être traités sous la forme d’adresse email (courriel), et non sous la forme de logins.

Principe de fonctionnement

Voici un diagramme reprenant les étapes d’une connexion :

  1. L’utilisateur se connecte au backoffice Agendize
  2. Le navigateur web de l’utilisateur reçoit une redirection vers votre serveur d’authentification
  3. L’utilisateur fournit son identification pour authentification sur votre serveur
  4. Votre serveur génère une réponse à l’authentification (incluant les groupes/rôles de l’utilisateur)
  5. Le navigateur web de l’utilisateur relaye la réponse à Agendize
  6. Le backoffice Agendize retourne le contexte d’accès au navigateur web de l’utilisateur


Éléments nécessaires à l’intégration SSO

1. Collecter vos données IDP (ID Provider) sur Microsoft ADFS

Spécification de vos paramètres

Les informations suivantes doivent nous être transmises :

Conversion du certificat Token-Signing au format PEM

Le certificat de votre service SSO doit être converti au format PEM :

openssl x509 -inform DER -in certificate.cer -out certificate.pem -textopenssl x509 -inform DER -in certificate.cer -out certificate.pem -textopenssl x509 -inform DER -in certificate.cer -out certificate.pem -text
Generic


2. Déclarer l’authentification SAML2 sur votre serveur Active Directory

Nous vous fournissons un fichier de métadonnées de ce type, à déclarer sur votre serveur Microsoft ADFS :


<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" cacheDuration="PT604800S" entityID="saml:agendize" ID="SP_a1107b59-5553-4028-82f3-b1c57356de4c">

<md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">

<md:SingleLogoutService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://app.agendize.com/sso-login?method=logout&amp;provider=SAMLYOURCOMPANY"/>

<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified</md:NameIDFormat>

<md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://app.agendize.com/sso-login?method=login&amp;provider=SAMLYOURCOMPANY" index="1"/>

</md:SPSSODescriptor>
 
</md:EntityDescriptor>
XML


Note : Une URL de callback sera attribuée à votre société pour permettre à votre serveur ADFS de nous transmettre les informations d’un utilisateur lors de son authentification. Son format sera :

https://app.agendize.com/apps.YOURCOMPANY/callback.jsp

3. Correspondance entre les données de votre référentiel et SAML2

Propriétés des utilisateurs

Voici les informations attendues dans la réponse fournie par votre serveur ADFS à l’occasion de l’authentification d’un de vos utilisateurs :

La correspondance de ces informations avec votre propre schéma de données doit au besoin être ajustée au niveau de votre ADFS (voir https://docs.microsoft.com/fr-fr/azure/active-directory/develop/active-directory-saml-claims-customization).

Association de vos utilisateurs à des rôles du backoffice Agendize

Voici les identifiants de groupes que vous pouvez assigner à vos utilisateurs pour leur associer des droits spécifiques sur la plate-forme Agendize :

ID group
Description
ACCOUNT_ADMINISTRATORAdministrateur du compte
ACCOUNT_ANALYTICSGestion des statistiques du compte
ACCOUNT_BILLINGGestion de la facturation du compte
ACCOUNT_BUTTONSGestion des boutons du comptes
ACCOUNT_SCHEDULING_ADMINISTRATORAdministration de la prise de rendez-vous
ACCOUNT_SCHEDULING_READERVisualisation du calendrier de rendez-vous
ACCOUNT_SCHEDULING_SCHEDULDERPlanificateur de la prise de rendez-vous
CALLSGestion des appels téléphoniques
CRMGestion de la base de contacts (Customer Relationship Management)
EMAILSGestion de l'email marketing
FORMSGestion des formulaires
QUEUEGestion de la file d'attente