Konfiguruj: Federacja użytkowników do uwierzytelniania
Dowiedz się, jak skonfigurować uwierzytelnianie użytkownika za pomocą federacyjnego zarządzania tożsamościami.
Konfiguruj: Federacja użytkowników do uwierzytelniania
Dowiedz się, jak skonfigurować uwierzytelnianie użytkownika za pomocą federacyjnego zarządzania tożsamościami.
Jak skonfigurować federację użytkowników do uwierzytelniania?
W tym artykule opisano instrukcje dotyczące konfiguracji federacji użytkowników, która ma być używana jako protokół uwierzytelniania.
Federacja użytkowników oznacza, że użytkownicy mogą uwierzytelniać się w rozwiązaniach Efecte, zbudowanych na platformie Efecte Service Management, używając tych samych danych logowania (nazwy użytkownika i hasła), co w katalogu klientów.
Instrukcje krok po kroku
1. Zadanie Pro uwierzytelniania musi zostać skonfigurowane na platformie Efecte Service Management przed skonfigurowaniem komponentu Efecte Secure Access
2. Zaloguj się do konsoli administracyjnej Efecte Secure Access
3. Sprawdź, czy konfiguracja jest poprawnie zapisana w komponencie Efecte Secure Access
- Walidację można przeprowadzić w: https://{TENANT_NAME.com}/auth/ i użyć konta main.admin (oraz odpowiedniego hasła odczytanego z konfiguracji dzierżawcy).
4. Po wybraniu opcji Federacja użytkowników powinna wyświetlić się lista zadań uwierzytelniania (jeśli lista jest pusta, odczekaj minutę, aby przesłać dane z Efecte Service Management do Efecte Secure Access ; jeśli lista nadal jest pusta).

5. Wybranie opcji „Edytuj” z poziomu konkretnego zadania ujawnia szczegóły połączenia LDAPS. Warto sprawdzić, czy wszystkie ustawienia są tutaj poprawne, zwłaszcza:
- Importuj użytkowników: WŁ.
- Tryb edycji: RE AD _ONLY
6. Po zapisaniu połączenia w prawym górnym rogu pojawi się menu Akcja, umożliwiające administratorowi synchronizację wszystkich użytkowników z LDAP do Efecte Secure Access

7. Sprawdź, czy AD _GroupMapper jest zainstalowany. Wybierz „Mappery” z górnego paska federacji użytkowników. Spośród domyślnych, jeden (lub więcej) typów mapowania grup-ldap powinien być widoczny tutaj.
- Jeśli nie utworzono automatycznie żadnego mapera grup AD _GroupMapper, użytkownik może utworzyć własny, klikając niebieski przycisk Dodaj mapera.

Przykład mapowania grup AD


8. Po sprawdzeniu konfiguracji administrator może spróbować zsynchronizować wszystkich użytkowników (o czym wspomniano na jednym z poprzednich ekranów). Powinno to spowodować wyświetlenie komunikatu podobnego do


10. Konfiguracja powinna być teraz ukończona i możliwe jest przetestowanie uwierzytelniania Usuwać
Rozwiązywanie problemów
1. Jeśli logi Efecte Secure Access wskazują na problemy związane z połączeniem SSL, na przykład:
Caused by: org. keycloak .models.ModelException: Querying of LDAP failed org. keycloak .storage.ldap.idm.query.internal.LDAPQuery@292d8e81 at org. keycloak .storage.ldap.idm.store.ldap.LD API dentityStore.fetchQueryResults(LD API dentityStore.java:289) at org. keycloak .storage.ldap.idm.query.internal.LDAPQuery.getResultList(LDAPQuery.java:174) ... 80 more Caused by: javax.naming.CommunicationException: simple bind failed: 10.0.2.110:636 [Root exception is javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target] at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:219) at com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2897) at com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:347) at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxFromUrl(LdapCtxFactory.java:225) at com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:189) at com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:243)
at com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:154)
at com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:84)
at org.jboss.as.naming.InitialContext.getDefaultInitCtx(InitialContext.java:116)
at org.jboss.as.naming.InitialContext.init(InitialContext.java:101)
at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
at org.jboss.as.naming.InitialContext.<init>(InitialContext.java:91)
at org.jboss.as.naming.InitialContextFactory.getInitialContext(InitialContextFactory.java:43)
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:695)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:313)
at javax.naming.InitialContext.init(InitialContext.java:244)
at javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
at org.keycloak.storage.ldap.idm.store.ldap.LDAPContextManager.createLdapContext(LDAPContextManager.java:80)
at org.keycloak.storage.ldap.idm.store.ldap.LDAPContextManager.getLdapContext(LDAPContextManager.java:100)
at org.keycloak.storage.ldap.idm.query.internal.LDAPQuery.initPagination(LDAPQuery.java:213)
at org.keycloak.storage.ldap.idm.store.ldap.LDAPOperationManager.searchPaginated(LDAPOperationManager.java:293)
at org. keycloak .storage.ldap.idm.store.ldap.LD API dentityStore.fetchQueryResults(LD API dentityStore.java:277) ... 81 more Caused by: javax.net.ssl.SSLHandshakeException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.ssl.Alert.createSSLException(Alert.java:131) at sun.security.ssl.TransportContext.fatal(TransportContext.java:324) at sun.security.ssl.TransportContext.fatal(TransportContext.java:267) at sun.security.ssl.TransportContext.fatal(TransportContext.java:262) at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:654) at sun.security.ssl.CertificateMessage$T12CertificateConsumer.onCertificate(CertificateMessage.java:473) at sun.security.ssl.CertificateMessage$T12CertificateConsumer.consume(CertificateMessage.java:369) at sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:377) at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:444) at sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:422) at sun.security.ssl.TransportContext.dispatch(TransportContext.java:182) at sun.security.ssl.SSLTransport.decode(SSLTransport.java:152)
at sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1383) at sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1291) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:435) at sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:804) at sun.security.ssl.SSLSocketImpl.access$200(SSLSocketImpl.java:73) at sun.security.ssl.SSLSocketImpl$AppOutputStream.write(SSLSocketImpl.java:1166) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) at com.sun.jndi.ldap.Connection.writeRequest(Connection.java:448) at com.sun.jndi.ldap.Connection.writeRequest(Connection.java:421) at com.sun.jndi.ldap.LdapClient.ldapBind(LdapClient.java:359) at com.sun.jndi.ldap.LdapClient.authenticate(LdapClient.java:214) ... 102 more Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:456)
at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:323) at sun.security.validator.Validator.validate(Validator.java:271) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:315) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:223) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:129) at sun.security.ssl.CertificateMessage$T12CertificateConsumer.checkServerCerts(CertificateMessage.java:638) ... 121 more Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:451) ... 127 more
|
2. Jeśli do połączenia ESA z Active Directory używany jest protokół SSL, ESA musi znać certyfikat prezentowany przez AD . Jest to krok ręczny, który wymaga:
- Zaloguj się do kontenera ESA
- Przejdź do /opt/esa (upewnij się, że istnieje plik truststore.jks)
- W środowiskach testowych możesz wydać następujące polecenie (jeśli nie posiadasz pliku certyfikatu):
- echo -n | openssl s_client -connect AD :636 | sed -ne '/-POCZĄTEK_CERTYFIKATU-/,/-KONIEC_CERTYFIKATU-/p' > AD
- Jednak w środowiskach produkcyjnych zaleca się uzyskanie certyfikatu głównego lub pośredniego od Klienta . Zazwyczaj są one ważne dłużej niż certyfikaty na poziomie serwera.
- Przykładem może być:
- echo -n | openssl s_client -connect 10.0.2.110:636 | sed -ne '/-POCZĄTEK CERTYFIKATU-/,/-KONIEC CERTYFIKATU-/p' > 10.0.2.110.crt
3. Po uzyskaniu pliku certyfikatu należy go zaimportować do pliku truststore.jks
- keytool -importcert -file NAZWA_PLIKU_CERTYFIKATU.crt -keystore truststore.jks -alias "ALIAS_CERTYFIKATU"
- Na przykład: keytool -importcert -file AD _certificate.crt -keystore truststore.jks -alias AD _certificate