Авторизация через SSO (OpenID, OAuth)

  • Создана: 13.05.2021 08:14
  • Обновлена: 13.05.2021 08:26

Выполните установку необходимых модулей Apache:

$ sudo apt-get install libapache2-mod-auth-openidc

Включите использование модуля:

$ sudo a2enmod auth_openidc

В файле настройке сайта добавьте следующие строки:

...
LoadModule auth_openidc_module modules/mod_auth_openidc.so

<VirtualHost *:80>
...

    OIDCClaimPrefix "OIDC-"
    OIDCResponseType "id_token"
    OIDCScope "openid email"
    OIDCProviderMetadataURL "..."
    OIDCClientID "..."
    OIDCClientSecret "..."
    OIDCRedirectURI http://<devprom-alm-server>/openid/auth
    OIDCCryptoPassphrase <your-secret-phrase>

    <LocationMatch /openid>
      AuthType openid-connect
      Require valid-user
    </LocationMatch>
</VirtualHost>

Пример заполнения параметров для аутентификации через Gmail

OIDCProviderMetadataURL https://accounts.google.com/.well-known/openid-configuration
OIDCClientID ClientID можно получить по ссылке https://console.cloud.google.com/apis/credentials для зарегистрированного приложения, где в качестве RedirectURI необходимо прописать путь к приложению http://<devprom-alm-server>/openid/auth
OIDCClientSecret ClientSecret можно получить вместе с ClientID

Дополнительные настройки

В файле htdocs/settings_server.php вы можете добавить следующие константы, чтобы настроить работу аутентификации через SSO-сервер.

define('AUTH_OPENID_USED', true); Отобразить кнопку SOO на странице авторизации для входа через SSO-сервер.
define('AUTH_OPENID_ONLY', true); Использовать только аутентификацию через SSO, без возможности аутентифицироваться по паре логин/пароль.
define('AUTH_OPENID_CREATEVISITOR', true); Автоматически создавать учетную запись для посетителя, успешно аутентифицировавшегося через SSO-сервер.

Решения для поддержки процессов разработки Devprom Software