Всякое об OAuth
Хаб аутентификации SS14 реализует OAuth2 и OpenID Connect. Это позволяет делать вещи вроде «войти со своей учётной записью Space Station 14». Поддержка всего этого реализована IdentityServer4 (слава богу).

Это используется официальным форумом, официальной вики и панелью SS14.Admin, чтобы людям было легко везде входить в разные штуки под одной и той же учётной записью. Я очень доволен тем, как хорошо это работает.
Приложения OAuth привязаны к учётной записи SS14 и могут быть созданы здесь.
Некоторая информация, которую вам, возможно, стоит знать (она повторяется на странице управления приложением):
- Authority: https://account.spacestation14.com/
- OIDC config: https://account.spacestation14.com/.well-known/openid-configuration
- Разрешённый поток авторизации: код авторизации (implicit и т. п. не допускаются)
- Доступные области действия:
openid,profile,email.
В зависимости от библиотеки, которую вы используете для поддержки OIDC, вам, возможно, придётся отключить «require PKCE». Например, PHP-библиотека, используемая MediaWiki, не поддерживает это, поэтому её нужно выключить.
Учтите, что некоторые из этих ограничений (например, отсутствие implicit grant) не связаны с техническими причинами. У IdentityServer4 есть куча кнопок и ручек, которые мы можем подкрутить при необходимости. Если вам нужно что-то здесь, чего нет в текущем меню создания приложения OAuth, дайте нам знать.
Если при попытке проверить вход вы получаете ошибки, убедитесь, что вся информация верна (особенно redirect URI, проверьте его во вкладке сети вашего браузера)
По запросу мы можем помочь с более подробной информацией об ошибках.
По умолчанию IdentityServer4 довольно ограничен в том, какие алгоритмы подписи поддерживаются. Это проблема для таких вещей, как PHP/MediaWiki, поскольку OpenID-Connect-PHP сейчас не поддерживает ES256. Сейчас вы не можете изменить эту настройку самостоятельно.
Мы можем изменить это вручную через панель hub-admin (см. примечание о ручках выше), так что если это для вас проблема, скажите нам.
См. следующую проблему: https://github.com/space-wizards/SS14.Web/issues/11
Пример конфигурации
MediaWiki
Использование MediaWiki сейчас требует ручной настройки бэкенда, которую вы не можете выполнить сами. Пожалуйста, попросите в #hosting, чтобы это настроили.
Сначала вам нужно убедиться, что у вас установлены расширения PluggableAuth и OpenIDConnect. Обратитесь к документации MediaWiki по установке расширений.
Создайте приложение OAuth на нашем сайте со следующими параметрами:
- Имя приложения: Что-то осмысленное, чтобы пользователи могли узнать.
- URL обратного вызова авторизации: страница «
Special:PluggableAuthLogin» на вашей вики. Например, поскольку главная страница официальной вики —https://wiki.spacestation14.io/wiki/Main_Page, это будетhttps://wiki.spacestation14.io/wiki/Special:PluggableAuthLogin. - URL домашней страницы: главная страница вашей вики. Например
https://wiki.spacestation14.io/wiki/Main_Page - Снимите галочку «Require PKCE»
Также сгенерируйте client secret и скопируйте его.
Введите следующее в ваш LocalSettings.php в установке MediaWiki и замените нужные значения:
wfLoadExtension( 'PluggableAuth' );
wfLoadExtension( 'OpenIDConnect' );
$wgPluggableAuth_Config[] = [
'plugin' => 'OpenIDConnect',
'data' => [
'providerURL' => 'https://account.spacestation14.com/',
'clientID' => 'e584f64f-d0f9-4b15-9714-1233bc4c55a4', // Замените на ваш client ID.
'clientsecret' => 'foobar', // Замените на ваш client secret.
'scope' => [ 'profile', 'email' ]
]
];
$wgOpenIDConnect_MigrateUsersByUserName=true;
Устранение неполадок
Ошибка на стороне авторизации «An error occurred while processing your request.»

Это общая ошибка на все случаи, которая возникнет, если конфигурация вашего клиента или приложения где-то напутана. Примеры того, что может её вызвать:
- Неверно указанный redirect URI.
- Приложение сообщает неверный redirect URI из-за неверной конфигурации.
- Неверный client secret, указанный в файле конфигурации.
- Неверный client ID, указанный в файле конфигурации.
- PKCE включён, хотя клиентская библиотека его не поддерживает.
- Неверные области действия, указанные в клиентской библиотеке.
Сейчас у нас нет способа дать вам понятные логи о том, что именно пошло не так, поэтому лучшее, что вы можете сделать, — попросить поддержки либо через Форум, либо через #hosting в Discord. Если вы просите поддержки, пожалуйста, укажите примерное время, когда вы последний раз пытались, так как «Request ID», который вы видите, сейчас по большей части бесполезен для нас.
Однако, по опыту, в 95% случаев (и особенно если вы просто хостите что-то вроде SS14.Admin, что в остальном должно работать очень легко) ошибка вызвана неверным redirect URI. Вы можете убедиться в этом сами, держа открытыми инструменты разработчика браузера во время попытки входа, так как redirect URI виден в параметрах запроса:
