LDAP

Canaille அதன் முக்கிய தரவுத்தளமாக OpenLDAP ஐப் பயன்படுத்தலாம். CANAILLE_LDAP கட்டமைப்பு அளவுரு வரையறுக்கப்படும் போது இது பயன்படுத்தப்படுகிறது. உதாரணமாக:

config.toml
[CANAILLE_LDAP]
URI = "ldap://ldap"
ROOT_DN = "dc=example,dc=org"
BIND_DN = "cn=admin,dc=example,dc=org"
BIND_PW = "very-secret-password"

USER_BASE = "ou=users,dc=example,dc=org"
USER_CLASS = "inetOrgPerson"

GROUP_BASE = "ou=groups,dc=example,dc=org"

நீங்கள் TOTP/HOTP அங்கீகாரத்தைப் பயன்படுத்த விரும்பினால், பயனருக்கு oathHOTPToken வகுப்பைச் சேர்க்க வேண்டும்:

USER_CLASS = ["inetOrgPerson", "oathHOTPToken"]

LDAP உள்ளமைவு பற்றிய கூடுதல் விவரங்களை dedicated பிரிவில் இல் காணலாம்.

Note

தற்போது, inetOrgPerson`, ``oathHOTPToken` மற்றும் ``groupOfNames ச்கீமாக்கள் மட்டுமே சோதிக்கப்பட்டன. நீங்கள் வெவ்வேறு ச்கீமாக்கள் அல்லது LDAP சேவையகங்களைப் பயன்படுத்த விரும்பினால், தழுவல்கள் தேவைப்படலாம். இணைப்புகள் வரவேற்கப்படுகின்றன.

OpenLDAP மேலடுக்கு ஒருங்கிணைப்பு

Canaille பல OpenLDAP மேலடுக்குகளுடன் ஒருங்கிணைக்க முடியும்:

உறுப்பினர் / புதுப்பித்தல்

உறுப்பினரின் மற்றும் refint <https://www.openldap.org/doc/admin26/overlays.html> மேற்படிப்புகளுக்குத் தேவை. Canaille குழு உறுப்பினர் சரியாக வேலை செய்ய.

இங்கே canaille உடன் இணக்கமான உள்ளமைவு எடுத்துக்காட்டு:

memberof-config.ldif
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModuleLoad: memberof

dn: olcOverlay=memberof,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf
refint-config.ldif
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModuleLoad: refint

dn: olcOverlay=refint,olcDatabase={1}mdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: refint
olcRefintAttribute: memberof
olcRefintAttribute: member
olcRefintAttribute: manager
olcRefintAttribute: owner

உள்ளமைவு கோப்புகளை நீங்கள் மாற்றியமைத்து ஏற்றலாம்:

# Adapt those commands according to your setup
$ sudo ldapadd -Q -H ldapi:/// -Y EXTERNAL -f memberof-config.ldif
$ sudo ldapadd -Q -H ldapi:/// -Y EXTERNAL -f refint-config.ldif

கொள்கை

ppolicy மேலடுக்கு உள்ளமைக்கப்பட்டு, pwdEndTime பண்புக்கூறு இருந்தால் (OpenLDAP 2.6 இல் உள்ளதால்), கணக்கு பூட்டுதல் உதவி செயல்படுத்தப்படும். கணக்கு காலாவதியை நிர்வகிக்க பயனர்களை அனுமதிக்க, அவர்கள் lock_date பண்புக்கூறில் எழுத அனுமதியைப் பெற்றிருக்க வேண்டும்.

இங்கே canaille உடன் இணக்கமான உள்ளமைவு எடுத்துக்காட்டு:

ppolicy-config.ldif
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModuleLoad: ppolicy

dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
objectClass: olcPPolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=passwordDefault,dc=example,dc=org
olcPPolicyUseLockout: TRUE
ppolicy.ldif
dn: cn=passwordDefault,dc=example,dc=org
objectClass: person
objectClass: top
objectClass: pwdPolicy
sn: passwordDefault
cn: passwordDefault
pwdAttribute: userPassword
pwdMustChange: TRUE
pwdLockout: TRUE
pwdAllowUserChange: TRUE
pwdGraceAuthNLimit: 1
pwdMaxFailure: 999

உள்ளமைவு கோப்புகளை நீங்கள் மாற்றியமைத்து ஏற்றலாம்:

# Adapt those commands according to your setup
$ sudo ldapadd -Q -H ldapi:/// -Y EXTERNAL -f ppolicy-config.ldif
$ sudo ldapadd -Q -H ldapi:/// -Y EXTERNAL -f ppolicy.ldif

otp

otp மேலடுக்கு உள்ளமைக்கப்பட்டிருந்தால், canaille இல் நீங்கள் ஒரு முறை கடவுக்குறியீடு அங்கீகாரத்தைச் சேர்க்க முடியும்.

இங்கே canaille உடன் இணக்கமான உள்ளமைவு எடுத்துக்காட்டு:

otp-config.ldif
dn: cn=module,cn=config
cn: module
objectClass: olcModuleList
olcModuleLoad: otp

dn: olcOverlay=otp,olcDatabase={1}mdb,cn=config
objectClass: olcOverlayConfig
olcOverlay: otp

இந்த உள்ளமைவு கோப்பை நீங்கள் மாற்றியமைத்து ஏற்றலாம்:

# Adapt this command according to your setup
$ sudo ldapadd -Q -H ldapi:/// -Y EXTERNAL -f otp-config.ldif

பயனருக்கு ஒத்ஆப்டோக்கன் வகுப்பையும் சேர்க்க வேண்டும்:

config.toml
[CANAILLE_LDAP]
...
USER_CLASS = ["inetOrgPerson", "oathHOTPToken"]

கைமுறை திட்ட நிறுவல்

<cli_install>` install கட்டளையைப் பயன்படுத்தி ச்கீமா நிறுவலைத் தானாகவே செய்யலாம். சில காரணங்களால் நீங்கள் ச்கீமாக்களை கைமுறையாக நிறுவ விரும்பினால், எப்படி செய்வது என்பது இங்கே. முதலில், உங்கள் கணினியில் ``oauth2-openldap.ldif` ஐக் கண்டறிய வேண்டும் அல்லது அதை Canaille களஞ்சியத்திலிருந்து நகலெடுக்க வேண்டும்.

ldapadd ஐப் பயன்படுத்துகிறது

$ sudo ldapadd -Q -H ldapi:/// -Y EXTERNAL -f /path/to/oauth2-openldap.ldif

slapadd ஐப் பயன்படுத்துகிறது

slapadd ஐ இயக்கும் முன் உங்கள் ldap சேவையகத்தை நிறுத்த கவனமாக இருக்கவும்

$ sudo service slapd stop
$ sudo -u openldap slapadd -n0 -l /path/to/oauth2-openldap.ldif
$ sudo service slapd start

திட்ட மேம்படுத்தல்

OpenLDAP ச்கீமாக்களை நகர்த்துவதற்கான வழியை வழங்கவில்லை. Canaille அதன் சொந்த LDAP OIDC திட்டங்களை வழங்குகிறது, அதிர்ச்டவசமாக அவை மிகவும் நிலையானவை, ஆனால் திருத்தங்கள் நடக்கலாம். LDAP திட்டங்களைப் புதுப்பிப்பது ஒரு தந்திரமான செயலாக இருக்கலாம், இந்தப் படிகளைப் பின்பற்றுவதே இதை அடைவதற்கான பாதுகாப்பான வழி:

காப்பு மற்றும் சுத்திகரிப்பு

முதலில், OIDC ஆப்செக்ட்களை காப்புப் பிரதி எடுப்போம், பின்னர் அவற்றை தரவுத்தளத்திலிருந்து அகற்றுவோம். எதிர்பாராத ஏதாவது நடந்தால், உங்கள் சொந்த காப்புப்பிரதிகளையும் செய்யவும்.

OIDC தொடர்பான பொருட்களை காப்புப் பிரதி எடுத்து சுத்தப்படுத்தவும்
$ canaille dump client authorizationcode consent token > dump.json
$ canaille delete client --noconfirm
$ canaille delete authorizationcode --noconfirm
$ canaille delete consent --noconfirm
$ canaille delete token --noconfirm

பழைய திட்டத்தை நீக்கவும்

பழைய ச்கீமாவை நீக்க slapmodify கட்டளையைப் பயன்படுத்தலாம். உங்கள் LDAP சேவையகம் முடக்கப்பட்டிருக்கும் போது இது செயல்படுத்தப்பட வேண்டும்.

ச்லாப்மாடிஃபை மூலம் பழைய ச்கீமாவை நீக்குதல்
$ sudo slapmodify -n0 <<EOL
dn: cn=oauth,cn=schema,cn=config
changetype: delete
EOL

புதிய திட்டத்தைச் சேர்க்கவும்

புதிய திட்டத்தைச் சேர்க்க, install கட்டளை ஐ இயக்கவும் அல்லது கைமுறை திட்ட நிறுவல் பிரிவில் உள்ள வழிமுறைகளைப் பின்பற்றவும்.

தரவை மீட்டெடுக்கவும்

இப்போது ச்கீமாக்கள் புதுப்பிக்கப்பட்டதால், சேமித்த தரவை மீட்டெடுக்கலாம்:

OIDC தொடர்பான பொருட்களை மீட்டெடுக்கவும்
$ canaille restore < dump.json