আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশনে যান । তথ্য
কি
LDAP নীতি প্রদান করে:
- প্রমাণীকরণ : অনুরোধে সরবরাহ করা ব্যবহারকারীর শংসাপত্রগুলি LDAP প্রদানকারীর শংসাপত্রগুলির বিরুদ্ধে যাচাই করা হয়৷ LDAP নীতি আপনাকে প্রমাণীকরণের সাথে অনেক নমনীয়তা দেয়, আপনাকে পাসওয়ার্ডের সাথে যেকোনো DN মান ব্যবহার করতে দেয়, এমনকি যদি আপনি চান সেই DN মান অনুরোধে না থাকে। উদাহরণস্বরূপ, বলুন আপনাকে প্রমাণীকরণের জন্য ইমেল/পাসওয়ার্ড ব্যবহার করতে হবে। নিম্নলিখিত বিকল্পগুলি সম্ভব:
- যদি ইমেলটি অনুরোধে থাকে, তাহলে আপনি LDAP প্রমাণীকরণের জন্য পাসওয়ার্ড দিয়ে এটি ব্যবহার করতে পারেন।
- যদি ইমেলটি অনুরোধে না থাকে, তবে অন্য একটি DN বৈশিষ্ট্য (যেমন ফোন নম্বর), আপনি LDAP থেকে সংশ্লিষ্ট ইমেল পেতে ফোন নম্বর ব্যবহার করতে পারেন, তারপর প্রমাণীকরণের জন্য ইমেল/পাসওয়ার্ড ব্যবহার করুন৷
- বিশিষ্ট নাম (DN) অনুসন্ধান : প্রমাণীকরণ ছাড়াও, আপনি অনুরোধে একটি ব্যবহারকারীর বৈশিষ্ট্য সনাক্ত করতে LDAP নীতি ব্যবহার করতে পারেন, যেমন ইমেল, এবং একটি প্রশ্ন সম্পাদন করতে পারেন যা সেই ব্যবহারকারীর জন্য LDAP থেকে অন্যান্য DN বৈশিষ্ট্যগুলি পুনরুদ্ধার করে৷ পুনরুদ্ধার করা DN একটি পরিবর্তনশীল মধ্যে সংরক্ষণ করা হয়.
LDAP নীতি ব্যবহার করুন যখন সুরক্ষিত সংস্থানগুলিতে অ্যাক্সেস আপনার LDAP প্রদানকারীর ব্যবহারকারীদের মধ্যে সীমাবদ্ধ হওয়া উচিত—যেমন আপনার প্রশাসক ব্যবহারকারী, সংস্থার ব্যবহারকারী এবং বিকাশকারীরা—বিশেষ করে যখন OAuth টোকেন অ্যাক্সেস হয় অপ্রয়োজনীয় বা খুব ভারী। নীতিটি API প্রক্সি ফ্লোতে ব্যবহারের জন্য ডোমেন নাম মেটাডেটা পুনরুদ্ধার করার জন্যও ডিজাইন করা হয়েছে।
উদাহরণস্বরূপ আপনি একটি API কল চালাতে পারেন শুধুমাত্র যখন একজন ব্যবহারকারী সফলভাবে LDAP এর বিরুদ্ধে প্রমাণীকৃত হয়; এবং তারপর ঐচ্ছিকভাবে প্রমাণীকরণ সফল হওয়ার পরে ব্যবহারকারীর জন্য DN (ডোমেন নাম) বৈশিষ্ট্যগুলি পুনরুদ্ধার করুন।
অতিরিক্ত তথ্যের জন্য, দেখুন:
- API পরিচালনার জন্য ডিফল্ট LDAP পাসওয়ার্ড নীতি পরিচালনা করা
- Apigee কমিউনিটিতে " আপনার পাসওয়ার্ড নীতি সম্পর্কে গুরুত্বপূর্ণ তথ্য "
নমুনা
ব্যবহারকারীর নাম/পাসওয়ার্ড প্রমাণীকরণ
<Ldap name="4GLdapPolicy"> <LdapResource>ldap1</LdapResource> <Authentication> <UserName ref="request.header.username"/> <Password ref="request.header.password"/> <Scope>subtree</Scope> <BaseDN ref="apigee.baseDN"></BaseDN> <!-- default is dc=apigee,dc=com --> </Authentication> </Ldap>
এই নমুনা একটি LDAP প্রদানকারীর বিরুদ্ধে প্রমাণীকরণ প্রদান করে। নীতিটি প্রমাণীকরণের জন্য LDAP-কে অনুরোধ থেকে ব্যবহারকারীর নাম এবং পাসওয়ার্ড পাস করে।
ডিএন অ্যাট্রিবিউট প্রমাণীকরণ
<Ldap name="LdapPolicy"> <LdapResource>ldap1</LdapResource> <Authentication> <Password ref="request.header.password"/> <SearchQuery>mail={request.header.mail}</SearchQuery> <Scope>subtree</Scope> <BaseDN ref="apigee.baseDN"></BaseDN> <!-- default is dc=apigee,dc=com --> </Authentication> </Ldap>
এই নীতি অনুরোধ শিরোনামে ইমেল সহ ব্যবহারকারীর DN পায়, তারপর অনুরোধ শিরোনামে প্রদত্ত পাসওয়ার্ড দিয়ে LDAP এর বিরুদ্ধে ব্যবহারকারীকে প্রমাণীকরণ করে।
LDAP অনুসন্ধান করা হচ্ছে
<Ldap name="LdapPolicy"> <!-- using a custom LDAP provider --> <LdapConnectorClass>com.custom.ldap.MyProvider</LdapConnectorClass> <LdapResource>MyLdap</LdapResource> <Search> <BaseDN ref="apigee.baseDN"></BaseDN> <!-- default is dc=apigee,dc=com --> <SearchQuery>mail={request.header.mail}</SearchQuery> <Attributes> <Attribute>address</Attribute> <Attribute>phone</Attribute> <Attribute>title</Attribute> </Attributes> <Scope></Scope> <!-- default is ‘subtree’ --> </Search> </Ldap>
এই নীতি একটি কাস্টম LDAP প্রদানকারীর উল্লেখ করে। এটি ব্যবহারকারীকে সনাক্ত করতে অনুরোধ শিরোনামে ইমেল ঠিকানা ব্যবহার করে, তারপর LDAP থেকে ব্যবহারকারীর ঠিকানা, ফোন এবং শিরোনাম পুনরুদ্ধার করে। পুনরুদ্ধার করা DN বৈশিষ্ট্য একটি পরিবর্তনশীল মধ্যে সংরক্ষণ করা হয়. "নীতি-নির্দিষ্ট ভেরিয়েবল" দেখুন।
LDAP অনুসন্ধান করতে এবং DN বৈশিষ্ট্যগুলি পুনরুদ্ধার করতে, অনুরোধটিতে প্রশাসকের শংসাপত্র অন্তর্ভুক্ত থাকতে হবে।
উপাদান রেফারেন্স
নিম্নে LDAP নীতির উপাদান এবং গুণাবলীর বর্ণনা দেওয়া হল।
উপাদান | বর্ণনা |
---|---|
| নীতির নাম লিখতে আপনার জন্য একটি নামের বৈশিষ্ট্য সহ অভিভাবক উপাদান। |
| একটি কাস্টম LDAP প্রদানকারীর সাথে LDAP নীতি ব্যবহার করার সময় (Apigee দ্বারা সরবরাহ করা হয়নি), সম্পূর্ণরূপে যোগ্যতাসম্পন্ন LDAP সংযোগকারী শ্রেণীটি নির্দিষ্ট করুন৷ এটি সেই ক্লাস যেখানে আপনি Apigee এর |
| LDAP সম্পদের পরিবেশের নাম লিখুন। আরও তথ্যের জন্য একটি LDAP সংস্থান তৈরি করুন দেখুন। |
| LDAP এর ভিত্তি স্তর যার অধীনে আপনার সমস্ত ডেটা বিদ্যমান। উদাহরণস্বরূপ, Apigee-এর LDAP প্রদানকারীতে, সমস্ত ডেটা
|
|
|
প্রমাণীকরণ | |
| আপনার প্রয়োগ করা প্রমাণীকরণ আচরণের জন্য অভিভাবক উপাদান। |
| খালি উপাদান যা নিম্নলিখিত বৈশিষ্ট্যগুলির মধ্যে একটি নেয়:
আপনি যদি ব্যবহারকারীর নাম দিয়ে প্রমাণীকরণ না করেন, অথবা যদি অনুরোধে ব্যবহারকারীর নাম অন্তর্ভুক্ত না হয়, তাহলে আপনাকে এই উপাদানটি অন্তর্ভুক্ত করার প্রয়োজন নেই৷ যদি ব্যবহারকারীর নাম অনুরোধে থাকে, কিন্তু আপনি ব্যবহারকারীর নাম ছাড়া অন্য একটি DN বৈশিষ্ট্য সহ একজন ব্যবহারকারীকে প্রমাণীকরণ করতে চান, যেমন ইমেল, পাসওয়ার্ডের সাথে যুক্ত ব্যবহারকারীর ইমেল পেতে একটি |
| খালি উপাদান যা নিম্নলিখিত বৈশিষ্ট্যগুলির মধ্যে একটি নেয়:
|
| আপনি যদি ব্যবহারকারীর নাম ছাড়া অন্য কোনো DN অ্যাট্রিবিউট ব্যবহার করে প্রমাণীকরণ করতে চান, যেমন ইমেল, অনুরোধ থেকে একটি DN অ্যাট্রিবিউট পেতে LDAP নীতি কনফিগার করুন (যেমন ব্যবহারকারীর নাম), যা LDAP-তে ব্যবহারকারীকে সনাক্ত করতে, ইমেল পুনরুদ্ধার করতে এবং ব্যবহারকারীকে প্রমাণীকরণ করুন। উদাহরণস্বরূপ, LDAP ইমেল ঠিকানা সংরক্ষণের জন্য একটি "মেইল" বৈশিষ্ট্য সংজ্ঞায়িত করে: |
অনুসন্ধান করুন | |
| আপনার প্রয়োগ করা অনুসন্ধান আচরণের জন্য অভিভাবক উপাদান। |
| অনুরোধ বা প্রতিক্রিয়াতে মেটাডেটা সহ ব্যবহারকারীকে সনাক্ত করে, আপনি LDAP থেকে ব্যবহারকারীর জন্য অতিরিক্ত DN বৈশিষ্ট্যগুলি পুনরুদ্ধার করতে এই উপাদানটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি অনুরোধটিতে ব্যবহারকারীর ইমেল থাকে এবং আপনার LDAP ব্যবহারকারীর ইমেল ঠিকানাগুলি সংরক্ষণ করার জন্য একটি এই ক্যোয়ারীটি অনুরোধে ইমেলের সাথে মিলে যাওয়া একটি ইমেলের জন্য LDAP-কে অনুসন্ধান করে এবং নীতিটি এখন বৈশিষ্ট্য উপাদান সহ সেই ব্যবহারকারীর জন্য অতিরিক্ত DN বৈশিষ্ট্যগুলি পুনরুদ্ধার করতে পারে৷ |
| আপনি ব্যবহারকারীর জন্য যে DN মেটাডেটা পুনরুদ্ধার করতে চান তা সনাক্ত করতে এক বা একাধিক উদাহরণস্বরূপ, অ্যাট্রিবিউটের মান হল আপনার LDAP-তে সংজ্ঞায়িত DN অ্যাট্রিবিউটের নাম। <Attributes> <Attribute>address</Attribute> <Attribute>phone</Attribute> <Attribute>title</Attribute> </Attributes> |
ব্যবহারের নোট
প্রাইভেট ক্লাউডের জন্য Apigee Edge আপনাকে API কলগুলিতে একটি LDAP প্রদানকারীর সুবিধা নিতে দেয়। LDAP নীতির সাহায্যে, অ্যাপ্লিকেশানগুলি LDAP-এ সংরক্ষিত ব্যবহারকারীদের বিরুদ্ধে শংসাপত্রগুলিকে প্রমাণীকরণ করতে পারে, এবং আপনি LDAP থেকে বিশিষ্ট নাম (DNs) পুনরুদ্ধার করতে পারেন—প্রত্যেক ব্যবহারকারীর সাথে যুক্ত মেটাডেটা, বা গুণাবলী, যেমন ইমেল, ঠিকানা এবং ফোন নম্বর। প্রত্যাবর্তিত ডিএন এপিআই প্রক্সি দ্বারা আরও ব্যবহারের জন্য একটি ভেরিয়েবলে সংরক্ষণ করা হয়।
একটি LDAP সংস্থান তৈরি করুন
LDAP নীতি একটি LDAP সংস্থানকে ব্যবহার করে যা আপনি Apigee Edge-এ তৈরি করেন। একটি LDAP সম্পদ আপনার LDAP সংগ্রহস্থলে সংযোগ তথ্য প্রদান করে।
LDAP সংস্থান তৈরি এবং পরিচালনা করতে, নিম্নলিখিত API এবং পেলোড ব্যবহার করুন:
API
একটি LDAP সংস্থান তৈরি করুন ( POST
) বা তালিকা ( GET
) সমস্ত LDAP সংস্থান:
/v1/organizations/org_name/environments/environment/ldapresources
একটি LDAP সংস্থান ( GET
), আপডেট ( POST
) এবং মুছুন ( DELETE
) এর জন্য বিশদ বিবরণ পান:
/v1/organizations/org_name/environments/environment/ldapresources/ldap_resource_name
পেলোড
নিম্নলিখিত ব্যবহার মন্তব্য সহ একটি নমুনা XML পেলোড.
<LdapResource name="ldap1"> <Connection> <Hosts> <!-- port is optional: defaults to 389 for ldap:// and 636 for ldaps:// --> <Host port="636">foo.com</Host> </Hosts> <SSLEnabled>false</SSLEnabled> <!-- optional, defaults to false --> <Version>3</Version> <!-- optional, defaults to 3--> <Authentication>simple</Authentication> <!-- optional, only simple supported --> <ConnectionProvider>jndi|unboundid</ConnectionProvider> <!-- required --> <ServerSetType>single|round robin|failover</ServerSetType> <!-- not applicable for jndi --> <!-- If using a custom LDAP provider, the fully qualified class: --> <LdapConnectorClass>com.custom.ldap.MyProvider</LdapConnectorClass> </Connection> <ConnectPool enabled="true"> <!-- enabled is optional, defaults to true --> <Timeout>30000</Timeout> <!-- optional, in milliseconds; if not set, no timeout --> <Maxsize>50</Maxsize> <!-- optional; if not set, no max connections --> <Prefsize>30</Prefsize> <!-- optional; if not set, no pref size --> <Initsize></Initsize> <!-- optional; if not set, defaults to 1 --> <Protocol></Protocol> <!-- optional; if not set, defaults to 'ssl plain' --> </ConnectPool> <Admin> <DN>cn=manager,dc=apigee,dc=com</DN> <Password>secret</Password> </Admin> </LdapResource>
কার্ল উদাহরণ: একটি LDAP সংস্থান তৈরি করুন
নিম্নলিখিত উদাহরণটি ldap1 নামে একটি LDAP সংস্থান তৈরি করে।
curl -X POST -H "Content-Type: application/xml" \ https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/ldapresources \ -u apigee_email:password -d \ '<LdapResource name="ldap1"> <Connection> <Hosts> <Host>foo.com</Host> </Hosts> <SSLEnabled>false</SSLEnabled> <Version>3</Version> <Authentication>simple</Authentication> <ConnectionProvider>unboundid</ConnectionProvider> <ServerSetType>round robin</ServerSetType> </Connection> <ConnectPool enabled="true"> <Timeout>30000</Timeout> <Maxsize>50</Maxsize> <Prefsize>30</Prefsize> <Initsize></Initsize> <Protocol></Protocol> </ConnectPool> <Admin> <DN>cn=manager,dc=apigee,dc=com</DN> <Password>secret</Password> </Admin> </LdapResource>'
প্রতিক্রিয়া কোড
পলিসি সাফল্য বা ব্যর্থতার জন্য যে HTML প্রতিক্রিয়া কোডগুলি প্রদান করে তা নিম্নরূপ:
- সাফল্য : 200
- ব্যর্থতা : 401
ব্যক্তিগত ক্লাউডের জন্য এজে একটি কাস্টম LDAP প্রদানকারী ব্যবহার করা
একটি কাস্টম LDAP প্রদানকারী ব্যবহার করে৷
প্রাইভেট ক্লাউডের জন্য Apigee Edge একটি LDAP প্রদানকারীর সাথে আসে যা ইতিমধ্যেই LDAP নীতির সাথে ইন্টারঅ্যাক্ট করার জন্য কনফিগার করা আছে। যাইহোক, যদি আপনি একটি কাস্টম LDAP প্রদানকারী ব্যবহার করেন, তাহলে আপনাকে অবশ্যই প্রদানকারীকে LDAP নীতি সমর্থন করতে সক্ষম করতে হবে। এটি করতে:
- আপনার LDAP প্রদানকারী ক্লাসে,
ExternalLdapConProvider
ইন্টারফেস প্রয়োগ করুন।public interface ExternalLdapConProvider { void doAuthentication(LdapBean LlapBean, String userDN, String password, String baseDN); void doSearchAndAuthentication(LdapBean LlapBean, String password, String baseDN, String query, int scope); Collection<Map<String, String[]>> doSearch(LdapBean LlapBean, String query, String baseDN, Collection<String> requiredAttributes, int scope); void closeConnections(); }
- নীতি কনফিগারেশনের
<LdapConnectorClass>
এ (পরবর্তী বিভাগ), আপনার কাস্টম LDAP প্রদানকারীর সম্পূর্ণ যোগ্য শ্রেণীর নাম যোগ করুন। - এই ফাইলটি ডাউনলোড করুন: custom-ldap.jar_.zip । (আপনাকে ডান-ক্লিক করতে হতে পারে এবং সেভ এজ নির্বাচন করতে হতে পারে।)
- এটি আনজিপ করুন।
- আপনার পরিবেশে custom-ldap.jar ফাইল যোগ করুন এবং নিশ্চিত করুন যে এটি আপনার ক্লাসপাথে আছে।
- আপনার LDAP প্রদানকারীর জন্য একটি পরিবেশ সম্পদ তৈরি করুন। আপনি LDAP নীতির
<LdapResource>
উপাদানে পরিবেশ সম্পদের নাম ব্যবহার করবেন।
Java এর জন্য UnboundID LDAP SDK ব্যবহার করা
আপনি LDAP নীতির সাথে UnboundID LDAP SDK ব্যবহার করতে পারেন, তবে আপনাকে প্রথমে সংস্করণ 2.3.1 ডাউনলোড করতে হবে এবং এটি আপনার প্রতিটি বার্তা প্রসেসরের ক্লাসপাথে যোগ করতে হবে।
LDAP নীতির সাথে UnboundID LDAP SDK ব্যবহার করতে:
- একটি ব্রাউজার খুলুন এবং UnboundID LDAP SDK-এর জন্য Sourceforge ফাইল সংগ্রহস্থলে নেভিগেট করুন:
https://sourceforge.net/projects/ldap-sdk/files/
- SDK-এর সংস্করণ 2.3.1 (SE বা স্ট্যান্ডার্ড সংস্করণ ) খুঁজুন এবং সেই সংস্করণের জন্য ZIP ফাইলটি ডাউনলোড করুন। উদাহরণস্বরূপ, "unboundid-ldapsdk-2.3.1-se.zip" ডাউনলোড করুন।
- SDK ZIP ফাইল থেকে JAR ফাইলটি বের করুন, নিম্নলিখিত উদাহরণটি দেখায়:
unzip -j -d ~/tmp ~/Downloads/unboundid-ldapsdk-2.3.1-se.zip unboundid-ldapsdk-2.3.1-se/unboundid-ldapsdk-se.jar
এই কমান্ডটি ~/tmp ডিরেক্টরিতে JAR ফাইলটি বের করে। এটি
-j
সাথে ডিরেক্টরি কাঠামো ড্রপ করে, যদিও এটি ঐচ্ছিক। - প্রতিটি বার্তা প্রসেসর নোডে:
- JAR ফাইলটি মেসেজ প্রসেসরের
/opt/apigee/edge-gateway/lib/thirdparty
ডিরেক্টরিতে অনুলিপি করুন। - প্রয়োজনে, Apigee ব্যবহারকারীকে JAR ফাইলে অনুমতি দিন যাতে বার্তা প্রসেসর এটি অ্যাক্সেস করতে পারে।
এজ ক্লাসপথে
/opt/apigee/edge-gateway/lib/thirdparty
ডিরেক্টরিতে সমস্ত তৃতীয় পক্ষের লাইব্রেরি যোগ করে। - JAR ফাইলটি মেসেজ প্রসেসরের
- বার্তা প্রসেসর পুনরায় চালু করুন:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
ফ্লো ভেরিয়েবল
নিম্নলিখিত LDAP নীতি ভেরিয়েবলগুলি একটি SearchQuery
দ্বারা পপুলেট করা হয়েছে৷
পরিবর্তনশীল | বর্ণনা |
---|---|
ldap.policyName.execution.success | নীতি কার্যকর হওয়ার পরে, ফলাফলের উপর নির্ভর করে এই ফ্লো ভেরিয়েবলে "সত্য" বা "মিথ্যা" এর একটি মান থাকে। |
ldap.policyName.search.result[index]. attribute.attrName[index]=value | এই ভেরিয়েবলের নমনীয় বিন্যাস, বিশেষ করে সূচক: একাধিক গুণাবলীর জন্য অ্যাকাউন্ট, সেইসাথে একাধিক মান সহ বৈশিষ্ট্যগুলি। সূচী হল এমন একটি সংখ্যা যা 1 থেকে শুরু হয়৷ যদি কোনো সূচক নম্বর দেওয়া না থাকে, তাহলে ডিফল্ট সূচক নম্বর হল 1৷ যদি নীতি ঠিকানা, ফোন এবং ইমেল প্রদান করে, আপনি এই ভেরিয়েবলগুলি ব্যবহার করে প্রথম বৈশিষ্ট্য এবং মান পুনরুদ্ধার করতে পারেন: ldap.policyName.search.result.attribute.address ldap.policyName.search.result.attribute.phone ldap.policyName.search.result.attribute.email আপনি যদি অনুসন্ধানের ফলাফলে তৃতীয় ঠিকানা বৈশিষ্ট্যটি পুনরুদ্ধার করতে চান তবে আপনি এটি ব্যবহার করবেন: ldap.policyName.search.result[3].attribute.address যদি একটি অ্যাট্রিবিউটের একাধিক মান থাকে (উদাহরণস্বরূপ, যদি একজন ব্যবহারকারীর একাধিক ইমেল ঠিকানা থাকে), তাহলে আপনি এই ধরনের ফলাফল থেকে দ্বিতীয় ইমেল ঠিকানাটি পুনরুদ্ধার করবেন: ldap.policyName.search.result.attribute.mail[2] |
ত্রুটি কোড
এজ নীতিগুলি থেকে ফিরে আসা ত্রুটিগুলি ত্রুটি কোড রেফারেন্সে বর্ণিত একটি সামঞ্জস্যপূর্ণ বিন্যাস অনুসরণ করে৷
এই নীতি নিম্নলিখিত ত্রুটি কোড ব্যবহার করে:
ভুল সংকেত | বার্তা |
---|---|
InvalidAttributeName | Invalid attribute name {0}. |
InvalidSearchBase | Search base can not be empty. |
InvalidValueForPassword | Invalid value for password field. It can not be empty. |
InvalidSearchScope | Invalid scope {0}. Allowed scopes are {1}. |
InvalidUserCredentials | Invalid user credentials. |
InvalidExternalLdapReference | Invalid external ldap reference {0}. |
LdapResourceNotFound | Ldap resource {0} not found. |
BaseDNRequired | Base DN required. |
OnlyReferenceOrValueIsAllowed | Only value or reference is allowed for {0}. |
AttributesRequired | At least one attribute required for search action. |
UserNameIsNull | User name is null. |
SearchQueryAndUserNameCannotBePresent | Both search query and username can not be present in the authentication action. Please specify either one of them. |