Подключение к серверу OPC UA с использованием аутентификации по имени пользователя и паролю в C # - PullRequest
0 голосов
/ 30 октября 2018

Я пытаюсь пройти аутентификацию на OPC UA Simulation Server с использованием аутентификации по имени пользователя / паролю, но получаю следующее исключение Bad_SecurityChecksFailed . Это первый раз, когда я использую OPC UA, и у меня нет предыдущего опыта его использования. Может быть, кто-то уже сталкивался с такой же проблемой и может мне помочь.

enter image description here

На сервере симуляции, который я использую (Prosys OPC UA), показывается, что сертификат был отклонен:

enter image description here

Модуль использует пакет nuget OPCFoundation.NetStandard.Opc.Ua (https://github.com/OPCFoundation/UA-.NETStandard).

Это переменные UserIdentity :

enter image description here

Как видно, IssuedTokenType и PolicyId имеют значение null, что может быть частью проблемы, но я не могу найти способ их инициализации.

Вот данные ConfiguredEndpoint :

enter image description here

Ниже приведен код для создания сеанса на сервере с использованием имени пользователя и пароля:

enter image description here

При создании сеанса генерируется исключение AggregateException с указанным выше Bad_SecurityChecksFailed исключением.

И это конечные точки и настройки пользователей на сервере моделирования:

enter image description here

enter image description here

Что я сделал, чтобы попытаться это решить?

Я искал примеры на C #, но мне не удалось найти то, что я искал.

Единственное место, где я нашел примеры C #, было в приложениях UA Quickstart, доступных на Github (https://github.com/OPCFoundation/UA-.NETStandard), который, если я правильно понял, использует сертификаты с именем пользователя и паролем. У меня нет опыт работы с сертификатами, и мне не удалось понять, как работает аутентификация и как ее реализовать.

Я также искал ответ на другой вопрос: https://stackoverflow.com/a/46458799/8399585, который дает некоторую информацию о политике и сертификате клиента, а также упоминает об ошибке, которую я получаю. Но это не показывает, как они должны быть настроены (что на самом деле не было целью вопроса с самого начала).

1 Ответ

0 голосов
/ 30 октября 2018

Ваш сервер возвращает Bad_SecurityChecksFailed, поскольку сертификат клиента не является доверенным для сервера. Это можно увидеть в журнале сервера, где перед сообщением «Удаленный сертификат не принят» указано «Сертификат ххх добавлен к отклоненным сертификатам». Я не знаком с Prosys, но я ожидаю, что вкладка Сертификаты позволит вам как-то доверять сертификату клиента.

...