Convalida del token di accesso dell'API di Azure per FHIR
L'API di Azure per FHIR convalida il token di accesso dipende dall'implementazione e dalla configurazione. In questo articolo verranno illustrati i passaggi di convalida che possono essere utili durante la risoluzione dei problemi di accesso.
Il token di convalida non presenta problemi con il provider di identità
Il primo passaggio della convalida del token consiste nel verificare che il token sia stato rilasciato dal provider di identità corretto e che non sia stato modificato. Il server FHIR verrà configurato per l'uso di un provider di identità specifico noto come autorità Authority
. Il server FHIR recupera informazioni sul provider di identità dall'endpoint /.well-known/openid-configuration
. Quando si usa Azure Active Directory (Azure AD), l'URL completo è:
GET https://login.microsoftonline.com/<TENANT-ID>/.well-known/openid-configuration
dove <TENANT-ID>
è il tenant di Azure AD specifico (ID tenant o un nome di dominio).
Azure AD restituirà un documento simile a questo al server FHIR.
{
"authorization_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/authorize",
"token_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/token",
"token_endpoint_auth_methods_supported": [
"client_secret_post",
"private_key_jwt",
"client_secret_basic"
],
"jwks_uri": "https://login.microsoftonline.com/common/discovery/keys",
"response_modes_supported": [
"query",
"fragment",
"form_post"
],
"subject_types_supported": [
"pairwise"
],
"id_token_signing_alg_values_supported": [
"RS256"
],
"http_logout_supported": true,
"frontchannel_logout_supported": true,
"end_session_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/logout",
"response_types_supported": [
"code",
"id_token",
"code id_token",
"token id_token",
"token"
],
"scopes_supported": [
"openid"
],
"issuer": "https://sts.windows.net/<TENANT-ID>/",
"claims_supported": [
"sub",
"iss",
"cloud_instance_name",
"cloud_instance_host_name",
"cloud_graph_host_name",
"msgraph_host",
"aud",
"exp",
"iat",
"auth_time",
"acr",
"amr",
"nonce",
"email",
"given_name",
"family_name",
"nickname"
],
"microsoft_multi_refresh_token": true,
"check_session_iframe": "https://login.microsoftonline.com/<TENANT-ID>/oauth2/checksession",
"userinfo_endpoint": "https://login.microsoftonline.com/<TENANT-ID>/openid/userinfo",
"tenant_region_scope": "WW",
"cloud_instance_name": "microsoftonline.com",
"cloud_graph_host_name": "graph.windows.net",
"msgraph_host": "graph.microsoft.com",
"rbac_url": "https://pas.windows.net"
}
Le proprietà importanti per il server FHIR sono jwks_uri
, che indica al server dove recuperare le chiavi di crittografia necessarie per convalidare la firma del token e issuer
, che indica al server cosa sarà nell'attestazione dell'autorità di certificazione (iss
) dei token emessi da questo server. Il server FHIR può usare questa opzione per verificare che riceva un token autentico.
Convalidare le attestazioni del token
Dopo aver verificato l'autenticità del token, il server FHIR procederà quindi a convalidare che il client disponga delle attestazioni necessarie per accedere al token.
Quando si usa l'API di Azure per FHIR, il server convalida:
- Il token ha il diritto
Audience
(aud
attestazione). - L'utente o l'entità per cui è stato rilasciato il token è autorizzato ad accedere al piano dati del server FHIR. L'attestazione
oid
del token contiene un ID oggetto identity, che identifica in modo univoco l'utente o l'entità.
È consigliabile configurare il servizio FHIR per usare il controllo degli accessi in base al ruolo di Azure per gestire le assegnazioni di ruolo del piano dati. Tuttavia, è anche possibile configurare il controllo degli accessi in base al ruolo locale se il servizio FHIR usa un tenant di Azure AD esterno o secondario.
Quando si usa il server Microsoft FHIR di OSS per Azure, il server convalida:
- Il token ha il diritto
Audience
(aud
attestazione). - Il token ha un ruolo nell'attestazione, che è consentito l'accesso
roles
al server FHIR.
Consultare i dettagli su come definire i ruoli nel server FHIR.
Un server FHIR può anche convalidare che un token di accesso abbia gli ambiti (nell'attestazione scp
token ) per accedere alla parte dell'API FHIR che un client sta tentando di accedere. Attualmente, l'API di Azure per FHIR e il server FHIR per Azure non convalidano gli ambiti del token.
Passaggi successivi
Ora che si conosce come eseguire la convalida dei token, è possibile completare l'esercitazione per creare un'applicazione JavaScript e leggere i dati FHIR® (Fast Healthcare Interoperabil Resources).
FHIR® è un marchio registrato di HL7 e viene usato con l'autorizzazione HL7.