Compartilhar via


Autenticação

Ao fazer chamadas REST, várias etapas são necessárias para autenticar corretamente. Serviços de Comunicação do Azure SDKs lidam com esse processo para você, mas fazer solicitações manualmente significa que você precisará lidar com isso por conta própria.

Tipos de autenticação

Serviços de Comunicação do Azure tem três tipos de Autenticação, elas são usadas para finalidades diferentes:

  • Autenticação de chave de acesso para sms, passagem de rede, automação de chamadas, identidade e operações de token de acesso. A autenticação da Chave de Acesso é adequada para aplicativos em execução em um ambiente de serviço confiável.
  • Azure AD autenticação Aplicável da mesma forma que a Autenticação de Chave de Acesso. O controle de acesso é mais granular e aproveita o RBAC do Azure.
  • Autenticação de Token de Acesso do Usuário para Chat e Chamada. Os tokens de acesso do usuário permitem que seus aplicativos cliente se autentiquem diretamente no Serviços de Comunicação do Azure. Esses tokens são gerados em um serviço de provisionamento de token do lado do servidor que você cria. Em seguida, eles são fornecidos a dispositivos cliente que usam o token para inicializar as bibliotecas de cliente de Chat e Chamada.

Autenticação de chave de acesso

A autenticação da Chave de Acesso é usada quando as solicitações não são feitas pelo aplicativo do usuário final. Execute essas solicitações em um ambiente de serviço confiável.

Nesse método de autenticação, as solicitações são assinadas usando um HMAC (código de autenticação de mensagem baseado em hash) gerado pelo cliente.

Antes de começar, verifique se você tem:

  • Sua chave de acesso Serviços de Comunicação do Azure
  • Seu ponto de extremidade do Serviço de Comunicação do Azure
  • O caminho da URL e o verbo HTTP que você está chamando
  • Um ambiente de desenvolvimento, que pode gerar HMACs, hashes SHA256 e executar operações Base64.

Depois de ter esses itens, você pode continuar assinando sua solicitação.

Assinando uma solicitação HTTP

  1. Verifique se você tem os seguintes valores disponíveis:

    • Método de solicitação HTTP (por exemplo, GET ou PUT)
    • Carimbo de data/hora UTC (Tempo Universal Coordenado) para a solicitação de acordo com o padrão RFC1123
    • Host de solicitação HTTP (o <authority> componente URI conforme especificado em RFC2396)
    • Hash do corpo da solicitação HTTP usando o algoritmo SHA256
    • Caminho da solicitação HTTP (e <path><query> concatenado por ? componentes, conforme especificado em RFC2396)
    Verb=<http_method>
    Timestamp=<current_datetime>
    Host=<uri_authority>
    ContentHash=SHA256(<request_body>)
    URIPathAndQuery=<uri_path>?<uri_query>
    
  2. Construa a cadeia de caracteres a ser assinada concatenando os valores da seguinte maneira:

    StringToSign=Verb + "\n"
    URIPathAndQuery + "\n"
    Timestamp + ";" + Host + ";" + ContentHash
    
  3. Gere uma assinatura HMAC-256 da cadeia de caracteres codificada em UTF-8 que você criou na etapa anterior. Em seguida, codifique os resultados como Base64. Você também precisa decodificar sua chave de acesso em Base64. Use o seguinte formato (mostrado como pseudocódigo):

    Signature=Base64(HMAC-SHA256(UTF8(StringToSign), Base64.decode(<your_access_key>)))
    
  4. Adicione os seguintes cabeçalhos à solicitação:

    x-ms-date: <Timestamp>
    x-ms-content-sha256: <ContentHash>
    host: <URIPathAndQuery>   
    Authorization: "HMAC-SHA256 SignedHeaders=x-ms-date;host;x-ms-content-sha256&Signature=<Signature>"
    

Ao receber a solicitação, o serviço valida a assinatura e o carimbo de data/hora para se proteger contra determinados ataques de segurança, incluindo ataques de reprodução. Para saber como assinar a solicitação HTTP em várias linguagens de programação, visite o tutorial de assinatura de cabeçalho HMAC.

Autenticação do Azure AD

Azure AD autenticação pode ser usada quando o solicitante é uma entidade de segurança do RBAC do Azure. A entidade de segurança pode ser usuário, grupo, entidade de serviço ou identidade gerenciada.

Antes de começar, verifique se você tem:

  • Sua entidade de serviço do Azure
  • O caminho da URL e o verbo HTTP que você está chamando

Para saber como obter uma entidade de serviço, consulte – Criar um aplicativo de entidade de serviço do Azure Active Directory da CLI do Azure.

Depois de criar uma entidade de serviço, você pode usar um de seus segredos para autenticação para acessar os Serviços de Comunicação para criar usuários, emitir tokens de acesso do usuário ou enviar mensagens SMS.

Usando a credencial da entidade de segurança em uma solicitação

Depois de ter a ID e um segredo de uma entidade de segurança, você poderá usá-los em suas solicitações para Serviços de Comunicação do Azure API REST fornecendo-os no cabeçalho 'Autorização'.

authorizationHeaderValue = convertToBase64String(<security principal ID> + ":" + <secret of the security principal>)
Authorization="BASIC <authorizationHeaderValue>"

Autenticação de Token de Acesso do Usuário

Os tokens de acesso do usuário permitem que seus aplicativos cliente se autentiquem diretamente no Serviços de Comunicação do Azure como um usuário ou identidade específico.

Gerando/obtendo tokens de acesso de usuário

Os Tokens de Acesso do Usuário são gerados por você em um ambiente confiável. Gerá-los usando o SDK do Serviços de Comunicação do Azure Identity é a maneira mais fácil. Para obter mais informações, consulte criando e gerenciando tokens de acesso do usuário.

Usando um token de acesso do usuário em uma solicitação

Depois de ter um Token de Acesso de Usuário adequado, você pode incluí-lo em suas solicitações para a API REST do Serviços de Comunicação do Azure. Para fazer isso, você precisa fornecê-lo dentro do Authorization cabeçalho usando o esquema Authorization: Bearer <token>de autenticação HTTP de portador .

Consulte Também

Para obter informações adicionais sobre Serviços de Comunicação do Azure autenticação, você também pode examinar: