Описание
С помощью данного метода можно протестировать подпись и шифрование сообщения в формате XML с использованием RSA-сертификата.
Процесс формирования и подписания сообщения с использованием RSA-сертификата описан здесь, а процесс формирования и шифрования сообщения описан здесь. Подписание запроса и дешифрование ответа происходит с использованием закрытого ключа сертификата. Для тестирования необходимо использовать тестовый закрытый ключ (пароль уточняйте у персонального менеджера).
Процесс формирования и подписания сообщения с использованием ГОСТ-сертификата описан здесь, а процесс формирования и шифрования сообщения описан здесь.
Способ защиты данных определяется настройками интеграции. Для уточнения информации по настройке вашей интеграции или запроса для установления нужных настроек необходимо написать на почту alfa_api@alfabank.ru. При запросе установления настроек необходимо сообщить способ защиты (подпись или подпись с шифрованием), а также алгоритм (RSA или ГОСТ).
Параметры запроса
Bearer {access_token}
application/xml
application/xml
Тип защиты канала, которая будет применена при обработка запроса. Возможные значения: NO - без защиты; SIGNATURE - проверка подписи запроса; ENCRYPTION - дешифрование и проверка подписи запроса
Тип защиты канала, которая будет применена при генерации ответа на запрос. Возможные значения: NO - без защиты, SIGNATURE - подписание ответа, ENCRYPTION - подписание и шифрование ответа
Тело подписи в виде base64-строки
1curl -X POST https://sandbox.alfabank.ru/api/signature-encryption-tests/xml \
2 -H 'Authorization: Bearer {access-token}' \
3 -H 'Accept: application/xml' \
4 -H 'Content-Type: application/xml' \
5 -H 'X-Request-ChannelSecurity: SIGNATURE' \
6 -H 'X-Response-ChannelSecurity: SIGNATURE' \
7 -d 'eyJraWQiOiI2MTAwMDM4YWFhYTAxZTRkN2YzOTM5OGQ4NDAwMDEwMDAzOGFhYSIsInR5cCI6IkpXVCIsImFsZyI6IlJTMjU2In0.eyJjb3VudCI6MTAwLCJzb21lRmllbGQiOiJzb21lVmFsdWUiLCJpZCI6IjNiNzk1YTBlLTFjOTctNDIxMi05YTI4LWYyODJkODAxNWI1YSIsImNyZWF0aW9uRGF0ZSI6IjIwMjItMDUtMThUMTA6Mjc6MDkuNzEyWiIsInN0YXR1cyI6ImFjdGl2ZSJ9.WYQKfllUHfs7IN0DdujjKlqpnThfJZgY_A6CZN-ghFohTYbDiRAJBAk4IxIkRfj2Hxcz4rR5DEKX8remdXEOHGrBpNf4okOob0bfIutNRhaeaZAIMFKjungALPRBmMhAiU0t5-Vp3ImUwhidSnSSP08gCHrTD1by5zYrzzYBB6tyikf8lNwYJQKRxscZcXqwOU9gAWBuV4rteClIbDCeTwkx5ci6WKWAq8bv7RDuwU_1KPjh6upJmwJ1g1epmvPdaFOQq5uf9NhAxomeeptmJoBOm3c8ZSYASYMno8KNWxr94B2xAhD7NCakfFCiQZjSH9b6MjM2aJEBhDyKYo2IGw'
Параметры ответа
1<?xml version="1.0" encoding="UTF-8"?>
2<Response>
3 <XmlElementName2>XmlElementValue2</XmlElementName2>
4 <ds:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="sigID1">
5 <ds:SignatureValue>H6jGW+bKLwvQ9xxbhZ6jNYRHtupT4aJ4jjlLh4W8svK0w5G7ZXf4OxqRR0t2l6aYOpNBdN2Q0+2T&#13;
61LXyadtnz7XJ7QYXNXrnWNcq7mOxM5Lj5bBQa2JPZSiMkp1lsnAV/LFDAJ+Uhruj3mFQxjiFpJLR&#13;
7W/vRJzmRv925xXWopb94PFvP9mjtAwPXtBGEL5rqJICabzVo8+1BfPwFF5+8sqYzT74mmJIQmeFm&#13;
8FiYVMNive5lRxlt7nXEgS4iENF1dXq5+prCPloms8hIX6I4HQo3Jn+G37Os57nv8g61gk4jnu2OK&#13;
9bOsZasIzXSLVG2GrCbDQ+HFjWs3Fgg4JOkULfw==
10</ds:SignatureValue>
11 <ds:SignedInfo>
12 <ds:Reference URI="">
13 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384">
14 </ds:DigestMethod>
15 <ds:DigestValue>xgVcc1UZhuWRp4/8K0OAVLuQUhySUtJg7mYo78Od+WWidnIZr2XZUvPqwxOpFwRY</ds:DigestValue>
16 <ds:Transforms>
17 <ds:Transform/>
18 <ds:Transform/>
19 </ds:Transforms>
20 </ds:Reference>
21 <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256">
22 </ds:SignatureMethod>
23 <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
24 </ds:CanonicalizationMethod>
25 </ds:SignedInfo>
26 <ds:KeyInfo>
27 <ds:X509Data>
28 <ds:X509Certificate>MIIGATCCBLWgAwIBAgITYQADiqqgHk1/OTmNhAABAAOKqjBBBgkqhkiG9w0BAQowNKAPMA0GCWCG&#13;
29SAFlAwQCAwUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAwUAogMCAUAwWzELMAkGA1UEBhMC&#13;
30UlUxEjAQBgNVBAoTCUFsZmEtQmFuazELMAkGA1UECxMCSVQxKzApBgNVBAMTIkFsZmEtQmFuayBJ&#13;
31c3N1aW5nIFN1Ym9yZGluYXRlIENBIDEwHhcNMjMwNzI4MTUxMTE0WhcNMjUwNjE5MTE0ODA2WjCB&#13;
32pzEXMBUGA1UEKgwO0JXRgNC80L7Qu9Cw0LkxGzAZBgNVBAQMEtCa0YPQtNGA0Y/QstGG0LXQsjEL&#13;
33MAkGA1UEBhMCUlUxOzA5BgNVBAMMMtCa0YPQtNGA0Y/QstGG0LXQsiDQldGA0LzQvtC70LDQuSDQ&#13;
34mNCz0L7RgNC10LLQuNGHMSUwIwYJKoZIhvcNAQkBFhZVc2VyNTA0QHBvY2h0b2Noa2EuY29tMIIB&#13;
35IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ZM3Ztf+Ro4e64R8yI4qDV/zLdJjUCx5WNBx&#13;
366gcp1pJ4uhQixw+ASy4Oxu0Xp7OxmpXtvDJFi4kr6QymtzMNYqJA3GZk85p+Iobkwo5zHKyBf0tX&#13;
375HwmFWjJx9CqZKp8iZAFw9nqz1uqronxyzTgULPL6eE9igVSzaVf5msV8sXXfl87guVHF+Ph18hs&#13;
38dng1WiCJ7Mi14ETdI9O0R5eJiPZztLIHRnXuBtB1Oa1YiiWtvkZNnpLKONwxljdTZlH7h7KfaXUw&#13;
39W3kX8r0p7jvO7gNhMXvOSK1JPXWevmBHrjONVlG2atWoxT2IHs2ZDz+BLxgSwLc9NIQK+qKhIMfA&#13;
401wIDAQABo4ICBzCCAgMwJQYDVR0RBB4wHIILZXhhbXBsZS5jb22CDSouZXhhbXBsZS5jb20wHQYD&#13;
41VR0OBBYEFGbczU3B6IZhHwKsC8ODg8r4xi3nMB8GA1UdIwQYMBaAFMkXMx6bqZSglhhLbnFMgdvp&#13;
42c/5lMIG7BgNVHR8EgbMwgbAwga2ggaqggaeGOWh0dHBzOi8vdGVzdGptYi5hbGZhYmFuay5ydS9k&#13;
43aXN0cnBvaW50L0FsZmEtQmFua19TQ0ExLmNybIYwaHR0cDovL3Zsa3dzNjo5MDgxL2Rpc3RycG9p&#13;
44bnQvQWxmYS1CYW5rX1NDQTEuY3JshjhodHRwOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBv&#13;
45aW50L0FsZmEtQmFua19TQ0ExLmNybDCB2wYIKwYBBQUHAQEEgc4wgcswRQYIKwYBBQUHMAKGOWh0&#13;
46dHBzOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBvaW50L0FsZmEtQmFua19TQ0ExLmNydDA8&#13;
47BggrBgEFBQcwAoYwaHR0cDovL3Zsa3dzNjo5MDgxL2Rpc3RycG9pbnQvQWxmYS1CYW5rX1NDQTEu&#13;
48Y3J0MEQGCCsGAQUFBzAChjhodHRwOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBvaW50L0Fs&#13;
49ZmEtQmFua19TQ0ExLmNydDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAwUAoRwwGgYJKoZI&#13;
50hvcNAQEIMA0GCWCGSAFlAwQCAwUAogMCAUADggEBAHTjDmxldqWkRgpT5gXKuIzyqIHjlDZMMfah&#13;
51cWBxqWV9XC46bcPx8gvlpzb8N+oK+X6AqDt3+vneAiGQn8iNs9ajDKtes9ulZzMUJBwzwv26DsiI&#13;
523s4/0phypAcqQVHJQxvU+rdrh5FgqJcNZsuOtOaJhiO/i/3J7hoL/oxVwSk+lX4m+X5u76/Vdqk9&#13;
53ydKXNNnzMi12F4FvD+igTrezzLjPHQRx5vLY0cWwLEdBxLJmBwd1u7EBT3j+v9Pyh0pTzXsJC0BY&#13;
541BIt6VOh6QGKGTKT3cBB6zbIOrY7UTOkYdCqtyB9vhayAyti3aO37PANUQ7dUwUEZyf64/D4/HRl&#13;
55hqI=
56</ds:X509Certificate>
57 </ds:X509Data>
58 </ds:KeyInfo>
59 </ds:Signature>
60 <XmlElementName1>XmlElementValue1</XmlElementName1>
61</Response>
Корневой элемент XML Signature
Элемент содержит информацию об алгоритме канонизации, алгоритме подписи, дайджесте
Элемент содержит информацию об алгоритме канонизации. Включает обязательный атрибут Algorithm, который должен содержать ссылку на алгоритм канонизации
Элемент содержит информацию об алгоритме подписи. Включает обязательный атрибут Algorithm, который должен содержать ссылку на алгоритм подписи
Элемент содержит информацию об алгоритме дайджеста. Включает обязательный атрибут Algorithm, который должен содержать ссылку на алгоритм дайджеста
Элемент содержит значение тела подписи в кодировке base64
Элемент включает информацию о ключах и сертификатах для проверки подписи
Элемент включает информацию о сертификатах
Элемент содержит сертификат, которым подписано тело запроса в кодировке base64
1<?xml version="1.0" encoding="UTF-8"?>
2<Response>
3 <XmlElementName2>XmlElementValue2</XmlElementName2>
4 <ds:Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="sigID1">
5 <ds:SignatureValue>H6jGW+bKLwvQ9xxbhZ6jNYRHtupT4aJ4jjlLh4W8svK0w5G7ZXf4OxqRR0t2l6aYOpNBdN2Q0+2T&#13;
61LXyadtnz7XJ7QYXNXrnWNcq7mOxM5Lj5bBQa2JPZSiMkp1lsnAV/LFDAJ+Uhruj3mFQxjiFpJLR&#13;
7W/vRJzmRv925xXWopb94PFvP9mjtAwPXtBGEL5rqJICabzVo8+1BfPwFF5+8sqYzT74mmJIQmeFm&#13;
8FiYVMNive5lRxlt7nXEgS4iENF1dXq5+prCPloms8hIX6I4HQo3Jn+G37Os57nv8g61gk4jnu2OK&#13;
9bOsZasIzXSLVG2GrCbDQ+HFjWs3Fgg4JOkULfw==
10</ds:SignatureValue>
11 <ds:SignedInfo>
12 <ds:Reference URI="">
13 <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#sha384">
14 </ds:DigestMethod>
15 <ds:DigestValue>xgVcc1UZhuWRp4/8K0OAVLuQUhySUtJg7mYo78Od+WWidnIZr2XZUvPqwxOpFwRY</ds:DigestValue>
16 <ds:Transforms>
17 <ds:Transform/>
18 <ds:Transform/>
19 </ds:Transforms>
20 </ds:Reference>
21 <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256">
22 </ds:SignatureMethod>
23 <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
24 </ds:CanonicalizationMethod>
25 </ds:SignedInfo>
26 <ds:KeyInfo>
27 <ds:X509Data>
28 <ds:X509Certificate>MIIGATCCBLWgAwIBAgITYQADiqqgHk1/OTmNhAABAAOKqjBBBgkqhkiG9w0BAQowNKAPMA0GCWCG&#13;
29SAFlAwQCAwUAoRwwGgYJKoZIhvcNAQEIMA0GCWCGSAFlAwQCAwUAogMCAUAwWzELMAkGA1UEBhMC&#13;
30UlUxEjAQBgNVBAoTCUFsZmEtQmFuazELMAkGA1UECxMCSVQxKzApBgNVBAMTIkFsZmEtQmFuayBJ&#13;
31c3N1aW5nIFN1Ym9yZGluYXRlIENBIDEwHhcNMjMwNzI4MTUxMTE0WhcNMjUwNjE5MTE0ODA2WjCB&#13;
32pzEXMBUGA1UEKgwO0JXRgNC80L7Qu9Cw0LkxGzAZBgNVBAQMEtCa0YPQtNGA0Y/QstGG0LXQsjEL&#13;
33MAkGA1UEBhMCUlUxOzA5BgNVBAMMMtCa0YPQtNGA0Y/QstGG0LXQsiDQldGA0LzQvtC70LDQuSDQ&#13;
34mNCz0L7RgNC10LLQuNGHMSUwIwYJKoZIhvcNAQkBFhZVc2VyNTA0QHBvY2h0b2Noa2EuY29tMIIB&#13;
35IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ZM3Ztf+Ro4e64R8yI4qDV/zLdJjUCx5WNBx&#13;
366gcp1pJ4uhQixw+ASy4Oxu0Xp7OxmpXtvDJFi4kr6QymtzMNYqJA3GZk85p+Iobkwo5zHKyBf0tX&#13;
375HwmFWjJx9CqZKp8iZAFw9nqz1uqronxyzTgULPL6eE9igVSzaVf5msV8sXXfl87guVHF+Ph18hs&#13;
38dng1WiCJ7Mi14ETdI9O0R5eJiPZztLIHRnXuBtB1Oa1YiiWtvkZNnpLKONwxljdTZlH7h7KfaXUw&#13;
39W3kX8r0p7jvO7gNhMXvOSK1JPXWevmBHrjONVlG2atWoxT2IHs2ZDz+BLxgSwLc9NIQK+qKhIMfA&#13;
401wIDAQABo4ICBzCCAgMwJQYDVR0RBB4wHIILZXhhbXBsZS5jb22CDSouZXhhbXBsZS5jb20wHQYD&#13;
41VR0OBBYEFGbczU3B6IZhHwKsC8ODg8r4xi3nMB8GA1UdIwQYMBaAFMkXMx6bqZSglhhLbnFMgdvp&#13;
42c/5lMIG7BgNVHR8EgbMwgbAwga2ggaqggaeGOWh0dHBzOi8vdGVzdGptYi5hbGZhYmFuay5ydS9k&#13;
43aXN0cnBvaW50L0FsZmEtQmFua19TQ0ExLmNybIYwaHR0cDovL3Zsa3dzNjo5MDgxL2Rpc3RycG9p&#13;
44bnQvQWxmYS1CYW5rX1NDQTEuY3JshjhodHRwOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBv&#13;
45aW50L0FsZmEtQmFua19TQ0ExLmNybDCB2wYIKwYBBQUHAQEEgc4wgcswRQYIKwYBBQUHMAKGOWh0&#13;
46dHBzOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBvaW50L0FsZmEtQmFua19TQ0ExLmNydDA8&#13;
47BggrBgEFBQcwAoYwaHR0cDovL3Zsa3dzNjo5MDgxL2Rpc3RycG9pbnQvQWxmYS1CYW5rX1NDQTEu&#13;
48Y3J0MEQGCCsGAQUFBzAChjhodHRwOi8vdGVzdGptYi5hbGZhYmFuay5ydS9kaXN0cnBvaW50L0Fs&#13;
49ZmEtQmFua19TQ0ExLmNydDBBBgkqhkiG9w0BAQowNKAPMA0GCWCGSAFlAwQCAwUAoRwwGgYJKoZI&#13;
50hvcNAQEIMA0GCWCGSAFlAwQCAwUAogMCAUADggEBAHTjDmxldqWkRgpT5gXKuIzyqIHjlDZMMfah&#13;
51cWBxqWV9XC46bcPx8gvlpzb8N+oK+X6AqDt3+vneAiGQn8iNs9ajDKtes9ulZzMUJBwzwv26DsiI&#13;
523s4/0phypAcqQVHJQxvU+rdrh5FgqJcNZsuOtOaJhiO/i/3J7hoL/oxVwSk+lX4m+X5u76/Vdqk9&#13;
53ydKXNNnzMi12F4FvD+igTrezzLjPHQRx5vLY0cWwLEdBxLJmBwd1u7EBT3j+v9Pyh0pTzXsJC0BY&#13;
541BIt6VOh6QGKGTKT3cBB6zbIOrY7UTOkYdCqtyB9vhayAyti3aO37PANUQ7dUwUEZyf64/D4/HRl&#13;
55hqI=
56</ds:X509Certificate>
57 </ds:X509Data>
58 </ds:KeyInfo>
59 </ds:Signature>
60 <XmlElementName1>XmlElementValue1</XmlElementName1>
61</Response>
Код ошибки. Принимает возможные значения: invalid_request - неверные входные параметры запроса
Описание ошибки
1<?xml version="1.0" encoding="UTF-8"?>
2<ErrorResponse>
3 <Error>invalid_request</Error>
4 <ErrorDescription>Authorization header is not present in request headers</ErrorDescription>
5</ErrorResponse>
Код ошибки. Принимает возможные значения: invalid_token - предоставленный токен просрочен, отозван, имеет неправильный формат или недействителен по другим причинам. При истечении срока жизни токена необходимо обновить его с помощью refresh_token. При отзыве токена необходимо заново пройти авторизацию
Описание ошибки
1<?xml version="1.0" encoding="UTF-8"?>
2<ErrorResponse>
3 <Error>invalid_token</Error>
4 <ErrorDescription>The access token provided is expired, revoked, malformed, or invalid for other reasons</ErrorDescription>
5</ErrorResponse>
Код ошибки. Принимает возможные значения: unknown_endpoint - эндпоинт не найден или неактивен
Описание ошибки
1<?xml version="1.0" encoding="UTF-8"?>
2<ErrorResponse>
3 <Error>unknown_endpoint</Error>
4 <ErrorDescription>Endpoint is not found or not active</ErrorDescription>
5</ErrorResponse>
Код ошибки. Принимает возможные значения: internal_error - внутренняя ошибка сервиса при выполнении обработки запроса
Описание ошибки
1<?xml version="1.0" encoding="UTF-8"?>
2<ErrorResponse>
3 <Error>internal_error</Error>
4 <ErrorDescription>Internal server error</ErrorDescription>
5</ErrorResponse>
Значения параметров ошибок могут изменяться. Рекомендуем предусмотреть стандартную обработку ошибок, не описанных в текущей версии документации.