ГИС ЖКХ: установка защищенного соединения и подписание сообщений с помощью WCF / Хабр

Что делать, если вход в гис жкх по электронной подписи не работает

Иногда при таком способе входа возникают ошибки. Обычно причина ошибок в том, что у пользователя не включена опция входа по ЭЦП по умолчанию, и её нужно включить в личном кабинете на Госуслугах.

ГИС ЖКХ сообщает о невозможности входа следующим образом:

В этом случае нужно выполнить следующие шаги.

Описание классов


В конфиге мы регистрируем MessageInspectorBehavior, который добавляет ClientMessageInspector:

public class MessageInspectorBehavior : IEndpointBehavior
{
	public void Validate(ServiceEndpoint endpoint)
	{
	}

	public void AddBindingParameters(ServiceEndpoint endpoint, BindingParameterCollection bindingParameters)
	{
	}

	public void ApplyDispatchBehavior(ServiceEndpoint endpoint, EndpointDispatcher endpointDispatcher)
	{
	}

	public void ApplyClientBehavior(ServiceEndpoint endpoint, ClientRuntime clientRuntime)
	{
		SignatureMessageInspector inspector =
			new SignatureMessageInspector();
		clientRuntime.MessageInspectors.Add(inspector);
	}
}

Ещё приведу листинг класса SignatureMessageInspector, который и занимается подписанием сообщений:

public class SignatureMessageInspector : IClientMessageInspector
{
	public object BeforeSendRequest(ref Message request, IClientChannel channel)
	{
		string st = GetSignElement(MessageString(ref request));
		//place for log request
		request = CreateMessageFromString(st, request.Version);
		return null;
	}

	public void AfterReceiveReply(ref Message reply, object correlationState)
	{
		string st = MessageString(ref reply);
		//place for log response
		reply = CreateMessageFromString(st, reply.Version);
	}

	public static string GetSignElement(string messageString)
	{
		var originalDoc = new XmlDocument { PreserveWhitespace = true };
		originalDoc.LoadXml(messageString);

		var nodes = originalDoc.SelectNodes($"//node()[@Id='{CryptoConsts.CONTAINER_ID}']");
		if (nodes == null || nodes.Count == 0)
		{
			return originalDoc.OuterXml;
		}

		var gostXadesBesService = new GostXadesBesService();

		string st = gostXadesBesService.Sign(messageString, CryptoConsts.CONTAINER_ID, CryptoConsts.CERTIFICATE_THUMBPRINT, string.Empty);

		return st;
	}

	Message CreateMessageFromString(String xml, MessageVersion ver)
	{
		return Message.CreateMessage(XmlReaderFromString(xml), int.MaxValue, ver);
	}

	XmlReader XmlReaderFromString(String xml)
	{
		var stream = new MemoryStream();
		// NOTE: don't use using(var writer ...){...}
		//  because the end of the StreamWriter's using closes the Stream itself.
		//
		var writer = new StreamWriter(stream);
		writer.Write(xml);
		writer.Flush();
		stream.Position = 0;
		return XmlReader.Create(stream);
	}

	String MessageString(ref Message m)
	{
		// copy the message into a working buffer.
		MessageBuffer mb = m.CreateBufferedCopy(int.MaxValue);

		// re-create the original message, because "copy" changes its state.
		m = mb.CreateMessage();

		Stream s = new MemoryStream();
		XmlWriter xw = XmlWriter.Create(s);
		mb.CreateMessage().WriteMessage(xw);
		xw.Flush();
		s.Position = 0;

		byte[] bXml = new byte[s.Length];
		s.Read(bXml, 0, (int) s.Length);

		// sometimes bXML[] starts with a BOM
		if (bXml[0] != (byte) '<')
		{
			return Encoding.UTF8.GetString(bXml, 3, bXml.Length - 3);
		}
		return Encoding.UTF8.GetString(bXml, 0, bXml.Length);
	}
}

Генерация прокси-классов

На сайте ГИС ЖКХ в разделе

Про сертификаты:  Подарочные сертификаты КАССИР.РУ на концерты, спектакли, в театры. Подарочная карта KASSIR.RU в Ростове-на-Дону номиналом от 500 до 5 000 руб

находится файл «Регламент и форматы информационного взаимодействия внешних информационных систем с ГИС ЖКХ». Текущая версия 10.0.1.2. В этом файле находятся wsdl и xsd файлы, мы их будем использовать для создания прокси-классов WCF.

Скопируем все wsdl и xsd файлы в какую-нибудь папку, например «c:/gis». Это нужно для того, чтобы утилита генерации могла найти все базовые xsd файлы, на которые использует xsd файл сервиса.

Для генерации прокси-классов мы будем использовать стандартную утилиту SvcUtil.

"C:Program Files (x86)Microsoft SDKsWindowsv10.0AbinNETFX 4.6.1 ToolsSvcUtil.exe" c:/gis/hcs-nsi-common-service.wsdl c:/gis/*.xsd /messageContract /enableDataBinding /syncOnly /directory:"c:/gis/proxies" /noConfig /noLogo /out:NsiCommonService.cs /namespace:*,Gis.Infrastructure.NsiCommonService

Эта команда создаст нам прокси-класс сервиса для получения общих справочников (hcs-nsi-common). В этой команде указано, где найти wsdl и xsd файл описания сервиса, куда положить результирующий cs файл и как назвать namespace. Аналогично нужно запустить эту команду для остальных сервисов ГИС ЖКХ.

Добавим сгенерированный прокси-класс в проект

Гис жкх: вход с помощью электронной подписи

Порталы ГИС ЖКХ и Госуслуги тесно связаны друг с другом. Для регистрации на портале ГИС ЖКХ необходима подтверждённая учётная запись на Госуслугах.
Поэтому сначала нужно зарегистрироваться там как физическое лицо, а затем создать учётную запись юридического лица. Это может сделать руководитель или представитель юрлица с правом действовать от организации без доверенности.

Затем необходимо установить электронную подпись для работы на Госуслугах. После этого можно приступать к регистрации в ГИС ЖКХ.

Шаг 1. Войдите в свою учётную запись на портале Госуслуг.

Шаг 2. Перейдите на вкладку «Организации» и перейдите в раздел «Доступ к системам».

Откроется страница, на которой нужно установить следующие параметры:

Затем нажмите кнопку « Включить в группу» напротив пункта «Уполномоченный специалист организации в ГИС ЖКХ».

В открывшемся окне введите ФИО сотрудника, уполномоченного для работы на портале ГИС ЖКХ.

Шаг 3. Перейдите на портал ГИС ЖКХ. Для того чтобы зарегистрироваться на портале как «Товарищество собственников жилья» или «Управляющая компания», нажмите кнопку «Войти».

Вы будете перенаправлены на портал Госуслуг. Авторизуйтесь на нём по электронной подписи и войдите в статусе организации.

Про сертификаты:  Дистанционное обучение инженеров-технологов - переподготовка и курсы по профессии

После этого вы снова будете перенаправлены на сайт ГИС ЖКХ для регистрации предприятия и присвоения статуса.

Шаг 4. Внесите данные об организации в ГИС ЖКХ. Часть информации будет подтянута из Госуслуг, но часть придётся заполнить вручную.

Шаг 5. Добавьте функции и области деятельности организации.

Шаг 6. Примите условия пользовательского соглашения и нажмите на кнопку «Зарегистрировать». На этом регистрация на портале ГИС ЖКХ завершена.

Использование


Для выполнения непосредственного запроса к ГИС ЖКХ необходимо создать экземпляр клиента сгенерированного прокси-класса, указать настройки клиентской авторизации, сформировать объект запроса и вызвать необходимый метод:

Настройка конфига приложения

Добавим в конфиг приложения следующие разделы

Оформление подписи для работы в гис жкх

Вся размещаемая пользователями информация в системе должна иметь юридическую силу и быть достоверной. Подтверждением последней выступает предварительная подпись во время отправки данных в ГИС ЖКХ. Для этого необходима усиленная квалифицированная подпись (ЭЦП), оформить которую можно в аккредитованном УЦ «Астрал-М».

Оформляя электронную цифровую подпись (ЭЦП) для ТСЖ, ЖКХ в УЦ ГК «Астрал-М», вы получаете:

Получить дополнительную информацию, оставить заявку на оформление подписи для последующей работы в ГИС ЖКХ и других государственных информационных системах можно по телефону либо оставив заявку на сайте. Мы гарантируем оперативный ответ и консультации по всем вопросам открытия ЭЦП.

Подготовка

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

Подробно описывать процесс тут не буду, информацию можно найти

Сертификаты казначейства – суфд

Внимательно читаем, в какое хранилище устанавливать корневые сертификаты казначейства ГУЦ и УЦ ФК

Устанавливаем корневые сертификаты ГУЦ и Минкомсвязь:
Cертификат головного удостоверяющего центра (ГУЦ ГОСТ 2001) — действителен с 20.07.2021 по 17.07.2027 (серийный номер: 34 68 1e 40 cb 41 ef 33 a9 a0 b7 c8 76 92 9a 29)
Сертификат Минкомсвязи России (ГУЦ ГОСТ 2021) — действителен с 06.07.2021 по 01.07.2036 (серийный номер: 4e 6d 47 8b 26 f2 7d 65 7f 76 8e 02 5c e3 d3 93)

Про сертификаты:  Подарочные карты Лента: как узнать номинал и срок действия

Для установки сертификата ГУЦ необходимо скачать и выбрать сертификат, вызвать контекстное меню нажатием правой кнопки мыши, затем выбрать команду «Установить сертификат».
Откроется окно мастера импорта сертификатов, нажать кнопку «Далее», откроется окно выбора хранилища сертификатов, выбрать опцию «Поместить все сертификаты в следующее хранилище» и нажать кнопку «Обзор», откроется окно списка доступных хранилищ сертификатов.
Выбрать хранилище «Доверенные корневые центры сертификации», нажать кнопку «Далее», откроется окно завершения работы мастера импорта сертификатов, нажать кнопку «Готово», появится сообщение, что импорт успешно выполнен, нажать кнопку «ОК».

Устанавливаем промежуточные сертификаты УЦ Федерального  казначейства:
Сертификат Удостоверяющего центра Федерального казначейства 2001 (ФК ГОСТ 2001) — действителен с 04.07.2021 по 04.07.2027 (серийный номер: 36 ac d4 55 00 00 00 00 01 2f)
Сертификат Удостоверяющего центра Федерального казначейства 2021 (ФК ГОСТ 2021) — действителен с 19.11.2021 по 19.11.2033 (серийный номер: 00 b5 f1 32 d3 00 00 00 00 01 5a)
Сертификат Удостоверяющего центра Федерального казначейства 2020 (ФК ГОСТ 2021) — действителен с 05.02.2020 по 05.02.2035 (серийный номер: 62 ab 79 95 00 00 00 00 03 b6)
Сертификат Удостоверяющего центра Федерального казначейства 2021 (ФК ГОСТ 2021) — действителен с 13.04.2021 по 13.04.2036 (серийный номер: 00 cb c6 98 33 00 00 00 00 05 6e)

Для установки сертификата УЦ Федерального казначейства необходимо выбрать сертификат — вызвать контекстное меню нажатием правой кнопкой мыши, затем выбрать команду «Установить сертификат». Откроется окно мастера импорта сертификатов, нажать кнопку «Далее», откроется окно выбора хранилища сертификатов, выбрать опцию «Поместить все сертификаты в следующее хранилище» и нажать кнопку «Обзор». Откроется окно списка доступных хранилищ сертификатов.
Выбрать хранилище «Промежуточные центры сертификации», нажать кнопку «Далее», откроется окно завершения работы мастера импорта сертификатов, нажать кнопку «Готово», появится сообщение, что импорт успешно выполнен.

Электронная подпись для работы с гис жкх

Государственная информационная система жилищно-коммунального хозяйства. Разработана для реализации Федерального закона № ФЗ-209 от 21.07.2021.

ГИС ЖКХ — единая федеральная централизованная информационная система, обеспечивающая сбор, обработку, хранение, предоставление, размещение и использование информации о жилищном фонде, стоимости и перечне услуг по управлению общим имуществом в многоквартирных домах, работах по содержанию и ремонту общего имущества в многоквартирных домах, предоставлении коммунальных услуг и поставках ресурсов, необходимых для предоставления коммунальных услуг, размере платы за жилое помещение и коммунальные услуги, задолженности по указанной плате, об объектах коммунальной и инженерной инфраструктур, а также иной информации, связанной с жилищно-коммунальным хозяйством. К системе ГИС ЖКХ должны получить доступ органы власти, поставщики услуг –УК, ТСЖ, ЖСК, ЖК и иные организации, фонды капитального ремонта, ресурсоснабжающие организации, органы местного самоуправления, уполномоченные органы.

Подробнее

Оцените статью
Мой сертификат
Добавить комментарий