Configuração de Conexão Dataverse

Seu portal se comunica com o Dataverse como uma aplicação própria, não como o visitante que está navegando nele. Isso requer duas partes: um registro de aplicativo no Microsoft Entra ID que possui as credenciais, e um usuário de aplicação no seu ambiente Dataverse que dá identidade e papel de segurança a essas credenciais. Esta página percorre ambos, e também pelo acesso que o portal realmente precisa.

Este não é o aplicativo de login

Esse registro é a identidade de serviço do portal — ele lê e escreve dados em nome do portal, e suas credenciais ficam sob D365:ClientId / D365:ClientSecret. Um segundo registro separado gerencia o login dos usuários com a Microsoft. Mantenha os usuários separados: este não precisa de URI de redirecionamento nem permissões delegadas, mas tem muito mais poder dentro do seu ambiente. Veja Configuração de Login do Entra ID

1. Registrar a Inscrição

Crie o registro no centro de administração do Microsoft Entra, no tenant que é dono do seu ambiente Dataverse.

  1. Navegue até Entra ID > Inscrições no aplicativo e selecione Novo registro.
  2. Insira um Nome que identifique o portal e o ambiente, por Contoso Portal — Dataverse (Production)exemplo. Ninguém vê isso na tela de consentimento, então prefira clareza para quem auditar depois.
  3. Em Tipos de conta suportados, escolha Apenas inquilino único. Essa identidade nunca sai da sua organização.
  4. Deixe o URI de Redirecionamento vazio. Nenhum usuário é redirecionado aqui — o portal autentica com o fluxo de credenciais do cliente, máquina para máquina, sem envolver navegador.
  5. Selecione Registrar.
  6. Na página de Visão Geral , copie o ID da aplicação (cliente). Esse valor se torna D365:ClientId, e você precisa dele novamente na etapa 4 para criar o usuário da aplicação.

2. Criar um Segredo do Cliente

O segredo é a única credencial do portal, então trate-a como a chave para os dados do seu ambiente.

  1. Abra Certificados e segredos em Gerenciar e selecione a aba Segredos do Cliente .
  2. Selecione novo segredo do cliente, descreva por ambiente (por exemplo portal-production), e escolha um vencimento.
  3. Copie imediatamente a coluna Valor — não o ID Secreto. Ela é mostrada apenas uma vez, e se torna D365:ClientSecret.

Importante

Quando o segredo expira, o portal para de chegar ao Dataverse completamente — não apenas para um recurso, mas para cada solicitação — então coloque a data de expiração em algum lugar onde você a verá. Para produção, uma credencial de certificado evita o precipício de validade e AuthenticationType.Certificate aceita uma no lugar do segredo.

3. Permissões de API: Nenhuma Necessária

Essa etapa é deliberadamente vazia, e isso surpreende as pessoas. Muitas orientações antigas dizem para adicionar o Dynamics CRMuser_impersonation permissão delegada. Essa permissão é para aplicações que atuam em nome de um usuário logado. O portal não faz isso — ele autentica como ele mesmo, e seu acesso vem inteiramente do usuário da aplicação Dataverse que você cria na próxima etapa.

Nota

A própria orientação servidor para servidor da Microsoft diz o mesmo: quando você se conecta como um aplicativo, não concede o Access Dynamics 365 como usuários da organização, porque o aplicativo está vinculado a uma conta de usuário específica. Adicioná-lo não quebra nada, mas concede uma funcionalidade que o portal nunca exerce — deixe-a desligada.

4. Criar o Usuário da Aplicação no Dataverse

O registro do app sozinho não pode tocar em dados. O Dataverse precisa de um registro de usuário vinculado a ele, que é o que transforma o ID do cliente em uma identidade que seu ambiente reconhece.

  1. Faça login no centro de administração da Power Platform.
  2. Selecione Gerenciar no painel de navegação, depois Ambientes, e então seu ambiente.
  3. Selecione Configurações > Usuários + permissões > Usuários de Aplicativos.
  4. Selecionar + Novo usuário do app.
  5. Selecione + Adicionar um aplicativo e encontre seu registro pelo nome ou pelo ID do cliente na etapa 1, depois selecione Adicionar. Apenas registros no app Entra aparecem nesta lista — aplicativos empresariais não.
  6. Escolha uma unidade de negócios. A unidade de negócios raiz é a resposta usual; uma unidade filha restringe o que o portal pode alcançar mesmo antes de aplicarem funções de segurança.
  7. Selecione o ícone de edição ao lado de Papéis de Segurança e atribua o papel que você criou para o portal — veja o próximo passo para o que ele precisa conter.
  8. Selecione Criar.

Dica

Um usuário de aplicação não consome nenhuma licença paga, e você só pode ter uma por registro de app Entra por ambiente. Use um registro separado para cada ambiente para que a revogação do acesso ao desenvolvimento nunca toque a produção.

5. Atribuir ao usuário da aplicação um papel de segurança

Crie um papel de segurança personalizado em vez de reutilizar um embutido, para que o acesso ao portal seja visível e revisável. O que o cargo precisa depende das funcionalidades do framework que você utiliza:

O que o portal faz Acesse as necessidades do cargo
Atende aos dados do seu portal Crie, Leia, Escreva e Exclua em cada tabela que seu portal expõe, no escopo que você pretende que os visitantes atinjam. Essa é a maior parte da função, e é totalmente específica para sua aplicação.
Usuários do portal se registram e fazem login Criar, Ler e Escrever em contact, além de Criar, Ler, Escrever e Excluir em adx_externalidentity, que armazena o link entre um usuário do portal e um login externo.
Vincula grades às visualizações do Dataverse e formata valores Continue savedquery lendo para saber quais as visualizações às quais suas grades se vinculam, e continue organizationlendo, usersettings e timezonedefinition assim datas, números e formato de moeda corretamente.
Envia e-mail de confirmação e redefinição de senha Criar, Ler e Escrever em email, Criar em activitymimeattachment, mais os privilégios Enviar E-mail e Enviar E-mail como Outro Usuário . O endereço do remetente que você configurar é resolvido para um queue registro ou systemuser , então o papel também precisa de Ler nesses — por isso enviar como esse endereço conta como envio como outro usuário.
Valida a licença do site Permissão para executar a ppp_ProWebsiteLicenseCheck ação e ler o site do portal registra que são enviados na solução gerenciada. Sem isso, todo endpoint licenciado falha.
Segurança nativa do Dataverse (opcional) Somente se você ativar o modelo de segurança de pré-visualização: Criar e continuar systemuserlendo, continuar businessunitlendo, Criar e ler em powerpagesusermappingcima, Leia e powerpagesite mspp_webrole, e o Ato em Nome de Outro Usuário Privilegiado para que o portal possa se passar por cada usuário provisionado.

Importante

Resista à tentação de designar o Administrador do Sistema e siga em frente. O portal é voltado para a internet, e essa credencial é a que decide o que um atacante alcança caso o segredo vaze. Vale a pena a tarde necessária para construir um papel real — e um ambiente de desenvolvimento é o lugar certo para descobrir o que você perdeu.

6. Armazene as configurações de conexão

O portal lê esses itens a partir da configuração na D365 seção. Mantenha-os em segredos de usuário durante o desenvolvimento para que nunca cheguem ao controle de versão:

EmailSenderEmailAddress é o endereço de onde o e-mail de saída do portal é enviado. Ele deve corresponder a queue ou a habilitar systemuser no ambiente — uma fila é a escolha usual, já que não vincula a correspondência do portal a uma pessoa que pode sair depois.

Dica

Em ambientes hospedados, forneça as mesmas chaves que variáveis de ambiente ou de um armazenamento secreto, usando um duplo sublinhado no lugar do dois-pontos — D365__ClientId, D365__Secret — porque o separador de dois-pontos não é portátil entre plataformas.

7. Ligue a conexão

O projeto servidor se configura ConnectionOptions ao registrar o framework:

O modelo do projeto escreve isso para você, então em um projeto gerado não há nada a adicionar aqui — forneça os três valores de configuração e a conexão funciona. Inicie o portal e navegue até qualquer página com dados do Dataverse para confirmar.

Solução de problemas