মূল বিষয়বস্তুতে যান

LDAP Security

সংক্ষিপ্ত বিবরণ

Managing user credentials across multiple services can be challenging. এলডিএপি ( Lightweight Directory Access Protocol) offers a centralized solution, enabling single sign-on (SSO) and streamlining user management.

Ilum integrates smoothly with LDAP servers. Configuration is handled via Helm, allowing you to set connection details, define authentication queries, and map LDAP attributes to Ilum’s internal user model.

Attribute mapping is flexible: you can link LDAP groups and roles—including relationships such as user-to-group and group-to-role—and map user attributes like email, full name, and description directly to Ilum profiles.

Once LDAP integration is set up, users log in to Ilum using their LDAP credentials. Ilum automatically synchronizes user data from the LDAP server according to your Helm configuration, creating and updating profiles and permissions as needed.


কুইক স্টার্ট

LDAP is available as a module in Ilum, making the setup straightforward.

Set the following values:

ইলুম-কোর : 
নিরাপত্তা :
টাইপ : এলডিএপি

Openldap :
সক্ষম : সত্য

This configuration deploys an OpenLDAP server with default settings and connects Ilum Core to it.

The default OpenLDAP server is accessible at ldap://ilum-openldap:389 and includes two sample users:

  • ilumadmin (password: অ্যাডমিন )
  • ilumuser (password: ব্যবহারকারী )
তথ্য

For more details on Ilum’s OpenLDAP usage, visit our Artifact Hub page.

Manual OpenLDAP Setup

After testing the default configuration, you may wish to set up your own OpenLDAP instance. Here are some configuration options to consider:

সার্বিক : 
ldapDomain: ilum.cloud # Your LDAP domain (requirement of the OpenLDAP chart, not Ilum)

ইলুম-কোর :
নিরাপত্তা :
টাইপ : এলডিএপি
এলডিএপি :
ইউআরএল :
- এলডিএপি : ইলুম - Openldap : 389 # OpenLDAP URL
ilumToLdapSync: মিথ্যা # More on this below
ভিত্তি : "dc=ilum,dc=cloud" # Base DN for LDAP
প্রশাসক : # Usernames of users which should be made admins
- ilumadmin
passwordEncoder : অভিযোজিত
ইউজারম্যাপিং : # Mapping between LDAP and Ilum user attributes
# The enabled and enabledValue attributes are important for user activation
সক্ষম : employeeType
সক্ষম মান : active
# ...
গ্রুপম্যাপিং : # Mapping between LDAP and Ilum group attributes
# ...
রোলম্যাপিং : # Mapping between LDAP and Ilum role attributes
# ...

Default OpenLDAP LDIF files Ilum uses:

00-root.ldif:  | -  # This file is used to create the root domain - the first step in the LDAP setup
ডিএন : dc=ilum, dc=cloud
অবজেক্টক্লাস : শীর্ষ
অবজেক্টক্লাস : ডোমেন
o: ইলুম

01-organizational-units.ldif: | - # This file is used to create the organizational units in the LDAP
ডিএন : ou=groups, dc=ilum, dc=cloud
অবজেক্টক্লাস : শীর্ষ
অবজেক্টক্লাস : সাংগঠনিক ইউনিট
: গোষ্ঠী

ডিএন : ou=উপগোষ্ঠী , dc=ilum, dc=cloud
অবজেক্টক্লাস : শীর্ষ
অবজেক্টক্লাস : সাংগঠনিক ইউনিট
: উপগোষ্ঠী

ডিএন : উ = মানুষ , dc=ilum, dc=cloud
অবজেক্টক্লাস : শীর্ষ
অবজেক্টক্লাস : সাংগঠনিক ইউনিট
: মানুষ

02-admin-user.ldif: | - # This file is used to create the admin user in the LDAP
ডিএন : uid=ilumadmin, উ = মানুষ , dc=ilum, dc=cloud
অবজেক্টক্লাস : শীর্ষ
অবজেক্টক্লাস : ব্যক্তি
অবজেক্টক্লাস : সাংগঠনিক ব্যক্তি
অবজেক্টক্লাস : inetOrgPerson
সিএন : Ilum Admin
এসএন : Admin
ইউআইডি : ilumadmin
মেইল : [email protected]
বর্ণনা : Ilum Admin
ব্যবহারকারীর পাসওয়ার্ড : অ্যাডমিন
employeeType: active

03-user.ldif: | - # This file is used to create the user in the LDAP
ডিএন : uid=ilumuser, উ = মানুষ , dc=ilum, dc=cloud
অবজেক্টক্লাস : শীর্ষ
অবজেক্টক্লাস : ব্যক্তি
অবজেক্টক্লাস : সাংগঠনিক ব্যক্তি
অবজেক্টক্লাস : inetOrgPerson
সিএন : Ilum User
এসএন : ব্যবহারকারী
ইউআইডি : ilumuser
মেইল : [email protected]
বর্ণনা : Ilum User
ব্যবহারকারীর পাসওয়ার্ড : ব্যবহারকারী
employeeType: active
নোট

For more information about the OpenLDAP chart used by Ilum, see its GitHub repository বা Artifact Hub page.


LDAP with SSL

For secure connections, Ilum fully supports LDAPS (LDAP over SSL).

To enable LDAPS:

  • Provide a truststore containing your LDAP server’s CA certificate. See the Truststore documentation for details.
  • (Optional) Provide a keystore if your LDAP server requires mutual TLS (mTLS) with a client certificate.

Keystore Configuration

Prepare a PKCS#12 file containing your client certificate and private key:

openssl pkcs12 -export -in client.crt -inkey client.key -certfile ca.crt -name "client-cert" -out client.p12 -password pass:yourpassword

Create a Kubernetes secret with the keystore:

kubectl create secret generic ilum-keystore --from-file=keystore.p12=client.p12

Helm Configuration for LDAPS

আপনার মধ্যে মূল্যবোধ.ইয়ামল , configure LDAP to use LDAPS and reference the truststore (and optionally keystore):

ইলুম-কোর : 
নিরাপত্তা :
টাইপ : "এলডিএপি"
এলডিএপি :
ইউআরএল :
- "ldaps://openldap:636" # Use ldaps:// and the correct port (standard port is 636)
ট্রাস্টস্টোর :
সক্ষম : সত্য
# ...
কীস্টোর :
সক্ষম : সত্য
গোপন নাম : "ilum-keystore" # Name of the Kubernetes secret
secretFileName : "কীস্টোর.পি 12" # File name within the secret
পাসওয়ার্ড : "চেঞ্জ মিপ্লিজ" # Keystore password

ILUM ↔ LDAP Synchronization

Ilum supports bidirectional synchronization with LDAP. When enabled, changes to users, groups, or roles in Ilum are automatically reflected in LDAP.

To enable synchronization, set ilum-core.security.ldap.ilumToLdapSyncকরতে সত্য in your Helm configuration.

LDAP Sync From in Ilum UI Selecting this checkbox in the UI enables user synchronization with LDAP

Synchronization covers users, groups, and roles, provided attribute mappings are correctly defined in your Helm মূল্যবোধ.ইয়ামল .


সম্পূর্ণ কনফিগারেশন

A complete configuration example:

ইলুম-কোর : 
নিরাপত্তা :
টাইপ : এলডিএপি
এলডিএপি :
ভিত্তি : "<your_base_dn>"
ইউআরএল :
- এলডিএপি : <ডোমেইন > : <বন্দর >
ব্যবহারকারীর নাম : "<your_admin_username>"
পাসওয়ার্ড : "<your_admin_password>"
passwordEncoder : <chosen_password_encoder >
প্রশাসক :
- <অ্যাডমিন - ব্যবহারকারী >
ইউজারম্যাপিং :
ভিত্তি : "<your_user_base>"
ফিল্টার : "<your_filter>"
পাসওয়ার্ড : "<your_password>"
ব্যবহারকারীর নাম : "<your_username>"
পুরো নাম : "<your_fullname>"
বর্ণনা : "<your_description>"
ডিপার্টমেন্ট : "<your_department>"
ইমেল : "<your_email>"
সক্ষম : "<your_enabled>"
সক্ষম মান : "<your_enabled_value>"
গ্রুপম্যাপিং :
ভিত্তি : "<your_group_base>"
ফিল্টার : "<your_filter>"
সদস্যঅ্যাট্রিবিউট : "<your_member_attribute>"
roleFilterAttribute : "<your_role_filter_attribute>"
নাম : "<your_name>"
বর্ণনা : "<your_description>"
ভূমিকা : "<your_roles>"
সক্ষম : "<your_enabled>"
সক্ষম সত্য : "<your_enabled_true>"
রোলম্যাপিং :
ভিত্তি : "<your_role_base>"
ফিল্টার : "<your_filter>"
সদস্যঅ্যাট্রিবিউট : "<your_member_attribute>"
নাম : "<your_name>"
বর্ণনা : "<your_description>"
সক্ষম : "<your_enabled>"
সক্ষম সত্য : "<your_enabled_true>"

সক্ষম , সক্ষম সত্য

These options map the ENABLED/DISABLED state from LDAP to Ilum.

  • সক্ষম : Name of the LDAP attribute containing the state.
  • সক্ষম সত্য (অথবা সক্ষম মান for users): Value representing ENABLED.

Example mapping:

ডিএন: ইউআইডি = জর্জ, ওইউ = মানুষ, ডিসি = স্প্রিংফ্রেমওয়ার্ক, ডিসি = অর্গ 
অবজেক্টক্লাস: শীর্ষ
অবজেক্টক্লাস: ব্যক্তি
অবজেক্টক্লাস: সাংগঠনিক ব্যক্তি
objectclass: inetOrgPerson
সিএন: জর্জ আর্ডেনসন
মেইল: [email protected]
বর্ণনা: জালিয়াতি সনাক্তকরণে ডেটা বিজ্ঞানী
ইউআইডি: জর্জ
ব্যবহারকারীর পাসওয়ার্ড: পাস করুন
স্ট্যাটাস: অন

Configuration:

ইউজারম্যাপিং : 
সক্ষম : "স্ট্যাটাস"
সক্ষম মান : "চালু"

You can similarly map states for roles and groups.

নোট

By default, সত্য এবং সক্ষম are interpreted as ENABLED.

সতর্কীকরণ

Ensure a valid value is set for the সক্ষম attribute. Otherwise, Ilum will treat users as DISABLED by default.

ভূমিকা এবং roleFilterAttribute

These options map group-to-role relationships from LDAP to Ilum.

  • ভূমিকা : Group attribute containing role names.
  • roleFilterAttribute : Optionally binds values from ভূমিকা to an attribute in the LDAP role.

Example mapping:

ডিএন: সিএন = ডেটাসায়েন্টিস্ট, ওইউ = সাবগ্রুপ, ডিসি = স্প্রিংফ্রেমওয়ার্ক, ডিসি = অর্গ 
অবজেক্টক্লাস: শীর্ষ
অবজেক্টক্লাস: গ্রুপঅফনেমস
সিএন: ডেটা সায়েন্টিস্ট
সদস্য: ইউআইডি = জর্জ
বিভাগ: "সামগ্রিক তথ্য বিশ্লেষণ"
পরিচয়: "KQ320"

ডিএন: সিএন = ব্যবহারকারী, ওইউ = সাবগ্রুপ, ডিসি = স্প্রিংফ্রেমওয়ার্ক, ডিসি = অর্গ
অবজেক্টক্লাস: শীর্ষ
অবজেক্টক্লাস: গ্রুপঅফনেমস
সিএন: ডেটা সায়েন্টিস্ট
সদস্য: ইউআইডি = এলিস
সদস্য: ইউআইডি = বব
সদস্য: ইউআইডি = জর্জ
বিভাগ: "সামগ্রিক তথ্য বিশ্লেষণ"
ভূমিকা: কেকিউ 320
ভূমিকা: বিআর 200
ভূমিকা: এলএল 100

Configuration:

গ্রুপম্যাপিং : 
ভূমিকা : উপগোষ্ঠী
roleFilterAttribute : অন্তঃসত্ত্
নোট

If roleFilterAttribute is not set, Ilum will match LDAP roles by name or create new ones as needed

passwordEncoder

Supported values:

  • অভিযোজিত
  • বিক্রিপ্ট
  • এমডি৫
  • এসএইচএ২৫৬

These specify the password encoder used by your LDAP server.

By default, Ilum uses the adaptive encoder, which detects the prefix (e.g., {bcrypt}বা {noop}) and selects the appropriate encoder for credential verification. If no prefix is present, no encoder is applied.