Migrar aplicativos de vários clientes para o modelo de perfis de entidade de serviço
Este artigo descreve como você pode obter melhor escalabilidade migrando seus aplicativos de vários clientes de análise integrada do Power BI para o modelo de perfis de entidade de serviço.
Os perfis de entidade de serviço facilitam o gerenciamento de conteúdo organizacional no Power BI e o uso das suas capacidades com mais eficiência.
Observação
Este artigo é destinado a organizações que já têm um aplicativo que dá suporte a vários clientes por meio de apenas um locatário do Power BI.
Nem todos os aplicativos se beneficiam do modelo de entidade de serviço. Por exemplo, os seguintes aplicativos não devem ser migrados:
- Aplicativos pequenos que mantêm apenas uma entidade de serviço com poucos objetos.
- Aplicativos que usam uma entidade de serviço múltipla por cliente
Pré-requisitos
É importante ler sobre perfis de entidade de serviço antes de iniciar a migração.
Também é necessário executar as seguintes etapas:
- Configure a entidade de serviço seguindo as três primeiras etapas de Inserir conteúdo do Power BI com entidade de serviço.
- Por meio de uma conta de administrador de locatário do Power BI, habilite a criação de perfis no locatário.
Migrar para os perfis de entidade de serviço
A migração para os perfis de entidade de serviço envolve as seguintes etapas:
- Criar perfis, um por cliente.
- Organizar seus workspaces.
- Alterar o código do aplicativo para usar os perfis.
- Testar seu aplicativo com o modelo de perfis.
- Limpar as permissões redundantes.
Criar perfis (obrigatório)
Use a API REST de Perfis com a entidade de serviço que você criou para gerar um perfil para cada cliente.
É uma boa ideia salvar em seu banco de dados o mapeamento que liga cada ID do cliente de dados à ID de perfil correspondente. Você precisará desse mapeamento posteriormente para realizar chamadas à API com o perfil do locatário.
Organizar seus workspaces
A maneira mais fácil de gerenciar seus dados é mantendo um workspace por cliente. Se o aplicativo já usa esse modelo, não é necessário criar workspaces. No entanto, você ainda precisa fornecer a cada perfil acesso de Administrador ao workspace correspondente usando a API Adicionar Usuário de Grupo.
Se você não tiver um workspace por cliente, use o perfil correspondente para chamar a API Criar Usuário de Grupo a fim de criar um workspace para cada cliente.
Organizar os itens nos workspaces
Agora você deve ter um perfil e um workspace para cada cliente. Se você criou workspaces na etapa anterior, agora será necessário importar itens (como relatórios e modelos semânticos) a esses workspaces. Os modelos semânticos importados por você dependem da solução atual:
Se seu aplicativo usar um modelo semântico separado para cada cliente, o design do modelo semântico poderá funcionar como está.
Se seu aplicativo usar um modelo semântico com RLS (Segurança em Nível de Linha) para fornecer dados diferentes a cada cliente, você poderá obter melhor escalabilidade criando um modelo semântico separado para cada cliente e usando os perfis conforme descrito neste artigo.
Após superar as limitações de escalabilidade usando perfis e fontes de dados separadas, você pode obter ainda mais separação de dados usando RLS com perfis.
- Se você depender da RLS Dinâmica, o nome do perfil será retornado na função DAX
UserName()
. - Se você usar RLS estática e substituir funções ao gerar o token inserido, poderá continuar fazendo isso.
- Se você depender da RLS Dinâmica, o nome do perfil será retornado na função DAX
Depois que os itens estiverem prontos, importe-os para os workspaces relevantes. Para automatizar o processo, considere usar a API de Importação.
Alterar os códigos do aplicativo para usar perfis
Uma vez que você tenha perfis com acesso de Administrador aos workspaces relevantes e um banco de dados com mapeamento que mostra qual perfil representa qual cliente, você pode fazer as alterações de código necessárias. Recomendamos que você mantenha dois fluxos de código lado a lado e exponha gradualmente o fluxo de código de perfis para seus clientes.
Faça as seguintes alterações no código:
Alteração do código de autorização
- Se você estiver usando um usuário mestre no aplicativo Microsoft Entra ID, altere o código do token de aquisição. Leia inserir com a entidade de serviço para saber mais sobre como criar um token do Microsoft Entra somente aplicativo.
- Se você estiver usando uma entidade de serviço e tiver criado uma para perfis, ajuste o código para usar a ID e os segredos corretos da entidade de serviço.
Alteração do código de gerenciamento
Alguns aplicativos têm código de gerenciamento que automatiza a integração de novos clientes após o registro. Geralmente, o código de gerenciamento usa APIs REST do Power BI para criar workspaces e importar conteúdo. A maior parte desse código deve permanecer a mesma, mas talvez seja necessário adaptar os seguintes detalhes:
- Sempre que você criar um locatário para o cliente, crie um perfil de serviço para ser o criador e administrador do workspace desse locatário.
- Se você decidir reorganizar seu conteúdo do Power BI, edite o código para refletir as alterações realizadas.
Inserir alteração do código de token
Substitua o chamador da API. Verifique se um perfil chama a API GenerateToken porque, no modelo de perfis, apenas o perfil específico tem acesso ao conteúdo do cliente.
Validar
É uma melhor prática testar seu aplicativo por completo antes de movê-lo para o modelo de perfis. Os relatórios podem ser carregados mesmo se houver bugs no código do aplicativo SaaS porque você não excluiu as permissões mais antigas nos workspaces.
Limpar após a migração
Agora que você concluiu a migração e validou os resultados, remova o que não é mais necessário.
- Limpar o código: é recomendável desabilitar caminhos de código antigos para que você execute apenas novos códigos que dependem dos perfis.
- Limpar workspaces e permissões do Power BI: se você criou workspaces, exclua os workspaces antigos que não estão mais em uso. Se você reutilizou os mesmos workspaces, é recomendável excluir deles as permissões mais antigas (como as permissões de usuário mestre).
Conteúdo relacionado
Gerenciar perfis de entidade de serviço
Mais perguntas? Experimente perguntar à Comunidade do Power BI