Авторизация пользователя
После успешной регистрации клиента появляется возможность авторизовать пользователя от имени данного клиента. Для этого необходимо направить пользователя по сформированному URL-адресу.
Ссылка для формирования, по которой нужно направить пользователя, желающего авторизоваться с использованием РОСА ID, состоит из следующих частей:
- хост – базовый URL приложения РОСА ID (например, https://id.rosalinux.ru);
- путь – путь до эндпойнта авторизации (всегда
/authorize); - query-параметры – параметры для авторизации, состоящие из пар "ключ-значение".
Query-параметры и их возможные значения приведены в таблице 1.
Для авторизации включение значения openid в параметре scope является обязательным.
Возможные значения параметра scope приведены в таблице 2.
Пример полной ссылки (URL-encoded):
https://id.rosalinux.ru/authorize? scope=openid+email+name&response_type=code&client_id=P000001000&redire ct_uri=https%3A%2F%2Fgoogle.com
После успешной (или неуспешной) авторизации пользователь будет перенаправлен по установленному Redirect URI. При этом в query-параметрах будет находиться необходимая информация для дальнейшей обработки клиентом.
Список возвращаемых query-параметров:
- При успешной авторизации:
- code – код авторизации, используемый для дальнейшего получения авторизационного токена, для использования клиентом (процедура описана в следующих разделах);
Пример:
https://google.com?code=AAAAAAAAAAAAAAAAAAAAAA
- При возникновении ошибки:
- unsupported_response_type – значение response_type отличается от единственного поддерживаемого code;
- invalid_scope – запрошено несуществующее значение scope либо отсутствует обязательное для авторизации значение openid;
- access_denied – пользователь отклонил запрос на авторизацию.
Формат возвращаемой ошибки описан в п. Ошибки.
Пример:
https://google.com? error=invalid_scope&error_description=%22openid%22%20scope%20is%20required