Artículo
· 2 ago, 2023 Lectura de 6 min

OAuth FHIR

img
fhir

Esta es una aplicación de prueba, que muestra cómo usar el Repositorio FHIR de InterSystems IRIS for Health para crear un Repositorio FHIR con autorización OAuth2. El endpoint FHIR será el servidor de recursos y el Google OpenId será el servidor de autorización.

Requisitos previos

Instalación

Configuración de Google Cloud Platform

Esta parte está inspirada en el artículo Adding Google Social Login into InterSystems Management Portal de yurimarx Marx en la Comunidad de Desarrolladores.

  1. Cread un nuevo proyecto en Google Cloud Platform

  2. Arriba, haced clic en "Select a project":

img

  1. Haced clic en el botón NEW PROJECT:

img

  1. Cread un proyecto de prueba para este artículo, llamado InterSystemsIRIS y haced clic en el botón CREATE:

img

  1. Id arriba otra vez y seleccionad el enlace InterSystemsIRIS en la tabla:

img

  1. Ahora el proyecto seleccionado es el que está en uso:

img

  1. Arriba, en el campo de búsqueda, escribid "credentials" y escoged "API credentials" (la tercera opción en esta imagen):

img

  1. En la parte superior de la página, haced clic en + CREATE CREDENTIALS y elegid la opción OAuth 2.0 Client ID:

img

  1. Ahora haced clic en CONFIGURE CONSENT SCREEN:

img

  1. Escoged la opción External (cualquier persona con una cuenta de Gmail puede usarlo) y haced clic en CREATE:

img

  1. En Edit app registration, completad los campos de la siguiente manera:
    App Information (utilizad vuestro email para el correo de soporte a usuario):

img

  1. Para dominios autorizados, no es necesario especificar nada, porque esta prueba usará localhost. Añadid vuestro email en el campo "developer contact information" y haced clic en SAVE AND CONTINUE:

img

  1. Haced clic en ADD OR REMOVE SCOPES y marcad los siguientes scopes, desplazaos por el cuadro de diálogo y haced clic en el botón UPDATE:

img

  1. Incluid vuestro email en la lista de Test users (usando el botón +ADD USERS) y haced clic en el botón SAVE AND CONTINUE:

img

  1. El asistente muestra el resumen de los campos completados. Desplazaos hacia abajo y haced clic en el botón BACK TO DASHBOARD.
  2. Ahora, es el momento de configurar las credenciales de este nuevo proyecto. Seleccionad la opción Credentials:

img

  1. Haced clic en + CREATE CREDENTIALS y después en OAuth client ID:

img

  1. Seleccionad la opción Web application y completad los campos así:

img

Utilizaremos Postman para la demo, pero si queréis usar la aplicación de prueba, tendréis que añadir los siguientes URIs de redireccionamiento, lo mismo se aplica para los orígenes en JavaScript.

  1. Haced clic en CREATE y copiad los valores del Client ID y el Client Secret:

img

Hemos terminado la configuración de la Google Cloud Platform.

Configuración de la aplicación de prueba

  1. Clonad este repositorio:
git clone https://github.com/grongierisc/iris-oauth-fhir
  1. Generad la imagen Docker:
docker-compose build
  1. Estableced el Client Id y el Client Secret de la última parte de (Configuración de Google Cloud Platform) en un nuevo archivo llamado secret.json en la carpeta misc/auth. Podéis usar secret.json.template como plantilla.
{
    "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. Ejecutad la imagen Docker:
docker-compose up -d

Prueba con Postman

El endpoint es httsp://localhost:4443/fhir/r4/.

  1. Configurad Postman para que use el certificado self-signed,. Consultad la documentación de Postman.

  2. Cread una nueva solicitud en Postman e id a la pestaña Authorization. En el campo "Type", seleccionad OAuth 2.0:

img

  1. En el cuadro de diálogo "Configure New Token", estableced los siguientes valores:

Access token url: https://accounts.google.com/o/oauth2/token
Scope: openid
Client Id y Client Secret: los que tenéis de Google Cloud Platform.

img

  1. Haced clic en "Get new access token" y seréis redirigidos a la página de inicio de sesión de Google:

img
img

  1. Utilizad el token para obtener la lista de pacientes:

img

  1. En el campo Use Token type, seleccionad ID Token y haced clic en Use Token:

img

  1. Obtendréis la lista de pacientes:

img

¡Espero que os haya resultado útil!

En la siguiente parte trabajaremos con Kubernetes y el repositorio FHIR. ¡Estad atentos!

Comentarios (0)1
Inicie sesión o regístrese para continuar