Partilhar via


Configurar a identidade gerida do Power Platform para plug-ins do Dataverse ou pacotes de plug-ins

A identidade gerida do Power Platform permite que plug-ins ou pacotes de plug-ins do Dataverse se conectem aos recursos do Azure para suportar identidade gerida sem a necessidade de credenciais. Este artigo ajuda a configurar a identidade gerida nos seus ambientes do Power Platform.

Pré-requisitos

  • Uma subscrição do Azure com acesso ao aprovisionamento da identidade gerida atribuída pelo utilizador (UAMI) ou registo de aplicação.
  • Ferramentas para plug-ins ou pacotes de plug-in:
  • Um certificado válido para assinar a assemblagem do plug-in.

Configurar a identidade gerida

Para configurar a identidade gerida do Power Platform para plug-ins do Dataverse ou pacotes de plug-ins, conclua os seguintes passos.

  1. Crie um novo registo de aplicação ou uma identidade gerida atribuída pelo utilizador.
  2. Configure credenciais de identidade federada.
  3. Criar e registar plug-ins do Dataverse ou pacotes de plug-ins.
    Certifique-se de compilar o módulo do plug-in e de registar o plug-in ou o pacote de plug-ins.
  4. Crie um registro de identidade gerenciado no Dataverse.
  5. Conceda acesso aos recursos do Azure ao aplicativo ou à identidade gerenciada atribuída pelo usuário (UAMI).
  6. Valide a integração do plug-in.

Crie um novo registo de aplicação ou uma identidade gerida atribuída pelo utilizador

Você pode criar uma identidade gerenciada atribuída pelo usuário ou um aplicativo no Microsoft Entra ID com base nos seguintes cenários.

  • Se quiser uma identidade de aplicação associada ao plug-in que se liga aos recursos do Azure, como o Azure Key Vault, use o registo da aplicação. Com a identidade da aplicação, pode aplicar políticas do Azure no plug-in ao aceder aos recursos do Azure.
  • Se quiser que um principal de serviço aceda aos recursos do Azure, como o Azure Key Vault, pode provisionar identidade gerida atribuída pelo utilizador.

Nota

Certifica-te de registar os IDs seguintes, à medida que os vais usar nas etapas seguintes.

  • ID da aplicação (cliente)
  • ID do Inquilino

Configure credenciais de identidade federada

Para configurar a identidade gerida, abra a identidade gerida atribuída pelo utilizador ou a aplicação Microsoft Entra ID no portal do Azure que criou na secção anterior.

  1. Aceda ao portal do Azure.
  2. Navegue para o Microsoft Entra ID.
  3. Selecione Registos de aplicações.
  4. Abra a aplicação que criou em Configurar identidade gerida.
  5. Navegue para Certificados e segredos.
  6. Selecione a guia Credenciais federadas e selecione Adicionar credencial.
  7. Selecione emissor como Outro emissor.
  8. Introduza as informações seguintes:

Issuer

Utilize o emissor v2.0 do inquilino:

https://login.microsoftonline.com/{tenantID}/v2.0

Example

https://login.microsoftonline.com/5f8a1a9f-2e1a-415f-b10c-84c3736a21b9/v2.0

Tipo

Escolha Identificador de assunto explícito.

Identificador do sujeito

Escolha o formato que corresponde ao seu tipo de certificado:

  • Certificado autoassinado (apenas para desenvolvimento):

    /eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/h/{hash}
    
  • Certificado de emissor confiável (recomendado para produção):

    /eid1/c/pub/t/{encodedTenantId}/a/qzXoWDkuqUa3l6zM5mM0Rw/n/plugin/e/{environmentId}/i/{issuer}/s/{certificateSubject}
    

Referência do segmento

Segmento Description
EID1 Versão do formato de identidade
c/pub Código de nuvem para nuvem pública, Nuvem da Comunidade Governamental (GCC) e primeira estação de versão no GCC.
t/{encodedTenantId} ID do Inquilino
a/qzXoWDkuqUa3l6zM5m0Rw/ Apenas para uso interno. Não modifiques.
n/plugin Componente de extensão
e/{environmentId} ID do Ambiente
h/{hash} SHA-256 do certificado (apenas certificado autoassinado)
i/{emissor}
s/{certificateSubject}
Detalhes do emissor de confiança

Gerar certificado auto-assinado

Cada plug-in deve ter uma identidade verificável, e o certificado de assinatura atua como a impressão digital única do plug-in. O código seguinte é um exemplo de excerto PowerShell que pode usar para gerar um certificado autoassinado para cenários de desenvolvimento ou testes. Para referência, podes seguir o exemplo 3.

 $params = @{
     Type = 'Custom'
     Subject = 'E=admin@contoso.com,CN=Contoso'
     TextExtension = @(
         '2.5.29.37={text}1.3.6.1.5.5.7.3.4',
         '2.5.29.17={text}email=admin@contoso.com' )
     KeyAlgorithm = 'RSA'
     KeyLength = 2048
     SmimeCapabilities = $true
     CertStoreLocation = 'Cert:\CurrentUser\My'
 }
 New-SelfSignedCertificate @params

Nota

Codificação para {encodedTenantId}

  1. Converter GUID → Hex.
  2. Converta Hex → Base64URL (não Base64 padrão).

Hash autoassinado

  • Calcular SHA-256 para o .cer. Se você tiver um .pfx, exporte um .cer primeiro:
    CertUtil -hashfile <CertificateFilePath> SHA256
    
    $cert = Get-PfxCertificate -FilePath "path	o\your.pfx"
    $cert.RawData | Set-Content -Encoding Byte -Path "extracted.cer"
    

Ambientes de nuvem especializados do Azure

Defina Audiência, URL do Emissor e Prefixo do Assunto explicitamente ao implementar fora da nuvem pública, GCC e a primeira estação de lançamento no GCC:

Nuvem Audiência URL do emissor Prefixo do assunto
GCC High e DoD api://AzureADTokenExchangeUSGov https://login.microsoftonline.us /eid1/c/usg
Bolo da lua (China) api://AzureADTokenExchangeChina https://login.partner.microsoftonline.cn /eid1/c/chn
Nacional dos EUA (USNAT) api://AzureADTokenExchangeUSNat https://login.microsoftonline.eaglex.ic.gov /eid1/c/uss
Segurança dos EUA (USSec) api://AzureADTokenExchangeUSSec https://login.microsoftonline.scloud /eid1/c/usn

Nota

O valor Audiência é sensível às maiúsculas e minúsculas e deve corresponder exatamente.
Para nuvem pública, GCC e estação de primeira versão no GCC (e outras nuvens não listadas), os padrões são:
Público-alvo api://AzureADTokenExchange, Emissor https://login.microsoftonline.com, Prefixo /eid1/c/pubdo assunto .

Criar e registrar plug-ins ou pacotes de plug-ins Dataverse

Criar assemblagem de plug-in

Embalagem e assinatura

Assinar um pacote plug-in

Se estiveres a construir um pacote plug-in, usa a CLI NuGet Sign para gerar um pacote a partir de um ficheiro .nuspec ou .csproj. Depois de gerar o pacote, assine-o com o seu certificado.

 nuget sign YourPlugin.nupkg `
   -CertificatePath MyCert.pfx `
   -CertificatePassword "MyPassword" `
   -Timestamper http://timestamp.digicert.com

Assinar uma assemblagem de plug-in

Se estiver a registar um plug-in (assembly), assine a DLL com um certificado usando o SignTool.exe (Sign Tool).

signtool sign /f MyCert.pfx /p MyPassword /t http://timestamp.digicert.com /fd SHA256 MyAssembly.dll

Pode, opcionalmente, adicionar carimbo temporal fornecendo o URL de um servidor de carimbo de hora compatível com a RFC 3161.

Nota

Use um certificado auto-assinado apenas para fins de desenvolvimento ou testes. Não uses certificados auto-assinados em ambientes de produção.

Registar o plug-in

Crie um registo de identidade gerida no Dataverse

Para provisionar um registo de identidade gerida no Dataverse, complete os seguintes passos.

  1. Crie uma identidade gerida enviando um pedido HTTP POST com um cliente REST (como o Insomnia). Use um URL e o corpo do pedido no seguinte formato.

    POST https://<<orgURL>>/api/data/v9.0/managedidentities
    

    Certifique-se de que substitui orgURL pelo URL da organização.

  2. Verifique se credentialsource está definido como 2 na carga útil, subjectscope está definido como 1 para cenários específicos do ambiente e version está definido como 1 na payload.

    Amostra de carga útil

    {
      "applicationid": "<<appId>>", //Application Id, or ClientId, or User Managed Identity
      "managedidentityid": "<<anyGuid>>",
      "credentialsource": 2, // Managed client
      "subjectscope": 1, //Environment Scope
      "tenantid": "<<tenantId>>", //Entra Tenant Id
      "version": 1
    }
    
  3. Atualize o seu pacote de plug-ins ou registo de assemblagem de plug-ins emitindo um pedido HTTP PATCH para o associar à identidade gerida criada no passo 1.

    Assemblagem de plug-in

    PATCH https://<<orgURL>>/api/data/v9.0/pluginassemblies(<<PluginAssemblyId>>)
    

    Pacote de plugins

    PATCH https://<<orgURL>>/api/data/v9.0/pluginpackages(<<PluginPackageId>>)
    

    Amostra de carga útil

    {
      "managedidentityid@odata.bind": "/managedidentities(<<ManagedIdentityGuid>>)"
    }
    

    Certifique-se de substituir orgURL,PluginAssemblyId (ou PluginPackageId) e ManagedIdentityGuid pelos seus valores.

Conceda acesso aos recursos do Azure à aplicação ou à identidade gerida atribuída pelo utilizador

Se você precisar conceder acesso a uma ID de aplicativo para acessar recursos do Azure, como o Cofre da Chave do Azure, conceda acesso ao aplicativo ou à identidade gerenciada atribuída pelo usuário a esse recurso.

Valide a integração do plug-in

Verifique se o plug-in pode pedir acesso com segurança aos recursos do Azure que suportam a identidade gerida, eliminando a necessidade de credenciais separadas.

Perguntas mais frequentes (FAQ)

Como resolvo este erro?

Se você receber o seguinte erro:
Erro – Um problema de configuração está impedindo a autenticação.
AADSTS700213: Nenhum registro de identidade federada correspondente encontrado

Conclua as seguintes etapas para resolver o problema:

  1. Verifique se o FIC está configurado e salvo corretamente.

  2. Verifique se o emissor/sujeito corresponde ao formato especificado anteriormente.

    Você também pode encontrar o formato esperado na pilha de erros.

Como resolvo o erro "Não é possível alcançar ou conectar-se à Power Platform"?

Consulte os URL e intervalos de endereços IP do Power Platform para garantir que os endpoints do Power Platform são acessíveis e estão nas listas de permissões.