Как лучше всего получить доступ к безопасному корпоративному API Soap с помощью Python?Python

Программы на Python
Ответить
Anonymous
 Как лучше всего получить доступ к безопасному корпоративному API Soap с помощью Python?

Сообщение Anonymous »

Сценарий:
  • Проект, над которым я работаю, включает корпоративную конечную точку SOAP (Oracle SOA). Здесь используется SOAP 1.2.
  • Через SoapUI у меня есть полный набор требований, которые мне нужно воспроизвести. В частности, исходящая безопасность:

    Должен иметь токен временной метки с точностью до миллисекунды.
  • Должен иметь токен имени пользователя с одноразовым номером.
  • Должен иметь подпись (BinarySecurityToken с использованием единого сертификата для подписи и элемента подписи в заголовке безопасности для UsernameToken, Timestamp и Body — с использованием определенной пары секретный ключ/сертификат.
  • Должно быть зашифровано с использованием открытого ключа сервера (который у меня есть), а симметричный ключ должен быть зашифрован в EncryptedKey — в частности, необходимо зашифровать токен имени пользователя и текст.
[*]Существует входящая безопасность, поскольку ну, значит, сообщение придется расшифровать с помощью открытого ключа сервера.


Проблема:
  • Я совершенно не понимаю, как мне воспроизвести это на Python. Тестовая среда (которая не использует учетные данные) отлично работает с Zeep, поэтому я знаю, что структура моего сообщения в порядке, но Zeep не поддерживает. mustUnderstand, и я не могу понять, как зашифровать части XML.
  • Я думал о написании выходных плагинов Zeep для обработки частей шифрования, но мне кажется, что это будет напрашиваться на проблемы.
  • Suds-Community — еще один высоко оцененный вариант, поддерживающий дополнительные настройки безопасности, но я не думаю, что он сработает. поскольку для этого требуется SOAP 1.2, а Suds-Community, похоже, поддерживает только SOAP 1.1. Он также, похоже, не поддерживает BinarySecurityTokens без py-wsse, и py-wsse не может быть установлен из pip.
Другой сервис, написанный и использующий это, использует Apache Axis 2 с Rampart, но это мне не помогает. у меня есть файл policy.xml, но, похоже, нет никакого способа использовать эту информацию в Python. Есть ли какой-либо другой подход, который я мог бы использовать, кроме ручного создания XML-запроса? В идеале решение должно использовать Python и должно быть дружественным к Mac (наша компания использует Mac для разработки).

Подробнее здесь: https://stackoverflow.com/questions/798 ... ing-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»