Partilhar via


Criar um aplicativo de parceiro seguro

Você pode implementar a estrutura do Modelo de Aplicativo Seguro criando um aplicativo para CSPs (Provedores de Soluções na Nuvem) ou CPVs (Fornecedores de Painel de Controle).

Implementar modelo de aplicativo seguro

Etapas para habilitar o modelo de aplicativo seguro

Importante

O Azure Ative Directory (Azure AD) Graph foi preterido a partir de 30 de junho de 2023. No futuro, não faremos mais investimentos no Azure AD Graph. As APIs do Azure AD Graph não têm SLA ou compromisso de manutenção além das correções relacionadas à segurança. Os investimentos em novos recursos e funcionalidades só serão feitos no Microsoft Graph.

Desativaremos o Azure AD Graph em etapas incrementais para que você tenha tempo suficiente para migrar seus aplicativos para APIs do Microsoft Graph. Em uma data posterior que anunciaremos, bloquearemos a criação de novos aplicativos usando o Azure AD Graph.

Para saber mais, consulte Importante: Aposentadoria do Azure AD Graph e Descontinuação do módulo Powershell.

Criar uma entidade de serviço do Partner Center

Primeiro, crie uma entidade de serviço do Microsoft Partner Center no locatário do parceiro CSP, onde o aplicativo multilocatário será criado.

Para locatários parceiros CSP, essa entidade de serviço já deve existir. Caso contrário, crie usando as etapas a seguir.

Em uma janela do PowerShell do administrador, execute os seguintes comandos.

  1. Instale o módulo AzureAD. Install-Module Microsoft.Graph
  2. Execute Connect-MgGraph, isso solicita um nome de usuário e senha. Insira as credenciais de administrador do locatário. Connect-MgGraph
  3. Crie uma entidade de serviço do Microsoft Partner Center. New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId fa3d9a0c-3fb0-42cc-9193-47c7ecd2edbd

Criar um aplicativo multilocatário no locatário do parceiro CSP

Use as etapas a seguir para garantir que as seguintes propriedades do aplicativo estejam definidas para o aplicativo multilocatário recém-criado.

  1. Iniciar sessão no portal.azure.com
  2. Selecione Microsoft Entra ID e Registros de aplicativo para criar novos registros com multilocatário.

Captura de tela mostrando Registrar um modal de aplicativo.

  1. Selecione um nome de exibição voltado para o usuário para seu aplicativo.
  2. Selecione Tipo de conta suportada: Contas em qualquer diretório organizacional (Qualquer diretório do Microsoft Entra - Multilocatário).
  3. Selecione um tipo de plataforma "Web".
  4. A URL de redirecionamento deve ser a URL de redirecionamento do aplicativo, que mostrará a mensagem de sucesso de consentimento para o parceiro e coletará um token de atualização. Certifique-se de que o URL de redirecionamento da sua aplicação está definido para um ponto de extremidade onde uma aplicação Web ativa está a ser executada. Este aplicativo precisa aceitar o código de autorização da chamada de entrada do Microsoft Entra.
  5. Vá para Gerenciar>certificados & segredos>+Novo segredo do cliente na guia Segredos do cliente.

Nota

Você precisará das seguintes informações das configurações do seu aplicativo Web no Microsoft Entra ID:

  • ID da aplicação
  • Segredo do aplicativo

Captura de ecrã a mostrar Certificados e segredos.

Aplicar permissões

Verifique se as seguintes permissões estão definidas para o aplicativo multilocatário.

Na seção de permissão da API:

  • Não deve haver permissões diretas de aplicativo para o aplicativo multilocatário.

  • Siga o caminho abaixo para adicionar permissões delegadas para o Microsoft Graph:

    • Permissões de>API Adicionar uma permissão>APIs da Microsoft>Permissões delegadas do Microsoft Graph>
      • DelegatedAdminRelationship.ReadWrite.All User.Read.All

    Captura de tela mostrando permissões de API de solicitação de aplicativo parceiro.

    • Siga o caminho abaixo para adicionar permissões delegadas para o Microsoft Partner Center - Conceder permissões do Access Partner Center em Permissões delegadas:
      • Permissões>da API Adicionar uma permissão>APIs que minha organização usa>Permissões delegadas do Microsoft Partner Center>Representação>de usuário

    Captura de ecrã a mostrar as permissões A P I da aplicação parceira.

Apresente ao parceiro o link de consentimento e peça-lhe que inicie sessão com a respetiva conta de serviço para aprovar a candidatura para agir em nome da conta de serviço no inquilino parceiro.

O usuário parceiro CSP deve ser um Administrador Global e um Agente Administrador para consentir o aplicativo multilocatário.

Aplicativo multilocatário

O multilocatário ApplicationID precisa ser substituído pelo ID do aplicativo.

Navegue até Registros de aplicativos e selecione a ID do aplicativo (cliente) e substitua abaixo.

Captura de ecrã a mostrar o cliente Partner Microsoft Entra.

Obter código de autorização

Tem de obter um código de autorização para a sua aplicação Web a partir da chamada de início de sessão do Microsoft Entra:

  1. Entre no Microsoft Entra ID.
  2. Substitua Application-Id pelo seu ID de aplicativo (GUID) do Microsoft Entra.
  3. Quando solicitado, entre com sua conta de usuário com MFA configurada.
  4. Quando solicitado, insira outras informações de MFA (número de telefone ou endereço de e-mail) para verificar seu login.
  5. Depois de iniciar sessão, o navegador redirecionará a chamada para o ponto de extremidade da aplicação Web com o seu código de autorização. Por exemplo, o código de exemplo a seguir redireciona para https://localhost:44395/.
GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code&redirect_url=https://<CSPApplicationUrl_which_collects_refreshtoken>

ou

GET https://login.microsoftonline.com/common/oauth2/authorize?&client_id=<CSPApplicationId>&response_type=code

Para a China, use o seguinte link:

GET https://login.chinacloudapi.cn/common/oauth2/authorize ?&client_id= <CSPApplicationId>&response_type=code&redirect_url= https://<CSPApplicationUrl_which_collects_refreshtoken>

ou

GET https://login.chinacloudapi.cn/common/oauth2/authorize?&client_id= <CSPApplicationId>&response_type=code

Rastreamento de chamada de código de autorização: https://localhost:44395/?code=<authorization_code>&<rest of properties for state>

Obter token de atualização

Em seguida, você deve usar seu código de autorização para obter um token de atualização:

  1. Faça uma chamada POST para o ponto de extremidade https://login.microsoftonline.com/CSPTenantID/oauth2/token de entrada do Microsoft Entra com o código de autorização. Para obter um exemplo, consulte a seguinte chamada de exemplo.
  2. Observe o token de atualização retornado.
  3. Armazene o token de atualização no Cofre da Chave do Azure. Para obter mais informações, consulte a documentação da API do Key Vault.

Nota

Os recursos mencionados na chamada POST de exemplo abaixo são para APIs GDAP-Graph.

Os recursos para outras APIs de PC são os seguintes:

APIs do Partner Center (https://api.partnercenter.microsoft.com)

GDAP APIs

API de parceiro (https://api.partner.microsoft.com)

Chamada de exemplo

POST  'https://login.microsoftonline.com/<partnerTenantId>/oauth2/token' \
--header 'content-type: application/x-www-form-urlencoded' \
--form 'grant_type="authorization_code"' \
--form 'client_id=<application_id or client_id>' \
--form 'resource="https://graph.microsoft.com"' \
--form 'code="<authorization_code>"'   
Response Body:

{
    "token_type": "Bearer",
    "scope": "DelegatedAdminRelationship.ReadWrite.All User.Read.All",
    "expires_in": "4549",
    "ext_expires_in": "4549",
    "expires_on": "1652886571",
    "not_before": "1652881721",
    "resource": "https://graph.microsoft.com",
    "access_token": "Access_token",
    "refresh_token": "Refresh_token",    
    "id_token": "Id_token"
}

Configurar cofre de chaves

Primeiro, crie um novo aplicativo Web no locatário do parceiro CSP. Se o aplicativo CPV for usado para chamar as APIs do Partner Center, o CPV deverá criar um novo aplicativo Web no locatário do parceiro CPV.

Se estiver a utilizar o Azure Key Vault:

  1. Crie o Cofre da Chave do Azure com o apropriado <key-vault-name> e isso resulta em um nome DNS como: https://<key-vault-name>.vault.azure.net
  2. Adicione um token de atualização ao cofre de chaves.

Fornecer acesso ao cofre de chaves

Nas políticas de acesso do cofre de chaves, adicione o KeyVaultAccessApp com permissões para gerenciar apenas os aspetos Obter e Definir de um Segredo.

Captura de tela mostrando as permissões necessárias do aplicativo parceiro CSP.

Configurar o protótipo

O protótipo tem duas aplicações:

  • Consentimento do parceiro: representa um aplicativo Web projetado para aceitar o consentimento de um parceiro CSP e mostrar uma mensagem de sucesso.
    • Este aplicativo configura o consentimento e captura o token de atualização do usuário consentido.
    • O token de atualização do usuário consentido é usado para gerar o token de acesso para o locatário parceiro CSP.
  • Aplicativo CSP ou aplicativo CPV: representa um aplicativo principal, que chama APIs e gráfico do Partner Center.
    • APIs para realizar ações de comércio e usuário em nome do parceiro.

Este aplicativo recupera o token de acesso para um público específico (APIs do Partner Center ou Graph) antes de chamar as respetivas APIs. Ele usa o token de atualização que é armazenado com segurança no cofre de chaves.

Configuração da Web CSP

Para o aplicativo de parceiro CSP, o web.config arquivo tem as seguintes seções destacadas. Atualize esses valores com IDs e segredos de aplicativo correspondentes. Para seu aplicativo principal, use "certificado" como o segredo do aplicativo Web em vez de segredos simples, pois ele fornece uma camada extra de segurança.

<!-- AppID that represents CSP application -->
<add key="ida:CSPApplicationId" value="CSPApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment.
The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CSPApplicationSecret" value="CSPApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens --> <add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment.
The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

Configuração do aplicativo CSP

Para o aplicativo de parceiro CSP, o app.config arquivo tem as seguintes seções destacadas. Atualize os valores com os IDs e segredos do aplicativo correspondentes. Para seu aplicativo principal, use "certificado" como o segredo do aplicativo Web em vez de segredos simples, pois ele fornece uma camada extra de segurança.

<!-- AppID that represents CSP application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de,
China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

Os CSPs que usam o aplicativo CPV podem chamar a API ApplicationConsent para criar a entidade de serviço no locatário do cliente para acessar o Microsoft Graph para gerenciar os locatários do cliente. Para obter mais informações, consulte Autenticação do Partner Center.

Configuração web CPV

Para o aplicativo de parceiro CSP, o web.config arquivo tem as seguintes seções destacadas. Atualize esses valores com IDs e segredos de aplicativo correspondentes. Para seu aplicativo principal, use "certificado" como o segredo do aplicativo Web em vez de segredos simples, pois ele fornece uma camada extra de segurança.

<!-- AppID that represents Control panel vendor application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />

Configuração do aplicativo CPV

Para o aplicativo de parceiro CPV, o app.config arquivo tem as seguintes seções destacadas. Atualize os valores com os IDs e segredos do aplicativo correspondentes. Para seu aplicativo principal, use "certificado" como o segredo do aplicativo Web em vez de segredos simples, pois ele fornece uma camada extra de segurança.

<!-- AppID that represents Control panel vendor application -->
<add key="ida:CPVApplicationId" value="CPVApplicationIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:CPVApplicationSecret" value="CPVApplicationSecretValue" />
<!-- AppID that is given access for keyvault to store the refresh tokens -->
<add key="ida:KeyVaultClientId" value="KeyVaultClientIdValue" />
<!--
Please use certificate as your client secret and deploy the certificate to your environment. The following application secret is for sample application only. please do not use secret directly from the config file.
-->
<add key="ida:KeyVaultClientSecret" value="KeyVaultClientSecretValue" />
<!-- AAD instance: Global is .com, for different national clouds it changes German cloud: .de, China cloud: login.chinacloudapi.cn -->
<add key="ida:AADInstance" value="https://login.microsoftonline.com/" />