Перейти к содержанию

Протокол

Оглавление

Схема классов

/svg/protos/key/keyapis/jwks/v1/keyapis_jwks_key_v1.proto.svg

keyapis/jwks/v1/keyapis_jwks_key_v1.proto

Сервис публикации публичных криптографических ключей в формате JWK

KeyService

Сервис JWKS

Название метода Описание Тип запроса Тип ответа
PostKey Метод сохранения публичного ключа. Используется сервисом KMS. Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695357. Метод доступен для: service keyapis.jwks.v1.PostKeyRequest keyapis.jwks.v1.PostKeyResponse
DeleteKey Метод удаления публичного ключа. Используется сервисом KMS. Метод доступен для: service keyapis.jwks.v1.DeleteKeyRequest keyapis.jwks.v1.DeleteKeyResponse
GetKeyWellKnownJwksJson Метод получения публичных ключей. Возвращает три последних публичных ключа. Используется партнёрами, с помощью публичного ключа проверяется подпись в JWT, выпущенных платформой Ключ. Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695865. Не требует авторизации keyapis.jwks.v1.GetKeyWellKnownJwksJsonRequest keyapis.jwks.v1.GetKeyWellKnownJwksJsonResponse

DeleteKeyRequest

Запрос удаления публичного ключа

Поле Описание Тип Признак
id Идентификатор ключа, соответсвует kid. # Тип: Guid string REQUIRED

DeleteKeyResponse

Ответ на запрос удаления публичного ключа

Поле Описание Тип Признак
error Ошибка optional keyapis.jwks.v1.DeleteKeyResponse.Error

DeleteKeyResponse.Error

Ошибка запроса удаления публичного ключа

Поле Описание Тип Признак
validation Ошибка валидации optional keyapis.jwks.v1.ValidationError

GetKeyWellKnownJwksJsonRequest

Запрос на получение публичных ключей

GetKeyWellKnownJwksJsonResponse

Ответ на запрос на получение публичных ключей

Поле Описание Тип Признак
data Список ключей repeated keyapis.jwks.v1.KeyInfo.PublicKey

KeyInfo

Ключ.

Описание модели

Поле Описание Тип Признак
id Идентификатор ключа, соответсвует kid. # Тип: Guid string REQUIRED
public_key Публичный ключ keyapis.jwks.v1.KeyInfo.PublicKey REQUIRED
created_at Дата создания. # Тип: DateTime google.protobuf.Timestamp OUTPUT_ONLY

KeyInfo.PublicKey

Публичный ключ

Поле Описание Тип Признак
use Вид использования. # Диапазон: 2..32 string REQUIRED
kty Тип ключа. # Диапазон: 2..32 string REQUIRED
kid Идентификатор. # Тип: Guid string REQUIRED
alg Алгоритм шифрования. # Диапазон: 2..32 string
n Параметр Modulus string REQUIRED
e Параметр Exponent string REQUIRED
x5c Цепочка сертификатов X.509. # Диапазон: 0..100 repeated string

KeyInfo.SavingError

Ошибка сохранения. Эти проверки выполняются при работе с базой данных и сторонними сервисами

Поле Описание Тип Признак
key_already_exists Ключ с таким идентификатором уже существует optional keyapis.jwks.v1.KeyInfo.SavingError.KeyAlreadyExists

KeyInfo.SavingError.KeyAlreadyExists

Ключ с таким идентификатором уже существует. Причины: - В базе хранится запись с переданнм kid

PostKeyRequest

Запрос на сохранение публичного ключа

Поле Описание Тип Признак
data Ключ keyapis.jwks.v1.KeyInfo.PublicKey REQUIRED

PostKeyResponse

Ответ на запрос на сохранение публичного ключа

Поле Описание Тип Признак
error Ошибка optional keyapis.jwks.v1.PostKeyResponse.Error

PostKeyResponse.Error

Ошибка

Поле Описание Тип Признак
validation Ошибки валидации optional keyapis.jwks.v1.ValidationError
saving Ошибка сохранения optional keyapis.jwks.v1.KeyInfo.SavingError

ValidationError

Ошибки валидации. Эти проверки выполняются до обращения в базу данных

Поле Описание Тип Признак
path Путь к полю в формате наименования прото string REQUIRED
message Валидационное сообщение string REQUIRED

Скалярные типы значений

.proto Type Примечание Python Go Ruby C# C++ Java PHP
double float float64 Float double double double float
float float float32 Float float float float float
int32 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. int int32 Bignum or Fixnum (as required) int int32 int integer
int64 Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. int/long int64 Bignum long int64 long integer/string
uint32 Uses variable-length encoding. int/long uint32 Bignum or Fixnum (as required) uint uint32 int integer
uint64 Uses variable-length encoding. int/long uint64 Bignum or Fixnum (as required) ulong uint64 long integer/string
sint32 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. int int32 Bignum or Fixnum (as required) int int32 int integer
sint64 Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. int/long int64 Bignum long int64 long integer/string
fixed32 Always four bytes. More efficient than uint32 if values are often greater than 2^28. int uint32 Bignum or Fixnum (as required) uint uint32 int integer
fixed64 Always eight bytes. More efficient than uint64 if values are often greater than 2^56. int/long uint64 Bignum ulong uint64 long integer/string
sfixed32 Always four bytes. int int32 Bignum or Fixnum (as required) int int32 int integer
sfixed64 Always eight bytes. int/long int64 Bignum long int64 long integer/string
bool boolean bool TrueClass/FalseClass bool bool boolean boolean
string A string must always contain UTF-8 encoded or 7-bit ASCII text. str/unicode string String (UTF-8) string string String string
bytes May contain any arbitrary sequence of bytes. str []byte String (ASCII-8BIT) ByteString string ByteString string