Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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.
- Instale o módulo AzureAD.
Install-Module Microsoft.Graph
- Execute Connect-MgGraph, isso solicita um nome de usuário e senha. Insira as credenciais de administrador do locatário.
Connect-MgGraph
- 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.
- Iniciar sessão no portal.azure.com
- Selecione Microsoft Entra ID e registos de aplicação para criar novos registos com múltiplos locatários.
- Selecione um nome de exibição voltado para o usuário para seu aplicativo.
- Selecione Tipo de conta suportada: Contas em qualquer diretório organizacional (Qualquer diretório do Microsoft Entra - Multilocatário).
- Selecione uma plataforma digite "Web".
- 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.
- 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
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
- 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
-
Permissões de API>Adicionar uma permissão>APIs da Microsoft>Microsoft Graph>Permissões Delegadas
Fornecer link de consentimento
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.
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:
- Inicie sessão no Microsoft Entra ID.
- Substitua Application-Id pelo GUID (ID do aplicativo Microsoft Entra).
- Quando solicitado, entre com sua conta de usuário com MFA configurada.
- Quando solicitado, insira outras informações de MFA (número de telefone ou endereço de e-mail) para verificar seu login.
- 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:
- 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. - Observe o token de atualização retornado.
- 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
)
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:
- 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
- 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.
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.
Pedido de consentimento de parceiro (CSP)
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/" />
Pedido de consentimento de parceiro (CPV)
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/" />