Ta sekcja wyjaśnia, jak uzyskać, zainstalować i skonfigurować komponenty wymagane do zintegrować usługę LDAP z Apigee Edge na potrzeby uwierzytelniania użytkowników.
Wymagania wstępne
- Musisz mieć Apigee Edge na potrzeby instalacji Private Cloud 4.18.05.
- Musisz mieć globalne dane logowania administratora systemu w Apigee Edge dla Private Cloud, przeprowadź tę instalację.
- Musisz znać katalog główny instalacji Apigee Edge for Private Cloud.
domyślny katalog główny to
/opt
. - Musisz dodać dane logowania administratora globalnego systemu Edge do
zewnętrznego serwera LDAP. Pamiętaj, że domyślnie dane logowania sysadmin są przechowywane w Edge
wewnętrzny LDAP. Gdy przełączysz się na zewnętrzny LDAP, Twoje dane logowania sysadmin
będzie uwierzytelniany w tym miejscu. Dlatego musisz udostępnić dane logowania w
systemu zewnętrznego, zanim włączysz uwierzytelnianie zewnętrzne w Edge.
Jeśli na przykład masz skonfigurowany i zainstalowany Apigee Edge dla Private Cloud z globalnymi dane logowania administratora systemu:
username: edgeuser@mydomain.com password: Secret123
Następnie użytkownik
edgeuser@mydomain.com
z hasłem DomenaSecret123
musi też znajdować się w zewnętrznym katalogu LDAP. - Jeśli korzystasz z klastra serwera zarządzania, musisz wykonać wszystkie czynności w tym dokumencie dla każdego serwera zarządzania.
Konfigurowanie uwierzytelniania zewnętrznego
Główne zadanie, które będziesz wykonywać, to konfigurowanie pliku management-server.properties
.
To działanie obejmuje zatrzymywanie i uruchamianie serwera zarządzania brzegiem
chcą używać wiązań bezpośrednich lub pośrednich, szyfrowania poufnych danych uwierzytelniających
zadania.
- Ważne: zdecyduj, czy chcesz korzystać z konwersji pośrednich czy bezpośrednich uwierzytelniania przy użyciu powiązań. Ta decyzja wpłynie na niektóre aspekty konfiguracji. Zobacz External Authentication (Uwierzytelnianie zewnętrzne).
- Ważne: te kroki konfiguracji musisz wykonać w każdym interfejsie Apigee Edge Management Serwer (jeśli masz więcej niż jeden).
- Otwórz aplikację
/opt/apigee/customer/application/management-server.properties
w edytorze tekstu. Jeśli plik nie istnieje, utwórz go. - Dodaj ten wiersz:
conf_security_authentication.user.store=externalized.authentication
Ten wiersz dodaje funkcję uwierzytelniania zewnętrznego do Edge dla Private Cloud instalacji.
- Aby ułatwić ten krok, utworzyliśmy dwie dobrze ujęte przykładowe konfiguracje: jedno dla uwierzytelniania bezpośredniego, a drugie do uwierzytelniania pośredniego. Zobacz przykłady poniżej. powiązanie, którego chcesz użyć, i dokończ konfigurację:
- Ponownie uruchom serwer zarządzania:
/opt/apigee/apigee-service/bin/apigee-service edge-management-server restart
- Sprawdź, czy serwer działa:
/opt/apigee/apigee-service/bin/apigee-all status
- Ważne: musisz skonfigurować dodatkową konfigurację w jednej z tych usług (lub w obu)
zachodzi taka sytuacja:
- Jeśli chcesz, aby użytkownicy logowali się za pomocą nazw użytkownika, które:
a nie adresów e-mail. W tym przypadku użytkownik sysadmin musi też uwierzytelnić się za pomocą
nazwa użytkownika.
LUB
- Jeśli hasło do konta użytkownika sysadmin w zewnętrznym Hasło LDAP różni się od hasła skonfigurowanego podczas pierwszej instalacji Apigee Edge dla Chmura prywatna. Zapoznaj się z sekcją Wymagana konfiguracja różnych danych logowania sysadmin.
- Jeśli chcesz, aby użytkownicy logowali się za pomocą nazw użytkownika, które:
a nie adresów e-mail. W tym przypadku użytkownik sysadmin musi też uwierzytelnić się za pomocą
nazwa użytkownika.
ŁĄCZENIE BEZPOŚREDNIE przykładowa konfiguracja
## The first property is always required to enable the external authorization feature. ## Do not change it. conf_security_externalized.authentication.implementation.class=com.apigee.rbac.impl.LdapAuthenticatorImpl ## Identify the type of binding: ## Set to "true" for direct binding ## Set to "false" for indirect binding. conf_security_externalized.authentication.bind.direct.type=true ## The next seven properties are needed regardless of direct or indirect binding. You need to ## configure these per your external authentication installation. ## The IP or domain for your external LDAP instance. conf_security_externalized.authentication.server.url=ldap://localhost:389 ## Your external LDAP server version. conf_security_externalized.authentication.server.version=3 ## The server timeout in milliseconds. conf_security_externalized.authentication.server.conn.timeout=50000 ## Change these baseDN values to match your external LDAP service. This attribute value will be ## provided by your external LDAP administrator, and may have more or fewer dc elements depending ## on your setup. conf_security_externalized.authentication.user.store.baseDN=dc=apigee,dc=com ## Do not change this search string. It is used internally. conf_security_externalized.authentication.user.store.search.query=(&(${userAttribute}=${userId})) ## Identifies the external LDAP property you want to bind against for Authentication. For ## example if you are binding against an email address in Microsoft Active Directory, this would be ## the userPrincipalName property in your external LDAP instance. Alternatively if you are binding ## against the user's ID, this would typically be in the sAMAccountName property: conf_security_externalized.authentication.user.store.user.attribute=userPrincipalName ## The LDAP attribute where the user email value is stored. For direct binding with AD, set it to ## userPrincipalName. conf_security_externalized.authentication.user.store.user.email.attribute=userPrincipalName ## ONLY needed for DIRECT binding. ## The direct.bind.user.directDN property defines the string that is used for the bind against the ## external authentication service. Ensure it is set as follows: conf_security_externalized.authentication.direct.bind.user.directDN=${userDN}
Przykład konfiguracji POWIĄZANIA POŚREDNIEJ
## Required to enable the external authorization feature. Do not change it. conf_security_externalized.authentication.implementation.class=com.apigee.rbac.impl.LdapAuthenticatorImpl ## Identifies the type of binding: ## Set to "true" for direct binding ## Set to "false" for indirect binding. conf_security_externalized.authentication.bind.direct.type=false ## The next seven properties are needed regardless of direct or indirect binding. You need to ## configure these per your external LDAP installation. ## The IP or domain for your external LDAP instance. conf_security_externalized.authentication.server.url=ldap://localhost:389 ## Replace with your external LDAP server version. conf_security_externalized.authentication.server.version=3 ## Set the server timeout in milliseconds. conf_security_externalized.authentication.server.conn.timeout=50000 ## Change these baseDN values to match your external LDAP service. This attribute value will be # provided by your external LDAP administrator, and may have more or fewer dc elements # depending on your setup. conf_security_externalized.authentication.user.store.baseDN=dc=apigee,dc=com ## Do not change this search string. It is used internally. conf_security_externalized.authentication.user.store.search.query=(&(${userAttribute}=${userId})) ## Identifies the external LDAP property you want to bind against for Authentication. For example ## if you are binding against an email address, this would typically be in the ## userPrincipalName property in your external LDAP instance. Alternatively if you are binding ## against the user's ID, this would typically be in the sAMAccountName property. ## See also "Configuration required for different sysadmin credentials". conf_security_externalized.authentication.user.store.user.attribute=userPrincipalName ## Used by Apigee to perform the Authorization step and currently, Apigee only supports email ## address for Authorization. Make sure to set it to the attribute in your external LDAP that ## stores the user's email address. Typically this will be in the userPrincipalName property. conf_security_externalized.authentication.user.store.user.email.attribute=userPrincipalName ## The external LDAP username (for a user with search privileges on the external LDAP) and ## password and whether the password is encrypted. You must also set the attribute ## externalized.authentication.bind.direct.type to false. ## The password attribute can be encrypted or in plain text. See ## "Indirect binding only: Encrypting the external LDAP user's password" ## for encryption instructions. Set the password.encrypted attribute to "true" if the password is ## encrypted. Set it to "false" if the password is in plain text. conf_security_externalized.authentication.indirect.bind.server.admin.dn=myExtLdapUsername conf_security_externalized.authentication.indirect.bind.server.admin.password=myExtLdapPassword conf_security_externalized.authentication.indirect.bind.server.admin.password.encrypted=true
Testowanie instalacji
- Sprawdź, czy serwer działa:
/opt/apigee/apigee-service/bin/apigee-all status
- Wykonaj to polecenie, podając zestaw administratorów systemu globalnego Apigee Edge
dane logowania. Wywołanie interfejsu API, które będziemy testować, może być wykonane tylko przez Edge
sysadmin.
curl -v http://management-server-IP:8080/v1/o -u sysadmin_username
Na przykład:
curl -v http://192.168.52.100:8080/v1/o -u jdoe@mydomain.com
- Gdy pojawi się prośba, wpisz hasło.
Jeśli polecenie zwraca stan 200 i listę organizacji, konfiguracja jest prawidłowa. To polecenie umożliwia sprawdzenie, czy wywołanie interfejsu API do serwera zarządzania brzegiem zostało zakończone uwierzytelnienie przy użyciu zewnętrznego systemu LDAP.