Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Autentizace a OAuth
API klíče, OAuth 2.1 s PKCE (SMART on FHIR standalone launch), OpenID Connect id_token, SMART v2 patient rozsahy, životnosti tokenů a životní cyklus souhlasu.
Platforma Anpheros přijímá tři druhy pověření. Každý požadavek nese přesně jedno.
| Pověření | Vypadá jako | Kdo | Vidí |
|---|---|---|---|
| API klíč | sk_test_… (sandbox) / sk_live_… (production) |
server projektu | pacienti, které projekt vytvořil (v sandboxu, včetně vlastní kopie 30 syntetických pacientů) |
| OAuth access token | at_… |
aplikace jednající za jednoho pacienta na základě souhlasu | pouze tohoto pacienta, v rámci udělených SMART scopes |
| Firebase ID token | JWT | vývojář v dashboardu nebo pacient v sekci "Connections" | své vlastní organizace / své vlastní záznamy |
Odešlete jej jako Authorization: Bearer <credential> (API klíče fungují také jako X-Api-Key).
API klíče
- Vytvořeny v dashboardu nebo přes
POST /admin/projects/{id}/keys; zobrazeny jednou; uloženy jako SHA-256 hash. - Rozsahy (Scopes):
read,write. Klíč nikdy nepřekročí prostředí svého projektu (sk_test_nemůže přistupovat k produkčním datům a naopak). - Limit požadavků na klíč (výchozí 600/min) je vynucován napříč platformou (sdílené úložiště), s
Retry-Afterna 429. Existuje také limit 600/min na IP adresu. - Volitelné hlavičky při zápisu:
X-Anpheros-Author-Type,X-Anpheros-Author-Ref,X-Anpheros-Source-System,X-Anpheros-Origin-Id,X-Anpheros-Acting-As(Practitioner/PractitionerRole z vašeho vlastního adresáře),X-Anpheros-On-Behalf-Of(Organization z vašeho vlastního adresáře). Tyto hlavičky vyplňují Provenance.
OAuth 2.1 (SMART on FHIR, standalone launch)
Discovery: GET /.well-known/smart-configuration.
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]Zobrazuje hostovanou stránku souhlasu. PKCE S256 je povinné;redirect_urimusí být registrováno přesně.- Pacient se přihlásí (Google nebo e-mail přes Firebase), vybere záznam (svůj nebo závislé osoby), dobu trvání (30/90/180/365 dní) a udělí souhlas. Platforma vydá jednorázový kód (10 minut).
POST /oauth/tokensgrant_type=authorization_code&code=…&code_verifier=…&redirect_uri=…&client_id=…(důvěrní klienti přidávajíclient_secret). Odpověď:access_token(30 min),refresh_token(30 dní, rotující),patient(vaše párové ID pro záznam),grant_id,scope.- Obnovení:
grant_type=refresh_token. Každý refresh token je na jedno použití. Předložení použitého refresh tokenu zruší celou řetězovou vazbu (detekce krádeže). Paralelní duplikát požadavku na obnovení je odmítnut a může také zrušit řetězovou vazbu, proto nikdy nerotujte souběžně. - Zrušení:
POST /oauth/revoke(token + client_id). Zrušení refresh tokenu také zruší jeho přístupové tokeny.
Odpovědi tokenů nesou Cache-Control: no-store a Pragma: no-cache, jak vyžaduje SMART.
OpenID Connect (openid fhirUser)
Požádejte o openid fhirUser spolu s rozsahy pacienta a odpověď tokenu bude také obsahovat id_token: JWT podepsaný pomocí RS256, s iss (základní URL platformy), sub (vaše párové ID pro osobu), aud (vaše client_id), exp, iat a fhirUser — absolutní URL zdroje Pacienta dané osoby, čitelné s přístupovým tokenem, který jste právě obdrželi. Discovery se nachází na GET /.well-known/openid-configuration; veřejné klíče na GET /oauth/jwks (kid v hlavičce tokenu). Parametr nonce zatím není podporován (je volitelný v toku autorizačního kódu). launch/patient a offline_access jsou akceptovány; pole patient v odpovědi tokenu je kontext spuštění.
Jiné typy udělení: client_credentials (důvěrní klienti; chová se jako API klíč) a udělení identity první strany (pouze důvěryhodní klienti).
Vaše značka na stránce souhlasu
Aplikace může na hostované stránce souhlasu zobrazit své logo a akcentní barvu. Nastavte je v konzoli (Aplikace → Značka) nebo pomocí administračního API:
PUT /admin/applications/{application_id}/branding
{"logo": "data:image/png;base64,…", "brand_color": "#1D4ED8"}
- Logo: obrázek PNG, JPEG nebo WebP jako datový URI, až 64 KB. Kontroluje se obsah, nikoli deklarovaný typ; SVG není akceptován. Obrázek je uložen s aplikací a vložen na stránku, takže stránka souhlasu neodesílá žádné požadavky na vaše servery.
- Akcentní barva:
#RRGGBB, používaná pro hlavní tlačítko. Bílé písmo na ní musí zachovat kontrast nejméně 4,5:1 (WCAG AA); světlejší barvy jsou odmítnuty. - Pole, které vynecháte, zůstane tak, jak je;
nullnebo prázdný řetězec jej odstraní.
Zbytek stránky se nemění: řádek "Zabezpečeno platformou Anpheros", seznam v prostém jazyce požadovaných položek aplikací a banner TEST na sandbox projektech zůstávají, takže lidé mohou vždy poznat, že souhlas drží Anpheros. Konektory AI (MCP) vždy zobrazují stránku Anpheros bez značky aplikace.
Scopes
SMART v2 rozsahy pacienta: patient/<Type>.<cruds> s volitelným filtrem ?category=<code> (jediný filtr, který server vynucuje; jakýkoli jiný filtr je odmítnut v době autorizace). patient/*.rs čte vše; offline_access přidává refresh token. Demografické údaje pacienta a adresář jsou vždy čitelné v rámci udělení. Typ zdroje mimo udělení vrací 403; pacient mimo udělení vrací 404.
Životní cyklus souhlasu
Souhlasy automaticky vyprší, mohou být kdykoli zrušeny pacientem (obrazovka Připojení / /me) a každé čtení v rámci souhlasu je zaznamenáno s ID aplikace. Webhooky consent.granted / consent.revoked informují projekt.
Chyby
401 unknown/expired credential · 403 the credential exists but may not do this · 404 the resource does not exist for you · 429 rate limited (Retry-After). Viz errors.md.
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card