Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Ne
LDAP Politikası şunları sağlar:
- Kimlik doğrulama: İstekte sağlanan kullanıcı kimlik bilgileri, LDAP sağlayıcısındaki kimlik bilgileriyle doğrulanır. LDAP politikası, kimlik doğrulama konusunda size büyük esneklik sağlayarak istediğiniz DN değeri istekte bulunmasa bile şifreyle birlikte herhangi bir DN değerini kullanmanıza izin verir. Örneğin, kimlik doğrulama için e-posta / şifre kullanmanız gerektiğini varsayalım. Aşağıdaki seçenekler kullanılabilir:
- İstekte e-posta varsa bu adresi LDAP kimlik doğrulaması şifresiyle birlikte kullanabilirsiniz.
- İstekte e-posta yoksa ancak başka bir DN özelliği varsa (ör. telefon numarası) telefon numarasını LDAP'den ilgili e-postayı almak için kullanabilir, ardından kimlik doğrulamak için e-posta/şifre kullanabilirsiniz.
- Ayırt edici ad (DN) araması: Kimlik doğrulamanın yanı sıra istekteki e-posta gibi bir kullanıcı özelliğini tanımlamak ve bu kullanıcı için LDAP'den diğer DN özelliklerini alan bir sorgu gerçekleştirmek için LDAP Politikası'nı da kullanabilirsiniz. Alınan DN, bir değişkende depolanı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ştiriciler gibi) sınırlı olması gerektiğinde (özellikle de OAuth jetonu erişimi gereksiz veya çok ağır olduğunda) LDAP Politikasını kullanın. Politika, API proxy akışlarında kullanmak üzere alan adı meta verilerini almak için de tasarlanmıştır.
Örneğin, yalnızca LDAP'ye göre kullanıcının kimliği başarıyla doğrulandığında bir API çağrısının yürütülmesini ve kimlik doğrulama başarılı olduktan sonra isteğe bağlı olarak kullanıcının DN (Alan Adı) özelliklerini almasını sağlayabilirsiniz.
Daha fazla bilgi için aşağıdaki makalelere bakın:
- API yönetimi için varsayılan LDAP şifre politikasını yönetme
- Apigee Topluluğu'nda "Şifre politikanız hakkında önemli bilgiler"
Sana Özel
Kullanıcı adı/şifre kimlik doğrulaması
<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>
Bu örnek, bir LDAP sağlayıcısına göre kimlik doğrulama sağlar. Politika, kimlik doğrulama için kullanıcı adını ve şifreyi istekten LDAP'ye iletir.
DN özelliği kimlik doğrulaması
<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>
Bu politika, istek başlığında e-posta ile birlikte kullanıcının DN'sini alır, ardından istek başlığında sağlanan şifreyi kullanarak kullanıcının kimliğini LDAP ile doğrular.
LDAP'yi Arama
<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>
Bu politika, özel bir LDAP sağlayıcısına referans verir. Bu işlev, kullanıcıyı tanımlamak için istek başlığındaki 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 depolanır. "Politikaya özel değişkenler" konusuna bakın.
LDAP'de arama yapmak ve DN özelliklerini almak için istekte yönetici kimlik bilgileri bulunmalıdır.
Öğ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 LDAP sağlayıcısıyla (Apigee tarafından sağlanmaz) kullanırken tam LDAP bağlayıcı sınıfını belirtin.
Bu, Apigee'nin |
|
LDAP kaynağının ortam adını girin. Daha fazla bilgi edinmek için LDAP kaynağı oluşturma başlıklı makaleye bakın. |
|
Tüm verilerinizin altında yer aldığı temel LDAP 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ğrulaması yapmıyorsanız veya kullanıcı adı isteğe dahil değilse bu öğeyi eklemeniz gerekmez. İstekte kullanıcı adı yer alıyorsa ancak kullanıcı adı dışında (e-posta gibi) bir DN özelliğiyle kullanıcının kimliğini doğrulamak istiyorsanız şifreyle ilişkilendirilen kullanıcı e-postasını almak için bir |
|
Aşağıdaki özelliklerden birini alan boş öğe:
|
|
Kullanıcı adı dışında e-posta gibi bir DN özelliği kullanarak kimlik doğrulamak istiyorsanız istekten bir DN özelliği (ör. kullanıcı adı) almak için LDAP politikasını 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 bir "mail" özelliği tanımladığı varsayıldığında:
|
Arama |
|
|
Uyguladığınız arama davranışının üst öğesi. |
|
İstek veya yanıtta meta veriler bulunan kullanıcıyı tanımlayarak bu öğeyi LDAP'den kullanıcı için ek DN özellikleri almak amacıyla kullanabilirsiniz. Örneğin, istekte kullanıcı e-posta adresi varsa ve LDAP'niz kullanıcı e-posta adreslerini depolamak için
Bu sorgu, LDAP'de istekteki e-postayla eşleşen bir e-posta arar ve politika artık Attributes (Özellikler) öğesiyle ilgili 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'nizde tanımlanan DN özellik adlarıdır. <Attributes> <Attribute>address</Attribute> <Attribute>phone</Attribute> <Attribute>title</Attribute> </Attributes> |
Kullanım notları
Private Cloud için Apigee Edge, API çağrılarında bir LDAP sağlayıcısından yararlanmanızı sağlar. Uygulamalar, LDAP Politikası ile LDAP'de depolanan kullanıcılara karşı kimlik bilgilerini doğrulayabilir ve LDAP'den ayırt edici adları (DN'ler) (her bir kullanıcıyla ilişkilendirilen e-posta, adres ve telefon numarası gibi meta veriler veya özellikler) alabilirsiniz. Döndürülen DN, API proxy'si tarafından daha sonra kullanılmak üzere bir değişkende depolanır.
LDAP kaynağı oluşturma
LDAP politikası, Apigee Edge'de oluşturduğunuz bir LDAP kaynağından yararlanır. LDAP kaynağı, LDAP deponuzla 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
Bir LDAP kaynağı (POST
) oluşturun veya tüm LDAP kaynaklarını listeleyin (GET
):
/v1/organizations/org_name/environments/environment/ldapresources
Bir LDAP kaynağı için (GET
), Güncelleme (POST
) ve Silme (DELETE
) ile ilgili ayrıntıları alma:
/v1/organizations/org_name/environments/environment/ldapresources/ldap_resource_name
Yük
Aşağıda, kullanım yorumlarını içeren örnek bir XML yükü gösterilmektedir.
<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 örneği: LDAP kaynağı oluşturma
Aşağıdaki örnek, ldap1 adında bir LDAP kaynağı oluşturur.
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>'
Yanıt kodları
Politikanın başarılı veya başarısız olması durumunda döndürdüğü HTML yanıt kodları aşağıda verilmiştir:
- Başarı: 200
- Hata: 401
Private Cloud için Edge'de özel bir LDAP sağlayıcısı kullanma
Özel bir LDAP sağlayıcısı kullanma
Private Cloud için Apigee Edge, LDAP Politikası ile etkileşim kurmak üzere yapılandırılmış bir LDAP sağlayıcısıyla birlikte sunulur. Ancak, özel bir LDAP sağlayıcısı kullanıyorsanız sağlayıcının LDAP Politikasını desteklemesini etkinleştirmeniz gerekir. Bunun için:
- LDAP sağlayıcı sınıfınızda
ExternalLdapConProvider
arayü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 sınıf adını ekleyin. - Şu dosyayı indirin: custom-ldap.jar_.zip. (Sağ tıklayıp Farklı Kaydet'i seçmeniz gerekebilir.)
- İçindekileri çıkarın.
- custom-ldap.jar dosyasını ortamınıza ekleyin ve dosyanın sınıf yolunda olduğundan emin olun.
- LDAP sağlayıcınız için bir ortam kaynağı oluşturun. Ortam kaynağı adını, LDAP politikasının
<LdapResource>
öğesinde kullanacaksı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ü indirmeniz ve İleti İşleyicinizin sınıf yollarının her birine eklemeniz gerekir.
UnboundID LDAP SDK'sını LDAP politikasıyla kullanmak için:
- Bir tarayıcı açın ve UnboundID LDAP SDK'sı için Sourceforge dosya deposuna gidin:
https://sourceforge.net/projects/ldap-sdk/files/
- SDK'nın 2.3.1 (SE veya Standart Sürüm) sürümünü bulun ve 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. İsteğe bağlı olsa da, dizin yapısını
-j
ile kaldırır. - Her Mesaj İşleyici düğümünde:
- JAR dosyasını Mesaj İşleyici'nin
/opt/apigee/edge-gateway/lib/thirdparty
dizinine kopyalayın. - Gerekirse mesaj işlemcisinin erişebilmesi için Apigee kullanıcısına JAR dosyasında 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/thirdparty
dizinindeki tüm üçüncü taraf kitaplıklarını sınıf yoluna ekler. - JAR dosyasını Mesaj İşleyici'nin
Akış değişkenleri
Aşağıda SearchQuery
ile 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" (doğru) veya "false" (yanlış) değerini içerir. |
ldap.policyName.search.result[index]. attribute.attrName[index]=value |
Bu değişkenin esnek biçimi, özellikle dizin: birden çok özelliği ve birden çok değeri olan özellikleri dikkate alır. Dizin 1 ile başlayan bir sayıdır. Dizin numarası sağlanmazsa varsayılan dizin numarası 1'dir. Politika adres, telefon ve e-posta döndürürse ilk özelliği ve değeri aşağıdaki değişkenleri kullanarak 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 kullanmanız gerekir: ldap.policyName.search.result[3].attribute.address Bir özelliğin birden çok değeri varsa (örneğin, bir kullanıcının birden fazla e-posta adresi varsa) ikinci e-posta adresini aşağıdaki gibi sonuçlardan alırsınız: ldap.policyName.search.result.attribute.mail[2] |
Hata kodları
Edge politikalarından döndürülen hatalar, Hata kodu referansı bölümünde açıklanan tutarlı bir biçimde olur.
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. |