AnpherosAnpheros PlatformDevelopers

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

Έλεγχος ταυτότητας και OAuth

Κλειδιά API, OAuth 2.1 με PKCE (SMART on FHIR standalone launch), OpenID Connect id_token, SMART v2 πεδία ασθενούς, διάρκειες ζωής token και ο κύκλος ζωής συναίνεσης.

Η πλατφόρμα Anpheros δέχεται τρεις τύπους διαπιστευτηρίων. Κάθε αίτημα φέρει ακριβώς ένα.

Διαπιστευτήριο Μοιάζει με Ποιος Βλέπει
Κλειδί API sk_test_… (sandbox) / sk_live_… (production) ο διακομιστής ενός project τους ασθενείς που δημιούργησε το project (στο sandbox, συμπεριλαμβανομένου του δικού του αντιγράφου 30 συνθετικών ασθενών)
OAuth access token at_… μια εφαρμογή που ενεργεί για έναν ασθενή υπό συναίνεση μόνο αυτόν τον ασθενή, εντός των χορηγηθέντων SMART scopes
Firebase ID token JWT ένας προγραμματιστής στο dashboard, ή ένας ασθενής στο "Συνδέσεις" τους δικούς του οργανισμούς / τα δικά του αρχεία

Στείλτε το ως Authorization: Bearer <credential> (τα κλειδιά API λειτουργούν επίσης ως X-Api-Key).

Κλειδιά API

OAuth 2.1 (SMART on FHIR, αυτόνομη εκκίνηση)

Ανακάλυψη: 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] Εμφανίζει την φιλοξενούμενη σελίδα συναίνεσης. Το PKCE S256 είναι υποχρεωτικό· το redirect_uri πρέπει να είναι εγγεγραμμένο ακριβώς.
  2. Ο ασθενής συνδέεται (Google ή email μέσω Firebase), επιλέγει τον φάκελο (δικό του ή εξαρτώμενου), τη διάρκεια (30/90/180/365 ημέρες) και επιτρέπει. Η πλατφόρμα εκδίδει έναν κωδικό μίας χρήσης (10 λεπτά).
  3. POST /oauth/token με grant_type=authorization_code&code=…&code_verifier=…&redirect_uri=…&client_id=… (εμπιστευτικοί πελάτες προσθέτουν client_secret). Απάντηση: access_token (30 λεπτά), refresh_token (30 ημέρες, εναλλασσόμενο), patient (το pairwise id σας για τον φάκελο), grant_id, scope.
  4. Ανανέωση: grant_type=refresh_token. Κάθε token ανανέωσης είναι μίας χρήσης. Η παρουσίαση ενός χρησιμοποιημένου token ανανέωσης ανακαλεί ολόκληρη την αλυσίδα (ανίχνευση κλοπής). Μια παράλληλη διπλή αίτηση ανανέωσης απορρίπτεται και μπορεί επίσης να ανακαλέσει την αλυσίδα, οπότε μην περιστρέφετε ποτέ ταυτόχρονα.
  5. Ανάκληση: POST /oauth/revoke (token + client_id). Η ανάκληση ενός token ανανέωσης ανακαλεί επίσης τα access tokens του.

Οι απαντήσεις token φέρουν Cache-Control: no-store και Pragma: no-cache, όπως απαιτεί το SMART.

OpenID Connect (openid fhirUser)

Ζητήστε openid fhirUser παράλληλα με τα patient scopes και η απάντηση token περιέχει επίσης ένα id_token: ένα JWT υπογεγραμμένο με RS256, με iss (την βασική διεύθυνση URL της πλατφόρμας), sub (το pairwise id σας για το άτομο), aud (το client_id σας), exp, iat και fhirUser — την απόλυτη διεύθυνση URL του πόρου Patient του ατόμου, αναγνώσιμη με το access token που μόλις λάβατε. Η ανακάλυψη βρίσκεται στο GET /.well-known/openid-configuration· τα δημόσια κλειδιά στο GET /oauth/jwks (kid στην κεφαλίδα του token). Η παράμετρος nonce δεν υποστηρίζεται ακόμη (είναι προαιρετική στη ροή authorization-code). Γίνονται αποδεκτά τα launch/patient και offline_access· το πεδίο patient της απάντησης token είναι το launch context.

Άλλοι τύποι χορήγησης: client_credentials (εμπιστευτικοί πελάτες· συμπεριφέρεται σαν κλειδί API), και η χορήγηση ταυτότητας πρώτου κόμματος (μόνο έμπιστοι πελάτες).

Η επωνυμία σας στη σελίδα συναίνεσης

Μια εφαρμογή μπορεί να εμφανίσει το λογότυπο και το χρώμα έμφασης στη φιλοξενούμενη σελίδα συναίνεσης. Ρυθμίστε τα στην κονσόλα (Εφαρμογές → Επωνυμία) ή με το admin API:

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

Το υπόλοιπο της σελίδας δεν αλλάζει: η γραμμή "Secured by Anpheros Platform", η λίστα απλής γλώσσας για το τι ζητά η εφαρμογή, και το banner TEST σε έργα sandbox παραμένουν, ώστε οι άνθρωποι να μπορούν πάντα να καταλάβουν ότι η συναίνεση διατηρείται από την Anpheros. Οι συνδέσεις AI (MCP) εμφανίζουν πάντα τη σελίδα Anpheros χωρίς επωνυμία εφαρμογής.

Scopes

SMART v2 patient scopes: patient/<Type>.<cruds> με προαιρετικό φίλτρο ?category=<code> (το μόνο φίλτρο που επιβάλλει ο διακομιστής· οποιοδήποτε άλλο φίλτρο απορρίπτεται κατά την ώρα της εξουσιοδότησης). Το patient/*.rs διαβάζει τα πάντα· το offline_access προσθέτει ένα token ανανέωσης. Τα δημογραφικά στοιχεία του ασθενούς και ο κατάλογος είναι πάντα αναγνώσιμα υπό μια χορήγηση. Ένας τύπος πόρου εκτός της χορήγησης επιστρέφει 403· ένας ασθενής εκτός της χορήγησης επιστρέφει 404.

Κύκλος ζωής συναίνεσης

Οι συναινέσεις λήγουν αυτόματα, μπορούν να ανακληθούν από τον ασθενή ανά πάσα στιγμή (οθόνη Συνδέσεις / /me), και κάθε ανάγνωση υπό μια συναίνεση καταγράφεται με το id της εφαρμογής. Τα Webhooks consent.granted / consent.revoked ειδοποιούν το έργο.

Σφάλματα

401 άγνωστη/λήξασα διαπίστευση · 403 η διαπίστευση υπάρχει αλλά ενδέχεται να μην επιτρέπεται · 404 ο πόρος δεν υπάρχει για εσάς · 429 περιορισμός ρυθμού (Retry-After). Δείτε 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