Тестирование гибридного соединения Azure с помощью SoapUI - PullRequest
0 голосов
/ 05 марта 2019

У меня есть гибридное соединение Azure, которое должно подключаться к какой-либо локальной услуге и предоставлять ее службам приложения. Тем не менее, установка где-то терпит неудачу, и я пытаюсь точно определить, в чем проблема.

В рамках этого процесса (и потому, что это будет полезно для меня в будущем), я пытаюсь позвонить в базовую предварительную службу, используя SoapUI, но первоначальный запрос GET, который должен дать мне Вместо этого WSDL выдает ошибку аутентификации:

GET https://my-relay.servicebus.windows.net/my-endpoint/my-service.svc?wsdl

{
  "error": {
    "code": "TokenMissingOrInvalid",
    "message": "MissingToken: Relay security token is required. TrackingId:b58c004c-e0e6-4dd0-a233-e0d304795e4e_G21, SystemTracker:my-relay.servicebus.windows.net:my-endpoint/my-service.svc, Timestamp:2019-03-05T10:17:26"
  }
}

Откуда я могу получить токен безопасности Relay и как мне сообщить об этом SoapUI?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Вам необходимо создать токен безопасности и передать его в заголовок вашего запроса.

Что-то вроде этого:

 var tokenProvider = TokenProvider.CreateSharedAccessSignatureTokenProvider(KeyName, Key);
        var uri = new Uri(string.Format("https://{0}/{1}", RelayNamespace, ConnectionName));
        var token = (await tokenProvider.GetTokenAsync(uri.AbsoluteUri, TimeSpan.FromHours(1))).TokenString;
        var client = new HttpClient();
        var request = new HttpRequestMessage()
        {
            RequestUri = uri,
            Method = HttpMethod.Get,
        };
        request.Headers.Add("ServiceBusAuthorization", token);
        var response = await client.SendAsync(request);

Для SOAPUI вы должны добавить результирующее значение токена взаголовок с именем "ServiceBusAuthorization."

0 голосов
/ 05 марта 2019

Это руководство может дать вам ответы на ваши вопросы.

https://www.soapui.org/soap-and-wsdl/authenticating-soap-requests.html

Я подозреваю, что ваше обычное приложение автоматически получает доступ к веб-сервису как текущий пользователь в текущей системе.Если это так, я полагаю, вам следует проверить подлинность NTLM.

...