Использование программного компонента#
Как правило, разработчик не использует проксирование непосредственно при разработке и интеграции с сервисом
идентификации и аутентификации, но может использовать некоторые артефакты аутентификации и идентификации, производимые
провайдером идентификации и используемые IAM Proxy в ходе своего нормального функционирования. При использовании
проксирования через IAM Proxy и при использовании mTLS на подключениях к серверам приложения, проверка подписи
JWT-токена и его срока действия не является необязательной. Однако данную проверку рекомендуется производить.
Разработчику приложения следует ориентироваться на состав JWT-токена с конкретного региона(могут быть небольшие отличия
в зависимость от региона) при проектировании механизмов аутентификации и авторизации своего приложения. Ниже приводится
пример передаваемого JWT-токена и описание его полей.
{
"alg" : "RS256",
"typ" : "JWT",
"kid" : "QQQGMpFRIhaR1HDeJNIVRrEmUK14AgR_sz_rg-5kjvU"
}{
"exp": 1623917687,
"iat": 1623917387,
"jti": "b986ddb6-d96e-400d-8b09-64f217ea98a6",
"iss": "https://auth.my.company.ru/auth/realms/CustomerA",
"aud": [
"CustomerA:Project1",
"CustomerA:Project2"
],
"sub": "6608179f-9f7f-4154-922f-f541c7448e6e",
"typ": "Bearer",
"azp": "CustomerA:IAMProxy",
"session_state": "aed58344-610d-4d09-b241-5db0193e2ad5",
"acr": "1",
"resource_access": {
"CustomerA:Project1": {
"roles": [
"JustUser"
]
},
"CustomerA:Project2": {
"roles": [
"AppRoleC",
"AppRoleB"
]
}
},
"scope": "email profile",
"email_verified": false,
"preferred_username": "ivanov-ii"
}
Cодержимое токена приведено в качестве примера, и может не соответствовать по наполнению с реальными токенами.
Блок |
Параметр |
Описание |
Пример |
|---|---|---|---|
|
|
Алгоритм, который использовался для подписания токена |
RS256 |
|
Тип формата токена |
JWT |
|
|
ID открытого ключа для проверки подписи |
QQQGMpFRIhaR1HDeJNIVRrEmUK14AgR_sz_rg-5kjvU |
|
|
|
JWT ID Claim - уникальный идентификатор токена |
9d4cd7be-320a-4ee7-b8b8-15623c0ba4dd |
|
Тип токена |
ID |
|
|
Срок действия токена (тип |
1586514237 |
|
|
|
0 |
|
|
|
1586513637 |
|
|
|
https://mycompany-auth.mycompany.ru/auth/realms/PlatformAuth |
|
|
Получатель, сторона которая запросила токен (содержит |
PlatformAuth-Proxy |
|
|
|
739edb6e-b9b5-4ec5-9731-2e37de8d6327 |
|
|
|
|
|
|
Строковое значение, используемое для связывания сеанса клиента с TokenID |
64ac9d64d2b2b31167ab02015ae75d4e |
|
|
Время когда была произведена аутентификация (тип NumericDate) |
1586513637 |
|
|
Идентификатор сессии пользователя |
e281c489-b28b-4213-95a5-e6985071b69c |
|
|
Уровень, достаточный для идентификации |
1 |
|
|
Набор разрешений для работы с консолью |
|
|
|
Логин пользователя |
test_admin |
|
|
Подпись токена на закрытом ключе с использованием алгоритма из поля |
Zwbmz3zFMqixJMbuuG9FS9OTqThG1FWHND1… |
Примечание: NumericDate - количество секунд с 1 января 1970 года 00:00:00 UTC
проверка токена при авторизации#
Проверка подписи по открытому ключу
kid;Выдан доверенной стороной
iss;Валидность по времени
iat/exp;Наличия имени/id проверяющей системы в поле
aud.