Применение рекомендаций для Microsoft Graph

Завершено

В этом уроке описаны рекомендации, которые можно применить для получения максимальной отдачи от Microsoft Graph и повышения надежности приложения для конечных пользователей.

Проверка подлинности

Чтобы получить доступ к данным в Microsoft Graph, приложение должно получить маркер доступа OAuth 2.0 и представить его Microsoft Graph в любом из следующих методов:

  • заголовок запроса HTTP Authorization в формате токена носителя;
  • конструктор в клиенте graph, если вы используете клиентскую библиотеку Microsoft Graph.

Чтобы получить маркер доступа для Microsoft Graph, используйте API MSAL (библиотеки проверки подлинности Майкрософт).

Примените в приложении следующие рекомендации по предоставлению согласия и авторизации.

  • Принцип минимальных привилегий. Запрашивают только необходимые разрешения и только в том случае, если они нужны. Для API приложение вызывает проверка раздел разрешений в разделах метода. Например, выберите разрешения с минимальными привилегиями в разделе о создании пользователя.

  • Используйте правильный тип разрешений для конкретного сценариев. Если вы создаете интерактивное приложение, в котором есть выполнивший вход пользователь, то приложение должно использовать делегированные разрешения. Но если ваше приложение выполняется без входа пользователя, например вы создаете фоновую службу или управляющую программу, приложение должно использовать разрешения приложения.

    Внимание

    Использование разрешений приложения в интерактивных сценариях может создать для приложения риски безопасности и соответствия требованиям. Обязательно проверяйте права пользователя, чтобы не предоставить ему нежелательный доступа к информации и не нарушить политики, настроенные администратором.

  • Учитывайте взаимодействие с пользователем и администратором. Непосредственно влияет на взаимодействие с конечными пользователями и администраторами. Например:

  • Учитывайте мультитенантные приложения. Всегда предполагайте, что клиенты будут использовать разные приложения и элементы управления согласием в разных состояниях. Например:

    • Например, администраторы арендаторов могут запретить пользователям предоставлять согласие на работу приложения. В этом случае администратор будет предоставлять согласие от имени пользователей.

    • Администраторы арендаторов могут создать настраиваемые политики авторизации, например запретить пользователям просматривать профили других пользователей или ограничить доступ к интерфейсу для самостоятельного создания групп подмножеством пользователей. В таком случае приложение должно быть готово обработать ответ с ошибкой 403, действуя от имени пользователя.

Эффективно обрабатывайте ответы

В зависимости от конкретных запросов, которые вы направляете в Microsoft Graph, приложения должны быть готовы обрабатывать разные типы ответов. Ниже перечислены некоторые рекомендации, которые необходимо соблюдать для надежного и предсказуемого взаимодействия приложения с пользователями. Например:

  • Разбиение на страницы. При запросе коллекций ресурсов следует ожидать, что Microsoft Graph возвращает результирующий набор на нескольких страницах из-за ограничений размера страниц на стороне сервера. Приложение всегда должно обрабатывать возможность страниц ответа в природе и использовать @odata.nextLink свойство для получения следующего набора результатов, пока не будут прочитаны все страницы результирующих наборов. Последняя страница не содержит @odata.nextLink свойства. Дополнительные сведения см . на страницах.

  • Расширяемые перечисления. Добавление членов к существующим перечислениям может нарушить работу приложений, которые уже используют эти перечисления. Эволюционируемые перечисления — это механизм, который API Microsoft Graph использует для добавления новых элементов в существующие перечисления, не вызывая критическое изменение для приложений. По умолчанию операция GET возвращает только известные элементы в качестве свойств для типов расширяемых перечисления, поэтому приложению придется работать только с известными ему элементами. Если вы разрабатываете приложение для обработки неизвестных элементов, вы можете принять их с помощью заголовка HTTP-запроса Prefer .

Локальное хранение данных

Идеальное приложение должно всегда обращаться к Microsoft Graph за получением данных в режиме реального времени по мере необходимости. Вы должны кэшировать или хранить данные локально, необходимые для определенного сценария, и если этот вариант использования охватывается вашими условиями использования и политикой конфиденциальности, и не нарушает условия использования API Майкрософт. Также в приложении также должны быть реализованы правильные политики хранения и удаления.