2016-11-22 10 views
0

Мы разрабатываем приложение для Android, которое взаимодействует с веб-службой WCF, запущенной на встроенном устройстве. То, что я хочу сделать, это отправить сообщение туда и обратно на веб-службу из приложения Android.Как отправить Timestamp вместе с SOAP-сообщением с Android APP на веб-службу WCF?

В качестве части соображений безопасности нам необходимо подписать сообщение, которое входит в состав запроса SOAP на устройство, а также временную метку, то есть время, в которое было подписано сообщение, и отправить его как часть запроса к устройству, чтобы устройство узнало, когда было подписано сообщение, и следует ли действовать на это сообщение или нет.

Поскольку мы будем получать доступ к веб-сервису из приложения Android (удаленный), нам также может потребоваться зашифровать полезную нагрузку ключом, который известен обеим сторонам.

Мой вопрос здесь в том, как хэш-метку времени и отправить ее надежно вместе с подписанным сообщением в полезной нагрузке и как получить значение метки времени в веб-службе WCF?

Любой вид, если помощь или ресурсы ценится

ответ

1

WS-Security specification обеспечивает <wsu:Timestamp> элемент включать создание и истечения времени сообщения.

<S11:Envelope xmlns:S11="..." xmlns:wsse="..." xmlns:wsu="..."> 
    <S11:Header> 
    <wsse:Security> 
     <wsu:Timestamp wsu:Id="timestamp"> 
     <wsu:Created>2001-09-13T08:42:00Z</wsu:Created> 
     <wsu:Expires>2001-10-13T09:00:00Z</wsu:Expires> 
     </wsu:Timestamp> 
     ... 
    </wsse:Security> 
    ... 
    </S11:Header> 

Перед отправкой вы можете добавить временную метку к сообщению SOAP. Сервер может прочитать его из SOAP-заголовка