LDAP নীতি

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

কী

LDAP নীতিমালায় রয়েছে:

  • প্রমাণীকরণ : অনুরোধে সরবরাহ করা ব্যবহারকারীর পরিচয়পত্র LDAP প্রদানকারীর পরিচয়পত্রের সাথে মিলিয়ে যাচাই করা হয়। LDAP নীতি আপনাকে প্রমাণীকরণের ক্ষেত্রে অনেক নমনীয়তা দেয়, যার ফলে আপনি পাসওয়ার্ডের সাথে যেকোনো DN মান ব্যবহার করতে পারেন, এমনকি আপনার কাঙ্ক্ষিত DN মানটি অনুরোধে না থাকলেও। উদাহরণস্বরূপ, ধরুন প্রমাণীকরণের জন্য আপনার ইমেল/পাসওয়ার্ড ব্যবহার করার প্রয়োজন। এক্ষেত্রে নিম্নলিখিত বিকল্পগুলো সম্ভব:
    • অনুরোধে ইমেলটি থাকলে, আপনি LDAP প্রমাণীকরণের জন্য পাসওয়ার্ডের সাথে সেটি ব্যবহার করতে পারেন।
    • যদি অনুরোধে ইমেল না থাকে, কিন্তু অন্য কোনো ডিএন অ্যাট্রিবিউট (যেমন ফোন নম্বর) থাকে, তাহলে আপনি ফোন নম্বরটি ব্যবহার করে এলড্যাপ (LDAP) থেকে সংশ্লিষ্ট ইমেলটি পেতে পারেন, তারপর প্রমাণীকরণের জন্য ইমেল / পাসওয়ার্ড ব্যবহার করতে পারেন।
  • ডিস্টিংগুইশড নেম (DN) সার্চ : অথেনটিকেশনের পাশাপাশি, আপনি অনুরোধে থাকা ব্যবহারকারীর কোনো অ্যাট্রিবিউট (যেমন ইমেল) শনাক্ত করতে এবং সেই ব্যবহারকারীর জন্য LDAP থেকে অন্যান্য DN অ্যাট্রিবিউট পুনরুদ্ধার করার জন্য একটি কোয়েরি চালাতে LDAP পলিসি ব্যবহার করতে পারেন। পুনরুদ্ধার করা DN-টি একটি ভেরিয়েবলে সংরক্ষণ করা হয়।

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

উদাহরণস্বরূপ, আপনি এমন ব্যবস্থা করতে পারেন যে কোনো ব্যবহারকারী LDAP-এর মাধ্যমে সফলভাবে প্রমাণীকৃত হলেই কেবল একটি API কল কার্যকর হবে; এবং তারপর, প্রমাণীকরণ সফল হওয়ার পর ঐচ্ছিকভাবে সেই ব্যবহারকারীর DN (ডোমেইন নেম) অ্যাট্রিবিউটগুলো পুনরুদ্ধার করা যাবে।

অতিরিক্ত তথ্যের জন্য দেখুন:

নমুনা

ব্যবহারকারীর নাম/পাসওয়ার্ড প্রমাণীকরণ

<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-এ প্রেরণ করে।

DN অ্যাট্রিবিউট প্রমাণীকরণ

<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

প্যারেন্ট এলিমেন্ট, যেখানে একটি name অ্যাট্রিবিউট রয়েছে, যাতে আপনি পলিসির নাম লিখতে পারেন।

LdapConnectorClass

Apigee-র সরবরাহ করা নয় এমন কোনো কাস্টম LDAP প্রোভাইডারের সাথে LDAP পলিসি ব্যবহার করার সময়, সম্পূর্ণ যোগ্যতাসম্পন্ন LDAP কানেক্টর ক্লাসটি নির্দিষ্ট করুন। এটি সেই ক্লাস, যেখানে আপনি Apigee-র ExternalLdapConProvider ইন্টারফেসটি ইমপ্লিমেন্ট করেছেন।

LdapResource

LDAP রিসোর্সের এনভায়রনমেন্ট নামটি লিখুন। আরও তথ্যের জন্য ‘একটি LDAP রিসোর্স তৈরি করুন’ দেখুন।

BaseDN

LDAP-এর মূল স্তর, যার অধীনে আপনার সমস্ত ডেটা থাকে। উদাহরণস্বরূপ, Apigee-এর LDAP প্রোভাইডারে, সমস্ত ডেটা dc=apigee,dc=com অধীনে থাকে।

  • ref : BaseDN মান ধারণকারী একটি ফ্লো ভেরিয়েবল নির্দিষ্ট করতে এটি ব্যবহার করুন, যেমন apigee.baseDN। একটি সুস্পষ্ট BaseDN মানের চেয়ে ref-এর অগ্রাধিকার বেশি। আপনি যদি ref এবং value উভয়ই নির্দিষ্ট করেন, তবে ref অগ্রাধিকার পাবে। রানটাইমে যদি ref সমাধান না হয়, তবে value ব্যবহৃত হবে।

Scope

  • উদ্দেশ্য : প্রমাণীকরণ বা অনুসন্ধান শুধুমাত্র LDAP-এর মূল স্তরেই সংঘটিত হয়।
  • onelevel : প্রমাণীকরণ বা অনুসন্ধান ভিত্তি স্তরের এক স্তর নিচে সংঘটিত হয়।
  • সাবট্রি (ডিফল্ট): প্রমাণীকরণ বা অনুসন্ধান মূল স্তরে এবং তার নিচে সম্পূর্ণ পুনরাবৃত্তিমূলকভাবে ঘটে।

প্রমাণীকরণ

Authentication

আপনার প্রয়োগ করা প্রমাণীকরণ আচরণের জন্য মূল উপাদান।

UserName

একটি খালি এলিমেন্ট যা নিম্নলিখিত অ্যাট্রিবিউটগুলোর মধ্যে যেকোনো একটি গ্রহণ করে:

  • ref : অনুরোধে থাকা ব্যবহারকারীর নামের একটি উল্লেখ, যেমন request.header.username
  • মান : ব্যবহারকারীর নাম নিজেই

যদি আপনি ইউজারনেম দিয়ে প্রমাণীকরণ না করেন, অথবা অনুরোধে ইউজারনেম অন্তর্ভুক্ত না থাকে, তাহলে এই এলিমেন্টটি অন্তর্ভুক্ত করার প্রয়োজন নেই।

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

Password

একটি খালি এলিমেন্ট যা নিম্নলিখিত অ্যাট্রিবিউটগুলোর মধ্যে যেকোনো একটি গ্রহণ করে:

  • ref : অনুরোধে থাকা পাসওয়ার্ডের একটি উল্লেখ, যেমন request.header.password
  • মান : এনক্রিপ্ট করা পাসওয়ার্ডটি নিজেই

SearchQuery

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

উদাহরণস্বরূপ, ধরে নেওয়া যাক LDAP ইমেল ঠিকানা সংরক্ষণের জন্য একটি 'mail' অ্যাট্রিবিউট সংজ্ঞায়িত করে:

<SearchQuery>mail={request.header.mail}</SearchQuery>

অনুসন্ধান

Search

আপনার প্রয়োগ করা সার্চ আচরণের জন্য প্যারেন্ট এলিমেন্ট।

SearchQuery

অনুরোধ বা প্রতিক্রিয়ায় মেটাডেটার মাধ্যমে ব্যবহারকারীকে শনাক্ত করে, আপনি LDAP থেকে ব্যবহারকারীর জন্য অতিরিক্ত DN অ্যাট্রিবিউট পুনরুদ্ধার করতে এই উপাদানটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি অনুরোধে ব্যবহারকারীর ইমেল থাকে, এবং আপনার LDAP ব্যবহারকারীর ইমেল ঠিকানা সংরক্ষণের জন্য একটি mail অ্যাট্রিবিউট সংজ্ঞায়িত করে, তাহলে আপনি নিম্নলিখিত সেটিংটি ব্যবহার করবেন:

<SearchQuery>mail={request.header.mail}</SearchQuery>

এই কোয়েরিটি অনুরোধে থাকা ইমেলের সাথে মেলে এমন একটি ইমেলের জন্য LDAP-এ অনুসন্ধান করে, এবং পলিসিটি এখন Attributes এলিমেন্টের মাধ্যমে সেই ব্যবহারকারীর জন্য অতিরিক্ত DN অ্যাট্রিবিউটগুলো পুনরুদ্ধার করতে পারে।

Attributes

ব্যবহারকারীর জন্য আপনি যে DN মেটাডেটা পুনরুদ্ধার করতে চান তা শনাক্ত করতে এক বা একাধিক <Attribute> এলিমেন্ট ব্যবহার করুন। অন্তত একটি অ্যাট্রিবিউট থাকা আবশ্যক।

উদাহরণস্বরূপ, SearchQuery ব্যবহারকারীকে শনাক্ত করার পর, পলিসিটি এখন ব্যবহারকারীর জন্য DN অ্যাট্রিবিউটগুলো, যেমন ঠিকানা, ফোন নম্বর এবং ব্যবহারকারীর পদবী, পুনরুদ্ধার করতে পারে, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে।

অ্যাট্রিবিউট ভ্যালুগুলো হলো আপনার LDAP-এ সংজ্ঞায়িত DN অ্যাট্রিবিউটের নাম।

<Attributes>
  <Attribute>address</Attribute>
  <Attribute>phone</Attribute>
  <Attribute>title</Attribute>
</Attributes>

ব্যবহারের নির্দেশাবলী

Apigee Edge for Private Cloud আপনাকে API কলে একটি LDAP প্রোভাইডার ব্যবহার করার সুযোগ দেয়। LDAP পলিসির মাধ্যমে, অ্যাপ্লিকেশনগুলো LDAP-এ সংরক্ষিত ব্যবহারকারীদের ক্রেডেনশিয়াল প্রমাণীকরণ করতে পারে এবং আপনি LDAP থেকে ডিস্টিংগুইশড নেম (DN) পুনরুদ্ধার করতে পারেন—যা হলো প্রতিটি ব্যবহারকারীর সাথে সম্পর্কিত মেটাডেটা বা অ্যাট্রিবিউট, যেমন ইমেল, ঠিকানা এবং ফোন নম্বর। প্রাপ্ত DN-টি API প্রক্সির পরবর্তী ব্যবহারের জন্য একটি ভেরিয়েবলে সংরক্ষণ করা হয়।

একটি LDAP রিসোর্স তৈরি করুন

LDAP পলিসিটি Apigee Edge-এ আপনার তৈরি করা একটি LDAP রিসোর্স ব্যবহার করে। একটি LDAP রিসোর্স আপনার LDAP রিপোজিটরির সংযোগের তথ্য সরবরাহ করে।

LDAP রিসোর্স তৈরি ও পরিচালনা করতে, নিম্নলিখিত API এবং পেলোড ব্যবহার করুন:

এপিআই

একটি LDAP রিসোর্স তৈরি ( POST ) করুন অথবা সমস্ত LDAP রিসোর্সের তালিকা ( GET ) দেখুন:

/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>

curl উদাহরণ: একটি 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 প্রতিক্রিয়া কোডগুলি ফেরত দেয়:

  • সাফল্য : ২০০
  • ব্যর্থতা : ৪০১

Edge for Private Cloud-এ একটি কাস্টম LDAP প্রোভাইডার ব্যবহার করা

একটি কাস্টম LDAP প্রদানকারী ব্যবহার করে

Apigee Edge for Private Cloud-এর সাথে একটি LDAP প্রোভাইডার আসে যা LDAP পলিসির সাথে কাজ করার জন্য আগে থেকেই কনফিগার করা থাকে। তবে, আপনি যদি একটি কাস্টম LDAP প্রোভাইডার ব্যবহার করেন, তাহলে আপনাকে অবশ্যই প্রোভাইডারটিকে LDAP পলিসি সাপোর্ট করার জন্য সক্ষম করতে হবে। এটি করতে:

  1. আপনার 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();
    }
  2. পলিসি কনফিগারেশনের <LdapConnectorClass> অংশে (পরবর্তী বিভাগগুলিতে), আপনার কাস্টম LDAP প্রোভাইডারের সম্পূর্ণ ক্লাস নামটি যোগ করুন।
  3. এই ফাইলটি ডাউনলোড করুন: custom-ldap.jar_.zip । (আপনাকে রাইট-ক্লিক করে 'Save As' নির্বাচন করতে হতে পারে।)
  4. এটা আনজিপ করুন।
  5. custom-ldap.jar ফাইলটি আপনার এনভায়রনমেন্টে যোগ করুন এবং নিশ্চিত করুন যে এটি আপনার ক্লাসপাথে রয়েছে।
  6. আপনার LDAP প্রোভাইডারের জন্য একটি এনভায়রনমেন্ট রিসোর্স তৈরি করুন। আপনি LDAP পলিসির <LdapResource> এলিমেন্টে এনভায়রনমেন্ট রিসোর্সের নামটি ব্যবহার করবেন।

জাভার জন্য আনবাউন্ডআইডি এলড্যাপ এসডিকে ব্যবহার করা

আপনি LDAP পলিসির সাথে UnboundID LDAP SDK ব্যবহার করতে পারেন, কিন্তু তার জন্য আপনাকে প্রথমে সংস্করণ ২.৩.১ ডাউনলোড করে আপনার প্রতিটি মেসেজ প্রসেসরের ক্লাসপাথে যোগ করতে হবে।

LDAP পলিসির সাথে UnboundID LDAP SDK ব্যবহার করতে:

  1. একটি ব্রাউজার খুলুন এবং UnboundID LDAP SDK-এর Sourceforge ফাইল রিপোজিটরিতে যান:
    https://sourceforge.net/projects/ldap-sdk/files/
  2. SDK-এর ভার্সন ২.৩.১ (SE বা স্ট্যান্ডার্ড এডিশন ) খুঁজুন এবং সেই ভার্সনের ZIP ফাইলটি ডাউনলোড করুন। উদাহরণস্বরূপ, 'unboundid-ldapsdk-2.3.1-se.zip' ডাউনলোড করুন।
  3. নিচের উদাহরণে দেখানো অনুযায়ী 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

    এই কমান্ডটি শুধু JAR ফাইলটিকে ~/tmp ডিরেক্টরিতে এক্সট্র্যাক্ট করে। -j বিকল্পটি ব্যবহার করলে ডিরেক্টরি কাঠামোটি মুছে যায়, যদিও এটি ঐচ্ছিক।

  4. প্রতিটি মেসেজ প্রসেসর নোডে:
    1. JAR ফাইলটি মেসেজ প্রসেসরের /opt/apigee/edge-gateway/lib/thirdparty ডিরেক্টরিতে কপি করুন।
    2. প্রয়োজনে, JAR ফাইলটিতে Apigee ব্যবহারকারীকে অনুমতি দিন যাতে মেসেজ প্রসেসর এটি অ্যাক্সেস করতে পারে।
    3. Edge /opt/apigee/edge-gateway/lib/thirdparty ডিরেক্টরিতে থাকা সমস্ত থার্ড-পার্টি লাইব্রেরিকে ক্লাসপাথে যুক্ত করে।

    4. মেসেজ প্রসেসরটি পুনরায় চালু করুন:
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

প্রবাহ পরিবর্তনশীল

নিম্নলিখিতগুলি হল LDAP পলিসি ভেরিয়েবল যা একটি SearchQuery দ্বারা পূরণ করা হয়।

পরিবর্তনশীল

বর্ণনা

ldap.policyName.execution.success

পলিসিটি কার্যকর হওয়ার পর, ফলাফলের ওপর নির্ভর করে এই ফ্লো ভেরিয়েবলটিতে 'true' বা 'false' মান থাকে।

ldap.policyName.search.result[index].
  attribute.attrName[index]=value

এই ভেরিয়েবলের নমনীয় ফর্ম্যাট, বিশেষ করে এর ইনডেক্স, একাধিক অ্যাট্রিবিউট এবং একাধিক মানযুক্ত অ্যাট্রিবিউটকেও সমর্থন করে। ইনডেক্স হলো একটি সংখ্যা যা ১ থেকে শুরু হয়। যদি কোনো ইনডেক্স নম্বর প্রদান করা না হয়, তবে ডিফল্ট ইনডেক্স নম্বরটি হলো ১।

যদি পলিসিটি ঠিকানা, ফোন এবং ইমেল ফেরত দেয়, তাহলে আপনি এই ভেরিয়েবলগুলো ব্যবহার করে প্রথম অ্যাট্রিবিউট এবং ভ্যালুটি পুনরুদ্ধার করতে পারেন:

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.

,

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

কী

LDAP নীতিমালায় রয়েছে:

  • প্রমাণীকরণ : অনুরোধে সরবরাহ করা ব্যবহারকারীর পরিচয়পত্র LDAP প্রদানকারীর পরিচয়পত্রের সাথে মিলিয়ে যাচাই করা হয়। LDAP নীতি আপনাকে প্রমাণীকরণের ক্ষেত্রে অনেক নমনীয়তা দেয়, যার ফলে আপনি পাসওয়ার্ডের সাথে যেকোনো DN মান ব্যবহার করতে পারেন, এমনকি আপনার কাঙ্ক্ষিত DN মানটি অনুরোধে না থাকলেও। উদাহরণস্বরূপ, ধরুন প্রমাণীকরণের জন্য আপনার ইমেল/পাসওয়ার্ড ব্যবহার করার প্রয়োজন। এক্ষেত্রে নিম্নলিখিত বিকল্পগুলো সম্ভব:
    • অনুরোধে ইমেলটি থাকলে, আপনি LDAP প্রমাণীকরণের জন্য পাসওয়ার্ডের সাথে সেটি ব্যবহার করতে পারেন।
    • যদি অনুরোধে ইমেল না থাকে, কিন্তু অন্য কোনো ডিএন অ্যাট্রিবিউট (যেমন ফোন নম্বর) থাকে, তাহলে আপনি ফোন নম্বরটি ব্যবহার করে এলড্যাপ (LDAP) থেকে সংশ্লিষ্ট ইমেলটি পেতে পারেন, তারপর প্রমাণীকরণের জন্য ইমেল / পাসওয়ার্ড ব্যবহার করতে পারেন।
  • ডিস্টিংগুইশড নেম (DN) সার্চ : অথেনটিকেশনের পাশাপাশি, আপনি অনুরোধে থাকা ব্যবহারকারীর কোনো অ্যাট্রিবিউট (যেমন ইমেল) শনাক্ত করতে এবং সেই ব্যবহারকারীর জন্য LDAP থেকে অন্যান্য DN অ্যাট্রিবিউট পুনরুদ্ধার করার জন্য একটি কোয়েরি চালাতে LDAP পলিসি ব্যবহার করতে পারেন। পুনরুদ্ধার করা DN-টি একটি ভেরিয়েবলে সংরক্ষণ করা হয়।

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

উদাহরণস্বরূপ, আপনি এমন ব্যবস্থা করতে পারেন যে কোনো ব্যবহারকারী LDAP-এর মাধ্যমে সফলভাবে প্রমাণীকৃত হলেই কেবল একটি API কল কার্যকর হবে; এবং তারপর, প্রমাণীকরণ সফল হওয়ার পর ঐচ্ছিকভাবে সেই ব্যবহারকারীর DN (ডোমেইন নেম) অ্যাট্রিবিউটগুলো পুনরুদ্ধার করা যাবে।

অতিরিক্ত তথ্যের জন্য দেখুন:

নমুনা

ব্যবহারকারীর নাম/পাসওয়ার্ড প্রমাণীকরণ

<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-এ প্রেরণ করে।

DN অ্যাট্রিবিউট প্রমাণীকরণ

<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

প্যারেন্ট এলিমেন্ট, যেখানে একটি name অ্যাট্রিবিউট রয়েছে, যাতে আপনি পলিসির নাম লিখতে পারেন।

LdapConnectorClass

Apigee-র সরবরাহ করা নয় এমন কোনো কাস্টম LDAP প্রোভাইডারের সাথে LDAP পলিসি ব্যবহার করার সময়, সম্পূর্ণ যোগ্যতাসম্পন্ন LDAP কানেক্টর ক্লাসটি নির্দিষ্ট করুন। এটি সেই ক্লাস, যেখানে আপনি Apigee-র ExternalLdapConProvider ইন্টারফেসটি ইমপ্লিমেন্ট করেছেন।

LdapResource

LDAP রিসোর্সের এনভায়রনমেন্ট নামটি লিখুন। আরও তথ্যের জন্য ‘একটি LDAP রিসোর্স তৈরি করুন’ দেখুন।

BaseDN

LDAP-এর মূল স্তর, যার অধীনে আপনার সমস্ত ডেটা থাকে। উদাহরণস্বরূপ, Apigee-এর LDAP প্রোভাইডারে, সমস্ত ডেটা dc=apigee,dc=com অধীনে থাকে।

  • ref : BaseDN মান ধারণকারী একটি ফ্লো ভেরিয়েবল নির্দিষ্ট করতে এটি ব্যবহার করুন, যেমন apigee.baseDN। একটি সুস্পষ্ট BaseDN মানের চেয়ে ref-এর অগ্রাধিকার বেশি। আপনি যদি ref এবং value উভয়ই নির্দিষ্ট করেন, তবে ref অগ্রাধিকার পাবে। রানটাইমে যদি ref সমাধান না হয়, তবে value ব্যবহৃত হবে।

Scope

  • উদ্দেশ্য : প্রমাণীকরণ বা অনুসন্ধান শুধুমাত্র LDAP-এর মূল স্তরেই সংঘটিত হয়।
  • onelevel : প্রমাণীকরণ বা অনুসন্ধান ভিত্তি স্তরের এক স্তর নিচে সংঘটিত হয়।
  • সাবট্রি (ডিফল্ট): প্রমাণীকরণ বা অনুসন্ধান মূল স্তরে এবং তার নিচে সম্পূর্ণ পুনরাবৃত্তিমূলকভাবে ঘটে।

প্রমাণীকরণ

Authentication

আপনার প্রয়োগ করা প্রমাণীকরণ আচরণের জন্য মূল উপাদান।

UserName

একটি খালি এলিমেন্ট যা নিম্নলিখিত অ্যাট্রিবিউটগুলোর মধ্যে যেকোনো একটি গ্রহণ করে:

  • ref : অনুরোধে থাকা ব্যবহারকারীর নামের একটি উল্লেখ, যেমন request.header.username
  • মান : ব্যবহারকারীর নাম নিজেই

যদি আপনি ইউজারনেম দিয়ে প্রমাণীকরণ না করেন, অথবা অনুরোধে ইউজারনেম অন্তর্ভুক্ত না থাকে, তাহলে এই এলিমেন্টটি অন্তর্ভুক্ত করার প্রয়োজন নেই।

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

Password

একটি খালি এলিমেন্ট যা নিম্নলিখিত অ্যাট্রিবিউটগুলোর মধ্যে যেকোনো একটি গ্রহণ করে:

  • ref : অনুরোধে থাকা পাসওয়ার্ডের একটি উল্লেখ, যেমন request.header.password
  • মান : এনক্রিপ্ট করা পাসওয়ার্ডটি নিজেই

SearchQuery

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

উদাহরণস্বরূপ, ধরে নেওয়া যাক LDAP ইমেল ঠিকানা সংরক্ষণের জন্য একটি 'mail' অ্যাট্রিবিউট সংজ্ঞায়িত করে:

<SearchQuery>mail={request.header.mail}</SearchQuery>

অনুসন্ধান

Search

আপনার প্রয়োগ করা সার্চ আচরণের জন্য প্যারেন্ট এলিমেন্ট।

SearchQuery

অনুরোধ বা প্রতিক্রিয়ায় মেটাডেটার মাধ্যমে ব্যবহারকারীকে শনাক্ত করে, আপনি LDAP থেকে ব্যবহারকারীর জন্য অতিরিক্ত DN অ্যাট্রিবিউট পুনরুদ্ধার করতে এই উপাদানটি ব্যবহার করতে পারেন। উদাহরণস্বরূপ, যদি অনুরোধে ব্যবহারকারীর ইমেল থাকে, এবং আপনার LDAP ব্যবহারকারীর ইমেল ঠিকানা সংরক্ষণের জন্য একটি mail অ্যাট্রিবিউট সংজ্ঞায়িত করে, তাহলে আপনি নিম্নলিখিত সেটিংটি ব্যবহার করবেন:

<SearchQuery>mail={request.header.mail}</SearchQuery>

এই কোয়েরিটি অনুরোধে থাকা ইমেলের সাথে মেলে এমন একটি ইমেলের জন্য LDAP-এ অনুসন্ধান করে, এবং পলিসিটি এখন Attributes এলিমেন্টের মাধ্যমে সেই ব্যবহারকারীর জন্য অতিরিক্ত DN অ্যাট্রিবিউটগুলো পুনরুদ্ধার করতে পারে।

Attributes

ব্যবহারকারীর জন্য আপনি যে DN মেটাডেটা পুনরুদ্ধার করতে চান তা শনাক্ত করতে এক বা একাধিক <Attribute> এলিমেন্ট ব্যবহার করুন। অন্তত একটি অ্যাট্রিবিউট থাকা আবশ্যক।

উদাহরণস্বরূপ, SearchQuery ব্যবহারকারীকে শনাক্ত করার পর, পলিসিটি এখন ব্যবহারকারীর জন্য DN অ্যাট্রিবিউটগুলো, যেমন ঠিকানা, ফোন নম্বর এবং ব্যবহারকারীর পদবী, পুনরুদ্ধার করতে পারে, যেমনটি নিম্নলিখিত উদাহরণে দেখানো হয়েছে।

অ্যাট্রিবিউট ভ্যালুগুলো হলো আপনার LDAP-এ সংজ্ঞায়িত DN অ্যাট্রিবিউটের নাম।

<Attributes>
  <Attribute>address</Attribute>
  <Attribute>phone</Attribute>
  <Attribute>title</Attribute>
</Attributes>

ব্যবহারের নির্দেশাবলী

Apigee Edge for Private Cloud আপনাকে API কলে একটি LDAP প্রোভাইডার ব্যবহার করার সুযোগ দেয়। LDAP পলিসির মাধ্যমে, অ্যাপ্লিকেশনগুলো LDAP-এ সংরক্ষিত ব্যবহারকারীদের ক্রেডেনশিয়াল প্রমাণীকরণ করতে পারে এবং আপনি LDAP থেকে ডিস্টিংগুইশড নেম (DN) পুনরুদ্ধার করতে পারেন—যা হলো প্রতিটি ব্যবহারকারীর সাথে সম্পর্কিত মেটাডেটা বা অ্যাট্রিবিউট, যেমন ইমেল, ঠিকানা এবং ফোন নম্বর। প্রাপ্ত DN-টি API প্রক্সির পরবর্তী ব্যবহারের জন্য একটি ভেরিয়েবলে সংরক্ষণ করা হয়।

একটি LDAP রিসোর্স তৈরি করুন

LDAP পলিসিটি Apigee Edge-এ আপনার তৈরি করা একটি LDAP রিসোর্স ব্যবহার করে। একটি LDAP রিসোর্স আপনার LDAP রিপোজিটরির সংযোগের তথ্য সরবরাহ করে।

LDAP রিসোর্স তৈরি ও পরিচালনা করতে, নিম্নলিখিত API এবং পেলোড ব্যবহার করুন:

এপিআই

একটি LDAP রিসোর্স তৈরি ( POST ) করুন অথবা সমস্ত LDAP রিসোর্সের তালিকা ( GET ) দেখুন:

/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>

curl উদাহরণ: একটি 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 প্রতিক্রিয়া কোডগুলি ফেরত দেয়:

  • সাফল্য : ২০০
  • ব্যর্থতা : ৪০১

Edge for Private Cloud-এ একটি কাস্টম LDAP প্রোভাইডার ব্যবহার করা

একটি কাস্টম LDAP প্রদানকারী ব্যবহার করে

Apigee Edge for Private Cloud-এর সাথে একটি LDAP প্রোভাইডার আসে যা LDAP পলিসির সাথে কাজ করার জন্য আগে থেকেই কনফিগার করা থাকে। তবে, আপনি যদি একটি কাস্টম LDAP প্রোভাইডার ব্যবহার করেন, তাহলে আপনাকে অবশ্যই প্রোভাইডারটিকে LDAP পলিসি সাপোর্ট করার জন্য সক্ষম করতে হবে। এটি করতে:

  1. আপনার 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();
    }
  2. পলিসি কনফিগারেশনের <LdapConnectorClass> অংশে (পরবর্তী বিভাগগুলিতে), আপনার কাস্টম LDAP প্রোভাইডারের সম্পূর্ণ ক্লাস নামটি যোগ করুন।
  3. এই ফাইলটি ডাউনলোড করুন: custom-ldap.jar_.zip । (আপনাকে রাইট-ক্লিক করে 'Save As' নির্বাচন করতে হতে পারে।)
  4. এটা আনজিপ করুন।
  5. custom-ldap.jar ফাইলটি আপনার এনভায়রনমেন্টে যোগ করুন এবং নিশ্চিত করুন যে এটি আপনার ক্লাসপাথে রয়েছে।
  6. আপনার LDAP প্রোভাইডারের জন্য একটি এনভায়রনমেন্ট রিসোর্স তৈরি করুন। আপনি LDAP পলিসির <LdapResource> এলিমেন্টে এনভায়রনমেন্ট রিসোর্সের নামটি ব্যবহার করবেন।

জাভার জন্য আনবাউন্ডআইডি এলড্যাপ এসডিকে ব্যবহার করা

আপনি LDAP পলিসির সাথে UnboundID LDAP SDK ব্যবহার করতে পারেন, কিন্তু তার জন্য আপনাকে প্রথমে সংস্করণ ২.৩.১ ডাউনলোড করে আপনার প্রতিটি মেসেজ প্রসেসরের ক্লাসপাথে যোগ করতে হবে।

LDAP পলিসির সাথে UnboundID LDAP SDK ব্যবহার করতে:

  1. একটি ব্রাউজার খুলুন এবং UnboundID LDAP SDK-এর Sourceforge ফাইল রিপোজিটরিতে যান:
    https://sourceforge.net/projects/ldap-sdk/files/
  2. SDK-এর ভার্সন ২.৩.১ (SE বা স্ট্যান্ডার্ড এডিশন ) খুঁজুন এবং সেই ভার্সনের ZIP ফাইলটি ডাউনলোড করুন। উদাহরণস্বরূপ, 'unboundid-ldapsdk-2.3.1-se.zip' ডাউনলোড করুন।
  3. নিচের উদাহরণে দেখানো অনুযায়ী 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

    এই কমান্ডটি শুধু JAR ফাইলটিকে ~/tmp ডিরেক্টরিতে এক্সট্র্যাক্ট করে। -j বিকল্পটি ব্যবহার করলে ডিরেক্টরি কাঠামোটি মুছে যায়, যদিও এটি ঐচ্ছিক।

  4. প্রতিটি মেসেজ প্রসেসর নোডে:
    1. JAR ফাইলটি মেসেজ প্রসেসরের /opt/apigee/edge-gateway/lib/thirdparty ডিরেক্টরিতে কপি করুন।
    2. প্রয়োজনে, JAR ফাইলটিতে Apigee ব্যবহারকারীকে অনুমতি দিন যাতে মেসেজ প্রসেসর এটি অ্যাক্সেস করতে পারে।
    3. Edge /opt/apigee/edge-gateway/lib/thirdparty ডিরেক্টরিতে থাকা সমস্ত থার্ড-পার্টি লাইব্রেরিকে ক্লাসপাথে যুক্ত করে।

    4. মেসেজ প্রসেসরটি পুনরায় চালু করুন:
      /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

প্রবাহ পরিবর্তনশীল

নিম্নলিখিতগুলি হল LDAP পলিসি ভেরিয়েবল যা একটি SearchQuery দ্বারা পূরণ করা হয়।

পরিবর্তনশীল

বর্ণনা

ldap.policyName.execution.success

পলিসিটি কার্যকর হওয়ার পর, ফলাফলের ওপর নির্ভর করে এই ফ্লো ভেরিয়েবলটিতে 'true' বা 'false' মান থাকে।

ldap.policyName.search.result[index].
  attribute.attrName[index]=value

এই ভেরিয়েবলের নমনীয় ফর্ম্যাট, বিশেষ করে এর ইনডেক্স, একাধিক অ্যাট্রিবিউট এবং একাধিক মানযুক্ত অ্যাট্রিবিউটকেও সমর্থন করে। ইনডেক্স হলো একটি সংখ্যা যা ১ থেকে শুরু হয়। যদি কোনো ইনডেক্স নম্বর প্রদান করা না হয়, তবে ডিফল্ট ইনডেক্স নম্বরটি হলো ১।

যদি পলিসিটি ঠিকানা, ফোন এবং ইমেল ফেরত দেয়, তাহলে আপনি এই ভেরিয়েবলগুলো ব্যবহার করে প্রথম অ্যাট্রিবিউট এবং ভ্যালুটি পুনরুদ্ধার করতে পারেন:

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.