1с iis ошибка 401

Дано: Windows Server 2012 R2
Ошибка: HTTP 401.1 — Unauthorized: Logon Failed при авторизации на сайте (IIS)

Для каких случаев данное решение:

  • У Вас IIS версии 5.1 или выше
  • Используется доменная аутентификация для сайта (Windows Authentication)
  • Вы пытаетесь локально (на той же машине, где находится сам IIS) открыть сайт, у которого применена доменная авторизация
  • Вы пытаетесь локально обратиться к сервисам на IIS по доменной авторизации (например, если на этом же сервере установлен кластер 1С, а в серверном коде производится попытка обратиться к сервисам на локальном IIS)

В этих случаях получаем примерно такое сообщение об ошибке:

HTTP Error 401.1 — Unauthorized 
You do not have permission to view this directory or page using the credentials that you supplied.

Detailed Error Information:
Module    WindowsAuthenticationModule
Notification    AuthenticateRequest
Handler    1C Web-service Extension
Error Code    0xc000006d

Requested URL    Тут проблемный URL
Physical Path    c:inetpubwwwrootwshs
Logon Method    Not yet determined
Logon User    Not yet determined

В логах сервера также можно увидеть следующее сообщение:

An account failed to log on.
Subject:
Security ID: NULL SID
Account Name:
Account Domain:
Logon ID: 0x0
Logon Type: 3
Account For Which Logon Failed:
Security ID: NULL SID
Account Name: username
Account Domain: domainname
Failure Information:
Failure Reason: An Error occured during Logon.
Status: 0xC000006D
Sub Status: 0x0
Process Information:
Caller Process ID: 0x0
Caller Process Name:
Network Information:
Workstation Name: SRV-PRG
Source Network Address:
Source Port:
Detailed Authentication Information:
Logon Process:
Authentication Package: NTLM
Transited Services:
Package Name (NTLM only):
Key Length: 0

Как вариант решения: в реестре необходимо указать хост, к которому Вы разрешаете подключаться при помощи доменной аутентификации.

Для этого находим в реестре следующую ветку:


HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlLsaMSV1_0

Создаем новый ключ:
— Тип — Multi-String Value
— Имя — BackConnectionHostNames
— В значениях ключа указать нужные адреса.

После настройки — перезагрузите IIS.

Если Вам понравилась статья, пожалуйста, поставьте лайк, сделайте репост или оставьте комментарий. Если у Вас есть какие-либо замечания, также пишите комментарии.

Добрый день!
Перевели WEB-сервер 1С на IIS на доменную авторизацию.
Столкнулись с проблемой, а именно —
Периодический, в среднем раз в 30-60 минут видим сообщение, что соединение потеряно(см.скриншот).

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

В логах вижу довольно частые коды ответа 401, потому пробовал

1. решить как описано в этой статье
https://www.e-du.ru/2019/05/iis-401-unauthorized-error.html?m=1]
не помогло.

2. Изменил Rapid-fail-protection с
5 за 5 минут
до 30 за 10 минут
не помогло.

Может кто сталкивался и даст совет как решить проблему?

Я
   Radion

20.04.22 — 16:10

Установил IIS на windows server 2019, опубликовал базу на веб сервере. При подключении по ссылке, открывается окно логин/пароль ввожу параметры пользователя, но не могу авторизоваться. Что мог упустить при настройки? Прошу помочь, кто сталкивался с такой проблемой?

   asady

1 — 20.04.22 — 16:12

(0) смотри

журнал регистрации 1С,

лог вэб сервера

   Radion

2 — 20.04.22 — 16:18

Ошибка авторизации 401.5

   asady

3 — 20.04.22 — 16:20

(2) в ЖР 1С что записано??

   Radion

4 — 20.04.22 — 16:25

(3) Пользователь ОС: NT AUTHORITYIUSR

   Смотрящий

5 — 20.04.22 — 16:26

https://forum.infostart.ru/forum9/topic182020/

   Radion

6 — 20.04.22 — 16:32

(5) да я уже пробовал, и так и так. и с авторизацией и без.

   Radion

7 — 20.04.22 — 16:33

если ставить галку ошибка 401.2

   asady

8 — 20.04.22 — 16:37

(0) https://forum.1c.ru/money/topic/5187?anonymous_check_made=1

2. Устанавливаем IIS (по умолчанию не был установлен). При этом обращаем внимание на то что бы были обязательно выбраны компоненты «Расширения ISAPI» и «Консоль управления IIS»

3. Группе IUSR добавляем права на папку с установленной базой 1С.

4. Запускаем 1С «от имени адинистратора», настраиваем синхронизацию через домшнюю сеть и публикуем базу 1С. (Публикацию можно сделать и через Конфигуратор как описано выше)

5. Заходим в консоль управления IIS. Для «DefaultAppPool» в дополнительных параметрах для «Разрешены 32-разрядные приложения» устанавливаем значение «TRUE».

6. На всякиий случай престартовываем IIS.

   Radion

9 — 20.04.22 — 17:42

Все уже, что можно вроде проверил. Единственно, подскажите во всех ссылках по настройкам веб сервиса установлена расширяемость версия 3.5, у меня же сисадмин установил как версию 3.5 так и версию 4.7.

https://filuetru-my.sharepoint.com/:i:/g/personal/radna_banzaraktsaev_filuet_ru/EXZv9NOVJLNGiiqTWI-G2fsBglmGmuKSqTpFqvFpd0rYCA?e=9lQ6U6

   Radion

10 — 20.04.22 — 17:42

(9) Это как может влиять на настройки доступа?

   dreizehn

11 — 20.04.22 — 21:29

Включи на уровне приложения в IIS анонимный доступ. Авторизацией занимается 1С

   Radion

12 — 21.04.22 — 16:01

(11) Включил, вроде. В меню Authentication — Anonymous authentication — Enable. Что еще может быть? При подключении спрашивает логин и пароль, но при вводе не пускает(

   Anchorite

13 — 21.04.22 — 16:19

(12) Когда вы это включили? Сразу же или только сейчас? Судя по этому сообщению: (4) — у вас уже тогда была включена анонимная авторизация, потому что NT AUTHORITYIUSR — это как раз и есть анонимный дефолтный анонимный аккаунт IIS. Что-то у вас там сильно напутано, вы бы сбросили всё на дефолтные настройки, а потом по новой с нуля выполнили публикацию.

   Anchorite

14 — 21.04.22 — 16:28

Проверьте ещё, нигде ли у вас не задействована модель доступа «ASP.NET impersonation» — при её использовании тоже иногда случается зацикливание на учётной записи «NT AUTHORITYIUSR»

   Anchorite

15 — 21.04.22 — 16:36

И вот здесь проверьте, чтобы у вас именно ApplicationPoolIdentity был выставлен:

https://docs.microsoft.com/en-us/iis/manage/configuring-security/application-pool-identities/_static/image5.jpg

   Anchorite

16 — 21.04.22 — 16:37

Но лучше всё же первым делом на дефолтные настройки сбросить или вовсе IIS переподнять. Возможно ваш сисадмин его поднимал из шаблона какого-нибудь и там лишние для вас настройки нечаянно прицепились.

   Radion

17 — 21.04.22 — 17:16

(16) Спасибо, пробую переустановить web server. Обязательно отпишусь.

   Radion

18 — 22.04.22 — 14:22

Переустановил веб сервер, настроил по шагово, все заработало. Не знаю что было, возможно что то не так изменил изначально.

Настраивал по: https://infostart.ru/1c/articles/275820/?ID=275820

  

Radion

19 — 22.04.22 — 14:22

Всем спасибо, за помощь.

Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование.
Фредерик Брукс-младший

Возникла необходимость взаимодействовать с 1C с мобильного клиента под Windows Phone 7/8. Самым простым способом взаимодействия показалось работа через web сервисы, поддерживаемые 1С.

С точки зрения публикации web сервиса особых сложностей нет. Шаги подробно описаны в статьях:

  • http://habrahabr.ru/post/136684/
  • http://howknow1c.ru/programmirovanie-1c/web-servisy-1s.html
  • http://infostart.ru/public/86791/
  • http://1cprogrammistu.ru/60-sozdanie-web-servisa-v-1s-predpriyatii.html
  • http://www.basic.visual2000.ru/kolesov/pcmag/2006-1c/2006-05/web_1c.htm
  • http://v8.1c.ru/overview/Term_000000286.htm
  • http://1c-dn.com/forum/forum1/topic1184/
  • http://fixin.com.ru/articles/1s_web_services/article.htm
  • http://infostart.ru/public/327963/

Проблемы возникли с доступом к опубликованному web-сервису 1С. Под IIS 7.5 из под Windows 2008R2 после полудня танцев с бубном проблему решить не удалось. Были изучены статьи и ветки форумов:

  • http://infostart.ru/public/75205/
  • http://www.forum.mista.ru/topic.php?id=568905
  • http://www.forum.mista.ru/topic.php?id=665708
  • http://www.forum.mista.ru/topic.php?id=539933
  • и т.д.

но счастье так и не наступило. 

В результате решил, что стоит попробовать поднять web сервис на Apache, поскольку с ним у меня обычно все было несколько проще с настройкой. Итак, на другом порту (8080) на том-же сервере был поднят Apache 2.2.22. В 1С был создан ещё один web сервис и опубликован уже на Apache. С настройками по умолчанию он также не заработал. Разберем ошибки.

Web сервис был опубликован в 1С под именем wsApache.

Публикация web-сервиса 1С

Публикация web-сервиса 1С под Apache

Соответственно, в указанном при публикации каталоге появился файл default.vrd следующего содержания:

В httpd.conf 1С добавила следующие строчки:

# 1c publication

LoadModule _1cws_module "C:/Program Files (x86)/1cv82/8.2.17.153/bin/wsap22.dll"

Alias "/ws" "C:/inetpub/wwwroot/ws/"

<Directory "C:/inetpub/wwwroot/ws/">

    AllowOverride All

    Options None

    Order allow,deny

    Allow from all

    SetHandler 1c-application

    ManagedApplicationDescriptor "C:/inetpub/wwwroot/ws/default.vrd"

</Directory>

В целом, файлы/изменения создаваемые 1С почти рабочие.  Теперь о проблемах.

Правильный линк на сервис

В некоторых статьях путь к web сервису указан как: http://имя_сервера:порт/имя_при_публикации/alias?wsdl.

В моем случае:

  • Имя сервера: s-1s-1-hw
  • Порт: 8080
  • Имя при публикации: wsApache
  • Alias из файла default.vrd: service.1cws

Соответственно, НЕПРАВИЛЬНАЯ ссылка на web сервис 1С такая: http://s-1c-1-hw:8080/wsApache/service.1cws?wsdl

Если использовать такой линк, то 1C 8.2 выдаст сообщение вида:

1C:Enterprise 8 application error:

HTTP: Not found Ошибка при работе с ресурсом /ws/service.1cws

Правильный вариант:

http://имя_сервера:порт/имя_при_публикации/ws/alias?wsdl.

Это обращение эквивалентно обращению по имени сервиса из default.vrd:

http://имя_сервера:порт/имя_при_публикации/ws/name?wsdl.

В моем случае:

  • Name из файла default.vrd: Service

Соответственно, ПРАВИЛЬНЫЙ линк для доступа к web сервису 1С будет такой:

http://s-1c-1-hw:8080/wsApache/ws/service.1cws?wsdl

или такой

http://s-1c-1-hw:8080/wsApache/ws/service?wsdl

Если указать ссылку с суффиксом ?wsdl, то в веб браузере отобразиться XML файл с описанием опубликованного сервиса.

Если указать ссылку без суффикса ?wsdl, то при правильной настройке должна появится страница с гиперссылкой на опубликованный сервис:

http://s-1c-1-hw:8080/wsApache/ws/Service

Авторизация пользователя при обращении к web сервису 1С

Если попытаться получить доступ к web сервису опубликованному под Apache не исправляя файл default.vrd, то появиться стандартный диалог авторизации:

Диалог авторизации на web сервисе 1С

Диалог авторизации на web сервисе 1С

В тестовой базе был заведен тестовый пользователь IUSR с полными правами с пустым паролем. Если ввести в диалог в качестве логина этого пользователя, то авторизация пройдет успешно и отобразиться либо XML файл, либо ссылка на него (см. выше).

Можно исключить запрос авторизационной информации вбив логин и пароль прямо в файл default.vrd, что, конечно, не рекомендуется с точки зрения безопасности, но иногда необходимо.

Это все. В моем случае каких-то дополнительных правок конфиг файлов не потребовалось.

В некоторых статьях указывалось, что нужно убрать из httpd.conf опцию «Options None«. У меня работает в обоих вариантах, т.е. когда строка присутствует и когда она удалена.

Публикация web сервиса 1С на IIS 7.5

Как уже упоминал выше, с публикацией web сервиса на IIS 7.5 с первого раза у меня не задалось, хотя тонкий клиент запускается без проблем. Поскольку пароль в конфигурационном файле по соображениям безопасности меня не устраивал, вернулся к вопросу настройки IIS.  Был опубликован web сервис с именем wsIIS и именем сервиса ServiceIIS и alias-ом serviceIIS.1cws. Галка в чекбоксе «Использовать аутентификацию операционной системы на веб-сервере» для простоты эксперимента была снята.

Публикация web сервиса 1С в IIS 7.5.

Публикация web сервиса 1С в IIS 7.5.

Корректная ссылка в моем случае: http://s-1c-1-hw/wsIIS/ws/ServiceIIS?wsdl. При попытке зайти из Chrome/IE получаем ошибку возвращенную IIS:

Ошибка HTTP 401.2 — Unauthorized

дабы избавиться от ошибки правим web.config сформированный 1С следующим образом:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <system.webServer>

        <handlers>

            <add name="1C Web-service Extension" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:Program Files (x86)1cv82binwsisapi.dll" resourceType="Unspecified" requireAccess="None" />

        </handlers>

        <security>

            <authorization>

                <add accessType="Allow" users="*" />

            </authorization>

        </security>

    </system.webServer>

</configuration>

Эта правка эквивалента изменению через консоль управления IIS для нашего опубликованного приложения с именем wsIIS  правил авторизации пользователя.

Настройки IIS 7.5 для доступа к web сервисам 1C

Настройки IIS 7.5 для доступа к web сервисам 1C

Добавление тегов security в web.config или правка правил авторизации в консоли IIS приводит к тому, что при обращении к сервису по указанной выше ссылке появляется запрос на авторизацию. Вводим нашего тестового пользователя IUSR без пароля и получаем нужный XML файл в ответе сервера.

Прописав в default.vrd логин и пароль пользователя, как было указано выше для Apache, уберем окно авторизации и сервис будет всегда авторизовываться под указанным пользователем. Как проходит авторизация можно посмотреть в логах 1C. Но вариант с прописыванием пользователя в конфигурационный файл — не наш путь, ибо не секьюрно.

Изменим настройки авторизации пользователя (в IIS проверка подлинности), чтобы использовалась Windows авторизация. Сменить можно в консоли управления IIS, либо в конфигурационном  файле. Мне больше нравиться конфигурационный файл. так как проще переносить настройки при миграции на другой сервер.

Поскольку изменения секции web.config <authentication> заблокированы на уровне IIS в файле

%windir%system32inetsrvconfigapplicationHost.config

нужно зайти туда и сменить «Deny» на «Allow» для секции «authentication»:

<sectionGroup name="authentication">

    <section name="anonymousAuthentication" overrideModeDefault="Allow" />

    <section name="basicAuthentication" overrideModeDefault="Allow" />

    <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />

    <section name="digestAuthentication" overrideModeDefault="Deny" />

    <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />

    <section name="windowsAuthentication" overrideModeDefault="Allow" />

</sectionGroup>

после чего РАБОЧИЙ web.config для опубликованного web сервиса 1С будет выглядеть следующим образом:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <system.webServer>

        <handlers>

            <add name="1C Web-service Extension" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:Program Files (x86)1cv82binwsisapi.dll" resourceType="Unspecified" requireAccess="None" />

        </handlers>

        <security>

            <authorization>

                <add accessType="Allow" users="*" />

            </authorization>

         <authentication>

            <windowsAuthentication enabled="true" useKernelMode="true">

                    <providers>

                        <clear />

                        <add value="Negotiate" />

                        <add value="NTLM" />

                  </providers>

                    <extendedProtection tokenChecking="Allow" />

            </windowsAuthentication>

            <basicAuthentication enabled="false" />

            <anonymousAuthentication enabled="false" />

         </authentication>

        </security>

    </system.webServer>

</configuration>

Эквивалент последней выполненной операции (настройка <authentication>) — публикация сервиса с включенной галкой в чекбоксе «Использовать аутентификацию операционной системы на веб-сервере». 1С при публикации меняет эту настройку не в web.config, а в настройках IIS через API. В любом случае изменения должны быть видны в консоли управления IIS:

Настройка аутентификации при публикации web сервиса 1С в IIS

Настройка аутентификации при публикации web сервиса 1С в IIS

На всякий случай для проверки настроек при публикации web сервиса имеет смысл в консоли управления IIS зайти в следующие разделы:

Публикация web сервиса 1С в IIS. Настройка через консоль.

Публикация web сервиса 1С в IIS. Настройка через консоль.

После указанной выше настройки web.config, удаляем жестко прописанные логин и пароль из  файла default.vrd. На всякий случай перегружаем IIS. Если для доменных пользователей прописаны корректные соответствия в учетных записях 1С, то авторизация пройдет прозрачно под доменными учетными записями, в чем можно будет убедиться посмотрев в логах авторизации 1С. 

Здесь приводится ряд ошибок IIS (и способы их устранения) которые с высокой вероятностью могут возникнуть при публикации web сервиса 1С на IIS.

Доступ из Visual Studio 2012

Как подробно описано в статье на хабре, чтобы добавить ссылку на опубликованный web сервис 1С в Visual Studio для разработки клиента необходимо создать приложение (например, консольное), кликнуть правой кнопкой мышки на solution и выбрать пункт «Add Service Reference…». Следует обратить внимание на точное указание ссылки непосредственно на WSDL описание, т.е. без указания суффикса ?wsdl Visual Studio ничего не обнаружит.

Добавление reference к web службе 1С из Visual Stiudio.

Добавление reference к web службе 1С из Visual Stiudio.

Далее разрабатываем обычный клиент для web сервиса.

Удачи!!!

И снова здравствуйте.

> При проверке Web сервер определяется, а опубликованная база не находится. 
Пожалуйста, уточните, что означает «база не находится».

Скриншот сообщения в файле Снимок1.

Попробовал исполнить Вашу инструкцию, получил следующее:

1. При публикации через Конфигуратор появилось сообщение Снимок2. NTFS-ные права на БД этой группе добавил.

Не помогло, при «проверке готовности компьютера» ошибка осталась таже «Не удалось найти публикацию базы!». Попробовал войти браузером на опубликованное приложение выдал ошибку про кривую библиотеку ISAPI. Методом проб и ошибок выснилось, что при установке IIS 8.5 «по умолчанию» не устанавливаются компонент «Расширения ISAPI».

2. Устоновил в IIS не достающий компонент «Расширения ISAPI». Опубликованная база опять не нашлась. Но при входе через браузер на публикацию ошибка стала другая.

Ошибка HTTP 500.0 — Internal Server Error

Невозможно отобразить эту страницу ввиду того, что произошла внутренняя ошибка сервера.

Подробные сведения об ошибке:

Модуль   IsapiModule

Уведомление   ExecuteRequestHandler

Обработчик   1C Web-service Extension

Код ошибки   0x800700c1

Запрошенный URL-адрес   http://192.168.1.51:80/Money_101251

Физический путь   C:InetpubwwwrootMoney_101251

Метод входа   Анонимная

Пользователь, выполнивший вход   Анонимная

3. После нескольких часов экспериментов базу опубликовать удалось, путем установки галки «использовать аутентификацию операционной системы» при публикации через Кофигуратор.

При «проверке готовности компьютера» ошибок нет. Адрес в настройках 1С проверяется. При входе через браузер возникает следующая ошибка.

Ошибка HTTP 401.2 — Unauthorized

Вы не имеете права просматривать эту страницу из-за недопустимости заголовков проверки подлинности.

Подробные сведения об ошибке:

Модуль   IIS Web Core

Уведомление   AuthenticateRequest

Обработчик   1C Web-service Extension

Код ошибки   0x80070005З

апрошенный URL-адрес   http://192.168.1.51:80/Money_101251

Физический путь   C:InetpubwwwrootMoney_101251

Метод входа   Пока не определено

Пользователь, выполнивший вход   Пока не определено

4. Печальные итоги.

Остановился на двух неработающих вариантах.

Вариант 1. 

Публикация без галки «использовать аутентификацию операционной системы» (Соответствует включенной в консоли IIS для опубликованного приложения «анонимной проверки подлинности»)

Сервис на компе не находится. При попытке синхронизации iPad ошибка в Миниденьгах, что не найден сервис синхронизации. Ощущение что где то на компе не хватает NTFS-ных прав, вроде перепробовал уже все.

Вариант 2.

Публикация с галкой «использовать аутентификацию операционной системы» (Соответствует отключенной в консоли IIS для опубликованного приложения «анонимной проверки подлинности»)

Сервис на компе находится, адрес проверяется. Но при сихронизации Миниденьги пишут ошибку «Неправильное имя или пароль пользователя настольного приложения». Экспериментировал с заведением пользователя в настольной 1С — ни какие варианты не помогли.

Скорее всего Миниденьги не корректно обрабатывают возвращаемую от сервиса ошибку, и проблема не в пользователе настольного приложения, а в том что запрещены анонимные подключения к сервису.

Подскажите что еще можно покопать и в каком варианте?

На чтение 9 мин Просмотров 3.4к. Опубликовано 31.12.2019

Содержание

  1. Описание проблемы
  2. Решение проблемы
  3. Расположение веб-сервера IIS и рабочих серверов 1С на разных машинах
  4. Правильный линк на сервис
  5. Авторизация пользователя при обращении к web сервису 1С
  6. Публикация web сервиса 1С на IIS 7.5
  7. Ошибка HTTP 401.2 — Unauthorized

Описание проблемы

Не работает аутентификация операционной системы (windows) через IIS при использовании тонкого клиента или веб-клиента.

С точки зрения пользователей, будет видно окно с запросом логина и пароля.

Проблема может заключаться в том, что методы операционной системы в силу различных причин возвращают описание текущего пользователя сеанса в таком представлении, которое не совпадает ни с одним пользователем в списке пользователей информационной базы 1С

Решение проблемы

На сервере 1С включить технологический журнал, используя следующую настройку:

Воспроизвести ситуацию с неудачной аутентификацией операционной системы. Авторизоваться под пользователем операционной системы, указанным в свойствах пользователя 1С.

Открыть технологический журнал рабочего процесса и найти событие EXCP со следующим описанием: «Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя»

Обратите внимание на предшествующее ему событие CONN и значение свойства DstUserName2 — именно в таком виде пользователь должен быть указан в свойствах пользователя информационной базы.

04:45.940011-0,CONN,2,process=rphost,t:client >04:45.940012-0,CONN,2,process=rphost,t:client >04:45.971001-0,CONN,2,process=rphost,t:client >DstUserName2: DOMAIN701 estuser2(DOMAIN701 estuser2)
04:46.205021-0,EXCP,2,process=rphost,p:processName=trade,t:client >a01f465c-ed70-442e-ada5-847668d7a41c: Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя’

Заменить значение свойства «Пользователь» пользователя информационной базы согласно следующему формату «» + [Имя пользователя из свойства DstUserName2 без скобок].

Проверить работоспособность аутентификации средствами операционной системы, войдя в информационную базу, используя веб-клиент.

Расположение веб-сервера IIS и рабочих серверов 1С на разных машинах

В некоторых случаях, несмотря на корректно указанного пользователя операционной системы в пользователе информационной базы, при попытке входа в опубликованную базу через браузер аутентификация операционной системы не проходит. Такая ситуация может возникать, если веб-сервер IIS и сервер 1с находятся на разных машинах. В таком случае в технологическом журнале рабочего процесса можно наблюдать следующую картину:

56:39.487001-0,CONN,2,process=rphost,p:processName=accounting,t:client >56:39.487002-0,CONN,2,process=rphost,p:processName=accounting,t:client >56:39.596004-0,CONN,2,process=rphost,p:processName=accounting,t:client >DstUserName2: NT AUTHORITYANONYMOUS LOGON(NT AUTHORITYANONYMOUS LOGON )
56:39.659003-0,EXCP,2,process=rphost,p:processName=accounting,t:client >a01f465c-ed70-442e-ada5-847668d7a41c: Идентификация пользователя не выполнена
Неправильное имя или пароль пользователя’

При возникновении такой ситуации необходимо проверить следующие настройки:

1) Убедиться, что процессы сервера 1С запущены от имени доменной учетной записи, входящей в группу Domain Users.

2) Убедиться, что веб-сервер IIS настроен корректно.

В публикации информационной базы найти настройки аутентификации

В настройках аутентификации отключить анонимную аутентификацию и включить Windows-аутентификацию. В Windows-аутентификации упорядочить доступных провайдеров так, чтобы на первом месте был Negotiate.

Пул приложений публикации не нуждается в настройках, в нем можно оставить все по умолчанию.

После изменения настроек перезапустить веб-сервер с помощью команды iisreset в командной строке.

3) Убедиться, что в контроллере домена в свойствах компьютера, на котором запущен веб-сервер, на вкладке делегирование установлено «Доверять компьютеру делегирование любых служб (только Kerberos)»

Для этого откройте оснастку Active Directory Users and Computers (dsa.msc), в компьютерах найдите веб-сервер, перейдите в его свойства и на вкладке Делегирование установить значение «Доверять компьютеру делегирование любых служб (только Kerberos)» и нажать применить.

4) Убедиться, что на клиенте в свойствах обозревателя разрешена встроенная проверка подлинности Windows.

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

Важно: аутентификации Windows при расположении веб-сервера IIS и рабочих серверов на разных машинах в тонком клиенте работает, начиная с версии 8.3.10.2620 (для тестирования).

Возникла необходимость взаимодействовать с 1C с мобильного клиента под Windows Phone 7/8. Самым простым способом взаимодействия показалось работа через web сервисы, поддерживаемые 1С.

С точки зрения публикации web сервиса особых сложностей нет. Шаги подробно описаны в статьях:

Проблемы возникли с доступом к опубликованному web-сервису 1С. Под IIS 7.5 из под Windows 2008R2 после полудня танцев с бубном проблему решить не удалось. Были изучены статьи и ветки форумов:

В результате решил, что стоит попробовать поднять web сервис на Apache, поскольку с ним у меня обычно все было несколько проще с настройкой. Итак, на другом порту (8080) на том-же сервере был поднят Apache 2.2.22. В 1С был создан ещё один web сервис и опубликован уже на Apache. С настройками по умолчанию он также не заработал. Разберем ошибки.

Web сервис был опубликован в 1С под именем wsApache.

Публикация web-сервиса 1С под Apache

Соответственно, в указанном при публикации каталоге появился файл default.vrd следующего содержания:

В httpd.conf 1С добавила следующие строчки:

В целом, файлы/изменения создаваемые 1С почти рабочие. Теперь о проблемах.

Правильный линк на сервис

В некоторых статьях путь к web сервису указан как: http://имя_сервера:порт/имя_при_публикации/alias?wsdl.

  • Имя сервера: s-1s-1-hw
  • Порт: 8080
  • Имя при публикации: wsApache
  • Alias из файла default.vrd: service.1cws

Соответственно, НЕПРАВИЛЬНАЯ ссылка на web сервис 1С такая: http://s-1c-1-hw:8080/wsApache/service.1cws?wsdl

Если использовать такой линк, то 1C 8.2 выдаст сообщение вида:

Правильный вариант:

http://имя_сервера:порт/имя_при_публикации/ ws/ alias?wsdl.

Это обращение эквивалентно обращению по имени сервиса из default.vrd:

http://имя_сервера:порт/имя_при_публикации/ ws/ name?wsdl.

  • Name из файла default.vrd: Service

Соответственно, ПРАВИЛЬНЫЙ линк для доступа к web сервису 1С будет такой:

http://s-1c-1-hw:8080/wsApache/ ws/ service.1cws?wsdl

http://s-1c-1-hw:8080/wsApache/ ws/ service?wsdl

Если указать ссылку с суффиксом ?wsdl, то в веб браузере отобразиться XML файл с описанием опубликованного сервиса.

Если указать ссылку без суффикса ?wsdl, то при правильной настройке должна появится страница с гиперссылкой на опубликованный сервис:

Авторизация пользователя при обращении к web сервису 1С

Если попытаться получить доступ к web сервису опубликованному под Apache не исправляя файл default.vrd, то появиться стандартный диалог авторизации:

Диалог авторизации на web сервисе 1С

В тестовой базе был заведен тестовый пользователь IUSR с полными правами с пустым паролем. Если ввести в диалог в качестве логина этого пользователя, то авторизация пройдет успешно и отобразиться либо XML файл, либо ссылка на него (см. выше).

Можно исключить запрос авторизационной информации вбив логин и пароль прямо в файл default.vrd, что, конечно, не рекомендуется с точки зрения безопасности, но иногда необходимо.

Это все. В моем случае каких-то дополнительных правок конфиг файлов не потребовалось.

В некоторых статьях указывалось, что нужно убрать из httpd.conf опцию «Options None«. У меня работает в обоих вариантах, т.е. когда строка присутствует и когда она удалена.

Публикация web сервиса 1С на IIS 7.5

Как уже упоминал выше, с публикацией web сервиса на IIS 7.5 с первого раза у меня не задалось, хотя тонкий клиент запускается без проблем. Поскольку пароль в конфигурационном файле по соображениям безопасности меня не устраивал, вернулся к вопросу настройки IIS. Был опубликован web сервис с именем wsIIS и именем сервиса ServiceIIS и alias-ом serviceIIS.1cws. Галка в чекбоксе «Использовать аутентификацию операционной системы на веб-сервере» для простоты эксперимента была снята.

Публикация web сервиса 1С в IIS 7.5.

Корректная ссылка в моем случае: http://s-1c-1-hw/wsIIS/ws/ServiceIIS?wsdl. При попытке зайти из Chrome/IE получаем ошибку возвращенную IIS:

дабы избавиться от ошибки правим web.config сформированный 1С следующим образом:

Эта правка эквивалента изменению через консоль управления IIS для нашего опубликованного приложения с именем wsIIS правил авторизации пользователя.

Настройки IIS 7.5 для доступа к web сервисам 1C

Добавление тегов security в web.config или правка правил авторизации в консоли IIS приводит к тому, что при обращении к сервису по указанной выше ссылке появляется запрос на авторизацию. Вводим нашего тестового пользователя IUSR без пароля и получаем нужный XML файл в ответе сервера.

Прописав в default.vrd логин и пароль пользователя, как было указано выше для Apache, уберем окно авторизации и сервис будет всегда авторизовываться под указанным пользователем. Как проходит авторизация можно посмотреть в логах 1C. Но вариант с прописыванием пользователя в конфигурационный файл — не наш путь, ибо не секьюрно.

Изменим настройки авторизации пользователя (в IIS проверка подлинности), чтобы использовалась Windows авторизация. Сменить можно в консоли управления IIS, либо в конфигурационном файле. Мне больше нравиться конфигурационный файл. так как проще переносить настройки при миграции на другой сервер.

После публикации конфигурации на платформе «1С:Предприятие 8.2» в подкаталоге веб-сервера создается файл default.vrd в атрибуте « ib » которого содержится информация о параметрах подключения к информационной базе. Эти параметры действуют и для дочерних элементов узла «ws» т.е ваших веб-сервисов, например:

Параметры « Usr » и « pwd » не указаны в строке подключения и 1С, при доступе к информационной базе и через веб-сервис и через «веб-клиент», будет запрашивать их от пользователя (windows-авторизацию здесь не рассматриваем).

Если их добавить в строку подключения, то и веб-сервис и работа пользователей через «веб-клиент» будет идти через этого пользователя. А что делать если аутентификация пользователей должна производится средствами системы «1С:Предприятие» т.е. с запросом имени пользователя и пароля? Выход – настройки для web-сервиса указать в отдельном файле как раньше в 8.1.

  • удалите из файла default.vrd всю секцию « ws »
  • рядом с default.vrd создайте файл .1cws и укажите в нем параметры подключения к информационной базе включая данные авторизации, например:

В версии 8.2 утилита публикации “wsinst” была удалена из комплекта поставки, но сами сервисы понимают этот формат.

Обращение к сервису производится без указания подкаталога /ws, например http://127.0.0.1/demoFba/fbaService.1cws .

Доступ пользователей через веб-клиент не изменился и будет использоваться аутентификация средствами системы «1С:Предприятие».

 

В мастере первоначальной настройки когда меняю подключение на 1С в облаке атс в сети после нажатия кнопки настроить и ожидания получаем
[2022-09-01T14:32:50] 1C:Enterprise web-service return error: 401 Unauthorized

В это время в MIKOPBX в модуле телефонии 4.0

{
 «statuses»: [
   {
     «name»: «monitord»,
     «state»: «ok»,
     «pid»: «27235»
   },
   {
     «name»: «nats»,
     «state»: «ok»,
     «version»: «1.4.1»,
     «uptime»: «5h9m51s»,
     «start»: «2022-09-01T09:23:21.699135408+04:00»
   },
   {
     «name»: «auth»,
     «state»: «ok»,
     «start»: «2022-09-01T09:23:22.957470496+04:00»,
     «uptime»: «5h9m50s»,
     «version»: «1.2»
   },
   {
     «name»: «ami-listener»,
     «state»: «ok»,
     «start»: «2022-09-01T09:23:23.079610987+04:00»,
     «uptime»: «5h9m50s»,
     «version»: «2.4.20220829.236»
   },
   {
     «name»: «speech»,
     «state»: «ok»,
     «start»: «2022-09-01T09:23:23.145732519+04:00»,
     «uptime»: «5h9m50s»,
     «version»: «1.0.20220829.236»
   },
   {
     «name»: «chats»,
     «state»: «ok»,
     «start»: «2022-09-01T09:23:23.221763292+04:00»,
     «uptime»: «5h9m50s»,
     «version»: «1.2.20220829.236»
   },
   {
     «name»: «crm-1c»,
     «state»: «error»,
     «last_error»: «[2022-09-01T14:32:50] 1C:Enterprise web-service return error: 401 Unauthorized

Изменено: Владислав Эсмонтов01.09.2022 13:34:51

Понравилась статья? Поделить с друзьями:
  • 1с http сервис ошибка 406
  • 1с константы ошибка при вызове метода контекста получить
  • 1с код ошибки sender
  • 1с код ошибки 20000
  • 1с код ошибки 102 сертификат недействителен