Для использования AWS Cognito в качестве провайдера идентификации для плагина OpenID Connect
- Нажмите кнопку Create a User Pool в веб-консоли AWS Cognito.
- Нажмите 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 — этот пункт найти немного сложно.
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
Другие полезные материалы
- Stackoverflow: контекст о формате URL для Discovery Document URL
- Stackoverflow: если при проверке Discovery Document URL возникает ошибка регулярного выражения, проверьте, не использовали ли вы неверный формат вместо User Pool Id в URL документа обнаружения
- Stackoverflow: убедитесь, что вы настроили имя домена, иначе возникнет эта проблема


