Setup SSO with an hospital

Cette page décrit les configurations et process à mettre en oeuvre pour activer le SSO sur l'application Rofim.

Cette solution permet d’authentifier les utilisateurs de l’application Rofim auprès de la structure où ils travaillent habituellement, voire même d’éviter les pages de connexion si l’utilisateur est déjà connecté sur un des services de sa structure.

Glossaire

TermeDescription
IdPFournisseur d'identité qui stocke et gère les identités numériques des utilisateurs.
SSOService d'authentification permettant d'utiliser un seul identifiant pour plusieurs applications.
OpenIDConnectProtocole d'identité basé sur OAuth 2.0.
OTP SMSMot de passe à usage unique envoyé par SMS.
Relying Party (RP)Fournisseur de service nécessitant une preuve d'identité.
OpenID Connect Provider (OP)Serveur d’authentification OpenID.
ClaimClés/valeurs normalisées contenant les informations de l’utilisateur.

Pré-requis techniques

La solution de SSO Rofim est basée et compatible OpenIDConnect, ainsi le partenaire doit fournir des services compatibles OpenIDConnect.

L’IdP du partenaire doit etre exposé sur internet, et les pages de connexion affichées aux utilisateurs doievent etre exposées sur internet également.

Sécurité

Le partenaire devient responsable de la connexion des utilisateurs à l’application Rofim. Toutes les meilleurs pratiques et controles (audit, pentest, etc..) devront être mis en oeuvre par le partenaire pour garantir la sécurité des accés à Rofim via le SSO.

Conformément aux meilleurs pratique de sécurité, l’accés a Rofim requiert une double authentification. Celle ci peut etre faite par le partenaire ou par Rofim :

  • Le partenaire réalise déja une double authentification sur sonIdP : dans ce cas, Rofim fait confiance au partenaire et le user est directement connecté à l’application

  • Le partenaire ne réalise pas de double authentification sur sonIdP : dans ce vas, Rofim réalisera une double authentification via OTP SMS sur son IdP.

Mise en œuvre du SSO

Principes

Rofim intervient comme une Relying Party (RP) auprès du OpenID Connect Provider (OP) du partenaire. Le schéma ci-dessous décrit les flux mis en oeuvre entre Rofim et le Partenaire :


Données de configuration à fournir par le partenaire

Pour configurer la solution de SSO, les données suivantes doivent etre echangées entre Rofim et le partenaire :

DonnéeValeur
URL d’autoconfigurationURL d'autoconfiguration configuré sur l'IdP du partenaire
ClientIDID du client configuré sur l'IdP du partenaire
Secret (via lien sécurisé)Secret de sécurisation des échanges. Doit être fourni via lien sécurisé.
Date d’expiration du secretDans le cas ou les secrets expirent, la date d'expiration doit être fournie.
Libellé de connexionLibellé affiché sur certains écrans : "Se connecter avec ...."

Données de configuration à fournir par Rofim

Pour configurer le client, les informations ci-dessous sont à fournir par Rofim au partenaire :
| Redirect URI | URL de redirection après le login |

Scope

Rofim utilise les scopes suivant pour réaliser la connexion, ils doivent etre autorisé dans l’IdP

DonnéeRequisValeur
openidOuiNécessaire pour l’authentification
emailOuiObligatoire car l’email est requis pour la connexion. L'email sert de clé de réconciliation entre le compte utilisateur Rofim et l'IdP client
profileOuiAutres données
phoneNonTéléphone

Claims

L’inscription des utilisateurs peut être optimisée par la récupération de données déjà présentes sur l'IdP du partenaire. Les données utiles à Rofim sont décrites ci-dessous, le partenaire doit décrire si elles sont disponibles et dans quel claim :

DonnéeNom du claimScopeObligatoireCommentaire
last_namefamily_nameprofileOuiNom de famille
first_namegiven_nameprofileOuiPrénom
emailemailemailOuiObligatoire car l’email est requis pour la connexion. L'email sert de clés de reconciliation entre le compte utilisateur Rofim et l'IdP client
subsubprofileNonID user coté IdPc client
🚧

Rofim travaille à l’ajout de la gestion d’autre claim (specialité, Finess, ville d'excercice, ...) ces claims pourront être ajoutés dans une future version de cette documentation.

URL de connexion à utiliser dans les outils du partenaire

Pour faciliter la connexion à Rofim, le partenaire peut utiliser un lien de connexion direct qui forcera l’utilisation de son IdP. L’URL sera fournie par Rofim dans les phases de mise en place du SSO. Cette URL se base sur les éléments de configuration décrit ci dessus.

Déconnexion

Si le partenaire fournit une Logout URL, Rofim propagera la déconnexion à l’IdP du partenaire. Dans ce cas c’est au partenaire de gérer si il souhaite déconnecter toutes les sessions de l’utilisateur ou seulement celle sur Rofim.

Cas d’usage

Cette section décrit le comportement de l’application Rofim sur les principaux cas d’usage :

  • Inscription via SSO pour un nouvel utilisateur
  • Inscription via SSO pour un utilisateur déjà présent sur Rofim
  • Connexion via SSO avec double authentification sur l’IdP
  • Connexion via SSO avec double authentification sur Rofim
  • Déconnexion

Inscription via SSO

Inscription via SSO pour un utilisateur déjà présent sur Rofim

Dans ce cas, le rapprochement est fait via l’adresse email de l’utilisateur. Le workflow est le suivant :

Si l’utilisateur confirme le lien entre les 2 comptes, il peut alors se connecter via SSO à travers les liens contextuels ou les boutons mis à disposition sur les logiciels de son établissement, ou alors se connecter directement via le mot de passe qu'il avait précédemment saisi sur son compte.

Connexion via SSO avec double authentification sur l’IdP

Connexion via SSO avec double authentification sur Rofim

Déconnexion

Fichier de configuration

Ce fichier sera fourni par Rofim et les cellules en jaune devront être complétées.

Exemple de configuration

Cette exemple est basé sur la solution Entra de Microsoft.

Création de l’application cliente

  • Se rendre dans Entra, puis :
  • Application → App Registration → New registration

Renseigner alors les valeurs suivantes :

  • Nom : rofim.doctor app ou un autre nom respectant les règles de votre établissement
  • Type de compte supporté : dépendant de votre architecture Azure, dans cette exemple Single tenant est choisi.
  • Redirect URI : sélectionner Web dans la zone déroulante et mettre l’URL de redirection fournie par Rofim dans cette zone.
  • Puis valider les saisies.

Création du secret

Dans l’application créée, cliquer sur Add a certificate or secret


Cliquer sur New Client Secret et renseigner les valeurs suivantes :

  • Description : rofim.doctor client secret
  • Expires : 730 jours, ou la valeur qui correspond à votre politique de sécurité

La valeur du secret est à envoyer de manière sécurisée à Rofim.

Il est aussi nécessaire de contrôler que les permissions sur les scopes requis présentes, donc notre exemple, aller sur “API Permission” et contrôler que User.Read est présent, sinon l’ajouter


La dernière étape consiste à envoyer à Rofim les informations nécéssaire :

  • le Secret vu plus haut (à envoyer de manière sécurisée)

  • le Client ID entouré en rouge ci dessous

  • L’URL d’auto configuration

Cette configuration permet à tous les utilisateurs de se connecter a Rofim.

Gestion des accès

Cette partie montre comment limiter l’accès à Rofim à un groupe d’utilisateur.

Cette configuration se fait via l’ajout de groupe ou de user à l’application. Pour ce faire, aller sur “Applications → Enterprise Application” et rechercher l’application que nous venons de créer

Dans le menu “Properties”, passer a “Yes” l’option “Assignment Required”.

Puis dans le menu “Users and groups” vous pouvez ajouter des personnes ou des groupes (par exemple un groupe télémédecine) autorisés à accéder a Rofim.