Apigee Edge belgelerini görüntülüyorsunuz.
.
Git:
Apigee X belgeleri. bilgi
Ne?
LDAP Politikası şunları sağlar:
- Kimlik doğrulama: İstekte sağlanan kullanıcı kimlik bilgileri doğrulanır.
kimlik bilgileriyle karşılaştırarak kontrol eder. LDAP politikası,
kimlik doğrulamasıyla, şifreyle birlikte herhangi bir DN değerini (söz konusu DN değeri olsa bile)
bu istek istekte yer almaz. Örneğin, şunun için e-posta / şifre kullanmanız gerektiğini varsayalım:
kimlik doğrulama. Aşağıdaki seçenekler kullanılabilir:
- İstekte e-posta adresi yer alıyorsa, bunu LDAP şifresiyle birlikte kullanabilirsiniz. kimlik doğrulama.
- E-posta istekte yer almıyorsa ancak başka bir DN özelliği (ör. telefon numarası) bulunuyorsa LDAP'den ilgili e-postayı almak için telefon numarasını kullanabilir, ardından e-posta / parolayı girin.
- Ayırt edici ad (DN) araması: Kimlik doğrulamasına ek olarak istekteki e-posta ve kullanıcı özellikleri gibi bir kullanıcı özelliğini tanımlamak için o kullanıcıya ait diğer DN özelliklerini LDAP'den alan bir sorgu gerçekleştirebilirsiniz. Alınan DN: bir değişkende depolanır.
Korunan kaynaklara erişimin LDAP'nizdeki kullanıcılarla sınırlı olması gerektiğinde LDAP Politikası'nı kullanın (özellikle de yönetici kullanıcılarınız, kuruluşunuzdaki kullanıcılar ve geliştiriciler gibi) OAuth jetonu erişimi gereksiz veya çok ağır. Politika ayrıca aşağıdakiler için de tasarlanmıştır: API proxy akışlarında kullanılmak üzere alan adı meta verilerini alma.
Örneğin, bir API çağrısının yalnızca kullanıcının kimliği başarıyla doğrulandığında yürütülmesini sağlayabilirsiniz LDAP'ye karşı; ve isteğe bağlı olarak kullanıcı için DN (Alan Adı) özelliklerini kimlik doğrulama başarılı olur.
Ek bilgi için:
- Yöneticilik yapmak API yönetimi için varsayılan LDAP şifresi politikası
- "Şifre politikanız hakkında önemli bilgilendirme" Apigee Topluluğu
Örnekler
Kullanıcı adı/şifre 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 yönelik kimlik doğrulama sağlar. Politika, kullanıcı adını iletir. LDAP'ye gönderdiğiniz istekle ilişkili ve parolayı girin.
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 kullanıcının DN'sini alır, ardından Kullanıcı kimliğini, istek başlığında sağlanan şifreyle LDAP'de doğrular.
LDAP 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. İstekteki e-posta adresini kullanır kullanıcıyı tanımlamak için kullanılır, ardından kullanıcının LDAP. Alınan DN özellikleri bir değişkende depolanır. "Politikaya özel" değişkenleri" olarak ayarlanır.
LDAP'yi aramak ve DN özelliklerini almak için istekte yönetici bulunmalıdır kimlik bilgileri.
Öğe referansı
Aşağıda, LDAP Politikası öğelerinin ve özelliklerinin açıklamaları verilmiştir.
Öğe |
Açıklama |
---|---|
|
Politika adını girmeniz için ad özelliğine sahip üst öğe. |
|
LDAP Politikası'nı özel bir LDAP
sağlayıcı (Apigee tarafından sağlanmaz) tam kapsamlı LDAP bağlayıcı sınıfını belirtin.
Bu, Apigee'nin |
|
LDAP kaynağının ortam adını girin. Bkz. LDAP kaynağı'nı inceleyin. |
|
Tüm verilerinizin bulunduğu temel LDAP düzeyi. Örneğin,
Apigee'nin LDAP sağlayıcısıdır; tüm veriler
|
|
|
Kimlik Doğrulama |
|
|
Uyguladığınız kimlik doğrulama davranışı için üst öğe. |
|
Aşağıdaki özelliklerden birini alan boş öğe:
Kullanıcı adı ile kimlik doğrulaması yapmıyorsanız veya kullanıcı adı bu öğeyi eklemeniz gerekmez. İstekte kullanıcı adı yer alıyorsa ancak DN özelliğine sahip bir kullanıcının kimliğini doğrulamak istiyorsanız
Kullanıcı e-posta adresini almak için kullanıcı adı yerine |
|
Aşağıdaki özelliklerden birini alan boş öğe:
|
|
Kullanıcı adı dışındaki bir DN özelliğini (e-posta gibi) kullanarak kimlik doğrulaması yapmak istiyorsanız LDAP politikasını istekten bir DN özelliği (kullanıcı adı gibi) alacak şekilde yapılandırmanız gerekir. Bu, LDAP'de kullanıcıyı tanımlamak, e-postayı almak ve belirtir. Örneğin, LDAP'nin bir "e-posta"yı tanımladığını varsayarsak özelliği:
|
Arama |
|
|
Uyguladığınız arama davranışının üst öğesi. |
|
İstek veya yanıtta meta veri ile kullanıcıyı tanımlayarak
öğesi kullanabilirsiniz. Örneğin,
isteği, kullanıcı e-postasını içerir ve LDAP'niz için bir
Bu sorgu, istekteki e-posta ile eşleşen e-postayı bulmak için LDAP'de arama yapar ve politika artık Özellikler öğesine dokunun. |
|
Şunlar için 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ıza olanak tanır. LDAP ile Politika, uygulamalar LDAP'de depolanan kullanıcılara karşı kimlik bilgilerini doğrulayabilir ve LDAP'den ayırt edici adları (DN'ler) al; ilişkili meta veriler veya özellikler (ör. e-posta, adres ve telefon numarası) Döndürülen DN, tarafından daha fazla kullanılması olduğunu hatırlatmak isteriz.
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ğı oluşturun (POST
) ya da tüm LDAP kaynaklarını listeleyin (GET
):
/v1/organizations/org_name/environments/environment/ldapresources
Bir LDAP kaynağı (GET
), Güncelleme (POST
) ve Sil (DELETE
) ile ilgili ayrıntıları alın:
/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ü 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 örnekte ldap1 adında 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: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ı
Aşağıda, politikanın başarı veya başarısızlık durumunda döndürdüğü HTML yanıt kodları bulunmaktadır:
- Başarılı: 200
- Hata: 401
Private Cloud için Edge'de özel bir LDAP sağlayıcısı kullanma
Özel bir LDAP sağlayıcısı
Private Cloud için Apigee Edge, halihazırda LDAP Politikası ile etkileşimde bulunmanız gerekir. Ancak, özel bir LDAP sağlayıcı kullanıyorsanız LDAP Politikası'nı desteklemesi için sağlayıcıdan teyit almanız 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.)
- Sıkıştırılmış dosyayı açın.
- custom-LDAP.jar dosyasını ortamınıza ekleyin ve dosyanın sınıf yolunuzda bulunduğundan emin olun.
- LDAP sağlayıcınız için bir ortam kaynağı oluşturun. Ortam kaynağını kullanacaksınız
LDAP politikasının
<LdapResource>
öğesindeki ad.
Her bir Java için UnboundID LDAP SDK'sı
UnboundID LDAP SDK'yı LDAP politikasıyla birlikte kullanabilirsiniz, ancak önce sürümü indirmeniz gerekir 2.3.1 sürümünü indirin ve bunu İleti İşleyicinizin sınıf yollarının her birine ekleyin.
UnboundID LDAP SDK'yı LDAP politikasıyla kullanmak için:
- Bir tarayıcı açın ve UnboundID LDAP SDK'nın 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 ZIP dosyasını indirin olanak tanır. Örneğin, "unboundid-LDAPsdk-2.3.1-se.zip" dosyasını indirin.
- JAR dosyasını, aşağıdaki örnekte gösterildiği gibi 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. Dizin'i bırakır (isteğe bağlı olsa da)
-j
ile yapılandırılacak. - Her İleti İşleyen düğümünde:
- JAR dosyasını Mesaj İşleyici'nin
/opt/apigee/edge-gateway/lib/thirdparty
dizini. - Gerekirse mesaj işleyenin JAR dosyasına 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, tüm üçüncü taraf kitaplıklarını
/opt/apigee/edge-gateway/lib/thirdparty
dizinini sınıf yoluna ekleyin. - JAR dosyasını Mesaj İşleyici'nin
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 "true" değerini içerir "yanlış", seçin. |
ldap.policyName.search.result[index]. attribute.attrName[index]=value |
Bu değişkenin esnek biçimi, belirli: birden fazla özellik ve birden çok özelliği değerler. Dizin 1'den başlayan bir sayıdır. Dizin numarası sağlanmazsa varsayılan dizin numarası 1'dir. Politika; adres, telefon ve e-posta adresi döndürürse ilk özelliği alabilirsiniz değerini girin: ldap.policyName.search.result.attribute.address ldap.policyName.search.result.attribute.phone ldap.policyName.search.result.attribute.email Arama sonuçlarındaki üçüncü adres özelliğini almak isterseniz şunu kullanırsınız: ldap.policyName.search.result[3].attribute.address Bir özelliğin birden fazla değeri varsa (örneğin, bir kullanıcının birden fazla e-posta adresi varsa) kullanıyorsanız ikinci e-posta adresini şu şekilde 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çı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. |