Разработка приложений Microsoft Entra
Теперь, когда у вас есть лучшее понимание основных принципов и преимуществ идентификатора Microsoft Entra ID, необходимо определить, как можно использовать его возможности для реализации проверки подлинности и авторизации для приложения. Вы понимаете, что для защиты данных клиентов необходимо убедиться, что ваша реализация будет интегрироваться с механизмами управления доступом PostgreSQL. Сначала вы решили определить задачи, связанные с разработкой, подготовкой и управлением приложениями Microsoft Entra. Кроме того, вы хотите определить, как можно реализовать необходимость предоставления доступа к приложению нескольким клиентам.
Каковы основные задачи, связанные с идентификатором приложения Microsoft Entra?
Для реализации приложений на основе идентификаторов Microsoft Entra необходимо выполнить несколько задач управления, связанных с приложениями, включая регистрацию, настройку разрешений и управление секретами.
Что такое регистрация приложения?
При работе в среде Microsoft Entra пользователь проходит проверку подлинности в приложении на двух этапах:
- Сначала идентификатор Microsoft Entra проверяет удостоверение пользователя. При успешной проверке подлинности идентификатор Microsoft Entra выдает маркеры, содержащие сведения, отражающие успешную проверку подлинности.
- Пользователь передает маркеры в приложение. Приложение проверяет маркеры безопасности пользователя, чтобы убедиться, что проверка подлинности прошла успешно.
Чтобы выполнить такую проверку, приложение должно иметь возможность безопасно взаимодействовать с идентификатором 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.