Настройка авторизации OpenID c использованием GSuite

OpenID — открытый стандарт децентрализованной системы аутентификации, предоставляющей пользователю возможность создать единую учётную запись для аутентификации на множестве не связанных друг с другом интернет-ресурсов.

Чтобы настроить авторизацию OpenID на сайте Picvario требуется:

mceclip2.png

Произвести настройки на стороне Google:

  1. Под учетной записью администратора организации перейти по ссылке https://console.developers.google.com/apis/credentials.
  2. Создать новое веб-приложение (например, с названием Picvario).
  3. Получить ClientID и Client Secret в панели управления:
    mceclip0.pngmceclip1.png
  4.  В список разрешенных URI добавить адрес: <site_url>/api/v1/users/oidc/callback
    mceclip2.png

mceclip2.png

Произвести настройка на стороне Picvario:

  1. Продублировать переменную окружения из frontend SITE_BASE_URL=< какой-то url >
  2. В Options тенанта ( https://<tenant-name>.<site_url>/admin/options/option/ ) или  хостед-версии ( https://<site_url>/admin/options/option/ ) создать параметр: OPENID_AUTH_ENABLEDTrue.

После того как параметр будет добавлен АВТОМАТИЧЕСКИ создадутся ещё 11 параметров, нужно будет скорректировать их значения на:

KEY

VAL

PUBLIC

OIDC_TOKEN_USE_BASIC_AUTHTrue
False
OIDC_RP_SIGN_ALGORS256
False
OIDC_RP_SCOPESemail profile openid
False
OIDC_RP_CLIENT_SECRET(получаем у гугла)
False
OIDC_RP_CLIENT_ID(получаем у гугла)
False
OIDC_OP_USER_ENDPOINThttps://openidconnect.googleapis.com/v1/userinfo
False
OIDC_OP_TOKEN_ENDPOINThttps://oauth2.googleapis.com/token
False
OIDC_OP_JWKS_ENDPOINThttps://www.googleapis.com/oauth2/v3/certs

False

OIDC_OP_AUTHORIZATION_ENDPOINThttps://accounts.google.com/o/oauth2/v2/auth
False

ВАЖНО! У всех вышеупомянутых опций свойство Public должно быть False(выставлено по умолчанию)

Если нужно разрешить просмотр активов анонимным пользователям, используется параметр ALLOW_ANONYMOUS_USERS = True. Этот параметр должен быть публичным (Public = True) вне зависимости от значения самого параметра.

Для того чтобы разрешить авторизацию И через Gsuite И через Picvario отвечает параметр MULTI_AUTH. Этот параметр также является публичным (Public = True).

MULTI_AUTH=True/False 

  • параметр, определяющий, возможна ли аутентификация несколькими доступными способами — стандартным и через OpenID. В UI этот вариант отображается страницей со стандартными полями логин и пароль и дополнительной кнопкой внизу «Войти через корпоративный аккаунт». В случае False, вариант аутентификации определяется флагом OPENID_AUTH_ENABLED.

mceclip2.png

Последовательность поиска публичных ключей для верификации токенов / Приоритет опций:

  1. OIDC_RP_IDP_SIGN_KEY_PATH
  2. OIDC_RP_IDP_SIGN_KEY
  3. OIDC_OP_JWKS_ENDPOINT

При появлении ошибок типа «SuspiciousOperation" или «JWS token verification failed" необходимо убедиться в отсутствии конфликта между данными опциями.

Для GSuite нужно указывать только OIDC_OP_JWKS_ENDPOINT, остальные опции из этого списка должны быть пустыми!

.

Не нашли ответ на вопрос?

Отправить запрос