AnpherosAnpheros PlatformDevelopers

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

Autentificare și OAuth

Chei API, OAuth 2.1 cu PKCE (lansare autonomă SMART on FHIR), OpenID Connect id_token, scopuri SMART v2 pentru pacienți, durate de viață ale token-urilor și ciclul de viață al consimțământului.

Platforma Anpheros acceptă trei tipuri de credențiale. Fiecare cerere transportă exact una.

Credențial Arată ca Cine Vede
Cheie API sk_test_… (sandbox) / sk_live_… (producție) serverul unui proiect pacienții creați de proiect (în sandbox, inclusiv propria copie a 30 de pacienți sintetici)
Token de acces OAuth at_… o aplicație care acționează pentru un pacient sub un consimțământ doar acel pacient, în cadrul scopurilor SMART acordate
Token Firebase ID JWT un dezvoltator în dashboard, sau un pacient în "Conexiuni" propriile organizații / propriile înregistrări

Trimiteți-l ca Authorization: Bearer <credential> (cheile API funcționează și ca X-Api-Key).

Chei API

OAuth 2.1 (SMART on FHIR, standalone launch)

Discovery: 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] Afișează pagina de consimțământ găzduită. PKCE S256 este obligatoriu; redirect_uri trebuie să fie înregistrat exact.
  2. Pacientul se autentifică (Google sau email prin Firebase), alege înregistrarea (proprie sau a unui dependent), durata (30/90/180/365 zile) și permite. Platforma emite un cod unic (10 minute).
  3. POST /oauth/token cu grant_type=authorization_code&code=…&code_verifier=…&redirect_uri=…&client_id=… (clienții confidențiali adaugă client_secret). Răspuns: access_token (30 min), refresh_token (30 zile, rotativ), patient (ID-ul dvs. pereche pentru înregistrare), grant_id, scope.
  4. Refresh: grant_type=refresh_token. Fiecare token de reîmprospătare este de unică folosință. Prezentarea unui token de reîmprospătare utilizat revocă întregul lanț (detecție furt). O duplicare paralelă a unei cereri de reîmprospătare este refuzată și poate, de asemenea, revoca lanțul, deci nu rotiți niciodată concomitent.
  5. Revocare: POST /oauth/revoke (token + client_id). Revocarea unui token de reîmprospătare revocă și token-urile sale de acces.

Răspunsurile token includ Cache-Control: no-store și Pragma: no-cache, așa cum cere SMART.

OpenID Connect (openid fhirUser)

Solicitați openid fhirUser alături de scope-urile pacientului, iar răspunsul token include, de asemenea, un id_token: un JWT semnat cu RS256, cu iss (URL-ul de bază al platformei), sub (ID-ul dvs. pereche pentru persoană), aud (dvs. client_id), exp, iat și fhirUser — URL-ul absolut al resursei Patient a persoanei, care poate fi citit cu token-ul de acces pe care tocmai l-ați primit. Discovery se află la GET /.well-known/openid-configuration; cheile publice la GET /oauth/jwks (kid în antetul token-ului). Parametrul nonce nu este încă suportat (este opțional în fluxul authorization-code). launch/patient și offline_access sunt acceptate; câmpul patient al răspunsului token este contextul de lansare.

Alte tipuri de grant: client_credentials (clienți confidențiali; se comportă ca o cheie API) și grant-ul de identitate first-party (doar clienți de încredere).

Brandul dvs. pe pagina de consimțământ

O aplicație poate afișa logo-ul și culoarea de accent pe pagina de consimțământ găzduită. Setați-le în consolă (Applications → Brand) sau cu API-ul de administrare:

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

Restul paginii nu se modifică: linia "Secured by Anpheros Platform", lista în limbaj simplu a ceea ce solicită aplicația și bannerul TEST pe proiectele sandbox rămân, astfel încât oamenii să poată spune întotdeauna că consimțământul este deținut de Anpheros. Conectorii AI (MCP) afișează întotdeauna pagina Anpheros fără un brand de aplicație.

Scopes

SMART v2 patient scopes: patient/<Type>.<cruds> cu un filtru opțional ?category=<code> (singurul filtru pe care serverul îl impune; orice alt filtru este refuzat la momentul autorizării). patient/*.rs citește totul; offline_access adaugă un token de reîmprospătare. Demografia pacientului și directorul sunt întotdeauna citibile sub un grant. Un tip de resursă din afara grant-ului returnează 403; un pacient din afara grant-ului returnează 404.

Ciclu de viață al consimțământului

Consimțămintele expiră automat, pot fi revocate de pacient în orice moment (ecranul Connections / /me), iar fiecare citire sub un consimțământ este înregistrată cu ID-ul aplicației. Webhook-urile consent.granted / consent.revoked notifică proiectul.

Erori

401 credential necunoscută/expirată · 403 credentialul există, dar s-ar putea să nu aibă permisiunea necesară · 404 resursa nu există pentru tine · 429 limitat la rata specificată (Retry-After). Vezi 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