Compartilhar via


API do Azure para validação de token de acesso FHIR

Como a API do Azure para FHIR valida o token de acesso dependerá da implementação e da configuração. Neste artigo, abordaremos as etapas de validação, que podem ser úteis ao solucionar problemas de acesso.

Validar token não tem problemas com o provedor de identidade

A primeira etapa na validação do token é verificar se o token foi emitido pelo provedor de identidade correto e se ele não foi modificado. O servidor FHIR será configurado para usar um provedor de identidade específico conhecido como autoridade Authority. O servidor FHIR recuperará informações sobre o provedor de identidade do /.well-known/openid-configuration ponto de extremidade. Quando você usa o Azure Active Directory (Azure AD), a URL completa é:

GET https://login.microsoftonline.com/<TENANT-ID>/.well-known/openid-configuration

em que <TENANT-ID> é o locatário Azure AD específico (uma ID de locatário ou um nome de domínio).

Azure AD retornará um documento como este para o servidor 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"
}

As propriedades importantes para o servidor FHIR são jwks_uri, que informa ao servidor onde buscar as chaves de criptografia necessárias para validar a assinatura do token e issuer, que informa ao servidor o que estará na declaração do emissor (iss) dos tokens emitidos por esse servidor. O servidor FHIR pode usar isso para validar se ele está recebendo um token autêntico.

Validar declarações do token

Depois que o servidor verificar a autenticidade do token, o servidor FHIR prosseguirá para validar se o cliente tem as declarações necessárias para acessar o token.

Ao usar a API do Azure para FHIR, o servidor validará:

  1. O token tem o direito Audience (aud declaração).
  2. O usuário ou entidade de segurança para o qual o token foi emitido tem permissão para acessar o plano de dados do servidor FHIR. A oid declaração do token contém uma ID de objeto de identidade, que identifica exclusivamente o usuário ou a entidade de segurança.

Recomendamos que o serviço FHIR seja configurado para usar o RBAC do Azure para gerenciar atribuições de função do plano de dados. No entanto, você também poderá configurar o RBAC local se o serviço FHIR usar um locatário externo ou secundário Azure AD.

Quando você usa o servidor OSS Microsoft FHIR para Azure, o servidor validará:

  1. O token tem o direito Audience (aud declaração).
  2. O token tem uma função na declaração roles , que tem permissão para acessar o servidor FHIR.

Consulte detalhes sobre como definir funções no servidor FHIR.

Um servidor FHIR também pode validar se um token de acesso tem os escopos (na declaração scpde token ) para acessar a parte da API FHIR que um cliente está tentando acessar. Atualmente, a API do Azure para FHIR e o servidor FHIR para Azure não validam escopos de token.

Próximas etapas

Agora que você sabe como percorrer a validação de token, você pode concluir o tutorial para criar um aplicativo JavaScript e ler dados FHIR® (Fast Healthcare Interoperability Resources).

FHIR® é uma marca registrada da HL7 e é usado com a permissão da HL7.