Aplicar melhores práticas ao Microsoft Graph
Esta unidade descreve as melhores práticas que você pode aplicar para obter o máximo do Microsoft Graph e tornar o seu aplicativo mais confiável para os usuários finais.
Autenticação
Para acessar os dados no Microsoft Graph, seu aplicativo precisa adquirir um token de acesso OAuth 2.0 e apresentá-lo ao Microsoft Graph em um dos seguintes métodos:
- O cabeçalho da solicitação de Autorização do HTTP, como um token do Portador
- O construtor do cliente do grafo, ao usar uma biblioteca cliente do Microsoft Graph
Use a API da Biblioteca de Autenticação da Microsoft, MSAL, para adquirir o token de acesso ao Microsoft Graph.
Consentimento e autorização
Aplique as melhores práticas a seguir para consentimento e autorização em seu aplicativo:
Use o mínimo de privilégios. Solicite apenas as permissões necessárias e somente quando precisar delas. Para as APIs que seu aplicativo chama, verifique a seção de permissões nos tópicos do método. Por exemplo, confira a criação de um usuário e escolha as permissões menos privilegiadas.
Use o tipo de permissão correto com base em cenários. Se você estiver construindo um aplicativo interativo em que um usuário conectado está presente, seu aplicativo deve usar permissões delegadas. Se, no entanto, seu aplicativo é executado sem um usuário conectado, como um serviço ou daemon de segundo plano, seu aplicativo deve usar permissões de aplicativo.
Cuidado
O uso de permissões de aplicativo para cenários interativos pode colocar seu aplicativo em risco de conformidade e segurança. Verifique os privilégios do usuário para garantir que eles não tenham acesso indesejado às informações ou sejam políticas de circunavegação configuradas por um administrador.
Considere a experiência do usuário final e do administrador. Isso afetará diretamente as experiências do usuário final e do administrador. Por exemplo:
Considere quem consentirá com seu aplicativo, sejam usuários finais ou administradores, e configure seu aplicativo para solicitar permissões de forma adequada.
Certifique-se de compreender a diferença entre consentimento estático, dinâmico e incremental.
Considere aplicativos multilocatários. Espere que os clientes tenham vários aplicativos e controles de consentimento em diferentes estados. Por exemplo:
Os administradores de locatários podem desabilitar a capacidade dos usuários finais de consentir com os aplicativos. Nesse caso, um administrador precisaria consentir em nome de seus usuários.
Os administradores de locatários podem definir políticas de autorização personalizadas, como impedir que os usuários leiam os perfis de outros usuários ou limitar a criação de grupos de autoatendimento a um conjunto limitado de usuários. Nesse caso, seu aplicativo deve esperar lidar com a resposta de erro 403 ao agir em nome de um usuário.
Lidar com respostas de maneira eficaz
Dependendo das solicitações feitas ao Microsoft Graph, seus aplicativos devem estar preparados para lidar com diferentes tipos de respostas. A seguir estão algumas das práticas mais importantes a serem seguidas para garantir que seu aplicativo se comporte de maneira confiável e previsível para os usuários finais. Por exemplo:
Paginação: Quando você consulta uma coleção de recursos, o Microsoft Graph retorna o conjunto de resultados em várias páginas, devido aos limites de tamanho de página do servidor. Seu aplicativo deve sempre lidar com a possibilidade de as respostas serem paginadas por natureza e usar a propriedade
@odata.nextLink
para obter o próximo conjunto paginado de resultados, até que todas as páginas do conjunto de resultados tenham sido lidas. A página final não inclui uma propriedade@odata.nextLink
. Para obter mais informações, visite paginação.Enumerações evolutivas: adicionar membros às enumerações existentes pode interromper os aplicativos que já usam essas enumerações. As enumerações evolutivas são um mecanismo que a API do Microsoft Graph usa para adicionar novos membros às enumerações existentes sem causar uma alteração significativa para os aplicativos. Por padrão, uma operação GET retorna apenas membros conhecidos para propriedades de tipos de enumerações evolutivas e seu aplicativo precisa lidar apenas com os membros conhecidos. Se você projetar seu aplicativo para lidar também com membros desconhecidos, poderá optar por receber esses membros usando um cabeçalho de solicitação
Prefer
HTTP.
Armazenar dados localmente
O ideal é que seu aplicativo faça chamadas para o Microsoft Graph para recuperar dados em tempo real, conforme necessário. Somente armazene dados localmente ou em cache se necessário para um cenário específico. Se esse caso de uso for coberto por seus termos de uso e política de privacidade e não violar os Termos de Uso das APIs da Microsoft, seu aplicativo também deverá implementar políticas de retenção e exclusão adequadas.