Fornecer a um aplicativo acesso aos recursos do Azure Stack Hub

Um aplicativo que implanta ou configura recursos por meio do Azure Resource Manager deve ser representado por sua própria identidade, conhecida como uma entidade de segurança. Assim como um usuário é representado por uma entidade de segurança de usuário, um aplicativo é representado por uma entidade de serviço.

A identidade também pode ser usada para delegar apenas as permissões necessárias ao usuário ou aplicativo. Por exemplo, um aplicativo de gerenciamento de configuração pode usar o Resource Manager do Azure para inventário de recursos do Azure. O aplicativo seria registrado no diretório e, em seguida, adicionado à função "leitor" no escopo apropriado, limitando o aplicativo ao acesso somente leitura.

Visão geral

Como um usuário, um aplicativo deve apresentar credenciais durante a autenticação, o que requer dois elementos:

  • Uma ID do Aplicativo, às vezes chamada de ID do Cliente. Uma GUID que identifica exclusivamente o registro do aplicativo no locatário do Active Directory.
  • Um segredo. Você pode gerar uma cadeia de caracteres de segredo do cliente (semelhante a uma senha) ou especificar uma impressão digital do certificado X509 (que usa sua chave pública).

Executar um aplicativo em sua própria identidade é preferível a executá-lo sob a identidade do usuário pelos seguintes motivos:

  • Credenciais mais fortes – Um aplicativo pode entrar usando um certificado X509, em vez de um segredo ou uma senha compartilhada textual.
  • Permissões mais restritivas podem ser atribuídas a um aplicativo. Normalmente, essas permissões são restritas apenas ao que o aplicativo precisa fazer, conhecido como o princípio de privilégios mínimos.
  • Credenciais e permissões não mudam com tanta frequência para um aplicativo como as credenciais de usuário. Por exemplo, quando as responsabilidades do usuário mudam, os requisitos de senha determinam uma alteração ou quando um usuário sai da empresa.

Você começa criando um novo registro de aplicativo em seu diretório, que cria um objeto de entidade de serviço associado para representar a identidade do aplicativo no diretório. O processo de registro varia dependendo do diretório escolhido para sua instância do Azure Stack Hub:

  • Azure Active Directory (Azure AD): o Azure AD é um serviço multilocatário, baseado em nuvem, diretório e gerenciamento de identidade. Você pode usar o Azure AD com uma instância conectada do Azure Stack Hub. Os exemplos apresentados posteriormente usarão o portal do Azure para registro de aplicativo do Azure AD.
  • Serviços de Federação do Active Directory (AD FS) (AD FS): o AD FS fornece recursos simplificados, protegidos de federação de identidade e SSO (logon único) da Web. Você pode usar o AD FS com instâncias conectadas e desconectadas do Azure Stack Hub. Os exemplos apresentados posteriormente usarão o Azure Stack Hub PowerShell para registro de aplicativo do AD FS.

Depois de registrar o aplicativo, você aprenderá a atribuí-lo a uma função, limitando seu acesso a recursos.

Gerenciar um aplicativo do Azure AD

Se você implantou o Azure Stack Hub com o Azure AD como seu serviço de gerenciamento de identidades, crie e gerencie identidades para aplicativos como faz com o Azure. Esta seção mostra como executar as etapas usando o portal do Azure. Examine as permissões necessárias para registrar um aplicativo antes de começar, para garantir que você tenha permissões suficientes para registrar um aplicativo.

Criar um registro de aplicativo que usa uma credencial de segredo do cliente

Nesta seção, você registrará seu aplicativo em seu locatário do Azure AD usando o portal do Azure. No exemplo a seguir, você especifica uma credencial de segredo do cliente, mas o portal também dá suporte a credenciais baseadas em certificado X509.

  1. Entre no portal do Azure usando sua conta do Azure.

  2. Selecione Azure Active Directory>Registros do aplicativo>Novo registro.

  3. Forneça um nome para o aplicativo.

  4. Selecione os tipos de conta com suporte apropriados.

  5. Em URI de Redirecionamento, selecione Web como o tipo de aplicativo e (opcionalmente) especifique um URI de redirecionamento se o aplicativo exigir.

  6. Depois de definir os valores, selecione Registrar. O registro do aplicativo é criado e a página Visão geral é exibida.

  7. Copie a ID do aplicativo para uso no código do aplicativo. Esse valor também é chamado de ID do cliente.

  8. Para gerar um segredo do cliente, selecione a página Segredos de Certificados&. Selecione Novo segredo do cliente.

  9. Forneça uma descrição para o segredo e uma duração expira .

  10. Ao terminar, selecione Adicionar.

  11. O valor do segredo é exibido. Copie e salve esse valor em outro local, pois você não pode recuperá-lo mais tarde. Você fornece o segredo com a ID do aplicativo em seu aplicativo cliente para entrar.

    Saved key in client secrets

Prossiga para atribuir uma função para saber como estabelecer o controle de acesso baseado em função para a identidade do aplicativo.

Artigos adicionais de gerenciamento de aplicativos do Azure AD

Confira os seguintes artigos do Azure para obter mais detalhes sobre como gerenciar aplicativos do Azure AD:

Gerenciar um aplicativo do AD FS

Se você implantou o Azure Stack Hub com o AD FS como seu serviço de gerenciamento de identidade, deverá usar o PowerShell para gerenciar a identidade do aplicativo. Os exemplos a seguir demonstram um certificado X509 e uma credencial secreta do cliente.

Os scripts devem ser executados em um console do PowerShell com privilégios elevados ("Executar como administrador"), que abre outra sessão para uma VM que hospeda um ponto de extremidade privilegiado para sua instância do Azure Stack Hub. Depois que a sessão de ponto de extremidade com privilégios for estabelecida, cmdlets adicionais serão usados para criar e gerenciar o registro do aplicativo. Para obter mais informações sobre o ponto de extremidade privilegiado, consulte Usando o ponto de extremidade privilegiado no Azure Stack Hub.

Criar um registro de aplicativo que usa uma credencial de certificado

Ao criar uma credencial de certificado, os seguintes requisitos devem ser atendidos:

  • Para produção, o certificado deve ser emitido por uma Autoridade de Certificação interna ou uma Autoridade de Certificação Pública. Ao usar uma autoridade pública, você deve incluir a autoridade na imagem do sistema operacional base como parte do Microsoft Trusted Root Authority Program. Para obter a lista completa, consulte Lista de Participantes – Programa Raiz Confiável da Microsoft. Um exemplo de criação de um certificado de teste "autoassinado" também será mostrado posteriormente durante a atualização de uma credencial de certificado.
  • O provedor de criptografia deve ser especificado como um provedor de chaves CSP (provedor de serviços de criptografia) herdado da Microsoft.
  • O formato do certificado deve estar no arquivo PFX, pois são necessárias as chaves públicas e privadas. Os servidores Windows usam arquivos .pfx que contêm o arquivo de chave pública (arquivo de certificado TLS/SSL) e o arquivo de chave privada associado.
  • Sua infraestrutura do Azure Stack Hub deve ter acesso à rede para o local CRL (lista de certificados revogados) da autoridade de certificação publicado no certificado. Essa CRL deve ser um ponto de extremidade HTTP.

Depois de ter um certificado, use o script do PowerShell abaixo para registrar seu aplicativo e entrar usando a identidade do aplicativo. Substitua seus próprios valores pelos seguintes espaços reservados:

Espaço reservado Descrição Exemplo
<PepVM> O nome da VM de ponto de extremidade com privilégios em sua instância do Azure Stack Hub. "AzS-ERCS01"
<YourCertificateLocation> O local do certificado X509 no armazenamento de certificados local. "Cert:\CurrentUser\My\AB5A8A353CC7AA2025BF05120117E06DE407B34"
<YourAppName> Um nome descritivo do novo registro de aplicativo. "Minha ferramenta de gerenciamento"
  1. Abra uma sessão com privilégio elevado do PowerShell no Windows e execute o script a seguir.

    # Sign in to PowerShell interactively, using credentials that have access to the VM running the Privileged Endpoint (typically <domain>\cloudadmin)
    $Creds = Get-Credential
    
    # Create a PSSession to the Privileged Endpoint VM
    $Session = New-PSSession -ComputerName "<PepVm>" -ConfigurationName PrivilegedEndpoint -Credential $Creds -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
    # To use a managed certificate from the certificate store, use the Get-Item cmdlet.
    # To use a certificate file, use Get-Certificate for a .cer file, or Get-PfxCertificate for a .pfx file.
    # To use a test certificate, use the New-SelfSignedCertificate cmdlet
    #   See https://docs.microsoft.com/powershell/module/pki/new-selfsignedcertificate for usage details, including using the -Provider parameter
    #   $Cert = New-SelfSignedCertificate -CertStoreLocation "cert:\CurrentUser\My" -Subject "CN=<YourAppName>" -KeySpec KeyExchange
    $Cert = Get-Item "<YourCertificateLocation>"
    
    # Use the privileged endpoint to create the new app registration
    $SpObject = Invoke-Command -Session $Session -ScriptBlock {New-GraphApplication -Name "<YourAppName>" -ClientCertificates $using:cert}
    $AzureStackInfo = Invoke-Command -Session $Session -ScriptBlock {Get-AzureStackStampInformation}
    $Session | Remove-PSSession
    
    # Using the stamp info for your Azure Stack Hub instance, populate the following variables:
    # - Az endpoint used for Azure Resource Manager operations 
    # - Audience for acquiring an OAuth token used to access Graph API 
    # - GUID of the directory tenant
    $ArmEndpoint = $AzureStackInfo.TenantExternalEndpoints.TenantResourceManager
    $GraphAudience = "https://graph." + $AzureStackInfo.ExternalDomainFQDN + "/"
    $TenantID = $AzureStackInfo.AADTenantID
    
    # Register and set an Az environment that targets your Azure Stack Hub instance
    Add-AzEnvironment -Name "AzureStackUser" -ArmEndpoint $ArmEndpoint
    
    # Sign in using the new service principal
    $SpSignin = Connect-AzAccount -Environment "AzureStackUser" `
    -ServicePrincipal `
    -CertificateThumbprint $SpObject.Thumbprint `
    -ApplicationId $SpObject.ClientId `
    -TenantId $TenantID
    
    # Output the service principal details
    $SpObject
    
    
  2. Depois que o script for concluído, ele exibirá as informações de registro do aplicativo. A ClientID e Thumbprint são autenticadas e, posteriormente, autorizadas a acessar os recursos gerenciados pelo Azure Resource Manager.

    ApplicationIdentifier : S-1-5-21-1512385356-3796245103-1243299919-1356
    ClientId              : 3c87e710-9f91-420b-b009-31fa9e430145
    Thumbprint            : 30202C11BE6864437B64CE36C8D988442082A0F1
    ApplicationName       : Azurestack-MyApp-c30febe7-1311-4fd8-9077-3d869db28342
    ClientSecret          :
    PSComputerName        : azs-ercs01
    RunspaceId            : a78c76bb-8cae-4db4-a45a-c1420613e01b
    

Mantenha a sessão do console do PowerShell aberta, pois você a usará com o ApplicationIdentifier valor na próxima seção.

Atualizar uma credencial de certificado

Agora que você registrou o aplicativo, esta seção mostrará como:

  1. Crie um novo certificado X509 autoassinado para teste.
  2. Atualize as credenciais do aplicativo atualizando sua propriedade Thumbprint para corresponder ao novo certificado.

Atualize a credencial de certificado usando o PowerShell, substituindo seus próprios valores pelos seguintes espaços reservados:

Espaço reservado Descrição Exemplo
<PepVM> O nome da VM de ponto de extremidade com privilégios em sua instância do Azure Stack Hub. "AzS-ERCS01"
<YourAppName> Um nome descritivo do novo registro de aplicativo. "Minha ferramenta de gerenciamento"
<YourCertificateLocation> O local do certificado X509 no armazenamento de certificados local. "Cert:\CurrentUser\My\AB5A8A353CC7AA2025BF05120117E06DE407B34"
<AppIdentifier> O identificador atribuído ao registro do aplicativo. "S-1-5-21-1512385356-3796245103-1243299919-1356"
  1. Usando sua sessão de Windows PowerShell elevada, execute os seguintes cmdlets:

    # Create a PSSession to the PrivilegedEndpoint VM
    $Session = New-PSSession -ComputerName "<PepVM>" -ConfigurationName PrivilegedEndpoint -Credential $Creds -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
    # Create a self-signed certificate for testing purposes, using the New-SelfSignedCertificate cmdlet 
    # See https://docs.microsoft.com/powershell/module/pki/new-selfsignedcertificate for usage details, including using the -Provider parameter
    $NewCert = New-SelfSignedCertificate -CertStoreLocation "cert:\CurrentUser\My" -Subject "CN=<YourAppName>" -KeySpec KeyExchange
    # In production, use Get-Item to retrieve a managed certificate from the certificate store.
    # Alteratively, use Get-Certificate for a .cer file, or Get-PfxCertificate for a .pfx file.
    # $Cert = Get-Item "<YourCertificateLocation>"
    
    # Use the privileged endpoint to update the certificate thumbprint, used by <AppIdentifier>
    $SpObject = Invoke-Command -Session $Session -ScriptBlock {Set-GraphApplication -ApplicationIdentifier "<AppIdentifier>" -ClientCertificates $using:NewCert}
    $Session | Remove-PSSession
    
    # Output the updated service principal details
    $SpObject
    
  2. Depois que o script for concluído, ele exibirá as informações de registro do aplicativo atualizadas, incluindo o valor da impressão digital do novo certificado autoassinado.

    ApplicationIdentifier : S-1-5-21-1512385356-3796245103-1243299919-1356
    ClientId              : 
    Thumbprint            : AF22EE716909041055A01FE6C6F5C5CDE78948E9
    ApplicationName       : Azurestack-MyApp-c30febe7-1311-4fd8-9077-3d869db28342
    ClientSecret          : 
    PSComputerName        : azs-ercs01
    RunspaceId            : a580f894-8f9b-40ee-aa10-77d4d142b4e5
    

Criar um registro de aplicativo que usa uma credencial de segredo do cliente

Aviso

Usar um segredo do cliente é menos seguro do que usar uma credencial de certificado X509. Não só o mecanismo de autenticação é menos seguro, mas também normalmente requer a inserção do segredo no código-fonte do aplicativo cliente. Assim, para aplicativos de produção, você é altamente incentivado a usar uma credencial de certificado.

Agora você cria outro registro de aplicativo, mas desta vez especifica uma credencial secreta do cliente. Ao contrário da credencial de certificado, o diretório tem a capacidade de gerar uma credencial de segredo do cliente. Em vez de especificar o segredo do cliente, use a opção -GenerateClientSecret para solicitar que ela seja gerada. Substitua seus próprios valores pelos seguintes espaços reservados:

Espaço reservado Descrição Exemplo
<PepVM> O nome da VM de ponto de extremidade com privilégios em sua instância do Azure Stack Hub. "AzS-ERCS01"
<YourAppName> Um nome descritivo do novo registro de aplicativo. "Minha ferramenta de gerenciamento"
  1. Abra uma sessão com privilégio elevado do PowerShell no Windows e execute os seguintes cmdlets:

    # Sign in to PowerShell interactively, using credentials that have access to the VM running the Privileged Endpoint (typically <domain>\cloudadmin)
    $Creds = Get-Credential
    
    # Create a PSSession to the Privileged Endpoint VM
    $Session = New-PSSession -ComputerName "<PepVM>" -ConfigurationName PrivilegedEndpoint -Credential $Creds -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
    # Use the privileged endpoint to create the new app registration
    $SpObject = Invoke-Command -Session $Session -ScriptBlock {New-GraphApplication -Name "<YourAppName>" -GenerateClientSecret}
    $AzureStackInfo = Invoke-Command -Session $Session -ScriptBlock {Get-AzureStackStampInformation}
    $Session | Remove-PSSession
    
    # Using the stamp info for your Azure Stack Hub instance, populate the following variables:
    # - Az endpoint used for Azure Resource Manager operations 
    # - Audience for acquiring an OAuth token used to access Graph API 
    # - GUID of the directory tenant
    $ArmEndpoint = $AzureStackInfo.TenantExternalEndpoints.TenantResourceManager
    $GraphAudience = "https://graph." + $AzureStackInfo.ExternalDomainFQDN + "/"
    $TenantID = $AzureStackInfo.AADTenantID
    
    # Register and set an Az environment that targets your Azure Stack Hub instance
    Add-AzEnvironment -Name "AzureStackUser" -ArmEndpoint $ArmEndpoint
    
    # Sign in using the new service principal
    $securePassword = $SpObject.ClientSecret | ConvertTo-SecureString -AsPlainText -Force
    $credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $SpObject.ClientId, $securePassword
    $SpSignin = Connect-AzAccount -Environment "AzureStackUser" -ServicePrincipal -Credential $credential -TenantId $TenantID
    
    # Output the service principal details
    $SpObject
    
  2. Depois que o script for concluído, ele exibirá as informações de registro do aplicativo. A ClientID e ClientSecret são autenticadas e, posteriormente, autorizadas a acessar os recursos gerenciados pelo Azure Resource Manager.

    ApplicationIdentifier : S-1-5-21-1634563105-1224503876-2692824315-2623
    ClientId              : 8e0ffd12-26c8-4178-a74b-f26bd28db601
    Thumbprint            : 
    ApplicationName       : Azurestack-YourApp-6967581b-497e-4f5a-87b5-0c8d01a9f146
    ClientSecret          : 6RUWLRoBw3EebBLgaWGiowCkoko5_j_ujIPjA8dS
    PSComputerName        : azs-ercs01
    RunspaceId            : 286daaa1-c9a6-4176-a1a8-03f543f90998
    

Mantenha a sessão do console do PowerShell aberta, pois você a usará com o ApplicationIdentifier valor na próxima seção.

Atualizar uma credencial de segredo do cliente

Atualize a credencial de segredo do cliente usando o PowerShell, usando o parâmetro ResetClientSecret , que altera imediatamente o segredo do cliente. Substitua seus próprios valores pelos seguintes espaços reservados:

Espaço reservado Descrição Exemplo
<PepVM> O nome da VM de ponto de extremidade com privilégios em sua instância do Azure Stack Hub. "AzS-ERCS01"
<AppIdentifier> O identificador atribuído ao registro do aplicativo. "S-1-5-21-1634563105-1224503876-2692824315-2623"
  1. Usando sua sessão de Windows PowerShell elevada, execute os seguintes cmdlets:

    # Create a PSSession to the PrivilegedEndpoint VM
    $Session = New-PSSession -ComputerName "<PepVM>" -ConfigurationName PrivilegedEndpoint -Credential $Creds -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)
    
    # Use the privileged endpoint to update the client secret, used by <AppIdentifier>
    $SpObject = Invoke-Command -Session $Session -ScriptBlock {Set-GraphApplication -ApplicationIdentifier "<AppIdentifier>" -ResetClientSecret}
    $Session | Remove-PSSession
    
    # Output the updated service principal details
    $SpObject
    
  2. Depois que o script for concluído, ele exibirá as informações de registro do aplicativo atualizadas, incluindo o segredo do cliente recém-gerado.

    ApplicationIdentifier : S-1-5-21-1634563105-1224503876-2692824315-2623
    ClientId              : 8e0ffd12-26c8-4178-a74b-f26bd28db601
    Thumbprint            : 
    ApplicationName       : Azurestack-YourApp-6967581b-497e-4f5a-87b5-0c8d01a9f146
    ClientSecret          : MKUNzeL6PwmlhWdHB59c25WDDZlJ1A6IWzwgv_Kn
    PSComputerName        : azs-ercs01
    RunspaceId            : 6ed9f903-f1be-44e3-9fef-e7e0e3f48564
    

Remover um registro de aplicativo

Agora você verá como remover um registro de aplicativo do diretório usando o PowerShell.

Substitua seus próprios valores pelos seguintes espaços reservados:

Espaço reservado Descrição Exemplo
<PepVM> O nome da VM de ponto de extremidade com privilégios em sua instância do Azure Stack Hub. "AzS-ERCS01"
<AppIdentifier> O identificador atribuído ao registro do aplicativo. "S-1-5-21-1634563105-1224503876-2692824315-2623"
# Sign in to PowerShell interactively, using credentials that have access to the VM running the Privileged Endpoint (typically <domain>\cloudadmin)
$Creds = Get-Credential

# Create a PSSession to the PrivilegedEndpoint VM
$Session = New-PSSession -ComputerName "<PepVM>" -ConfigurationName PrivilegedEndpoint -Credential $Creds -SessionOption (New-PSSessionOption -Culture en-US -UICulture en-US)

# OPTIONAL: Use the privileged endpoint to get a list of applications registered in AD FS
$AppList = Invoke-Command -Session $Session -ScriptBlock {Get-GraphApplication}

# Use the privileged endpoint to remove application <AppIdentifier>
Invoke-Command -Session $Session -ScriptBlock {Remove-GraphApplication -ApplicationIdentifier "<AppIdentifier>"}

Não haverá nenhuma saída retornada de chamar o cmdlet Remove-GraphApplication no ponto de extremidade privilegiado, mas você verá a saída de confirmação verbatim para o console durante a execução do cmdlet:

VERBOSE: Deleting graph application with identifier S-1-5-21-1634563105-1224503876-2692824315-2623.
VERBOSE: Remove-GraphApplication : BEGIN on AZS-ADFS01 on ADFSGraphEndpoint
VERBOSE: Application with identifier S-1-5-21-1634563105-1224503876-2692824315-2623 was deleted.
VERBOSE: Remove-GraphApplication : END on AZS-ADFS01 under ADFSGraphEndpoint configuration

Atribuir uma função

O acesso aos recursos do Azure por usuários e aplicativos é autorizado por meio do RBAC (Role-Based Controle de Acesso). Para permitir que um aplicativo acesse recursos em sua assinatura, você deve atribuir sua entidade de serviço a uma função para um recurso específico. Primeiro decida qual função representa as permissões certas para o aplicativo. Para saber mais sobre as funções disponíveis, consulte funções internas para recursos do Azure.

O tipo de recurso escolhido também estabelece o escopo de acesso para o aplicativo. Você pode definir o escopo de acesso no nível de assinatura, grupo de recursos ou recurso. As permissão são herdadas para níveis inferiores do escopo. Por exemplo, adicionar um aplicativo à função "Leitor" para um grupo de recursos significa que ele pode ler o grupo de recursos e todos os recursos que ele contém.

  1. Entre no portal apropriado, com base no diretório especificado durante a instalação do Azure Stack Hub (o portal do Azure para o Azure AD ou o portal de usuário do Azure Stack Hub para AD FS, por exemplo). Neste exemplo, mostramos um usuário conectado ao portal do usuário do Azure Stack Hub.

    Observação

    Para adicionar atribuições de função para um determinado recurso, sua conta de usuário deve pertencer a uma função que declare a Microsoft.Authorization/roleAssignments/write permissão. Por exemplo, as funções internas Proprietário ou Administrador de Acesso do Usuário .

  2. Navegue até o recurso que você deseja permitir que o aplicativo acesse. Neste exemplo, atribua o aplicativo a uma função no escopo da assinatura, selecionando Assinaturas e, em seguida, uma assinatura específica. Em vez disso, você pode selecionar um grupo de recursos ou um recurso específico, como uma máquina virtual.

    Select subscription for assignment

  3. Selecione a página Controle de Acesso (IAM), que é universal em todos os recursos que dão suporte ao RBAC.

  4. Selecione + Adicionar

  5. Em Função, escolha a função que você deseja atribuir ao aplicativo.

  6. Em Selecionar, pesquise seu aplicativo usando um Nome de Aplicativo completo ou parcial. Durante o registro, o Nome do Aplicativo é gerado como Azurestack-YourAppName-ClientId<><>. Por exemplo, se você usou um nome de aplicativo do App2, e ClientId 2bbe67d8-3fdb-4b62-87cf-cc41dd4344ff foi atribuído durante a criação, o nome completo seria Azurestack-App2-2bbe67d8-3fdb-4b62-87cf-cc41dd4344ff. Você pode pesquisar a cadeia de caracteres exata ou uma parte, como Azurestack ou Azurestack-App2.

  7. Depois de encontrar o aplicativo, selecione-o e ele será exibido em membros selecionados.

  8. Selecione Salvar para finalizar a atribuição da função.

    Assign role

  9. Quando terminar, o aplicativo mostrará na lista de entidades de segurança atribuídas para o escopo atual, para a função determinada.

    Assigned role

Agora que você deu uma identidade ao seu aplicativo e a autorizou para acesso a recursos, você pode habilitar seu script ou código para entrar e acessar com segurança os recursos do Azure Stack Hub.

Próximas etapas

Gerenciar permissões de usuário
Documentação do Azure Active Directory
Serviços de Federação do Active Directory (AD FS)