Habilitando a estrutura do Modelo de Aplicativo Seguro
A Microsoft está introduzindo uma estrutura segura e escalável para autenticar parceiros de provedor de soluções em nuvem (CSP) e fornecedores de painéis de controle (CPV) por meio da arquitetura Microsoft Entra multifactor authentication (MFA).
Você pode usar o novo modelo para elevar a segurança para chamadas de integração de API do Partner Center. Isso ajuda todas as partes (incluindo Microsoft, parceiros CSP e CPVs) a proteger sua infraestrutura e os dados do cliente contra riscos de segurança.
O programa CSP permite que os clientes comprem produtos e serviços da Microsoft por meio dos parceiros. De acordo com o contrato com a Microsoft, os parceiros são obrigados a gerenciar o ambiente para os clientes aos quais vendem e fornecer suporte. Os clientes que compram por meio desse canal devem depositar uma alta quantidade de confiança no parceiro do qual estão comprando, porque a empresa parceira tem acesso de administrador de alto privilégio ao locatário do cliente.
Âmbito de aplicação
Este artigo refere-se tanto aos PSC como aos CPV.
CPVs
- Um CPV é um fornecedor de software independente que desenvolve aplicativos para uso por parceiros CSP para integração com APIs do Partner Center.
- Um CPV não é um parceiro CSP com acesso direto ao Partner Center ou APIs.
PSCs
- Provedores indiretos do CSP e parceiros diretos do CSP que estão usando ID de aplicativo + autenticação de usuário e se integram diretamente com as APIs do Centro de Parceiros.
Requisitos de segurança
Para obter detalhes sobre os requisitos de segurança, consulte Requisitos de segurança do parceiro.
Modelo de Aplicação Segura
Os aplicativos do Marketplace precisam representar privilégios de parceiro CSP para chamar APIs da Microsoft. Ataques de segurança a esses aplicativos confidenciais podem levar ao comprometimento dos dados do cliente.
Para obter uma visão geral e detalhes da nova estrutura de autenticação, consulte o Secure Application Model framework, que aborda princípios e práticas recomendadas para tornar os aplicativos de mercado sustentáveis e robustos contra comprometimentos de segurança.
Amostras
Os seguintes documentos de visão geral e código de exemplo descrevem como os parceiros podem implementar a estrutura do Modelo de Aplicativo Seguro:
-
O Java SDK do Partner Center pode ser usado para gerenciar recursos do Partner Center. É um projeto de código aberto mantido pela comunidade de parceiros e não suportado oficialmente pela Microsoft. Você pode obter ajuda da comunidade ou então pode abrir uma issue no GitHub se tiver um problema.
DESCANSO
Para fazer chamadas REST com a estrutura Secure Application Model com código de exemplo, siga estas etapas:
- Habilitando a estrutura do Modelo de Aplicativo Seguro
- Habilitando a estrutura do Modelo de Aplicativo Seguro
Criar um aplicativo Web
Entre no portal do Azure.
Crie um aplicativo Microsoft Entra.
Conceda permissões de aplicativo delegado aos seguintes recursos, dependendo dos requisitos do seu aplicativo. Se necessário, você pode adicionar mais permissões delegadas para recursos do aplicativo.
Microsoft Partner Center (alguns locatários mostram SampleBECApp)
APIs de Gestão do Azure (se está a planear chamar APIs do Azure)
Windows Azure Active Directory
Certifique-se de que o URL inicial 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 login do Microsoft Entra. Por exemplo, no exemplo de código na seção a seguir, a aplicação web está sendo executada em
https://localhost:44395/
.Observe as seguintes informações das configurações do seu aplicativo Web no Microsoft Entra ID:
- ID do aplicativo
- Segredo do aplicativo
Observação
É recomendável usar um certificado como segredo do aplicativo. No entanto, você também pode criar uma chave de aplicativo no portal do Azure. O código de exemplo no seção a seguir usa uma chave de aplicativo.
Obter código de autorização
Você deve obter um código de autorização para que seu aplicativo Web aceite na chamada de login do Microsoft Entra:
Entre no Microsoft Entra ID.
Certifique-se de fazer login com a conta de usuário a partir da qual você faz chamadas de API do Partner Center (como um agente administrativo ou uma conta de agente de vendas).
Substitua o ID do aplicativo Application-Id pelo GUID do seu aplicativo Microsoft Entra.
Quando solicitado, faça login com sua conta de usuário com MFA configurado.
Quando solicitado, insira mais 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 irá redirecionar a chamada para o terminal da sua aplicação web com o código de autorização. Por exemplo, o código de exemplo a seguir redireciona para
https://localhost:44395/
.
Rastreamento de código de autorização de chamada
POST https://localhost:44395/ HTTP/1.1
Origin: https://login.microsoftonline.com
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Referrer: https://login.microsoftonline.com/kmsi
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9
Cookie: OpenIdConnect.nonce.hOMjjrivcxzuI4YqAw4uYC%2F%2BILFk4%2FCx3kHTHP3lBvA%3D=dHVyRXdlbk9WVUZFdlFONVdiY01nNEpUc0JRR0RiYWFLTHhQYlRGNl9VeXJqNjdLTGV3cFpIWFg1YmpnWVdQUURtN0dvMkdHS2kzTm02NGdQS09veVNEbTZJMDk1TVVNYkczYmstQmlKUzFQaTBFMEdhNVJGVHlES2d3WGlCSlVlN1c2UE9sd2kzckNrVGN2RFNULWdHY2JET3RDQUxSaXRfLXZQdG00RnlUM0E1TUo1YWNKOWxvQXRwSkhRYklQbmZUV3d3eHVfNEpMUUthMFlQUFgzS01RS2NvMXYtbnV4UVJOYkl4TTN0cw%3D%3D
code=AuthorizationCodeValue&id_token=IdTokenValue&<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 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 a chamada de exemplo .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.
Importante
O token de atualização deve ser armazenado como um secreto no Cofre de Chaves.
Exemplo de chamada de atualização
Solicitação de espaço reservado:
POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 966
Expect: 100-continue
Corpo do pedido:
resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id&client_secret=Application-Secret&grant_type=authorization_code&code=AuthorizationCodeValue
Resposta do espaço reservado:
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8
Corpo da resposta:
{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}
Obter token de acesso
Você deve obter um token de acesso antes de poder fazer chamadas para as APIs do Partner Center. Você deve usar um token de atualização para obter um token de acesso porque os tokens de acesso geralmente têm um tempo de vida limitado (por exemplo, menos de uma hora).
Solicitação de espaço reservado:
POST https://login.microsoftonline.com/CSPTenantID/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: login.microsoftonline.com
Content-Length: 1212
Expect: 100-continue
Corpo do pedido:
resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id &client_secret= Application-Secret&grant_type=refresh_token&refresh_token=RefreshTokenVlaue&scope=openid
Resposta do espaço reservado:
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Content-Type: application/json; charset=utf-8
Corpo da resposta:
{"token_type":"Bearer","scope":"user_impersonation","expires_in":"3600","ext_expires_in":"3600","expires_on":"1547581389","not_before":"1547577489","resource":"https://api.partnercenter.microsoft.com","access_token":"AccessTokenValue","id_token":"IDTokenValue"}
Fazer chamadas à API do Partner Center
Você deve usar seu token de acesso para chamar as APIs do Partner Center. Veja o exemplo de chamada a seguir.
Exemplo de chamada à API do Partner Center
GET https://api.partnercenter.microsoft.com/v1/customers/CustomerTenantId/users HTTP/1.1
Authorization: Bearer AccessTokenValue
Accept: application/json
X-Locale: en-US
Host: api.partnercenter.microsoft.com
PowerShell
O módulo PowerShell do Partner Center pode ser usado para gerenciar recursos do Partner Center. É um projeto de código aberto mantido pela comunidade de parceiros e não suportado oficialmente pela Microsoft. Você pode obter ajuda da comunidade ou abrir uma questão no GitHub se encontrar algum problema.
Você pode usar o módulo PowerShell do Partner Center para reduzir a infraestrutura necessária para trocar um código de autorização por um token de acesso. Este método é opcional para fazer chamadas REST ao Partner Center.
Para obter mais informações sobre este processo, consulte a documentação do Secure App Model e do PowerShell.
Instale os módulos Microsoft Entra ID e Partner Center PowerShell.
Install-Module AzureAD
Install-Module PartnerCenter
Use o comando New-PartnerAccessToken para executar o processo de consentimento e capturar o token de atualização necessário.
$credential = Get-Credential $token = New-PartnerAccessToken -ApplicationId 'xxxx-xxxx-xxxx-xxxx' -Scopes 'https://api.partnercenter.microsoft.com/user_impersonation' -ServicePrincipal -Credential $credential -Tenant 'yyyy-yyyy-yyyy-yyyy' -UseAuthorizationCode
Observação
O parâmetro ServicePrincipal é usado com o comando New-PartnerAccessToken porque está a ser utilizado um aplicativo Microsoft Entra com um tipo de Web/API. Esse tipo de aplicativo requer que um identificador de cliente e um segredo sejam incluídos na solicitação de token de acesso. Quando o comando Get-Credential for invocado, você será solicitado a inserir um nome de usuário e senha. Insira o identificador do aplicativo como o nome de usuário. Digite o segredo do aplicativo como a senha. Quando o comando New-PartnerAccessToken for invocado, será solicitado a inserir credenciais novamente. Insira as credenciais da conta de serviço que você está usando. Esta conta de serviço deve ser uma conta de parceiro com as permissões apropriadas.
Copie o valor do token de atualização.
$token.RefreshToken | clip
Você deve armazenar o valor do token de atualização em um repositório seguro, como o Azure Key Vault. Para obter mais informações sobre como usar o módulo de aplicativo seguro com o PowerShell, consulte o artigo de autenticação multifator.