Partilhar via


Acessar a API Pública do Azure Sphere com a entidade de serviço de aplicativo do AAD

Importante

Esta é a documentação do Azure Sphere (Legado). O Azure Sphere (Legado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (Integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).

As ferramentas automatizadas exigem acesso restrito e autenticação não interativa, em vez de autenticar como um usuário totalmente privilegiado. Isso pode ser feito usando entidades de serviço que permitem que os aplicativos entrem com permissões específicas. Simplificando, uma entidade de serviço do Azure funciona como uma identidade que é criada no Azure quando um aplicativo é registrado no Azure Ative Directory.

Nesse modo, a permissão de acesso para o aplicativo no locatário do Azure Ative Directory (AAD) é definida pela entidade de serviço, que habilita a autenticação e a autorização ao acessar recursos.

Há dois tipos de métodos de autenticação disponíveis para entidades de serviço, certificados de cliente e segredos de cliente.

Pré-requisitos

Etapa 1: Registrar uma entidade de serviço

  1. No portal do Azure, no painel de navegação esquerdo, clique em Azure Ative Directory.
  2. Registre um aplicativo no Azure AD e crie uma entidade de serviço. Observe a ID do cliente.
  3. Selecione o tipo de autenticação. Há dois tipos de autenticação disponíveis para entidades de serviço:
    • Segredo do cliente
    • Certificado de cliente

Etapa 2: Adicionar a entidade de serviço ao locatário do Azure Sphere e atribuir uma função

Nota

Certifique-se de ter o seguinte antes de iniciar esta etapa:

O Azure Sphere trata a entidade de serviço como outro usuário. Para adquirir um token usando a entidade de serviço, primeiro adicione o usuário da entidade de serviço ao locatário do Azure Sphere e, em seguida, atribua uma função ao usuário em um locatário do Azure Sphere usando a CLI do Azure Sphere.

A identidade do usuário pode ser gerada como <ObjectID>@<TenantID.onmicrosoft.com>.

No exemplo a seguir, criamos um usuário usando uma combinação de ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx de objeto e ID zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz de locatário do Azure AD na ID tttttttt-tttt-tttt-tttt-ttttttttttttde locatário do Azure Sphere e, em seguida, adicionamos a função de Colaborador para esse usuário.

  1. Entre com seu logon do Azure Sphere usando a CLI do Azure Sphere:

    azsphere login
    
  2. Selecione o locatário necessário:

    azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
    
  3. Para adicionar o usuário a uma função necessária:

    azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    

Etapa 3: Registrar segredos de cliente ou certificados de cliente usando o portal de registro de aplicativo

Segredos de cliente e certificados de cliente permitem que os aplicativos se identifiquem para o serviço de autenticação ao receber tokens em um local endereçável da Web (usando um esquema HTTPS). Recomendamos usar um certificado em vez de um segredo do cliente para cenários de credenciais de cliente ao autenticar com o Azure Ative Directory.

O segredo do cliente ou o certificado do cliente para o registro do aplicativo pode ser usado para obter um token de acesso para a API Pública do Azure Sphere (PAPI).

Configurar aplicativo com segredo do cliente

Para registar a sua candidatura com um segredo de cliente:

  1. No portal do Azure, no painel de navegação esquerdo, clique em Azure Ative Directory.

  2. Vá para Registros de aplicativos e selecione o aplicativo que você criou em Etapa 1: Registrar uma entidade de serviço.

  3. No painel esquerdo, selecione Certificados & segredos Seção>> Segredos do cliente Novo segredo do cliente.

  4. Insira uma descrição, selecione a duração da validade e selecione Adicionar. O segredo do cliente é gerado e o valor do segredo do cliente é exibido.

  5. Copie o valor secreto do cliente porque você não poderá recuperar a chave mais tarde.

  6. Forneça o valor secreto do cliente com a ID do Aplicativo de API Pública do Azure Sphere para entrar como o aplicativo. Armazene o valor da chave num local onde a aplicação o possa obter.

    Importante

    O valor secreto do cliente é uma credencial de segurança importante. Não compartilhe o segredo do cliente com ninguém nem o distribua dentro de um aplicativo cliente. Recomendamos usar o serviço Azure Key Vault que fornece gerenciamento centralizado de segredos, com controle total sobre políticas de acesso e histórico de auditoria.

Use o seguinte código de exemplo:

 IConfidentialClientApplication app =

 ConfidentialClientApplicationBuilder.Create("<<App registration Client ID>>")

                 .WithClientSecret("<<App registration Client Secret Value>>")

                 .WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")

                 .Build();

 string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/.default" };

 AuthenticationResult result =  await app.AcquireTokenForClient(scopes).ExecuteAsync();
 string accessToken=result.AccessToken;

Configurar aplicativo com certificado de cliente

Para configurar o certificado do cliente:

  1. No portal do Azure, no painel de navegação esquerdo, clique em Azure Ative Directory.
  2. Vá para Registros de aplicativos e selecione o aplicativo que você criou em Etapa 1: Registrar uma entidade de serviço.
  3. No painel esquerdo, selecione Certificados & secretos>Certificados>Carregar certificado. Selecione o certificado (um certificado existente ou o certificado autoassinado que você exportou).
  4. Depois de registrar o certificado com seu aplicativo no portal de registro do aplicativo, habilite o código do aplicativo cliente para usar o certificado.

Para registrar seu aplicativo com um certificado de cliente, use o seguinte código de exemplo:

 IConfidentialClientApplication app =

 ConfidentialClientApplicationBuilder.Create("<<App registration Client ID>>")

                 .WithCertificate("<<App registration Certificate>>")

                 .WithAuthority(AzureCloudInstance.AzurePublic, "<<3rd Party Tenant Id>>")

                 .Build();

 string[] scopes = new[] { "https://firstparty.sphere.azure.net/api/.default" };

 AuthenticationResult result =  await app.AcquireTokenForClient(scopes).ExecuteAsync();
 string accessToken=result.AccessToken;

Nota

Você precisará adicionar MSAL.Net biblioteca para usar IConfidentialClient.