Разработка приложений Microsoft Entra

Завершено

Теперь, когда у вас есть лучшее понимание основных принципов и преимуществ идентификатора Microsoft Entra ID, необходимо определить, как можно использовать его возможности для реализации проверки подлинности и авторизации для приложения. Вы понимаете, что для защиты данных клиентов необходимо убедиться, что ваша реализация будет интегрироваться с механизмами управления доступом PostgreSQL. Сначала вы решили определить задачи, связанные с разработкой, подготовкой и управлением приложениями Microsoft Entra. Кроме того, вы хотите определить, как можно реализовать необходимость предоставления доступа к приложению нескольким клиентам.

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

Что такое регистрация приложения?

При работе в среде Microsoft Entra пользователь проходит проверку подлинности в приложении на двух этапах:

  1. Сначала идентификатор Microsoft Entra проверяет удостоверение пользователя. При успешной проверке подлинности идентификатор Microsoft Entra выдает маркеры, содержащие сведения, отражающие успешную проверку подлинности.
  2. Пользователь передает маркеры в приложение. Приложение проверяет маркеры безопасности пользователя, чтобы убедиться, что проверка подлинности прошла успешно.

Чтобы выполнить такую проверку, приложение должно иметь возможность безопасно взаимодействовать с идентификатором Microsoft Entra. Это, в свою очередь, требует, чтобы само приложение работало в качестве субъекта безопасности Microsoft Entra. Чтобы сделать это возможным, необходимо убедиться, что приложение представлено в какой-то форме в том же клиенте Microsoft Entra, который содержит учетную запись проверяющего пользователя.

Существует два представления приложения в идентификаторе Microsoft Entra:

  • Объект приложения, который определяет свойства приложения.
  • Субъект-служба, который предоставляет функции аутентификации и авторизации и ссылается на объект приложения.

Объекты приложения можно создавать непосредственно на портале Azure в области Регистрации приложений. Для собственных пользовательских приложений такая регистрация автоматически создает соответствующий субъект-службу. После этого можно управлять субъектами-службами на портале Azure в области Корпоративные приложения.

Во время регистрации приложения можно указать для приложения универсальный код ресурса (URI) перенаправления. Его значение определяет расположение, в которое сервер авторизации перенаправляет пользователя после того, как приложение было успешно авторизовано. Сервер авторизации отправляет на URI перенаправления код или маркер ответа, поэтому в процессе регистрации приложения важно зарегистрировать правильный адрес.

Примечание.

URI перенаправления должен начинаться с https, если только он не ссылается на localhost — в этом случае можно использовать http://localhost. Также в URI учитывается регистр символов.

Что такое разрешения приложений?

Приложения, которые интегрируются с идентификатором Microsoft Entra, соответствуют модели авторизации, которая позволяет детально управлять разрешениями других интегрированных приложений и ресурсов Microsoft Entra. Идентификатор Microsoft Entra использует модель авторизации OAuth 2.0 для реализации этих разрешений. В OAuth 2.0 разрешения организованы в наборы, которые обычно называются областями (scope).

Разработчики запрашивают разрешения, необходимые приложению, указывая строку разрешений в конфигурации. Например, задав для строки разрешения значение https://graph.microsoft.com/Calendars.Read", вы указываете, что приложение должно иметь возможность чтения календарей пользователей в Microsoft Graph. Приложение должно быть предоставлено этим разрешениям через согласие, которое должно быть предоставлено пользователем Microsoft Entra или администратором Microsoft Entra в зависимости от степени этих разрешений.

Идентификатор Microsoft Entra поддерживает два типа разрешений:

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

Что такое секреты приложений?

Субъектам-службам доступно два вида аутентификации:

  • Проверка подлинности на основе паролей, использующая секреты приложения, которые можно создать непосредственно на портале Azure. При создании секрета указывается его время существования.
  • Проверка подлинности на основе сертификатов, которая зависит от сертификатов, передаваемых в идентификатор Microsoft Entra.

Примечание.

Если приложение будет размещено вычислительным ресурсом Azure, например виртуальной машиной Azure, веб-приложением службы приложение Azure или кластером AKS, а не с помощью субъектов-служб, рассмотрите возможность использования управляемых удостоверений для удостоверения приложения. Это устраняет необходимость в управлении паролями или сертификатами для аутентификации.

Каковы типы сценариев аутентификации приложений?

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

  • Приложения на основе браузера. Это веб-приложения, в которых маркеры получают маркеры с помощью приложения JavaScript или TypeScript, работающего в браузере. Эти приложения часто используют такие платформы, как Angular, React или Vue. MSAL.js является единственной библиотекой аутентификации Майкрософт, которая поддерживает одностраничные приложения (SPA).
  • Общедоступные клиентские приложения. Это приложения, которые для получения маркеров всегда полагаются на пользователей, выполнивших вход. Такие приложения включают в себя настольные и мобильные приложения, вызывающие веб-API от имени пользователей, выполнивших вход.
  • Конфиденциальные клиентские приложения. Эти приложения получают маркеры самостоятельно. К приложениям в этой категории относятся веб-приложения, которые вызывают веб-API, веб-API, которые вызывают другой веб-API, управляющие программы Linux или службы Windows.

Первые два элемента, указанные выше, выполняют аутентификацию пользователя, тогда как третий выполняет проверку подлинности приложения или службы, находящейся между пользователем и серверной службой. В этом случае серверная служба не будет знать ничего о конечном пользователе, но будет знать, какое приложение ее использует. Например, представьте себе приложение, использующее Azure Maps в качестве серверной службы. Служба карт должна знать, что авторизованное приложение вызывает его для правильного выставления счетов, но ей не нужно ничего знать о конечном пользователе.

Какова разница между приложениями Microsoft Entra с одним клиентом и мультитенантными приложениями?

При регистрации приложения разработчик может настроить приложение для работы с одним клиентом или несколькими.

  • Однотенантные приложения доступны только в клиенте, для которого они были зарегистрированы, который также называется "домашний клиент".
  • Мультитенантные приложения доступны пользователям как в домашнем клиенте, так и в других клиентах Microsoft Entra.

Если для регистрации приложения вы используете портал Azure, укажите количество клиентов для приложения, задав для свойства "Аудитория" одно из следующих значений.

  • Только учетные записи в этом каталоге. Это будет означать однотенантную конфигурацию. Фактически это позволяет предоставить доступ к приложению любому субъекту безопасности в клиенте, включая гостевые учетные записи.
  • Учетные записи в любом каталоге Microsoft Entra. Это будет означать мультитенантную конфигурацию. Это позволяет пользователям за пределами вашей организации зарегистрировать приложение в соответствующих клиентах Microsoft Entra.
  • Учетные записи в любом каталоге Microsoft Entra и личных учетных записях Майкрософт (например, Skype, Xbox, Outlook.com). Это также приводит к мультитенантной конфигурации, но позволяет использовать приложение пользователям с личными учетными записями Майкрософт.

Примечание.

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