Вопрос

Basic авторизация запроса к сервису

Добрый день!

Изучаю интеграцию BpmOnline с внешними приложениями. Создал тестовый wcf сервис. Кидаю на него запросы через fiddler. Авторизация через AuthService работает корректно, запросы уходят и сервис отвечает. Однако, запросы с Basic авторизацией до сервиса не долетают, возвращается ошибка 302 Found. CSRF- шифрование в Web-конфиге отключено. Подскажите, как добиться корректного ответа от сервиса. Вот полный текст запроса и ответа:

 

POST http://localhost:89/0/ServiceModel/NewWebService.svc/auth HTTP/1.1
Content-Type: text/xml
Authorization: Basic U3VwZXJ2aXNvcjpTdXBlcnZpc29y
Host: localhost:89
Content-Length: 191
Expect: 100-continue
Connection: Keep-Alive

<?xml version="1.0"?>
<RequestData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <details>Ivan|29|3years|C#</details>
</RequestData>

 

HTTP/1.1 302 Found
Cache-Control: private
Transfer-Encoding: chunked
Content-Type: text/html; charset=utf-8
Location: /0/ServiceModel/NewWebService.svc/auth
Server: Microsoft-IIS/10.0
X-AspNet-Version: 4.0.30319
Set-Cookie: BPMSESSIONID=1afcupzm3ekdmhknqytxkak4; path=/0; HttpOnly
Set-Cookie: .ASPXAUTH=; expires=Mon, 11-Oct-1999 19:00:00 GMT; path=/; HttpOnly
X-Powered-By: ASP.NET
X-Frame-Options: SAMEORIGIN
Date: Thu, 01 Feb 2018 06:27:58 GMT

9b
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/0/ServiceModel/NewWebService.svc/auth">here</a>.</h2>
</body></html>

0
 

У меня такой же вопрос

3 комментария

Дмитрий, добрый день!

Мы крайне не рекомендуем использовать basic аутентификацию, так как она имеет ряд недостатков: 

- Только один уровень защиты – использование SSL/TLS;
- Учетные данные передаются на каждый запрос, что значительно расширяет временные возможности атаки;
- Нет политики устаревания аутентификационных данных, только замена на клиенте и сервере;
- Данные аутентификации должны все время хранится в памяти клиента (например, браузера), что расширяет возможности атаки;
- Она не рекомендуется для аутентификации в приложениях https://www.owasp.org/index.php/Basic_Authentication

Maksym Naumovets,

Максим, а как в таком случае внутри метода сервиса получить UserConnection?

Дмитри, вот пример создания конфигурационного сервиса с академии.

или же использовав:
 
_userConnection = HttpContext.Current.Session["UserConnection"] as UserConnection;
var appConnection = HttpContext.Current.Application["AppConnection"] as AppConnection;

предварительно подключив using Terrasoft.Core;
 

Войдите или зарегистрируйтесь, чтобы комментировать