LDAP и членство в группах

Добрый день, Коллеги!

1. На community видел упоминание что есть инструкция как влючить логирование синхронизации с LDAP кто может, прошу поделится.

2. При добавлении пользователя через синхронизацию с LDAP пользователь помешается в группу "Все сотрудники компании", как коректно отключить этот механизм мне надо чтоб пользователь был только в тех группах с которыми он синхронизирован через LDAP?

3. Есть учетка в LDAP числится в нужной группе которая синхронизирована с организационной ролью BPM другие учетки есть а этой нет. Куда копать?

 

установка он сайт.

Нравится

1 комментарий

Здравствуйте, Алексей

По Вашим вопросам:

1. Настройка логирования LDAP

  1. Открываем файл log4net.config в папке <site>/Terrasoft.WebApp
  2. Находим фильтр:

                                <filter type="log4net.Filter.LoggerMatchFilter">

                                                <loggerToMatch value="Terrasoft.Core.LDAP" />

                                                <acceptOnMatch value="false" />

                                </filter>

Если данный фильтр отсутствует, то добавляем. Пример:

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

<log4net>

                <appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">

                                <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

                                <connectionString value="Data Source=#SQLServer#; Initial Catalog=syslog; Persist Security Info=True; MultipleActiveResultSets=True; User ID=svc-log4net; Password=FoaFkplBSl0Iqqdbo2a7fj6JfdyE1jmu; Pooling = true; Max Pool Size = 100" />

                                <commandText value="INSERT INTO [dbo].[log4net] ([Date],[Host],[Site],[Thread],[Level],[Logger],[User],[Message],[Exception]) VALUES (@log_date, @log_host, @log_site, @log_thread, @log_level, @log_logger, @log_user, @log_message, @log_exception)" />

                                <bufferSize value="1" />

                                <filter type="log4net.Filter.LoggerMatchFilter">

                                                <loggerToMatch value="Terrasoft.Core.LDAP" />

                                                <acceptOnMatch value="false" />

                                </filter>

                                <parameter>

                                                <parameterName value="@log_date" />

                                                <dbType value="DateTime" />

                                                <layout type="log4net.Layout.PatternLayout" value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" />

                                </parameter>

  1. Находим атрибут appender

                <appender name="ldapAppender" type="log4net.Appender.RollingFileAppender">

                                <file type="log4net.Util.PatternString">

                                                <converter>

                                                                <name value="AspNet" />

                                                                <type value="log4net.Util.PatternStringConverters.AspNetPatternConverter,log4net.Util.PatternStringConverters" />

                                                </converter>

                                                <conversionPattern value="${TEMP}\BPMonline\Site_%AspNet{SiteId}\%AspNet{ApplicationPath}\Log\" />

                                </file>

                                <appendToFile value="true" />

                                <rollingStyle value="Date" />

                                <datePattern value="yyyy_MM_dd'\\LDAP.log'" />

                                <staticLogFileName value="false" />

                                <layout type="log4net.Layout.PatternLayout">

                                                <conversionPattern value="%date [%thread] %-5level %username %logger %method - %message%newline" />

                                </layout>

                </appender>

Если не находим, то добавляем. Пример:

                </appender>

                <appender name="ldapAppender" type="log4net.Appender.RollingFileAppender">

                                <file type="log4net.Util.PatternString">

                                                <converter>

                                                                <name value="AspNet" />

                                                                <type value="log4net.Util.PatternStringConverters.AspNetPatternConverter,log4net.Util.PatternStringConverters" />

                                                </converter>

                                                <conversionPattern value="${TEMP}\BPMonline\Site_%AspNet{SiteId}\%AspNet{ApplicationPath}\Log\" />

                                </file>

                                <appendToFile value="true" />

                                <rollingStyle value="Date" />

                                <datePattern value="yyyy_MM_dd'\\LDAP.log'" />

                                <staticLogFileName value="false" />

                                <layout type="log4net.Layout.PatternLayout">

                                                <conversionPattern value="%date [%thread] %-5level %username %logger %method - %message%newline" />

                                </layout>

                </appender>

                <root>

                                <level value="WARN" />

                                <appender-ref ref="AdoNetAppender" />

                </root>

  1. Находим атрибут logger

                <logger name="Terrasoft.Core.LDAP" >

                                <level value="ALL" />

                                <appender-ref ref="ldapAppender" />

                </logger>

и устанавливаем  уровень логирования в ALL, вместо INFO или DEBUG

Если не находим, то добавляем. Пример:

                <root>

                                <level value="WARN" />

                                <appender-ref ref="AdoNetAppender" />

                </root>

                <logger name="Terrasoft.Core.LDAP" >

                                <level value="ALL" />

                                <appender-ref ref="ldapAppender" />

                </logger>

</log4net>

 

2. Если имеется ввиду то что, к примеру, создается пользователь (Администратор) который должен получить роль "Системные администраторы" а получает дополнительно роль "Все сотрудники компании" - то это корректное поведение приложения так как по логиге пользователь получает все родительские роли полученной роли, а так как роль системных администраторов является дочерней ролью Всех сотрудников компании то это правильно.

 

3. Необходимо сравнить атрибуты пользователелей в AD который попал в приложение при синхронизации и который не попал и уже после отталкиваться от результатов.

Показать все комментарии