После большого разочарования я теперь могу ответить на этот вопрос, поэтому я решил собрать простой пошаговый ответ для начинающих с этой борьбой.
Я только иду в настройку аутентификации, а не авторизацию. Авторизация требует ролей IAM и некоторой другой логики, которая зависит от архитектуры. Я рад обсудить это в другом месте.
Есть 2 компонента для этого вида установки:
- Пул пользователей AWS Cognito с федеративным поставщиком удостоверений
- Windows Server с установленной AD FS
Создание домена Cognito User Pool
В пуле пользователей Cognito в разделе Общие настройки выберите Клиенты приложения и добавьте его, если его нет (идентификатор понадобится позже).
Затем перейдите на Имя домена в разделе Интеграция приложений , выберите действительный префикс домена и сохраните его.
доверие проверяющей стороны в Windows AD FS
Вам нужно будет заставить компанию установить доверие проверяющей стороны. Необходимые шаги:
- Открыть консоль управления AD FS
- Создание нового доверия проверяющей стороны
- Выберите, чтобы ввести детали вручную
- Введите имя для доверия, которое легко идентифицировать как ваше приложение
- Выберите для использования ADFS 2.0
- В этом примере сертификат не нужен, поэтому просто нажмите «Далее»
- Установите флажок, чтобы включить протокол SAML 2.0, и введите URL-адрес в следующем формате:
https://<domain_prefix>.auth.<region>.amazoncognito.com/saml2/idpresponse
(префикс домена установлен на предыдущем шаге)
- Идентификатор доверия проверяющей стороны должен быть
urn:amazon:cognito:sp:<pool-id>
, где pool-id
- идентификатор пула пользователей AWS Cognito, найденный в Общие параметры пула пользователей
- Разрешить всем пользователям проходить аутентификацию (при условии, что это ваше намерение)
Теперь необходимо добавить претензии в траст проверяющей стороны.
- Щелкните правой кнопкой мыши доверие доверяющей стороны и выберите "Изменить заявки"
- Создать новую заявку, которая отправляет атрибуты LDAP
- Дайте ему имя (я обычно использую Профиль , но это зависит от вас)
- Сделать атрибут хранилища Active Directory
- Заполните таблицу, как вам нужно. Требование заключается в том, что у вас есть имя ID , которое возвращается (я обычно использую имя-участника-пользователя , сопоставленное с имя ID ). Остальная часть таблицы, как вам нужно. Например, имя-имени может отображаться на FName
Федеративные удостоверения в пуле пользователей AWS Cognito
Поэтому, как разработчику приложения, вам нужно настроить пул Cognito User. Пройдите через мастера и выберите нужные настройки. В любом случае федеративные удостоверения не обязательно играют по тем же правилам, что и сам пул пользователей.
Шаги для настройки федеративного удостоверения:
- В пуле пользователей Cognito выберите Поставщики удостоверений в Федерация
- Нажмите на SAML
- Укажите конечную точку документа метаданных (обычно в форме
https://<fqdn>/FederationMetadata/2007-06/FederationMetadata.xml
). Если вы не можете загрузить этот файл и загрузить его, нажав «Выбрать файл»
- Введите имя провайдера, которое имеет смысл для вас, но не вставляйте пробелы в имени
- Идентификаторы необязательны (см. Их использование ниже)
- Проверка включения потока выхода IdP приведет к тому, что ваши пользователи выйдут из их федеративного удостоверения, а также ваше приложение при выходе.
- Нажмите, создайте провайдера
Отображение атрибутов для федеративной идентичности
- Создайте сопоставления полей для федеративного удостоверения, перейдя к Сопоставление атрибутов в Федерация в пуле пользователей.
- Выбрать SAML
- Нажмите Добавить атрибут SAML
- Убедитесь, что Capture отмечен, введите атрибуты SAML сверху (например, FName) и выберите атрибут пула пользователей, с которым он связан.
Настройка приложения-клиента
Последний шаг перед тестированием - настроить клиент приложения, который вы создали ранее.
- Перейти к Настройки клиента приложения в Интеграция приложений
- Введите настройки для соответствующего клиента приложения
- Выберите всех соответствующих провайдеров идентификации (в частности, одну настройку выше)
- Вы можете установить разделенный запятыми список обратных вызовов и URL-адресов выхода из системы,URL обратного вызова должны указывать на то место, где будет использоваться токен после аутентификации (см. Тестирование ниже).
- Выберите атрибуты OAuth 2.0, как требуется, но для тестирования выберите все, кроме Учетные данные клиента
Тестирование
Для тестирования вы можете попробовать несколько разных URL-адресов в виде: -
https://<domain_prefix>.auth.<region>.amazoncognito.com/authorize?idp_identifier=<idp_identifier>&response_type=token&client_id=<app_client_id>&redirect_uri=<app_client_callback_URL>
, чтобы перейти непосредственно к конечной точке авторизации https://<domain_prefix>.auth.<region>.amazoncognito.com/login?response_type=token&client_id=<app_client_id>&redirect_uri=<app_client_callback_URL>
для перехода к пользовательскому интерфейсу входа AWS
idp_identifier
- это необязательное поле, определенное при создании федеративного удостоверения.Это также не требуется в URL.
Это одностраничное веб-приложение является хорошим инструментом для проверки того, что все работает, и вы получаете желаемый ответ.
Я надеюсь, что это помогает другим людям.