Partner Center authentication (Autenticação do Centro de Parceiros)
Aplica-se a: Partner Center | Partner Center operado pela 21Vianet | Centro de Parceiros para Microsoft Cloud for US Government
O Centro de Parceiros utiliza o Azure Active Directory para autenticação. Ao interagir com o módulo do PowerShell, o SDK ou a API do Centro de Parceiros, tem de configurar corretamente uma aplicação do Azure Active Directory e, em seguida, pedir um token de acesso. Os tokens de acesso obtidos apenas através de app ou app + autenticação do utilizador podem ser utilizados com o Centro de Parceiros. No entanto, há dois itens importantes que precisam de ser considerados
Utilize a autenticação de vários fatores ao aceder à API do Centro Parceiro utilizando a autenticação do utilizador + app+ Para obter mais informações sobre esta alteração, consulte Ativar modelo de aplicação segura.
Nem todas as operações da aplicação de suporte API partner Center apenas autenticam. Existem certos cenários em que será necessário utilizar a app + a autenticação do utilizador. De acordo com o título pré-requisitos de cada artigo, encontrará documentação que indique se apenas a autenticação da app, app + autenticação do utilizador, ou ambos são suportados.
Configuração inicial
Para começar, tem de se certificar de que tem uma conta principal do Partner Center e uma conta de parceiro de integração. Para obter mais informações, consulte configurar contas do Centro de Parceiros para acesso a API. Tome nota do Azure AD ID e Secret (o segredo do cliente é necessário para a identificação apenas da App) tanto para a sua conta primária como para a sua conta de areia de integração.
Inscreva-se para Azure AD do portal do Azure. Em permissões para outras aplicações, descreva permissões para o Windows Azure Ative Directory para Permissões Delegadas e selecione tanto Aceda ao diretório como utilizador inscrito e faça o sessão e leia o perfil do utilizador.
No portal do Azure, Adicione a aplicação. Procure por "Microsoft Partner Center", que é a aplicação Microsoft Partner Center. Desa estatudo as permissões delegadas para o Centro de Acesso API. Se estiver a utilizar o Partner Center para Microsoft Cloud for US Government, este passo é obrigatório. Se estiver a utilizar o exemplo global do Partner Center, este passo é opcional. Os Parceiros CSP podem usar a funcionalidade de Gestão de Aplicações no portal Partner Center para contornar este passo para o Centro de Parceiros em instância global.
Autenticação apenas para aplicativos
Se quiser utilizar a autenticação apenas para aplicações para aceder ao módulo Partner Center REST API, .NET API, Java API ou PowerShell, então pode fazê-lo utilizando as seguintes instruções.
.NET (autenticação só para aplicações)
public static IAggregatePartner GetPartnerCenterTokenUsingAppCredentials()
{
IPartnerCredentials partnerCredentials =
PartnerCredentials.Instance.GenerateByApplicationCredentials(
PartnerApplicationConfiguration.ApplicationId,
PartnerApplicationConfiguration.ApplicationSecret,
PartnerApplicationConfiguration.ApplicationDomain);
// Create operations instance with partnerCredentials.
return PartnerService.Instance.CreatePartnerOperations(partnerCredentials);
}
Java (autenticação apenas para aplicações)
O Partner Center Java SDK é comumente utilizado pelos parceiros para gerir os seus recursos do Partner Center. É um projeto de código aberto mantido pela comunidade parceira. Uma vez que este módulo é mantido pela comunidade parceira, este não é oficialmente suportado pela Microsoft. Você pode obter ajuda da comunidade ou abrir um problema no GitHub se você sentir um problema.
public IAggregatePartner getAppPartnerOperations()
{
IPartnerCredentials appCredentials =
PartnerCredentials.getInstance().generateByApplicationCredentials(
PartnerApplicationConfiguration.getApplicationId(),
PartnerApplicationConfiguration.getApplicationSecret(),
PartnerApplicationConfiguration.getApplicationDomain());
return PartnerService.getInstance().createPartnerOperations( appCredentials );
}
REST (autenticação apenas para aplicações)
Pedido de DESCANSO
POST https://login.microsoftonline.com/{tenantId}/oauth2/token HTTP/1.1
Accept: application/json
return-client-request-id: true
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Host: login.microsoftonline.com
Content-Length: 194
Expect: 100-continue
resource=https%3A%2F%2Fgraph.windows.net&client_id={client-id-here}&client_secret={client-secret-here}&grant_type=client_credentials
Resposta do REST
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Type: application/json; charset=utf-8
Expires: -1
Content-Length: 1406
{"token_type":"Bearer","expires_in":"3600","ext_expires_in":"3600","expires_on":"1546469802","not_before":"1546465902","resource":"https://graph.windows.net","access_token":"value-has-been-removed"}
App + Autenticação do utilizador
Historicamente, a concessão de credenciais de senha do proprietário de recursos tem sido usada para solicitar um token de acesso para uso com o módulo Partner Center REST API, .NET API, Java API ou PowerShell. Este método foi utilizado para solicitar um token de acesso do Azure Ative Directory utilizando um identificador de clientes e credenciais de utilizador. No entanto, esta abordagem deixará de funcionar porque o Partner Center requer autenticação de vários fatores, quando se utiliza a autenticação app + utilizador. Para cumprir este requisito, a Microsoft introduziu um quadro seguro e escalável para autenticar parceiros do Cloud Solution Provider (CSP) e fornecedores de painéis de controlo (CPV) utilizando a autenticação de vários fatores. Este quadro é conhecido como o Modelo de Aplicação Segura, e é composto por um processo de consentimento e um pedido de acesso a um token usando um token de atualização.
Consentimento do parceiro
O processo de consentimento do parceiro é um processo interativo em que o parceiro autentica usando a autenticação de vários fatores, consente com a aplicação, e um token de atualização é armazenado num repositório seguro, como a Azure Key Vault. Recomendamos que seja utilizada uma conta dedicada para efeitos de integração para este processo.
Importante
A solução de autenticação multi-factor adequada deve ser ativada para a conta de serviço utilizada no processo de consentimento do parceiro. Se não for, então o token de atualização resultante não estará em conformidade com os requisitos de segurança.
Amostras para App + Autenticação do Utilizador
O processo de consentimento do parceiro pode ser realizado de várias maneiras. Para ajudar os parceiros a entender como realizar cada operação necessária, desenvolvemos as seguintes amostras. Ao implementar a solução adequada no seu ambiente, é importante que desenvolva uma solução que seja uma reclamação com os seus padrões de codificação e políticas de segurança.
.NET (app+autenticação do utilizador)
O projeto de amostra de consentimento do parceiro demonstra como utilizar um website desenvolvido usando ASP.NET para capturar o consentimento, solicitar um token de atualização e armazená-lo de forma segura em Azure Key Vault. Execute os seguintes passos para criar os pré-requisitos necessários para esta amostra.
Crie uma instância de Azure Key Vault utilizando os portal do Azure ou os seguintes comandos PowerShell. Antes de executar o comando, certifique-se de modificar os valores dos parâmetros em conformidade. O nome do cofre deve ser único.
Login-AzureRmAccount # Create a new resource group New-AzureRmResourceGroup -Name ContosoResourceGroup -Location EastUS New-AzureRmKeyVault -Name 'Contoso-Vault' -ResourceGroupName 'ContosoResourceGroup' -Location 'East US'Para obter mais informações sobre a criação de um Key Vault Azure, consulte Quickstart: set and retrieve a secret from Azure Key Vault using the portal do Azure or Quickstart: set and retrieve a secret from Azure Key Vault using PowerShell. Então, prepara-me e recupera um segredo.
Crie uma Aplicação Azure AD e uma chave utilizando os portal do Azure ou os seguintes comandos.
Connect-AzureAD $SessionInfo = Get-AzureADCurrentSessionInfo $app = New-AzureADApplication -DisplayName 'My Vault Access App' -IdentifierUris 'https://$($SessionInfo.TenantDomain)/$((New-Guid).ToString())' $password = New-AzureADApplicationPasswordCredential -ObjectId $app.ObjectId Write-Host "ApplicationId = $($app.AppId)" Write-Host "ApplicationSecret = $($password.Value)"Certifique-se de tomar nota do identificador de aplicações e valores secretos porque eles serão usados nos degraus abaixo.
Conceda à aplicação de Azure AD recentemente criado as permissões de segredos de leitura usando os portal do Azure ou os seguintes comandos.
$app = Get-AzureADApplication -Filter {AppId -eq 'ENTER-APP-ID-HERE'} Set-AzureRmKeyVaultAccessPolicy -VaultName ContosoVault -ObjectId $app.ObjectId -PermissionsToSecrets getCrie uma aplicação Azure AD que esteja configurada para o Partner Center. Execute as seguintes ações para completar este passo.
- Navegue para a funcionalidade de gestão de aplicações do Painel de Instrumentos do Centro de Parceiros
- Selecione Adicionar uma nova aplicação web para criar uma nova aplicação Azure AD.
Certifique-se de documentar o ID da app, iD da conta*e valores chave porque eles serão usados nos degraus abaixo.
Clone o repositório Partner-Center-DotNet-Samples utilizando o Visual Studio ou o seguinte comando.
git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.gitAbra o projeto PartnerConsent encontrado no diretório
Partner-Center-DotNet-Samples\secure-app-model\keyvault.Povoar as definições de aplicação encontradas no web.config
<!-- AppID that represents CSP application --> <add key="ida:CSPApplicationId" value="" /> <!-- 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="" /> <!-- Endpoint address for the instance of Azure KeyVault. This is the DNS Name for the instance of Key Vault that you provisioned. --> <add key="KeyVaultEndpoint" value="" /> <!-- App ID that is given access for KeyVault to store refresh tokens --> <add key="ida:KeyVaultClientId" value="" /> <!-- 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="" />Importante
Informações sensíveis, como segredos de aplicações, não devem ser armazenadas em ficheiros de configuração. Foi feito aqui porque este é um pedido de amostra. Com a sua aplicação de produção recomendamos vivamente que utilize a autenticação baseada em certificados. Para mais informações, consulte as credenciais do Certificado para autenticação de pedidos.
Quando executar este projeto de amostra, irá pedir-lhe autenticação. Após autenticação com sucesso, é solicitado um token de acesso a Azure AD. A informação devolvida de Azure AD inclui um token de atualização que é armazenado no caso configurado de Azure Key Vault.
Java (app+autenticação do utilizador)
O projeto de amostra de consentimento do parceiro demonstra como utilizar um website desenvolvido usando jSP para capturar o consentimento, solicitar um token de atualização e loja segura em Azure Key Vault. Execute o seguinte para criar os pré-requisitos necessários para esta amostra.
Crie uma instância de Azure Key Vault utilizando os portal do Azure ou os seguintes comandos PowerShell. Antes de executar o comando, certifique-se de modificar os valores dos parâmetros em conformidade. O nome do cofre deve ser único.
Login-AzureRmAccount # Create a new resource group New-AzureRmResourceGroup -Name ContosoResourceGroup -Location EastUS New-AzureRmKeyVault -Name 'Contoso-Vault' -ResourceGroupName 'ContosoResourceGroup' -Location 'East US'Para obter mais informações sobre a criação de um Key Vault Azure, consulte Quickstart: set and retrieve a secret from Azure Key Vault using the portal do Azure or Quickstart: set and retrieve a secret from Azure Key Vault using PowerShell.
Crie uma Aplicação Azure AD e uma chave utilizando os portal do Azure ou os seguintes comandos.
Connect-AzureAD $SessionInfo = Get-AzureADCurrentSessionInfo $app = New-AzureADApplication -DisplayName 'My Vault Access App' -IdentifierUris 'https://$($SessionInfo.TenantDomain)/$((New-Guid).ToString())' $password = New-AzureADApplicationPasswordCredential -ObjectId $app.ObjectId Write-Host "ApplicationId = $($app.AppId)" Write-Host "ApplicationSecret = $($password.Value)"Certifique-se de documentar o identificador de aplicações e valores secretos porque eles serão usados nos passos abaixo.
Conceda à aplicação de Azure AD recém-criada as permissões de segredos de leitura usando os portal do Azure ou os seguintes comandos.
$app = Get-AzureADApplication -Filter {AppId -eq 'ENTER-APP-ID-HERE'} Set-AzureRmKeyVaultAccessPolicy -VaultName ContosoVault -ObjectId $app.ObjectId -PermissionsToSecrets getCrie uma aplicação Azure AD que esteja configurada para o Partner Center. Execute o seguinte para completar este passo.
- Navegue para a funcionalidade de gestão de aplicações do Painel de Instrumentos do Centro de Parceiros
- Selecione Adicionar uma nova aplicação web para criar uma nova aplicação Azure AD.
Certifique-se de documentar o ID da app, iD da conta*e valores chave porque eles serão usados nos degraus abaixo.
Clone o repositório Partner-Center-Java-Samples usando o seguinte comando
git clone https://github.com/Microsoft/Partner-Center-Java-Samples.gitAbra o projeto PartnerConsent encontrado no diretório
Partner-Center-Java-Samples\secure-app-model\keyvault.Povoar as definições de aplicação encontradas no ficheiro web.xml
<filter> <filter-name>AuthenticationFilter</filter-name> <filter-class>com.microsoft.store.samples.partnerconsent.security.AuthenticationFilter</filter-class> <init-param> <param-name>client_id</param-name> <param-value></param-value> </init-param> <init-param> <param-name>client_secret</param-name> <param-value></param-value> </init-param> <init-param> <param-name>keyvault_base_url</param-name> <param-value></param-value> </init-param> <init-param> <param-name>keyvault_client_id</param-name> <param-value></param-value> </init-param> <init-param> <param-name>keyvault_client_secret</param-name> <param-value></param-value> </init-param> <init-param> <param-name>keyvault_certifcate_path</param-name> <param-value></param-value> </init-param> </filter>Importante
Informações sensíveis, como segredos de aplicações, não devem ser armazenadas em ficheiros de configurações. Foi feito aqui porque este é um pedido de amostra. Com a sua aplicação de produção, recomendamos vivamente que utilize a autenticação baseada em certificados. Para mais informações, consulte Key Vault autenticação do Certificado.
Quando executar este projeto de amostra, irá pedir-lhe autenticação. Após autenticação com sucesso, é solicitado um token de acesso a Azure AD. A informação devolvida de Azure AD inclui um token de atualização que é armazenado no caso configurado de Azure Key Vault.
Autenticação do Fornecedor de Soluções de Nuvem
Os parceiros do Cloud Solution Provider podem utilizar o token de atualização obtido através do processo de consentimento do parceiro .
Amostras para autenticação do Fornecedor de Solução Cloud
Para ajudar os parceiros a entender como realizar cada operação necessária, desenvolvemos as seguintes amostras. Ao implementar a solução adequada no seu ambiente, é importante que desenvolva uma solução que seja uma reclamação com os seus padrões de codificação e políticas de segurança.
.NET (autenticação CSP)
Se ainda não o fez, execute o processo de consentimento do parceiro.
Clone o repositório Partner-Center-DotNet-Samples usando o Visual Studio ou o seguinte comando
git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.gitAbra o
CSPApplicationprojeto encontrado noPartner-Center-DotNet-Samples\secure-app-model\keyvaultdiretório.Atualize as definições de aplicação encontradas no ficheiro App.config .
<!-- AppID that represents CSP application --> <add key="ida:CSPApplicationId" value="" /> <!-- 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="" /> <!-- Endpoint address for the instance of Azure KeyVault --> <add key="KeyVaultEndpoint" value="" /> <!-- AppID that is given access for keyvault to store the refresh tokens --> <add key="ida:KeyVaultClientId" value="" /> <!-- 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="" />Desaprove os valores adequados para as variáveis PartnerId e CustomerId encontradas no ficheiro .cs Programa .
// The following properties indicate which partner and customer context the calls are going to be made. string PartnerId = "<Partner tenant id>"; string CustomerId = "<Customer tenant id>";Ao executar este projeto de amostra, obtém o token de atualização obtido durante o processo de consentimento do parceiro. Em seguida, solicita um sinal de acesso para interagir com o Partner Center SDK em nome do parceiro. Por último, solicita um token de acesso para interagir com o Microsoft Graph em nome do cliente especificado.
Java (autenticação CSP)
Se ainda não o fez, execute o processo de consentimento do parceiro.
Clone o repositório Partner-Center-Java-Samples usando o Visual Studio ou o seguinte comando
git clone https://github.com/Microsoft/Partner-Center-Java-Samples.gitAbra o
cspsampleprojeto encontrado noPartner-Center-Java-Samples\secure-app-model\keyvaultdiretório.Atualize as definições de aplicação encontradas no ficheiro application.properties .
azuread.authority=https://login.microsoftonline.com keyvault.baseurl= keyvault.clientId= keyvault.clientSecret= partnercenter.accountId= partnercenter.clientId= partnercenter.clientSecret=Ao executar este projeto de amostra, obtém o token de atualização obtido durante o processo de consentimento do parceiro. Em seguida, solicita um sinal de acesso para interagir com o Partner Center SDK em nome do parceiro.
Opcional - descompromete a função RunAzureTask e RunGraphTask chama se quiser ver como interagir com a Azure Resource Manager e Microsoft Graph em nome do cliente.
autenticação do Provedor de Painel de Controlo
Os fornecedores de painéis de controlo precisam de ter cada parceiro que suportem a executar o processo de consentimento do parceiro . Uma vez concluída a ficha de atualização obtida através desse processo é utilizada para aceder à API do Partner Center REST e à API .NET.
Nota
Os fornecedores de painéis de controlo devem ter no mínimo a função de Administrador de Aplicação cloud no inquilino do cliente.
Amostras para autenticação do Fornecedor de Painéis de Nuvem
Para ajudar os fornecedores de painéis de controlo a entender como realizar cada operação necessária, desenvolvemos as seguintes amostras. Ao implementar a solução adequada no seu ambiente, é importante que desenvolva uma solução que seja uma reclamação com os seus padrões de codificação e políticas de segurança.
.NET (autenticação cpv)
Desenvolver e implementar um processo para os parceiros do Cloud Solution Provider fornecerem o consentimento adequado. Para mais informações, consulte o consentimento do parceiro.
Importante
As credenciais de utilizador de um parceiro Cloud Solution Provider não devem ser armazenadas. O token de atualização obtido através do processo de consentimento do parceiro deve ser armazenado e usado para solicitar tokens de acesso para interagir com qualquer API da Microsoft.
Clone o repositório Partner-Center-DotNet-Samples usando o Visual Studio ou o seguinte comando
git clone https://github.com/Microsoft/Partner-Center-DotNet-Samples.gitAbra o
CPVApplicationprojeto encontrado noPartner-Center-DotNet-Samples\secure-app-model\keyvaultdiretório.Atualize as definições de aplicação encontradas no ficheiro App.config .
<!-- AppID that represents Control panel vendor application --> <add key="ida:CPVApplicationId" value="" /> <!-- 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="" /> <!-- Endpoint address for the instance of Azure KeyVault --> <add key="KeyVaultEndpoint" value="" /> <!-- AppID that is given access for keyvault to store the refresh tokens --> <add key="ida:KeyVaultClientId" value="" /> <!-- 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="" />Desaprove os valores adequados para as variáveis PartnerId e CustomerId encontradas no ficheiro .cs Programa .
// The following properties indicate which partner and customer context the calls are going to be made. string PartnerId = "<Partner tenant id>"; string CustomerId = "<Customer tenant id>";Ao executar este projeto de amostra, obtém o token de atualização para o parceiro especificado. Em seguida, solicita um token de acesso para aceder ao Partner Center e ao Microsoft Graph em nome do parceiro. A próxima tarefa que executa é a supressão e criação de autorizações de concessão ao cliente. Uma vez que não existe qualquer relação entre o fornecedor do painel de controlo e o cliente, estas permissões precisam de ser adicionadas usando a API do Partner Center. O exemplo que se segue mostra como fazê-lo.
JObject contents = new JObject { // Provide your application display name ["displayName"] = "CPV Marketplace", // Provide your application id ["applicationId"] = CPVApplicationId, // Provide your application grants ["applicationGrants"] = new JArray( JObject.Parse("{\"enterpriseApplicationId\": \"00000003-0000-0000-c000-000000000000\", \"scope\":\"Domain.ReadWrite.All,User.ReadWrite.All,Directory.Read.All\"}"), // for Microsoft Graph access, Directory.Read.All JObject.Parse("{\"enterpriseApplicationId\": \"797f4846-ba00-4fd7-ba43-dac1f8f63013\", \"scope\":\"user_impersonation\"}")) // for Azure Resource Manager access }; /** * The following steps have to be performed once per customer tenant if your application is * a control panel vendor application and requires customer tenant Microsoft Graph access. **/ // delete the previous grant into customer tenant JObject consentDeletion = await ApiCalls.DeleteAsync( tokenPartnerResult.Item1, string.Format("https://api.partnercenter.microsoft.com/v1/customers/{0}/applicationconsents/{1}", CustomerId, CPVApplicationId)); // create new grants for the application given the setting in application grants payload. JObject consentCreation = await ApiCalls.PostAsync( tokenPartnerResult.Item1, string.Format("https://api.partnercenter.microsoft.com/v1/customers/{0}/applicationconsents", CustomerId), contents.ToString());
Após a operação destas permissões, a amostra executa operações utilizando o Microsoft Graph em nome do cliente.
Nota
Para obter mais informações sobre o Microsoft Graph, consulte a visão geral do Gráfico da Microsoft.
Java (autenticação cpv)
Desenvolver e implementar um processo para os parceiros do Cloud Solution Provider fornecerem o consentimento adequado. Para mais informações e um exemplo, consulte o consentimento do parceiro.
Importante
As credenciais de utilizador de um parceiro Cloud Solution Provider não devem ser armazenadas. O token de atualização obtido através do processo de consentimento do parceiro deve ser armazenado e usado para solicitar tokens de acesso para interagir com qualquer API da Microsoft.
Clone o repositório Partner-Center-Java-Samples usando o seguinte comando
git clone https://github.com/Microsoft/Partner-Center-Java-Samples.gitAbra o
cpvsampleprojeto encontrado noPartner-Center-Java-Samples\secure-app-model\keyvaultdiretório.Atualize as definições de aplicação encontradas no ficheiro application.properties .
azuread.authority=https://login.microsoftonline.com keyvault.baseurl= keyvault.clientId= keyvault.clientSecret= partnercenter.accountId= partnercenter.clientId= partnercenter.clientSecret= partnercenter.displayName=O valor para o
partnercenter.displayNamedeve ser o nome de exibição da sua aplicação de mercado.Desaprove os valores adequados para as variáveis PartnerId e customerId encontradas no ficheiro .java Programa .
partnerId = "SPECIFY-THE-PARTNER-TENANT-ID-HERE"; customerId = "SPECIFY-THE-CUSTOMER-TENANT-ID-HERE";Ao executar este projeto de amostra, obtém o token de atualização para o parceiro especificado. Em seguida, solicita um token de acesso para aceder ao Partner Center em nome do parceiro. A próxima tarefa que executa é a supressão e criação de autorizações de concessão ao cliente. Uma vez que não existe qualquer relação entre o fornecedor do painel de controlo e o cliente, estas permissões precisam de ser adicionadas usando a API do Partner Center. O exemplo a seguir mostra como conceder as permissões.
ApplicationGrant azureAppGrant = new ApplicationGrant(); azureAppGrant.setEnterpriseApplication("797f4846-ba00-4fd7-ba43-dac1f8f63013"); azureAppGrant.setScope("user_impersonation"); ApplicationGrant graphAppGrant = new ApplicationGrant(); graphAppGrant.setEnterpriseApplication("00000002-0000-0000-c000-000000000000"); graphAppGrant.setScope("Domain.ReadWrite.All,User.ReadWrite.All,Directory.Read.All"); ApplicationConsent consent = new ApplicationConsent(); consent.setApplicationGrants(Arrays.asList(azureAppGrant, graphAppGrant)); consent.setApplicationId(properties.getProperty(PropertyName.PARTNER_CENTER_CLIENT_ID)); consent.setDisplayName(properties.getProperty(PropertyName.PARTNER_CENTER_DISPLAY_NAME)); // Deletes the existing grant into the customer it is present. partnerOperations.getServiceClient().delete( partnerOperations, new TypeReference<ApplicationConsent>(){}, MessageFormat.format( "customers/{0}/applicationconsents/{1}", customerId, properties.getProperty(PropertyName.PARTNER_CENTER_CLIENT_ID))); // Consent to the defined applications and the respective scopes. partnerOperations.getServiceClient().post( partnerOperations, new TypeReference<ApplicationConsent>(){}, MessageFormat.format( "customers/{0}/applicationconsents", customerId), consent);
Descompromete a função RunAzureTask e RunGraphTask liga se quiser ver como interagir com a Azure Resource Manager e Microsoft Graph em nome do cliente.