Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você 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 Graph do Azure AD (Azure Active Directory) foi preterido em 30 de junho de 2023. Daqui para frente, não faremos mais investimentos no Azure AD Graph. As APIs do Graph do Azure AD não têm nenhum compromisso de manutenção ou SLA além de correções relacionadas à segurança. Os investimentos em novos recursos e funcionalidades serão feitos apenas no Microsoft Graph.
Desativaremos o Azure AD Graph em etapas incrementais para que você tenha tempo suficiente para migrar seus aplicativos para AS 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 descontinuação do módulo do 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 de parceiros CSP, essa entidade de serviço já deve existir. Caso contrário, crie usando as etapas a seguir.
Em uma janela do PowerShell de administrador, execute os comandos a seguir.
- Instale o módulo AzureAD.
Install-Module Microsoft.Graph
- Execute o Connect-MgGraph, isso solicita um nome de usuário e senha. Insira as credenciais de administrador do locatário.
Connect-MgGraph
- Crie uma entidade 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 propriedades do aplicativo a seguir estejam definidas para o aplicativo multilocatário recém-criado.
- Faça login no portal.azure.com
- Selecione ID do Microsoft Entra e registros de aplicativo para criar novos registros com multilocatário.
- Selecione um nome de exibição voltado para o usuário para seu aplicativo.
- Selecione Tipo de conta com suporte: Contas em qualquer diretório organizacional (Qualquer diretório do Microsoft Entra - Multilocatário).
- Selecione um tipo de plataforma "Web".
- A URL de redirecionamento deve ser a URL de redirecionamento do aplicativo, que mostrará a mensagem de êxito do consentimento para o parceiro e coletará um token de atualização. Verifique se a URL de redirecionamento do seu aplicativo está definida como um ponto de extremidade em que um aplicativo Web ativo está sendo executado. Este aplicativo precisa aceitar o código de autorização da chamada de entrada do Microsoft Entra.
- Vá para Gerenciar>certificados e 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 na ID do Microsoft Entra:
- ID do aplicativo
- Segredo do aplicativo
Aplicar permissões
Verifique se as permissões a seguir estão definidas para o aplicativo multilocatário.
Na seção de permissão da API :
Não deve haver nenhuma permissão de aplicativo direta para o aplicativo multilocatário.
Siga o caminho abaixo para adicionar permissões delegadas para o Microsoft Graph:
-
Permissões de> APIAdicionar uma permissão>APIs> da MicrosoftGráfico da> MicrosoftPermissões delegadas
DelegatedAdminRelationship.ReadWrite.All User.Read.All
- Siga o caminho abaixo para adicionar permissões delegadas para o Microsoft Partner Center – Conceder acesso às permissões do Partner Center em Permissões delegadas:
- Permissões de> APIAdicionar uma permissão>APIs que minha organização usa>Centro de Parceiros da> MicrosoftPermissões> delegadasRepresentação do usuário
-
Permissões de> APIAdicionar uma permissão>APIs> da MicrosoftGráfico da> MicrosoftPermissões delegadas
Fornecer link de consentimento
Apresente ao parceiro o link de consentimento e faça com que ele entre com sua conta de serviço para aprovar o aplicativo para agir em nome da conta de serviço no locatário do 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 pela ID do aplicativo.
Navegue até Registros de Aplicativo e selecione a ID do Aplicativo (Cliente) e substitua abaixo.
Obter código de autorização
Você deve obter um código de autorização para seu aplicativo Web da chamada de entrada do Microsoft Entra:
- Entre na ID do Microsoft Entra.
- Substitua Application-Id pelo GUID (ID do aplicativo) do Microsoft Entra.
- Quando solicitado, entre com sua conta de usuário com a MFA configurada.
- Quando solicitado, insira outras informações de MFA (número de telefone ou endereço de email) para verificar sua entrada.
- Depois de fazer logon, o navegador redirecionará a chamada para o ponto de extremidade do aplicativo Web com 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:
- 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 chamada de exemplo a seguir. - Observe o token de atualização retornado.
- Armazene o token de atualização no Azure Key Vault. 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 Partner Center (https://api.partnercenter.microsoft.com
)
API do parceiro (https://api.partner.microsoft.com
)
Exemplo de chamada
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 o 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 você estiver usando o Azure Key Vault:
- Crie o Azure Key Vault com o apropriado
<key-vault-name>
e isso resultará 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 para gerenciar apenas os aspectos Obter e Definir de um Segredo.
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 êxito.
- Esse 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 do parceiro CSP.
-
Aplicativo CSP ou aplicativo CPV: representa um aplicativo primário, que chama APIs e grafo do Partner Center.
- APIs para executar ações de comércio e usuário em nome do parceiro.
Esse aplicativo recupera o token de acesso para um público específico (APIs do Partner Center ou Graph) antes de chamar as respectivas APIs. Ele usa o token de atualização armazenado com segurança no cofre de chaves.
Aplicativo de consentimento do parceiro (CSP)
Configuração da Web do CSP
Para o aplicativo de parceiro CSP, o web.config
arquivo tem as seções a seguir 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 seções a seguir destacadas. Atualize os valores com as 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/" />
Aplicativo de consentimento do parceiro (CPV)
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 da Web do CPV
Para o aplicativo de parceiro CSP, o web.config
arquivo tem as seções a seguir 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 parceiro CPV, o app.config
arquivo tem as seguintes seções destacadas. Atualize os valores com as 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/" />