У кого-то есть рабочая конфигурация AWS Cognito с OAuth2, OpenID или SSO?

Для использования AWS Cognito в качестве провайдера идентификации для плагина OpenID Connect

  1. Нажмите кнопку Create a User Pool в веб-консоли AWS Cognito.
  2. Нажмите Review Defaults, чтобы использовать настройки по умолчанию.
    2a. Перед созданием пула убедитесь, что вы нажали Add an App Client.
    2b. Создайте App Client: задайте ему имя и снимите все флажки, кроме Enable refresh token based authentication (ALLOW_REFRESH_TOKEN_AUTH).


3. Нажмите Create pool.
4. Теперь в разделе General Settings в левом меню выберите App Client и запишите значения для App client id и App client secret.
5. Далее в разделе App integration в левом меню выберите Domain name. Введите здесь поддомен. Имя, указанное здесь, будет доменом, на который будут перенаправляться пользователи при входе.

6. В левом верхнем углу консоли AWS Cognito нажмите Federated Identities — этот пункт найти немного сложно.
federated-identities
7. После этого нажмите Create new identity pool.
8. Задайте имя для пула идентификации.
8b. В разделе Authentication providers используйте User Pool ID из ранее созданного пула пользователей и App client id из ранее созданного клиента приложения.


9. Нажмите Create Pool и разрешите консоли создать роли IAM для использования с новым пулом идентификации.
10. На этом этапе у вас есть практически всё необходимое для настройки экземпляра Discourse с правильными параметрами сайта, при условии, что плагин уже установлен.

openid connect enabled: включите эту опцию.
openid connect client id: используйте App Client Id, полученный на предыдущих этапах.
openid connect client secret: используйте App Client Secret, полученный на предыдущих этапах.
openid connect discovery document: ссылка на документ обнаружения (discovery document) имеет следующий формат. Формат для userPoolId можно увидеть на скриншоте в шаге 8b:

https://cognito-idp.{region}.amazonaws.com/{userPoolId}/.well-known/openid-configuration

Чтобы проверить правильность формата URL, просто вставьте его в адресную строку браузера. Вы должны получить корректный JSON-ответ, содержащий endpoint авторизации, издателя (issuer) и другую информацию.

openid connect authorize scope: openid email


Другие полезные материалы