Compartilhar via


Ativando a estrutura de 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 painel 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 da API do Partner Center. Isso ajuda todas as partes (incluindo Microsoft, parceiros CSP e CPVs) a proteger sua infraestrutura e os dados de clientes 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, é necessário que os parceiros gerenciem o ambiente dos clientes para os quais eles vendem e forneçam suporte. Os clientes que compram por esse canal precisam confiar bastante no parceiro do qual estão comprando, pois o negócio do parceiro tem acesso de administrador de alto privilégio ao locatário do cliente.

Escopo

Este artigo está relacionado a CSPs e CPVs.

CPVs

  • Um CPV é um fornecedor independente de software que desenvolve aplicativos a serem usados por parceiros CSP para integração com as APIs do Partner Center.
  • Um CPV não é um parceiro CSP com acesso direto ao Partner Center ou APIs.

CSPs

  • Provedores indiretos do CSP e parceiros CSP diretos que estão usando ID do aplicativo + autenticação de usuário e se integram diretamente às APIs do Partner Center.

Requisitos de segurança

Para obter detalhes sobre os requisitos de segurança, confira Requisitos de Segurança do Parceiro.

Modelo de Aplicativo Seguro

Os aplicativos do Marketplace precisam representar os privilégios de parceiro CSP para poderem realizar chamadas às APIs da Microsoft. Ataques de segurança nesses aplicativos confidenciais podem levar ao comprometimento dos dados do cliente.

Para obter uma visão geral e detalhes da nova estrutura de autenticação, confira Estrutura de Modelo de Aplicativo Seguro, que aborda os princípios e as práticas recomendadas para tornar os aplicativos do marketplace sustentáveis e robustos com base em comprometimentos de segurança.

Exemplos

Os documentos de visão geral e o código de exemplo a seguir descrevem como os parceiros podem implementar a estrutura do Modelo de Aplicativo Seguro:

REST

Para fazer chamadas REST com o código de exemplo da estrutura do Modelo de Aplicativo Seguro, siga estas etapas:

  1. Criar um aplicativo Web

Criar um aplicativo Web

  1. Entre no portal do Azure.

  2. Criar um aplicativo do Microsoft Entra.

  3. Conceda permissões de aplicativo delegadas aos recursos a seguir, dependendo dos requisitos do seu aplicativo. Se necessário, você pode adicionar mais permissões delegadas para recursos do aplicativo.

    1. Microsoft Partner Center (alguns locatários mostram SampleBECApp)

    2. APIs de Gerenciamento do Azure (se você estiver planejando chamar APIs do Azure)

    3. Microsoft Azure Active Directory

  4. Verifique se a URL inicial do aplicativo está definida para um ponto de extremidade em que um aplicativo Web dinâmico está sendo executado. Este aplicativo precisa aceitar o código de autorização da chamada de login do Microsoft Entra. Por exemplo, no código de exemplo na seção a seguir, o aplicativo Web está executando em https://localhost:44395/.

  5. 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 o segredo do aplicativo. No entanto, você também pode criar uma chave de aplicativo no portal do Azure. O código de exemplo na 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 seu aplicativo Web aceitar da chamada de logon do Microsoft Entra:

  1. Faça logon 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 uma conta de agente de administração ou agente de vendas).

  2. Substitua Application-Id pelo seu ID de aplicativo Microsoft Entra (GUID).

  3. Quando solicitado, faça logon com sua conta de usuário com a MFA configurada.

  4. Quando solicitado, insira mais informações de MFA (número de telefone ou endereço de e-mail) para verificar seu login.

  5. Depois que você estiver conectado, 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/.

Rastreamento de chamada de código de autorização

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ê precisa 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 de logon do Microsoft Entra com o código de https://login.microsoftonline.com/CSPTenantID/oauth2/token autorização. Para obter um exemplo, confira a chamada de exemplo a seguir.

  2. Observe o token de atualização que é retornado.

  3. Armazene o token de atualização no Azure Key Vault. Para obter mais informações, confira a documentação da API do Key Vault.

Importante

O token de atualização precisa estar armazenado como um segredo no Key Vault.

Chamada de atualização de exemplo

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 da solicitação:

resource=https%3a%2f%2fapi.partnercenter.microsoft.com&client_id=Application-Id&client_secret=Application-Secret&grant_type=authorization_code&code=AuthorizationCodeValue

Resposta de 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":"3599","ext_expires_in":"3599","expires_on":"1547579127","not_before":"1547575227","resource":"https://api.partnercenter.microsoft.com","access_token":"Access

Obter token de acesso

Você precisa obter um token de acesso antes de poder fazer chamadas às 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 da solicitação:

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 de 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 fazer chamadas às 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 é oficialmente suportado pela Microsoft. Caso se depare com um problema, você pode obter ajuda da comunidade ou abrir um problema no GitHub.

Você pode usar o módulo do Partner Center PowerShell para reduzir a infraestrutura necessária para trocar um código de autorização para um token de acesso. Esse método é opcional para fazer chamadas REST do Partner Center.

Para obter mais informações sobre esse processo, confira a documentação de Modelo de Aplicativo Seguro do PowerShell.

  1. Instale os módulos Microsoft Entra ID e Partner Center PowerShell.

    Install-Module AzureAD
    
    Install-Module PartnerCenter
    
  2. 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 um aplicativo Microsoft Entra com um tipo de Web/API está sendo usado. 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ê receberá uma solicitação para inserir um nome de usuário e uma senha. Insira o identificador do aplicativo como o nome de usuário. Insira o segredo do aplicativo como a senha. Quando o comando New-PartnerAccessToken for invocado, você receberá uma solicitação para inserir as credenciais novamente. Insira as credenciais para a conta de serviço que você está usando. Essa conta de serviço deve ser uma conta de parceiro com as permissões apropriadas.

  3. 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.