LINUX.ORG.RU
решено ФорумAdmin

Новые ldap атрибуты для Сервисов

 


0

1

1) Дано:

Приложения или устройства (к примеру):

  • samba,
  • mikrotik,
  • webapp.

Пользователь в LDAP:

root@pc251:/home/petav/Documents/tid11152# ldapsearch -w pwdtext -x -D cn=admin,dc=company,dc=ru -h ldap.company.ru -b "dc=company,dc=ru" "(uid=user_av)"
# extended LDIF
#
# LDAPv3
# base <dc=company,dc=ru> with scope subtree
# filter: (uid=user_av)
# requesting: ALL
#

# user_av, salesdept, company.ru
dn: uid=user_av,ou=salesdept,dc=company,dc=ru
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn:: -
cn:: -
displayName:: -
sn:: -
givenName:: -
initials:: -
title:: -
uid: user_av
mail: user_av@company.ru
telephoneNumber: -
mobile:: -
roomNumber: 105
o: company
ou: salesdept
employeeType: full time
preferredLanguage: ru
labeledURI:: -
jpegPhoto: 
userPassword:: -

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1
root@pc251:/home/petav/Documents/tid11152# 

2) Требуется:

Разрешить пользователю сервис или нет. Со стороны сервиса вижу это так:

  • Подключаемся админом к LDAP,
  • Находим пользователя,
  • Смотрим разрешено ли ему это приложение,
  • пускаем или нет.

3) Вопрос:

Как правильно организовать для «Смотрим разрешено ли ему это приложение» хранение информации об этом в LDAP? Хранить требуется атрибуты к примеру для «mikrotik» они могут быть:

  • VPNAuth: on/off,
  • VPNIP: ,
  • ConnectOnlyWorkTime: yes/no,
★★★★★

Как правильно организовать для «Смотрим разрешено ли ему это приложение»

Ну есть атрибут authorizedService, он вполне себе может быть множественным.

Остальные приведенные тобой в пример атрибуты надо либо подбирать из имеющихся схем, либо писать свою.

Pinkbyte ★★★★★ ()
Ответ на: комментарий от Pinkbyte

либо писать свою.

Можно пример схемы попросить для случая mikrotik:

  • VPNAuth: on/off,
  • VPNIP: ,
  • ConnectOnlyWorkTime: yes/no,

Это даст мне точку изучения.

petav ★★★★★ ()
Ответ на: комментарий от petav

Откуда ты взял названия этих атрибутов? Mikrotik-то через RADIUS работает? Какие атрибуты используются там?

В VSA ничего похожего что-то не нахожу

Pinkbyte ★★★★★ ()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Ну есть атрибут authorizedService

Но не в этих классах:

  • objectClass: top
  • objectClass: person
  • objectClass: organizationalPerson
  • objectClass: inetOrgPerson

которые я использую?

petav ★★★★★ ()
Ответ на: комментарий от Pinkbyte

Да, он в классе authorizedServiceObject(внезапно, да)

Спасибо. В схеме ldapns.sheme

objectclass ( 1.3.6.1.4.1.5322.17.1.1 NAME 'authorizedServiceObject'

Схемы «ldapns.sheme» у меня не оказалось:

root@ldap691:/etc/ldap/schema# ls -l
total 220
-rw-r--r-- 1 root root  2036 May 16  2021 collective.ldif
-rw-r--r-- 1 root root  2180 May 16  2021 collective.schema
-rw-r--r-- 1 root root  1845 May 16  2021 corba.ldif
-rw-r--r-- 1 root root  2084 May 16  2021 corba.schema
-rw-r--r-- 1 root root 21196 May 16  2021 core.ldif
-rw-r--r-- 1 root root 21083 May 16  2021 core.schema
-rw-r--r-- 1 root root 12006 May 16  2021 cosine.ldif
-rw-r--r-- 1 root root 14030 May 16  2021 cosine.schema
-rw-r--r-- 1 root root  4842 May 16  2021 duaconf.ldif
-rw-r--r-- 1 root root  6249 May 16  2021 duaconf.schema
-rw-r--r-- 1 root root  3330 May 16  2021 dyngroup.ldif
-rw-r--r-- 1 root root  3289 May 16  2021 dyngroup.schema
-rw-r--r-- 1 root root  3481 May 16  2021 inetorgperson.ldif
-rw-r--r-- 1 root root  3915 May 16  2021 inetorgperson.schema
-rw-r--r-- 1 root root  2979 May 16  2021 java.ldif
-rw-r--r-- 1 root root  3295 May 16  2021 java.schema
-rw-r--r-- 1 root root   744 Jul 25 19:18 ldapns.schema
-rw-r--r-- 1 root root  2082 May 16  2021 misc.ldif
-rw-r--r-- 1 root root  2387 May 16  2021 misc.schema
-rw-r--r-- 1 root root  6809 May 16  2021 nis.ldif
-rw-r--r-- 1 root root  7640 May 16  2021 nis.schema
-rw-r--r-- 1 root root  3308 May 16  2021 openldap.ldif
-rw-r--r-- 1 root root  1514 May 16  2021 openldap.schema
-rw-r--r-- 1 root root  6904 May 16  2021 pmi.ldif
-rw-r--r-- 1 root root 21051 May 16  2021 pmi.schema
-rw-r--r-- 1 root root  4570 May 16  2021 ppolicy.ldif
-rw-r--r-- 1 root root  5274 May 16  2021 ppolicy.schema
-rw-r--r-- 1 root root  3512 May 16  2021 README
root@ldap691:/etc/ldap/schema# 

2) Соответственно «ldapns.sheme» не подключена:

root@ldap691:/etc/ldap/slapd.d/cn=config/cn=schema# ls -l
total 40
-rw------- 1 openldap openldap 15596 Jul 21 12:51 'cn={0}core.ldif'
-rw------- 1 openldap openldap 11381 Jul 21 12:51 'cn={1}cosine.ldif'
-rw------- 1 openldap openldap  6513 Jul 21 12:51 'cn={2}nis.ldif'
-rw------- 1 openldap openldap  2875 Jul 21 12:51 'cn={3}inetorgperson.ldif'
root@ldap691:/etc/ldap/slapd.d/cn=config/cn=schema# 
Подключу «ldapns.sheme» схему, добавлю «objectClass: authorizedServiceObject», смогу воспользоваться атрибутом «authorizedService».

petav ★★★★★ ()
Последнее исправление: petav (всего исправлений: 1)
Ответ на: комментарий от petav

Подключу «ldapns.sheme» схему, добавлю «objectClass: authorizedServiceObject», смогу воспользоваться атрибутом «authorizedService».

Выполнил. Спасибо

для случая mikrotik

По аналогии «ldapns.sheme» и с помощью «Apache Directory Studio» https://directory.apache.org/studio/ создам требуемую мне схему

Откуда ты взял названия этих атрибутов? Mikrotik-то через RADIUS работает? Какие атрибуты используются там? В VSA ничего похожего что-то не нахожу

Конфигурирует ansible обращаясь за данными... в ldap!

petav ★★★★★ ()
Последнее исправление: petav (всего исправлений: 1)
Ответ на: комментарий от petav

По аналогии «ldapns.sheme» и с помощью «Apache Directory Studio» https://directory.apache.org/studio/ создам требуемую мне схему

Схема (конвертированная в .ldif из .sheme)

root@ldap691:/etc/ldap/schema# cat /etc/ldap/schema/mikrotik.ldif
# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify.
# CRC32 07d002da
dn: cn=mikrotik,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: mikrotik
olcAttributeTypes: {0}( 1.1.2.1.1 NAME 'mikrotikVPNAuth' DESC 'Mikrotik VPN 
 access' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
olcAttributeTypes: {1}( 1.1.2.1.2 NAME 'mikrotikConnectOnlyWorkTime' DESC 'M
 ikrotik VPN access' SYNTAX 1.3.6.1.4.1.1466.115.121.1.7 )
olcAttributeTypes: {2}( 1.1.2.1.3 NAME 'mikrotikVPNAdress' DESC 'Mikrotik VP
 N access' EQUALITY caseIgnoreMatch SUBSTR caseIgnoreSubstringsMatch SYNTAX 
 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE )
olcObjectClasses: {0}( 1.1.2.2 NAME 'mikrotik' DESC 'Mikrotik VPN access' AU
 XILIARY MUST mikrotikVPNAuth MAY ( mikrotikVPNAdress $ mikrotikConnectOnlyW
 orkTime ) )
root@ldap691:/etc/ldap/schema#
Подключена в используемую «cn=scheme»
root@ldap691:/etc/ldap/schema# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/mikrotik.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=mikrotik,cn=schema,cn=config"

root@ldap691:/etc/ldap/schema#

Измен пользователь...
Тест...

root@pc251:/home/petav/Documents/tid11152# ldapsearch -w 573351 -x -D cn=admin,dc=company,dc=ru -h ldap.company.ru -b "dc=company,dc=ru" "(uid=user_av)" |grep VPN
mikrotikVPNAuth: TRUE
root@pc251:/home/petav/Documents/tid11152#
Ok!

petav ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.