Artículo
Ricardo Paiva · Mayo 6 Lectura de 8 min

Cómo crear un repositorio FHIR + Configuración del servidor de autorización/de recursos OAuth2 en IRIS for Health - Parte 2

¡Hola, desarrolladores!

En este artículo mostraré cómo configurar un repositorio FHIR + configuración del servidor de autorización/de recursos OAuth2 en IRIS for Health, como continuación del artículo anterior.

En la Parte 1, presentamos los preparativos preliminares, configuramos el servidor de autorización OAuth2 y obtuvimos el token de acceso.
En la Parte 2, mostraremos cómo crear un repositorio FHIR y cómo configurar un servidor de recursos/cliente OAuth2.

La configuración del repositorio FHIR y del servidor de recursos/cliente OAuth2 que haremos hoy se pueden utilizar por separado de la instancia IRIS del servidor de autorización OAuth2 que configuramos en la parte 1 anterior, o pueden tener una ubicación conjunta en la misma instancia. En este artículo, vamos a configurarlo en la misma instancia.

Cómo crear el repositorio FHIR y especificar el nombre del cliente OAuth

En este documento se describe como crear un repositorio FHIR: “Como instalar y configurar un servidor FHIR”.

En la siguiente pantalla, después de crearlo, haza clic en la URL del endpoint /csp/healthshare/fhirserver/fhir/r4 para abrir la pantalla de la configuración.

En la pantalla de configuración, introduce el nombre de configuración del cliente OAuth2 que vas a crear en el campo OAuth Client Name. Si ya has configurado un cliente OAuth2, haz coincidir su nombre.

En este ejemplo, utilizaremos la cadena "FHIRResource". Para cambiarla, haz clic en el botón “Edit” de la pantalla anterior y, a continuación, haz clic en “Update” para guardar los cambios.

Configuración del cliente OAuth2

A continuación, vamos a crear la configuración del cliente OAuth2.

Ve a System Administration → Security → OAuth2.0 en el Portal de Administración y selecciona “Client” en lugar de “Server”, a diferencia de la parte 1 anterior.

En la siguiente pantalla, haz clic en “Create Server Description” para crear la configuración para conectarse al servidor de autorización OAuth2. imagen

Para el endpoint del emisor, la página Server Description introduce el endpoint del servidor de autorización que se configuró en la Parte 1.

A continuación se muestra la pantalla de configuración del servidor de autorización OAuth2 que se configuró en la Parte 1.

imagen

Para la configuración SSL/TLS, introduce la configuración SSL/TLS “SSL4CLIENT” creada en los preparativos de la Parte 1.

Después de introducir los elementos, ¡ejecuta “Discover and Save” para obtener la información del servidor de autorización OAuth2!

imagen

Si el acceso funciona, se mostrará la información obtenida, como se muestra a continuación. Tenga en cuenta que puede ocurrir un error durante este proceso si el certificado SSL que especifica el hostname que preparaste previamente en los preparativos de la Parte 1 no se crea correctamente y no se reconoce.

Atención: Incluso si estás utilizando el archivo docker-container DL en la parte 1 de esta serie, puedes tener problemas para acceder al IRIS container -> Apache container al especificar el hostname. En este caso, puedes resolver el problema introduciendo el hostname y la dirección IP de tu equipo en el archivo docker-compose.yml como extra_hosts, como se muestra a continuación.

  extra_hosts:
    - <yourhostname>:<your ip address>

imagen

imagen

Una vez que hayas guardado la configuración, haga cliz en “Save” para volver a la siguiente página, y después selecciona “Client Configuration” para crear la configuración del repositorio FHIR.

Cómo añadir la configuración del cliente en el cliente OAuth2

Es un título complicado, pero el siguiente paso es agregar la configuración del cliente (la información sobre el repositorio FHIR específico, la aplicación CSP, etc. que quieres conectar al servidor de autorización OAuth2 como un cliente OAuth2) a la configuración del cliente OAuth2 que acabas de crear (con información sobre el servidor de autorización OAuth2 al que conectar).

imagen

En la siguiente pantalla, haz clic en “Create Client Configuration” para mostrar la siguiente pantalla y establecer los elementos necesarios.

Si primero seleccionas client type = Resource Server, la pantalla de entrada será la misma que la siguiente.

Application Name FHIRResource: pon el valor que pusiste para "OAuth Client Name" en la configuración del Repositorio FHIR.
Client Name Es el nombre del cliente que se registrará en el servidor de autorización OAuth2. Puede ser el mismo que el nombre de la aplicación; sin embargo, hemos elegido un nombre diferente.
Description Introduce una descripción para esta configuración.
Type of client Selecciona “Resource Server”.
SSL/TLS configuration Especifica la configuración SSL/TLS que preparaste previamente en los preparativos de la Parte 1.

imagen

Después de completar el formulario, haz clic en el botón “Dynamic Registration and Save” para guardar y registrar el archivo en el servidor. Es un poco confuso, pero cuando el botón cambia de “Dynamic Registration and Save” a “Get Update Metadata and Save”, el registro ha salido bien.

Vamos a echar un vistazo a la información de la configuración del lado del servidor de autorización OAuth2 y comprobaremos si está registrado.

En la página Management Portal→System Administration→Security Management→OAuth2.0→Server, haz clic en “Client Description”, y verás que está registrado, como se muestra a continuación imagen

Confirma que el nombre es el que especificaste en el client name.

En la Parte 1, cuando probamos el acceso desde Postman, copiamos manualmente el ID del cliente y la clave privada que se muestra más abajo en la pantalla del descriptor del cliente. Sin embargo, esta vez, esta información se pasa al lado del cliente durante el proceso de registro dinámico.

Cómo acceder al repositorio FHIR desde Postman usando un token de acceso OAuth2

Por último, ¡es el momento de acceder a él desde Postman!

En primer lugar, necesitamos obtener un token de acceso. El método básico es el mismo que utilizamos al final de la Parte 1, pero necesitamos agregar un parámetro de audiencia para indicar dónde se emitirá el token de acceso.

aud=https://[hostname]/csp/healthshare/fhirserver/fhir/r4

Para añadirlo específicamente en Postman, añadelo como un parámetro a la URL del endpoint del Código de Autorización de la siguiente forma: (Debido a las limitaciones de la pantalla de Postman, no puedes ver todos los parámetros, pero incluye todos los de arriba aud=https://[hostname]/csp/healthshare/fhirserver/fhir/r4 )

Atención: No es necesario cambiar el Client ID y el Client Secret que pusiste en Postman a los emitidos anteriormente en el registro dinámico del servidor de recursos. Utiliza el Client ID y la clave secreta (Secret key) emitida para Postman que añadiste en la parte 1.

Después de obtener el token de acceso, copia su contenido.

En Postman, si dejas TYPE of Authorization como OAuth2, se activará una función para enviar el token de acceso. Sin embargo, en el repositorio FHIR de IRIS for Health, también es necesario enviar la información del usuario y la contraseña de la Basic Auth.

Para ello, al acceder desde Postman, el TYPE of Authorization (lo cual es un poco molesto) debe ser Basic Auth, se debe introducir el nombre de usuario y la contraseña, y se debe enviar el token de acceso como un Parámetro en la solicitud REST para el repositorio FHIR.

De manera detallada: primero, introduce el nombre de usuario y la contraseña como se muestra en la siguiente pantalla. Esta información de usuario se comprobará para ver si coincide con la información de usuario en el sub token de acceso; por eso, debe ser el mismo usuario que la información de usuario que introdujiste cuando obtuviste el token de acceso.

En la pestaña Params, para access_token, escribe el valor del token de acceso que acabas de introducir para el parámetro.

Si acabas de crear el repositorio FHIR, no hay datos en el repositorio, ¡pero puedes solicitar datos de pacientes!

Para la URL de la solicitud (Request URL), escribe https://[hostname]/csp/healthshare/fhirserver/fhir/r4/Patient, y selecciona GET como el método HTTP (como se muestra en la figura anterior).

¡Haz clic en el botón “Send” para enviar la solicitud! Si obtienes el paquete FHIR como se muestra a continuación, ¡has accedido al repositorio FHIR por medio del token de acceso!

Para obtener más información sobre cómo registrar y buscar datos en el repositorio FHIR, consulta la documentación de IRIS for Health y los artículos de la comunidad.

Documentación del Repositorio de recursos para IRIS for Health 2020.3.

¿Cómo fue tu experiencia al acceder al repositorio FHIR?

La configuración descrita en esta serie es la más sencilla. En un proyecto FHIR real, el alcance de los datos que van a ser devueltos dependerá del alcance aprobado por el usuario, y esto deberá ser considerado e implementado.

Os seguiremos informando sobre FHIR.

00
2 0 0 45
Log in or sign up to continue