আমি কীভাবে একটি ওপেনড্যাপ সার্ভারে বিপরীত গ্রুপ সদস্যতা রক্ষণাবেক্ষণ কনফিগার করব? (এর সদস্য)


18

আমি বর্তমানে একটি সিস্টেমে LDAP প্রমাণীকরণকে একীকরণ করার জন্য কাজ করছি এবং আমি LDAP গোষ্ঠীর উপর ভিত্তি করে অ্যাক্সেসকে সীমাবদ্ধ করতে চাই। এটি করার একমাত্র উপায় হ'ল অনুসন্ধান ফিল্টারের মাধ্যমে এবং তাই আমি বিশ্বাস করি যে আমার অনুসন্ধান বিকল্পটি আমার অনুসন্ধানের ফিল্টারটিতে "সদস্যআফ" বৈশিষ্ট্যটি ব্যবহার করা হবে only এটি আমার বোঝা যায় যে "সদস্যঅফ" বৈশিষ্ট্যটি একটি অপারেশনাল বৈশিষ্ট্য যা সার্ভারের দ্বারা যে কোনও সময় সার্ভারে কোনও "গ্রুপঅফনেমস" এন্ট্রি করার জন্য একটি নতুন "সদস্য" অ্যাট্রিবিউট তৈরি করা যায়। আমার মূল লক্ষ্যটি হ'ল একটি বিদ্যমান "গ্রুপঅফনেমস" এন্ট্রিতে একটি "সদস্য" বৈশিষ্ট্য যুক্ত করতে সক্ষম হবো এবং আমি সরবরাহ করা ডিএনতে একটি "মিলানঅফ" বৈশিষ্ট্য মিলে যাবে।

আমি এখন পর্যন্ত যা অর্জন করতে সক্ষম হয়েছি:

আমি এখনও এলডিএপি প্রশাসনের কাছে বেশ নতুন তবে ওপেনড্যাপ অ্যাডমিনের গাইডের মধ্যে যা পেয়েছি তার উপর ভিত্তি করে দেখে মনে হচ্ছে বিপরীত গ্রুপের সদস্যপদ মেইনটেন্স ওরফে " মেমোরফ ওভারলে" আমি যে প্রভাবটি সন্ধান করছি ঠিক তা অর্জন করবে।

আমার সার্ভার বর্তমানে ওপেনড্যাপ ২.৪.১৫ এর প্যাকেজ ইনস্টলেশন (উবুন্টুতে চড়) চালাচ্ছে যা "সিএন = কনফিগারেশন" স্টাইল রানটাইম কনফিগারেশন ব্যবহার করে। আমি যে উদাহরণগুলির সন্ধান পেয়েছি তার মধ্যে বেশিরভাগ স্থির কনফিগারেশনের পুরানো "slapd.conf" পদ্ধতিটি উল্লেখ করে এবং আমি কনফিগারেশনগুলিকে নতুন ডিরেক্টরি ভিত্তিক মডেলটির সাথে মানিয়ে নেওয়ার জন্য যথাসাধ্য চেষ্টা করেছি।

সদস্যের ওভারলে মডিউল সক্ষম করতে আমি নিম্নলিখিত এন্ট্রিগুলি যুক্ত করেছি:

#CModuleLoad দিয়ে মডিউল সক্ষম করুন

cn=config/cn\=module\{0\}.ldif

dn: cn=module{0}
objectClass: olcModuleList
cn: module{0}
olcModulePath: /usr/lib/ldap
olcModuleLoad: {0}back_hdb
olcModuleLoad: {1}memberof.la
structuralObjectClass: olcModuleList
entryUUID: a410ce98-3fdf-102e-82cf-59ccb6b4d60d
creatorsName: cn=config
createTimestamp: 20090927183056Z
entryCSN: 20091009174548.503911Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009174548Z

ডাটাবেসের জন্য ওভারলে সক্ষম করে এবং এটির ডিফল্ট সেটিংস ব্যবহারের অনুমতি দেয় (গ্রুপঅফনাম, সদস্য, সদস্যফ, ইত্যাদি)

cn=config/olcDatabase={1}hdb/olcOverlay\=\{0\}memberof

dn: olcOverlay={0}memberof
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: {0}memberof
structuralObjectClass: olcMemberOf
entryUUID: 6d599084-490c-102e-80f6-f1a5d50be388
creatorsName: cn=admin,cn=config
createTimestamp: 20091009104412Z
olcMemberOfRefInt: TRUE
entryCSN: 20091009173500.139380Z#000000#000#000000
modifiersName: cn=admin,cn=config
modifyTimestamp: 20091009173500Z

আমার বর্তমান ফলাফল:

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

  1. একটি বিদ্যমান "গ্রুপ অফনেমস" এ "সদস্য" বৈশিষ্ট্য যুক্ত করুন এবং একটি সম্পর্কিত "সদস্যআফ" বৈশিষ্ট্য স্বয়ংক্রিয়ভাবে তৈরি করা হবে।
  2. একটি "সদস্য" বৈশিষ্ট্য সরান এবং সংশ্লিষ্ট "সদস্যঅফ" গুণাবলী "স্বয়ংক্রিয়ভাবে সরানো হবে।

উত্তর:


10

আমি একই জিনিস নিয়ে লড়াই করে যাচ্ছি, ওপেনড্যাপ ডকুমেন্টেশনটি ন্যূনতম এবং খুব কমই সহায়ক। যখন তারা কোনও কনফিগার ডাটাবেসে যায় (নীতিগত দিক থেকে কোনও খারাপ ধারণা নয়) তখন সমস্ত বিকল্প পরিবর্তিত হয় যখন লোকেরা /etc/ldap/slapd.conf থেকে উদাহরণ দিচ্ছে তবে এটি একটি আধুনিক স্ল্যাপডি কনফিগারেশনের (যেমন উবুন্টু) দ্বারা অকেজো।

অবশেষে আমি এই কাজ পেয়েছিলাম। এখানে সংক্ষিপ্তসার ... প্রথম এলডিআইএফ ফাইল:

dn: cn=module,cn=config
objectClass: olcModuleList
cn: module
olcModulePath: /usr/lib/ldap
olcModuleLoad: memberof

দ্বিতীয় এলডিআইএফ ফাইল:

dn: olcOverlay=memberof,olcDatabase={1}hdb,cn=config
objectClass: olcMemberOf
objectClass: olcOverlayConfig
objectClass: olcConfig
objectClass: top
olcOverlay: memberof
olcMemberOfDangling: ignore
olcMemberOfRefInt: TRUE
olcMemberOfGroupOC: groupOfNames
olcMemberOfMemberAD: member
olcMemberOfMemberOfAD: memberOf

এগুলি ldapadd (সাধারণ কনফিগার স্টাফের মতো) ব্যবহার করে কনফিগার ডাটাবেসে যুক্ত করুন।

এটি ডাটাবেসে বিদ্যমান ডেটাটি স্বয়ংক্রিয়ভাবে আপডেট হয় না , সুতরাং অস্থায়ী ফাইলে সমস্ত কিছু অনুলিপি করতে আমার স্ল্যাপকেট ব্যবহার করা দরকার ছিল এবং প্রতিটি গ্রুপ ঘুরে দেখা যায়, গোষ্ঠীটি মুছে ফেলা হয় এবং আবার একই গোষ্ঠীটি আবার যুক্ত করতে পারি (সদস্যটিকেঅফ্ট্রিবিউটগুলি আপডেট করতে বাধ্য করে) সঠিকভাবে)। আপনি যদি খালি ডেটাবেস দিয়ে শুরু করে থাকেন তবে অবজেক্ট যুক্ত হওয়ার সাথে সাথে এটি বৈশিষ্ট্যগুলি সঠিকভাবে আপডেট করবে।

এছাড়াও, নোট করুন যে "ওলসিডেটিবেস = {1} এইচডিবি" খুব সাধারণ, তবে আপনার সেটআপের সাথে মেলে না এমন গ্যারান্টিযুক্ত। অবশ্যই এটি পরীক্ষা করে দেখুন।


1
নয় slapadd(বন্ধ ডাটাবেসের সম্মুখের) এটা করতে সঠিক ভাবে?
mad_vs

11

আমি সম্প্রতি আমার ব্লগে এই সম্পর্কে লিখেছি, www.jordaneunson.com আমি প্রাসঙ্গিক অংশগুলি অনুলিপি করে আটকালাম।

আমার যা করতে হবে তা ছিল আমার এলডিএপি সার্ভারে "স্ল্যাপড" পরিষেবাটি বন্ধ করে দেওয়া এবং আমার স্ল্যাপডকনফ ফাইলটি সম্পাদনা করে নিম্নলিখিত দুটি লাইন যুক্ত করা।

moduleload memberof.la
overlay memberof

আমার ইতিমধ্যে ভিপিএন নামে একটি গ্রুপআফনেম ছিল সুতরাং আমাকে নিম্নলিখিত লিখিত সামগ্রীগুলির সাথে একটি এলডিআইএফ ফাইল তৈরি করতে হবে:

dn: cn=vpn,ou=Groups,dc=shop,dc=lan
objectclass: groupofnames
cn: vpn
description: Users allowed to connect on VPN
member: uid=jordan,ou=People,dc=shop,dc=lan

এবং এটি আমার ldap ডাটাবেসে যুক্ত করেছে

slapadd -f file.ldif

এর পরে ত্রুটিগুলি যাচাই করার জন্য আমি ডিবাগে ldap সার্ভারটি বরখাস্ত করেছি

slapd -d 99 -f /etc/ldap/slapd.conf 

এবং নিশ্চিত হয়ে গেছে কিনা তা পরীক্ষা করে দেখুন যে "ভিপিএন" এর আমার সদস্যপদটি আমার ব্যবহারকারীর প্রবেশের তালিকাভুক্ত রয়েছে।

ldapsearch -h ldap -x -b "dc=shop,dc=lan" '(uid=jordan)' memberOf 

ও বাম! সাফল্য!

jordan, People, shop.lan
dn: uid=jordan,ou=People,dc=shop,dc=lan
memberOf: cn=vpn,ou=Groups,dc=shop,dc=lan

তাই আমি চড়-থাপ্পড় পরিষেবাটি ব্যাক আপ করে দিয়েছি এবং তার পর থেকে অনেক সাফল্য পেয়েছি। একটি নতুন জিইউআই পরিচালন সরঞ্জামের জন্য আমি পিএইচপিএলডিএপিএডমিন ব্যবহার করছি এবং সদস্যপত্নীকৃত বৈশিষ্ট্যটি আমার ব্যবহারকারীদের কাছে নিযুক্ত করা এবং নিযুক্ত করাতে কোনও সমস্যা নেই।

একটি সর্বশেষ বিষয় লক্ষণীয় যে "সদস্যঅফ" বৈশিষ্ট্যটি বেসিক এলডিএপি ভি 3 স্কিমার অংশ নয় এবং সুতরাং একটি এলডিপ্যাসার্ক করা সুনির্দিষ্টভাবে জিজ্ঞাসা করা না হলে এই বৈশিষ্ট্যটি প্রকাশ করতে পারে না। এজন্য আমার উপরের উদাহরণে এটি ldapsearch পরামিতিগুলির শেষে ঘোষণা করা হয়েছে।

আশাকরি এটা সাহায্য করবে.

সম্পাদনা: আমি কেবল অ্যাপাচি ডিরেক্টরি স্টুডিওতে আপনার সমস্যাটি পরীক্ষা করেছি: যতক্ষণ আমি উপরে উল্লিখিত হিসাবে অ্যাট্রিবিউটের সদস্য মানটি প্রবেশ করি ততক্ষণ এটি এ-ওকে কাজ করে। তবে সদস্যের অ্যাট্রিবিউটটি ব্যবহারকারীর এন্ট্রিতে প্রদর্শিত হবে না। এটি কারণ কারণ সদস্যরফের গুণাবলী এলডিএপিভি 3 স্কিমার অংশ নয়। এটি রয়েছে কিনা তা যাচাই করতে কমান্ড লাইন সরঞ্জামটি ldapsearch ব্যবহার করুন:

ldapsearch -h ldap -x -b "dc=shop,dc=lan" '(uid=jordan)' memberOf 

1
মডিউলটি লোড করা এবং ওভারলে যুক্ত করা ঠিক আমি দুর্ভাগ্যক্রমে করেছিলাম। যেহেতু আমি বলেছি যে সমস্যাটি এই নয় যে নতুন গ্রুপঅফনেম এন্ট্রিগুলির জন্য "মেম্বারফ" বৈশিষ্ট্যগুলি যুক্ত করা হয়নি, আমি যখন কোনও বিদ্যমান গোষ্ঠীতে কেবল "সদস্য" বৈশিষ্ট্য যুক্ত করি তখন সেগুলি যুক্ত করা হয় না। আমি বর্তমানে আমার এলডিএপি ব্রাউজ এবং কনফিগার করতে অ্যাপাচি ডিরেক্টরি স্টুডিওটি ব্যবহার করছি যাতে এটি ব্রাউজ করার সময় সদস্যের প্রবেশপত্রগুলি দেখায়। এটি তাদের লুকিয়ে থাকার বিষয় নয়।
এমিলস

1
আপনি গ্রুপঅফনেমে সদস্য বৈশিষ্ট্যটি কীভাবে তৈরি করছেন? এটি কি পুরো ডিএন ব্যবহার করছে? যেমন: "uid = ব্যবহারকারী, আউট = জনগণ, ডিসি = কর্পোরেশন, ডিসি = অর্গ" বা আপনি কেবল তাদের ব্যবহারকারীর নাম পূরণ করছেন? বিপরীত ম্যাপিংয়ের কাজ করার জন্য আপনাকে পুরো ডিএন ব্যবহার করতে হবে যাতে সদস্যবৃন্দ বিপরীত মানচিত্রটি কোথায় রাখবেন তা জানেন।
জর্ডান ইউনসন

1
সম্পাদনা: আমি কেবল অ্যাপাচি ডিরেক্টরি স্টুডিওতে আপনার সমস্যাটি পরীক্ষা করেছি, যতক্ষণ না আমি উপরে উল্লিখিত সামগ্রীর হিসাবে অ্যাট্রিবিউটের সদস্য মানটি এ-ওকে কাজ করে। তবে সদস্যের বৈশিষ্ট্যটি ব্যবহারকারীর এন্ট্রিতে প্রদর্শিত হবে না। এটি কারণ কারণ সদস্যরফের গুণাবলী এলডিএপিভি 3 স্কিমার অংশ নয়। এটি যাচাই করতে কমান্ড লাইন সরঞ্জাম ldapsearch ব্যবহার করুন। <code> ldapsearch -h ldap -x -b "ডিসি = শপ, ডিসি = ল্যান" '(ইউআইডি = জর্দান)' এর সদস্য </ কোড>
জর্ডান ইউনসন

1
আমি সদস্য প্রবেশে ডিএন ব্যবহার করছি। এটি না দেখার বিষয় নয়, যেমনটি আমি ইতিমধ্যে বলেছি যে তারা একটি নতুন গ্রুপের সাথে কেবল যুক্ত হয়ে যায় (এবং তাই দৃশ্যমান) ওফনেমস যুক্ত করা হয়, যখন আমি কোনও বিদ্যমান গ্রুপে সদস্যের বৈশিষ্ট্য যুক্ত করি না not

1
<quote> এগুলি কেবল যুক্ত হয় (এবং তাই দৃশ্যমান) </ quot> আমি দুঃখিত তবে এই বিবৃতিটি ভুল is আপনি যদি এটির জন্য বিশেষভাবে জিজ্ঞাসা না করেন তবে সদস্যের অ্যাট্রিবিউটটি দৃশ্যমান নয়। আপনি দয়া করে উপরে তালিকাভুক্ত ldapsearch কমান্ডের আউটপুট পোস্ট করতে পারেন? ব্যবহারকারীকে এমন একজনে পরিবর্তন করুন যার সদস্যপদ থাকতে হবে তবে তার বৈশিষ্ট্য নেই।
জর্দান ইউসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.