AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Autenticación y OAuth

Claves API, OAuth 2.1 con PKCE (lanzamiento independiente SMART on FHIR), id_token de OpenID Connect, ámbitos de paciente SMART v2, tiempos de vida de tokens y el ciclo de vida del consentimiento.

La Plataforma Anpheros acepta tres tipos de credenciales. Cada solicitud lleva exactamente una.

Credencial Aspecto Quién Ve
Clave API sk_test_… (sandbox) / sk_live_… (producción) el servidor de un proyecto los pacientes que el proyecto creó (en sandbox, incluyendo su propia copia de 30 pacientes sintéticos)
Token de acceso OAuth at_… una aplicación actuando en nombre de un paciente bajo un consentimiento solo ese paciente, dentro de los ámbitos SMART concedidos
Token de ID de Firebase JWT un desarrollador en el panel, o un paciente en "Conexiones" sus propias organizaciones / sus propios registros

Envíalo como Authorization: Bearer <credential> (las claves API también funcionan como X-Api-Key).

Claves de API

OAuth 2.1 (SMART on FHIR, lanzamiento independiente)

Descubrimiento: GET /.well-known/smart-configuration.

  1. GET /oauth/authorize?response_type=code&client_id=…&redirect_uri=…&scope=…&state=…&code_challenge=…&code_challenge_method=S256[&purpose=treatment][&patient=<pairwise id>][&lang=ro] Muestra la página de consentimiento alojada. PKCE S256 es obligatorio; el redirect_uri debe registrarse exactamente.
  2. El paciente inicia sesión (Google o correo electrónico a través de Firebase), elige el registro (propio o de un dependiente), la duración (30/90/180/365 días) y autoriza. La plataforma emite un código de un solo uso (10 minutos).
  3. POST /oauth/token con grant_type=authorization_code&code=…&code_verifier=…&redirect_uri=…&client_id=… (los clientes confidenciales añaden client_secret). Respuesta: access_token (30 min), refresh_token (30 días, rotatorio), patient (su ID de par para el registro), grant_id, scope.
  4. Actualización: grant_type=refresh_token. Cada token de actualización es de un solo uso. Presentar un token de actualización usado revoca toda la cadena (detección de robo). Se rechaza una solicitud duplicada en paralelo de una solicitud de actualización y también puede revocar la cadena, así que nunca rote concurrentemente.
  5. Revocar: POST /oauth/revoke (token + client_id). Revocar un token de actualización también revoca sus tokens de acceso.

Las respuestas de token llevan Cache-Control: no-store y Pragma: no-cache, como requiere SMART.

OpenID Connect (openid fhirUser)

Solicite openid fhirUser junto con los ámbitos del paciente y la respuesta del token también contiene un id_token: un JWT firmado con RS256, con iss (la URL base de la plataforma), sub (su ID de par para la persona), aud (su client_id), exp, iat y fhirUser — la URL absoluta del recurso Patient de la persona, legible con el token de acceso que acaba de recibir. El descubrimiento se encuentra en GET /.well-known/openid-configuration; las claves públicas en GET /oauth/jwks (kid en la cabecera del token). El parámetro nonce aún no es compatible (es opcional en el flujo de código de autorización). Se aceptan launch/patient y offline_access; el campo patient de la respuesta del token es el contexto de lanzamiento.

Otros tipos de concesión: client_credentials (clientes confidenciales; se comporta como una clave API), y la concesión de identidad de primera parte (solo clientes de confianza).

Su marca en la página de consentimiento

Una aplicación puede mostrar su logotipo y color de acento en la página de consentimiento alojada. Configúrelos en la consola (Aplicaciones → Marca) o con la API de administración:

PUT /admin/applications/{application_id}/branding
{"logo": "data:image/png;base64,…", "brand_color": "#1D4ED8"}

El resto de la página no cambia: la línea "Protegido por Anpheros Platform", la lista en lenguaje sencillo de lo que solicita la aplicación y el banner de PRUEBA en los proyectos sandbox permanecen, para que las personas siempre puedan saber que el consentimiento lo mantiene Anpheros. Los conectores de IA (MCP) siempre muestran la página de Anpheros sin marca de aplicación.

Ámbitos

Ámbitos de paciente SMART v2: patient/<Type>.<cruds> con un filtro opcional ?category=<code> (el único filtro que el servidor aplica; cualquier otro filtro se rechaza en el momento de la autorización). patient/*.rs lee todo; offline_access añade un token de actualización. La información demográfica del paciente y el directorio siempre son legibles bajo una concesión. Un tipo de recurso fuera de la concesión devuelve 403; un paciente fuera de la concesión devuelve 404.

Ciclo de vida del consentimiento

Los consentimientos caducan automáticamente, pueden ser revocados por el paciente en cualquier momento (pantalla Conexiones / /me), y cada lectura bajo un consentimiento se registra con el ID de la aplicación. Los webhooks consent.granted / consent.revoked notifican al proyecto.

Errores

401 credencial desconocida/expirada · 403 la credencial existe pero puede que no tenga permiso para esta acción · 404 el recurso no existe para ti · 429 límite de peticiones alcanzado (Retry-After). Ver errors.md.

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy