Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
Ne?
LDAP politikası şunları sağlar:
- Kimlik doğrulama: İstekte sağlanan kullanıcı kimlik bilgileri, LDAP sağlayıcısındaki kimlik bilgilerine göre doğrulanır. LDAP politikası, kimlik doğrulama konusunda size büyük bir esneklik sağlar. İsteğinizde olmasa bile şifreyle birlikte herhangi bir DN değerini kullanmanıza olanak tanır. Örneğin, kimlik doğrulama için e-posta / şifre kullanmanız gerektiğini varsayalım. Aşağıdaki seçenekler kullanılabilir:
- E-posta istekte yer alıyorsa LDAP kimlik doğrulaması için şifreyle birlikte kullanabilirsiniz.
- E-posta istekte yoksa ancak başka bir DN özelliği (ör. telefon numarası) varsa LDAP'den ilgili e-postayı almak için telefon numarasını kullanabilir, ardından kimlik doğrulamak için e-posta/şifre kullanabilirsiniz.
- Ayırt edici ad (DN) araması: Kimlik doğrulamaya ek olarak, LDAP politikasını kullanarak istekteki bir kullanıcı özelliğini (ör. e-posta) tanımlayabilir ve bu kullanıcı için LDAP'den diğer DN özelliklerini alan bir sorgu gerçekleştirebilirsiniz. Alınan DN bir değişkende saklanır.
Korunan kaynaklara erişimin LDAP sağlayıcınızdaki kullanıcılarla (ör. yönetici kullanıcılarınız, kuruluş kullanıcılarınız ve geliştiricileriniz) sınırlandırılması gerektiğinde, özellikle OAuth jetonu erişimi gereksiz veya çok ağır olduğunda LDAP politikasını kullanın. Politika, API proxy akışlarında kullanılmak üzere alan adı meta verilerini almak için de tasarlanmıştır.
Örneğin, bir API çağrısının yalnızca kullanıcının LDAP'ye karşı kimliği başarıyla doğrulandığında yürütülmesini sağlayabilir ve kimlik doğrulama başarılı olduktan sonra kullanıcı için isteğe bağlı olarak DN (alan adı) özelliklerini alabilirsiniz.
Daha fazla bilgi için:
- API yönetimi için varsayılan LDAP şifre politikasını yönetme
- Apigee Topluluğu'ndaki "Important information about your password policy" (Şifre politikanızla ilgili önemli bilgiler)
Örnekler
Kullanıcı adı/şifre kimlik doğrulaması
<Ldap name="4GLdapPo>licy<"
Ld>apRes<ourceldap1/Ld>apRe<source
Auth>enticati<on
UserName ref="request.he>ader.use<rname"/
Password ref=">request.<heade>r.passw<ord&qu>ot;/
< Scopesubtree/Scope
>< Bas>e<DN ref="apigee.baseDN"/B>aseDN< !-- default is> d<c=api>gee,dc=com --
/Authentication
/LdapBu örnek, bir LDAP sağlayıcısına karşı kimlik doğrulama sağlar. Politika, kimlik doğrulama için istekteki kullanıcı adını ve şifreyi LDAP'ye iletir.
DN özelliği kimlik doğrulaması
<Ldap name="LdapPo>licy<"
Ld>apRes<ourceldap1/Ld>apRe<source
Auth>enticati<on
Password ref="request.he>ader.pas<sword">/
SearchQuerymail={<request.head>er.mail}</Sear>chQuery<
> Scopes<ubtree/Scope
BaseDN>< ref=&q>u<ot;apigee.baseDN"/BaseDN !-- >defau<lt is dc=apigee>,d<c=com> --
/Authentication
/LdapBu politika, istek başlığındaki e-posta adresiyle kullanıcının DN'sini alır, ardından istek başlığında sağlanan şifreyle kullanıcının kimliğini LDAP'ye karşı doğrular.
LDAP'de arama
<Ldap name="LdapPo>licy&<quot; !-- using a custom LDAP p>rovid<er -- LdapConn>ectorClasscom.custom.ldap.<MyProvider/LdapConn>ector<Class Ld>apReso<urceMyLdap/Ld>apRes<ource<>/span> Searc<h BaseDN ref="><;apigee>.<baseDN"/BaseDN !-- default is> dc=apige<e,dc=com --> SearchQuerymail={<request.head>er.mail}/<SearchQuer>y Att<ributes > < Attrib>uteaddress/At<tribute > < Attr>ibutephone/At<tribute > < Attr>ibutetitl<e/Attribute> </Attr><ibutes> < Scope/S‘cope !-’- d>efaul<t is su>b<tree >-- /Search /Ldap
Bu politika, özel bir LDAP sağlayıcısına referans veriyor. Kullanıcıyı tanımlamak için istek üstbilgisindeki e-posta adresini kullanır, ardından kullanıcının adresini, telefonunu ve unvanını LDAP'den alır. Alınan DN özellikleri bir değişkende saklanır. "Politikaya özgü değişkenler" bölümüne bakın.
LDAP'de arama yapmak ve DN özelliklerini almak için isteğe yönetici kimlik bilgileri eklenmelidir.
Öğe referansı
Aşağıda LDAP politikası öğelerinin ve özelliklerinin açıklamaları verilmiştir.
|
Öğe |
Açıklama |
|---|---|
|
|
Politika adını girebileceğiniz bir ad özelliğine sahip üst öğe. |
|
|
LDAP politikasını özel bir LDAP sağlayıcı ile kullanırken (Apigee tarafından sağlanmaz) tam nitelikli LDAP bağlayıcı sınıfını belirtin.
Bu, Apigee'nin |
|
|
LDAP kaynağının ortam adını girin. Daha fazla bilgi için LDAP kaynağı oluşturma başlıklı makaleyi inceleyin. |
|
|
Tüm verilerinizin bulunduğu LDAP'nin temel düzeyi. Örneğin, Apigee'nin LDAP sağlayıcısında tüm veriler
|
|
|
|
|
Kimlik doğrulama |
|
|
|
Uyguladığınız kimlik doğrulama davranışının üst öğesi. |
|
|
Aşağıdaki özelliklerden birini alan boş öğe:
Kullanıcı adıyla kimlik doğrulamıyorsanız veya kullanıcı adı isteğe dahil edilmemişse bu öğeyi eklemeniz gerekmez. İstek kullanıcı adı içeriyorsa ancak kullanıcıyı kullanıcı adı dışında bir DN özelliğiyle (ör. e-posta) doğrulamak istiyorsanız şifreyle ilişkili kullanıcı e-postasını almak için |
|
|
Aşağıdaki özelliklerden birini alan boş öğe:
|
|
|
Kullanıcı adı dışında bir DN özelliği (ör. e-posta) kullanarak kimlik doğrulaması yapmak istiyorsanız LDAP politikasını, istekten bir DN özelliği (ör. kullanıcı adı) alacak şekilde yapılandırın. Bu özellik, kullanıcıyı LDAP'de tanımlamak, e-postayı almak ve kullanıcının kimliğini doğrulamak için kullanılır. Örneğin, LDAP'nin e-posta adresini depolamak için "mail" özelliğini tanımladığını varsayarsak:
|
|
Arama |
|
|
|
Uyguladığınız arama davranışı için üst öğe. |
|
|
İsteğin veya yanıtın meta verilerinde kullanıcıyı tanımlayarak bu öğeyi, kullanıcı için LDAP'den ek DN özellikleri almak üzere kullanabilirsiniz. Örneğin, istek kullanıcı e-posta adresini içeriyorsa ve LDAP'niz kullanıcı e-posta adreslerini depolamak için bir
Bu sorgu, LDAP'de istekteki e-postayla eşleşen bir e-posta arar ve politika artık Attributes (Özellikler) öğesiyle bu kullanıcı için ek DN özellikleri alabilir. |
|
|
Kullanıcı için almak istediğiniz DN meta verilerini tanımlamak üzere bir veya daha fazla Örneğin, Özellik değerleri, LDAP'nızda tanımlanan DN özelliği adlarıdır. <Attributes> <Attribute>address</Attribute> <Attribute>phone</Attribute> <Attribute>title</Attribute> </Attributes> |
Kullanım notları
Apigee Edge Private Cloud, API çağrılarında bir LDAP sağlayıcısından yararlanmanıza olanak tanır. LDAP politikası sayesinde uygulamalar, LDAP'de depolanan kullanıcılara karşı kimlik bilgilerinin kimliğini doğrulayabilir ve LDAP'den ayırt edici adlar (DN'ler) alabilirsiniz. Bu adlar, her kullanıcıyla ilişkili meta veriler veya özelliklerdir (ör. e-posta, adres ve telefon numarası). Döndürülen DN, API proxy'si tarafından daha sonra kullanılmak üzere bir değişkende saklanır.
LDAP kaynağı oluşturma
LDAP politikası, Apigee Edge'de oluşturduğunuz bir LDAP kaynağını kullanır. LDAP kaynağı, LDAP deponuzla ilgili bağlantı bilgilerini sağlar.
LDAP kaynakları oluşturmak ve yönetmek için aşağıdaki API'yi ve yükü kullanın:
API
LDAP kaynağı oluşturma (POST) veya tüm LDAP kaynaklarını listeleme (GET):
/v1/organizations/org_name/environments/environment/ldapresources
LDAP kaynağı için ayrıntıları alma (GET), güncelleme (POST) ve silme (DELETE):
/v1/organizations/org_name/environments/environment/ldapresources/ldap_resource_name
Yük
Aşağıda, kullanım yorumları içeren örnek bir XML yükü verilmiştir.
<LdapResource name="l>dap<1" >Conne<ction> Ho<sts !-- port is optional: defaults to 389 for ldap:// and 636 for l>daps://< -- Host >port=&q<uot;6>36&qu<ot;foo>.com/<Host />Hosts< SSLEna>b<ledfalse/SSLEnabled !-- optional, >defau<lts to >f<alse -- > < Version3/Version !-- optio>nal, <defaults to 3->- <Authentications>i<mple/Authentication !-- optional, only> simp<le supported -- > ConnectionPr<oviderjndi|unboundi>d</ConnectionProv>ider <!-- required >-- ServerSetTypesingle|<round robin|fa>i<lover/ServerSetType !-- not ap>plica<ble for jndi -- !-- If using a custom LDAP provider, the fully> qual<ified class: -- > LdapConnectorClasscom.cu<stom.ldap.MyProvide>r/L<dapConnecto>rCl<ass /Connection Connec>t<Pool enabled="true" !-- enabled is> opti<onal, d>efaul<ts to tr>u<e -- Timeout30000/Timeout !-- optional, in milliseco>nds; <if not >se<t, no ti>m<eout -- Maxsize50/Maxsize !-- optional; if >not s<et, no m>ax< connecti>o<ns -- Prefsize30/Prefsize !-- optiona>l; if< not set><, no pref> <size -- Initsize/Initsize !-- optional>; if <not set,>< defaults> <to 1 -- Protocol/Protocol !-- optional; if not s>et,< defaults to> <39;ss>l pla<in>' -- /ConnectPool A<dmi>n < DNcn=ma>nager,<dc=apigee>,dc<=com/D>N< Password>secret/Password /Admin /LdapResource
curl örneği: LDAP kaynağı oluşturma
Aşağıdaki örnekte ldap1 adlı bir LDAP kaynağı oluşturulur.
curl -X POST -H "Content-Type: application/xml" \ https://api.enterprise.apigee.com/v1/organizations/myorg/environments/test/ldapresources \ -u apigee_email:passwor<d -d \ 'LdapResourc>e nam<e="ld>ap1&quo<t; > Conne<ctio>n < Host>s < Hostf>oo.com/<Host > /Hos<ts SS>LEnable<dfalse/>S<SLEnable>d < Version3/Vers>ion < Authenticat>ionsimp<le/Authentication > Con<nectionProviderunbo>undid/C<onnectionProv>ider <ServerSetTyper>ound <robin/Serve>rSetT<ype /Connection Co>nnectPo<ol enab>led=&<quot;tru>e"< >Ti<meout300>00/Time<out > <Maxsize50>/Maxsiz<e ><Prefsize3>0/Prefs<ize >< Initsiz>e/Ini<tsize >Proto<col/P>rotocol< > /ConnectPool Admin < > DNcn=<manager,>dc=api<gee,dc=co>m/DN < >Pas<swordsecret/P>assword /Admin /LdapResource'
Yanıt kodları
Politikanın başarı veya başarısızlık için döndürdüğü HTML yanıt kodları aşağıda verilmiştir:
- Başarılı: 200
- Hata: 401
Edge for Private Cloud'da özel bir LDAP sağlayıcısı kullanma
Özel LDAP sağlayıcı kullanma
Apigee Edge for Private Cloud, LDAP politikasıyla etkileşim kurmak üzere önceden yapılandırılmış bir LDAP sağlayıcıyla birlikte gelir. Ancak özel bir LDAP sağlayıcı kullanıyorsanız sağlayıcının LDAP politikasını desteklemesini sağlamanız gerekir. Bunu yapmak için:
- LDAP sağlayıcı sınıfınızda
ExternalLdapConProviderarayüzünü uygulayın.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(); } - Politika yapılandırmasının
<LdapConnectorClass>bölümünde (sonraki bölümler), özel LDAP sağlayıcınızın tam nitelikli sınıf adını ekleyin. - custom-ldap.jar_.zip dosyasını indirin. (Sağ tıklayıp Farklı Kaydet'i seçmeniz gerekebilir.)
- Dosyayı arşivden çıkarın.
- custom-ldap.jar dosyasını ortamınıza ekleyin ve sınıf yolunuzda olduğundan emin olun.
- LDAP sağlayıcınız için bir ortam kaynağı oluşturun. LDAP politikasının
<LdapResource>öğesinde ortam kaynağı adını kullanırsınız.
Java için UnboundID LDAP SDK'sını kullanma
UnboundID LDAP SDK'sını LDAP politikasıyla kullanabilirsiniz ancak önce 2.3.1 sürümünü indirip her bir mesaj işlemcinizin sınıf yollarına eklemeniz gerekir.
UnboundID LDAP SDK'sını LDAP politikasıyla kullanmak için:
- Bir tarayıcı açın ve UnboundID LDAP SDK'sının Sourceforge dosya deposuna gidin:
https://sourceforge.net/projects/ldap-sdk/files/
- SDK'nın 2.3.1 sürümünü (SE veya Standard Edition) bulup bu sürümün ZIP dosyasını indirin. Örneğin, "unboundid-ldapsdk-2.3.1-se.zip" dosyasını indirin.
- Aşağıdaki örnekte gösterildiği gibi, JAR dosyasını SDK ZIP dosyasından çıkarın:
unzip -j -d ~/tmp ~/Downloads/unboundid-ldapsdk-2.3.1-se.zip unboundid-ldapsdk-2.3.1-se/unboundid-ldapsdk-se.jar
Bu komut, yalnızca JAR dosyasını ~/tmp dizinine çıkarır. Bu, isteğe bağlı olsa da
-jile dizin yapısını bırakır. - Her Mesaj İşleyici düğümünde:
- JAR dosyasını Message Processor'ın
/opt/apigee/edge-gateway/lib/thirdpartydizinine kopyalayın. - Gerekirse mesaj işlemcisinin erişebilmesi için JAR dosyasında Apigee kullanıcısına izin verin.
- Mesaj İşleyici'yi yeniden başlatın:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Edge,
/opt/apigee/edge-gateway/lib/thirdpartydizinindeki tüm üçüncü taraf kitaplıklarını sınıf yoluna ekler. - JAR dosyasını Message Processor'ın
Akış değişkenleri
Aşağıda, SearchQuery tarafından doldurulan LDAP politikası değişkenleri verilmiştir.
|
Değişken |
Açıklama |
|---|---|
ldap.policyName.execution.success |
Politika yürütüldükten sonra bu akış değişkeni, sonuca bağlı olarak "true" veya "false" değerini içerir. |
ldap.policyName.search.result[index]. attribute.attrName[index]=value |
Bu değişkenin esnek biçimi, özellikle de dizin; birden fazla özelliğin yanı sıra birden fazla değere sahip özellikleri de hesaba katar. Dizin, 1'den başlayan bir sayıdır. Dizin numarası sağlanmazsa varsayılan dizin numarası 1 olur. Politika adres, telefon ve e-posta döndürüyorsa şu değişkenleri kullanarak ilk özelliği ve değeri alabilirsiniz: ldap.policyName.search.result.attribute.address ldap.policyName.search.result.attribute.phone ldap.policyName.search.result.attribute.email Arama sonuçlarında üçüncü adres özelliğini almak istiyorsanız: şunu kullanırsınız: ldap.policyName.search.result[3].attribute.address Bir özellik birden fazla değere sahipse (örneğin, bir kullanıcının birden fazla e-posta adresi varsa) sonuçlardan ikinci e-posta adresini şu şekilde alırsınız: ldap.policyName.search.result.attribute.mail[2] |
Hata kodları
Edge politikalarından döndürülen hatalar, Hata kodu referansı'nda açıklandığı gibi tutarlı bir biçime sahiptir.
Bu politika aşağıdaki hata kodlarını kullanır:
| Hata Kodu | Message |
|---|---|
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. |