Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
Kimlik Doğrulama ve OAuth
API anahtarları, PKCE ile OAuth 2.1 (SMART on FHIR bağımsız başlatma), OpenID Connect id_token, SMART v2 hasta kapsamları, belirteç ömürleri ve onay yaşam döngüsü.
Anpheros Platform üç tür kimlik bilgisi kabul eder. Her istek tam olarak birini taşır.
| Kimlik Bilgisi | Görünümü | Kim | Görür |
|---|---|---|---|
| API anahtarı | sk_test_… (sandbox) / sk_live_… (production) |
bir projenin sunucusu | projenin oluşturduğu hastalar (sandbox'ta, kendi 30 sentetik hasta kopyası dahil) |
| OAuth erişim token'ı | at_… |
bir onay kapsamında bir hasta adına hareket eden bir uygulama | yalnızca o hasta, verilen SMART kapsamları dahilinde |
| Firebase ID token'ı | JWT | kontrol panelindeki bir geliştirici veya "Bağlantılar"daki bir hasta | kendi kuruluşları / kendi kayıtları |
Bunu Authorization: Bearer <credential> olarak gönderin (API anahtarları X-Api-Key olarak da çalışır).
API Anahtarları
- Kontrol panelinden veya
POST /admin/projects/{id}/keysaracılığıyla oluşturulur; bir kez gösterilir; SHA-256 karması olarak saklanır. - Kapsamlar:
read,write. Bir anahtar asla projesinin ortamını aşamaz (sk_test_üretim verilerine ulaşamaz ve tersi de geçerlidir). - Anahtar başına hız sınırı (varsayılan 600/dakika) platform genelinde (paylaşılan depolama) uygulanır, 429 üzerinde
Retry-Afterile. Ayrıca IP başına 600/dakika sınırı da vardır. - Yazma işlemleri için isteğe bağlı başlıklar:
X-Anpheros-Author-Type,X-Anpheros-Author-Ref,X-Anpheros-Source-System,X-Anpheros-Origin-Id,X-Anpheros-Acting-As( kendi dizininizden bir Practitioner/PractitionerRole),X-Anpheros-On-Behalf-Of( kendi dizininizden bir Organization). Bunlar Provenance'ı doldurur.
OAuth 2.1 (SMART on FHIR, standalone launch)
Keşif: 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]Barındırılan onay sayfasını gösterir. PKCE S256 zorunludur;redirect_uritam olarak kaydedilmelidir.- Hasta oturum açar (Firebase aracılığıyla Google veya e-posta), kaydı seçer (kendisininki veya bir yakınınınki), süreyi (30/90/180/365 gün) ve izin verir. Platform tek kullanımlık bir kod (10 dakika) verir.
POST /oauth/tokenilegrant_type=authorization_code&code=…&code_verifier=…&redirect_uri=…&client_id=…(gizli istemcilerclient_secretekler). Yanıt:access_token(30 dakika),refresh_token(30 gün, döner),patient(kayıt için ikili kimliğiniz),grant_id,scope.- Yenileme:
grant_type=refresh_token. Her yenileme jetonu tek kullanımlıktır. Kullanılmış bir yenileme jetonu sunmak tüm zinciri geçersiz kılar (hırsızlık tespiti). Bir yenileme isteğinin paralel bir kopyası reddedilir ve zinciri geçersiz kılabilir, bu nedenle asla eşzamanlı olarak döndürmeyin. - Geçersiz Kılma:
POST /oauth/revoke(jeton + client_id). Bir yenileme jetonunu geçersiz kılmak, erişim jetonlarını da geçersiz kılar.
Jeton yanıtları, SMART'ın gerektirdiği şekilde Cache-Control: no-store ve Pragma: no-cache taşır.
OpenID Connect (openid fhirUser)
Hasta kapsamlarına ek olarak openid fhirUser isteyin ve jeton yanıtı ayrıca bir id_token içerir: RS256 ile imzalanmış bir JWT, iss (platformun temel URL'si), sub (kişi için ikili kimliğiniz), aud (client_id'unuz), exp, iat ve fhirUser — az önce aldığınız erişim jetonuyla okunabilen kişinin Hasta kaynağının mutlak URL'si. Keşif GET /.well-known/openid-configuration'te, genel anahtarlar GET /oauth/jwks'te (jeton başlığında kid) bulunur. nonce parametresi henüz desteklenmiyor (yetkilendirme kodu akışında isteğe bağlıdır). launch/patient ve offline_access kabul edilir; jeton yanıtının patient alanı başlatma bağlamıdır.
Diğer yetkilendirme türleri: client_credentials (gizli istemciler; API anahtarı gibi davranır) ve birinci taraf kimlik yetkilendirmesi (yalnızca güvenilir istemciler).
Onay sayfasında markanız
Bir uygulama, barındırılan onay sayfasında logosunu ve vurgu rengini gösterebilir. Bunları konsolda (Uygulamalar → Marka) veya yönetici API'si ile ayarlayın:
PUT /admin/applications/{application_id}/branding
{"logo": "data:image/png;base64,…", "brand_color": "#1D4ED8"}
- Logo: 64 KB'a kadar veri URI'si olarak bir PNG, JPEG veya WebP görüntüsü. İçerik kontrol edilir, beyan edilen tür değil; SVG kabul edilmez. Görüntü uygulama ile saklanır ve sayfaya yerleştirilir, bu nedenle onay sayfası sunucularınıza herhangi bir istek yapmaz.
- Vurgu rengi:
#RRGGBB, birincil düğme için kullanılır. Üzerindeki beyaz metin en az 4.5:1 (WCAG AA) kontrastı korumalıdır; daha açık renkler reddedilir. - Bıraktığınız bir alan olduğu gibi kalır;
nullveya boş bir dize onu kaldırır.
Sayfanın geri kalanı değişmez: "Anpheros Platform Tarafından Güvenli" satırı, uygulamanın ne istediğinin düz dilde listesi ve sandbox projelerindeki TEST bildirimi kalır, böylece insanlar onayların Anpheros tarafından tutulduğunu her zaman anlayabilir. Yapay zeka bağlayıcıları (MCP) her zaman Anpheros sayfasını uygulama markası olmadan gösterir.
Kapsamlar
SMART v2 hasta kapsamları: isteğe bağlı ?category=<code> filtreli patient/<Type>.<cruds> (sunucunun zorunlu kıldığı tek filtre; başka herhangi bir filtre yetkilendirme zamanında reddedilir). patient/*.rs her şeyi okur; offline_access bir yenileme jetonu ekler. Hasta demografisi ve dizin, bir yetki kapsamında her zaman okunabilir. Yetki kapsamı dışındaki bir kaynak türü 403 döndürür; yetki kapsamı dışındaki bir hasta 404 döndürür.
Onay yaşam döngüsü
Onaylar otomatik olarak sona erer, herhangi bir zamanda hasta tarafından geçersiz kılınabilir (Bağlantılar ekranı / /me) ve bir onay kapsamındaki her okuma, uygulama kimliğiyle günlüğe kaydedilir. Webhook'lar consent.granted / consent.revoked projeyi bilgilendirir.
Hatalar
401 bilinmeyen/süresi dolmuş kimlik bilgisi · 403 kimlik bilgisi mevcut ancak bu işlemi yapamaz · 404 kaynak sizin için mevcut değil · 429 hız sınırlı (Retry-After). errors.md bölümüne bakın.
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card