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: Desativação do Azure AD Graph e do Módulo PowerShell.

Criar um principal de serviço no Partner Center

Primeiro, crie uma entidade de serviço do Microsoft Partner Center no locatário do parceiro CSP, onde uma aplicação multilocatária será criada.

Para locatários parceiros CSP, este principal 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 um principal de serviço do Microsoft Partner Center. New-MgServicePrincipal -DisplayName "Microsoft Partner Center" -AppId 00001111-aaaa-2222-bbbb-3333cccc4444

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 registos de aplicação para criar novos registos com múltiplos locatários.

Captura de tela mostrando um modal para registar uma aplicação.

  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 uma plataforma digite "Web".
  4. A URL de Redirect deve ser a URL de redirecionamento do aplicativo, que mostrará a mensagem de consentimento de sucesso 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. Esta aplicação precisa aceitar o código de autorização da chamada de autenticação do Microsoft Entra.
  5. Vá para Gerenciar>Certificados & segredos> +Novo segredo do cliente na guia Segredos do cliente.

Observação

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

  • ID do aplicativo
  • Segredo do aplicativo

Captura de tela mostrando certificados e segredos.

Aplicar permissões

Verifique se as seguintes permissões estão configuradas para a aplicação multilocatária.

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

  • Não deve haver Permissões de Aplicativo diretas para a aplicação multicliente.

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

    • Permissões de API>Adicionar uma permissão>APIs da Microsoft>Microsoft Graph>Permissões Delegadas
      • 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 ao Microsoft Partner Center - a permissão "Conceder Acesso ao Partner Center" sob Permissões Delegadas:
      • Permissões de API>Adicionar uma permissão>APIs que minha organização usa>Microsoft Partner Center>Permissões Delegadas>Representação de Usuário

    Captura de tela mostrando as permissões A P I do aplicativo parceiro.

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 utilizador parceiro CSP deve ser um Administrador Global e um Agente Administrador para autorizar a aplicação multicliente.

Aplicativo multilocatário

O identificador 'multi tenant' precisa ser substituído pelo ID da sua aplicação.

Navegue até Registros de Aplicativos e selecione o Identificador de Aplicação (Cliente) e altere conforme abaixo.

Captura de tela mostrando 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. Inicie sessão no Microsoft Entra ID.
  2. Substitua Application-Id pelo GUID (ID do aplicativo 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 endpoint da app 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 do código de autorização de chamada: 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 solicitação POST ao endpoint de login do Microsoft Entra https://login.microsoftonline.com/CSPTenantID/oauth2/token com o código de autorização. Para obter um exemplo, consulte o seguinte exemplo de chamada.
  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.

Observação

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 Centro de Parceiros (https://api.partnercenter.microsoft.com)

APIs GDAP

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 uma nova aplicação web no tenant 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 a <key-vault-name> apropriada 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 apenas para gerir os aspetos Get e Set 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:

  • Partner Consent: 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 renovação do usuário que deu consentimento é usado para gerar o token de acesso para o cliente parceiro CSP.
  • aplicação CSP ou aplicação CPV: representa uma aplicação principal, que chama as APIs e o Graph 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.

A configuração web do CSP

Para a aplicação de parceiro CSP, o arquivo web.config tem as seguintes seções indicadas. Atualize esses valores com os IDs e segredos de aplicação 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 a aplicação de parceiro CSP, o arquivo app.config tem as seguintes seções indicadas. Atualize os valores com os IDs e segredos da aplicação 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 a aplicação CPV podem chamar a API ApplicationConsent para criar o principal de serviço no inquilino do cliente para aceder ao Microsoft Graph e gerir os inquilinos do cliente. Para obter mais informações, consulte autenticação do Centro de Parceiros.

Configuração web CPV

Para a aplicação de parceiro CSP, o arquivo web.config tem as seguintes seções indicadas. Atualize esses valores com os IDs e segredos de aplicação 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 a aplicação de parceiro CPV, o arquivo app.config contém as seguintes secções: Modifique os valores com as identificações e segredos da aplicação 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/" />