Article
· Sept 12, 2023 7m de lecture

Oauth de FHIR

img
fhir

Il s'agit d'un exemple d'application qui démontre comment utiliser le référentiel FHIR InterSystems IRIS for Health pour construire un référentiel FHIR avec l'autorisation OAuth2, le point de terminaison FHIR sera le serveur de ressources tandis que Google OpenId sera le serveur d'autorisation.

Conditions préalables

Installation

Configuration de la plateforme Google Cloud

Cette partie est inspirée de l'article Ajout de connexion du réseau social Google dans le Portail de gestion d'InterSystems rédigé par yurimarx Marx dans le cadre de la communauté InterSystems.

  1. Créez un nouveau projet dans la plateforme Google Cloud

  2. Dans l'en-tête, cliquez sur Select (sélectionner un projet ) :

img

  1. Cliquez sur le bouton NEW PROJECT (nouveau projet) :

img

  1. Créez un projet d'exemple pour cet article appelé InterSystemsIRIS et cliquez sur le bouton CREATE (créer) :

img

  1. Accédez de nouveau à l'en-tête et sélectionnez l'hyperlien du projet InterSystemsIRIS créé dans le tableau :

img

  1. Désormais, le projet sélectionné fonctionne :

img

  1. Dans l'en-tête, recherchez les informations d'identification dans le champ "Search" (recherche) et choisissez les identifiants API "API credentials" (troisième option sur cette image) :

img

  1. En haut de l'écran, cliquez sur le bouton + CREATE CREDENTIALS (Créer des informations d'identification) et sélectionnez l'option OAuth 2.0 Client ID (Identifiant du client) :

img

  1. Cliquez ensuite sur la configuration de l'écran de consentement "CONFIGURE CONSENT SCREEN" :

img

  1. Choisissez Externe (toute personne ayant Gmail peut l'utiliser) et cliquez sur le bouton CREATE (créer) :

img

  1. Dans l'enregistrement de l'application Edit (Modifier), remplissez les champs comme suit :
    Les informations sur l'application (utilisez votre adresse électronique pour le courriel de support utilisateur) :

img

  1. Pour les domaines autorisés, il n'est pas nécessaire de définir quoi que ce soit car cet exemple utilisera localhost. Saisissez les informations de contact du développeur en indiquant votre adresse électronique et cliquez sur le bouton SAVE AND CONTINUE (Sauvegarder et continuer) :

img

  1. Cliquez sur ADD OR REMOVE SCOPES (ajouter ou supprimer des champs d'application) et sélectionnez les champs d'application suivants, faites défiler la boîte de dialogue et cliquez sur le bouton UPDATE (mettre à jour) :

img

  1. Ajoutez votre adresse électronique à la liste des utilisateurs du test (à l'aide du bouton +ADD USERS (ajouter des utilisateurs)) et cliquez sur le bouton SAVE AND CONTINUE (sauvegarder et continuer) :

img

  1. L'assistant affiche le Résumé des champs remplis. Faites défiler l'écran et cliquez sur le bouton BACK TO DASHBOARD (retour au tableau de bord).
  2. Il faut maintenant configurer les informations d'identification pour ce nouveau projet. Sélectionnez l'option "Credentials" (informations d'identification) :

img

  1. Cliquez sur le bouton + CREATE CREDENTIALS (Créer des informations d'identification) et sélectionnez l'option OAuth client ID (Identifiant du client OAuth) :

img

  1. Sélectionnez l'option d'application Web et complétez les valeurs des champs comme suit :

img

Nous utiliserons postman pour la démo, mais si vous souhaitez utiliser l'application d'exemple, vous devrez ajouter les URI de la redirection suivante, il est de même pour les origines JavaScript.

  1. Cliquez sur le bouton CREATE (créer) et copiez les valeurs Client ID (identifiant du client) et Client Secret (secret client) :

img

C'est terminé avec la configuration de la plateforme Google Cloud.

Configuration de l'application modèle

  1. Clonez ce dépôt :
git clone https://github.com/grongierisc/iris-oauth-fhir
  1. Construisez l'image docker :
docker-compose build
  1. Définissez Client Id (identifiant du client) et Client Secret (secret client) de la dernière partie de (Configuration de la plateforme Google Cloud) dans un nouveau fichier appelé secret.json dans le dossier misc/auth, vous pouvez utiliser le secret.json.template comme un modèle.
{
    "web": {
        "client_id": "xxxx",
        "project_id": "intersystems-iris-fhir",
        "auth_uri": "https://accounts.google.com/o/oauth2/auth",
        "token_uri": "https://oauth2.googleapis.com/token",
        "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v3/certs",
        "client_secret": "xxxx"
    },
    "other" : {
        "issuer" : "accounts.google.com"
    }
}
  1. Exécutez l'image docker :
docker-compose up -d

Testez-la avec Postman

Le point de terminaison: httsp://localhost:4443/fhir/r4/.

  1. Configurez Postman pour qu'il utilise le certificat auto-signé, voir Documentation Postman.

  2. Créez une nouvelle demande dans Postman et accédez à l'onglet Autorization (autorisation). Sélectionnez OAuth 2.0 comme type :

img

  1. Dans la boîte de dialogue Configure New Token ("Configuration d'un nouveau jeton"), définissez les valeurs suivantes :

Le jeton d'accès à l'url est le suivant : https://accounts.google.com/o/oauth2/token
Scopes (les étendues) : openid
L'identifiant du client et le secret client sont ceux que vous avez reçus de la plateforme Google Cloud.

img

  1. Cliquez sur le bouton "Request Token" (demander un jeton) et vous serez redirigé vers la page de connexion de Google :

img
img

  1. Utilisez le jeton pour obtenir la liste des patients :

img

  1. Sélectionnez dans Token type (type de jeton), ID Token (jeton d'identification) et cliquez sur le bouton Use Token (utiliser le jeton) :

img

  1. Vous obtiendrez la liste des patients :

img

Un voyage passionnant, j'espère que vous l'avez apprécié.

Plus à venir, restez connectés. Nous aborderons kubernetes et le dépôt FHIR dans la prochaine partie.

Discussion (0)0
Connectez-vous ou inscrivez-vous pour continuer