Konfigurowanie: EPE lub ESA do korzystania z ról ESM
Konfigurowanie: EPE lub ESA do korzystania z ról ESM
W tym artykule opisano instrukcje dotyczące konfigurowania modułu Efecte provisioning engine lub komponentu Efecte Secure Access w celu połączenia grupy katalogów z rolą zarządzania usługą Efecte.
Notatka!
Należy pamiętać, że ESA rzadko potrzebuje informacji o grupie, ponieważ są one zarządzane przez EPE (zadanie provisioningowe Efecte). EPE zazwyczaj przesyła dane o członkach grupy do ESM, a stamtąd do ESS.
Notatka!
Nigdy nie dodawaj nazw użytkowników do tych zasad. Uprawnienia powinny być przyznawane poprzez przynależność do grupy, a nie nazwy użytkowników.
Jak skonfigurować EPE do korzystania z ról ESM
- Aby pobrać grupy z katalogu do ESM, należy wykonać odpowiednie mapowanie do konfiguracji EPE memberOf .

- Sprawdź, czy memberOf jest tym samym kodem, który jest zdefiniowany w servlet.auth.person.groups.attribute.code w ustawieniach platformy.

- Aby połączyć role ESM z grupami, użyj zewnętrznego identyfikatora na ekranie konfiguracji roli ESM:

- Podczas logowania następuje iteracja po grupach przypisanych do Osoby — nazwa właściwości jest ustawiona w „servlet.auth.person.groups.attribute.code”, wartość domyślna: „entitlements”
- jeśli choć jedna grupa jest równa 'servlet.auth.admin.ad.group', daje to dostęp na poziomie ROOT
- jeśli choć jedna grupa jest równa 'servlet.auth.user.ad.group', daje to dostęp na poziomie NORMALNYM
Jak skonfigurować ESA do korzystania z ról ESM AD
- Zaloguj się jako administrator ESA (main.admin) do adresu URL https://example.efectecloud.com/auth/admin
- Wybierz właściwy obszar z górnego menu

- Otwórz ustawienia klienta z lewego panelu bocznego

- Wybierz konfigurację klienta (kończy się na shibboleth) https://example.efectecloud.com/shibboleth

- Wybierz kartę Zakresy klienta i wybierz łącze Shibboleth

- Wybierz przycisk Dodaj mapper i wybierz opcję Według konfiguracji z listy rozwijanej

- Wybierz opcję SAML Efecte ESM userLevel mapper” i dodaj nazwy oraz format nazw atrybutów SAML , jak na poniższym obrazku (com:efecte:esm:userLevel i Unspecified). Zapisz zmiany.

Należy pamiętać, że jeśli klient nie używa domyślnych nazw grup bazowych ESMAdmins, ESMUsers, ESMreaders, nazwy grup można zmienić na hoście ESA . Mapery są przechowywane w folderze „/opt/esa/ keycloak -scripts/[TENANT/REALM]” w kontenerze ESA .
Domyślny mapper w hoście:
// Root, Normal, Readonly, NoAccess
var
adminGroup = "ESMadmins";
var
normalGroup = "ESMusers";
var
readOnlyGroup = "ESMreaders";
var
userLevelDefault = "NoAccess";
var
userLevelIndex = 0;
- Skonfiguruj mapper com:efecte:esm:roles, dodając nowy mapper według konfiguracji

- Wybierz opcję „Mapowanie ról SAML Efecte ESM [Nazwa domeny]” i dodaj nazwy oraz format nazw atrybutów SAML , jak na poniższym obrazku (com:efecte:esm:roles i Unspecified). Zapisz zmiany.

- Przejdź do ESM. W uprawnieniach ESM każde uprawnienie ma atrybut „Identyfikator zewnętrzny” — powinien on być ustawiony na nazwę grupy katalogów.
Jak skonfigurować ESA do korzystania z ról ESM Entra (wcześniej Az
Wymagania wstępne: oświadczenie grup jest skonfigurowane dla Azure (grupy są wysyłane z Azure do ESA ), obsługiwane są protokoły SAML i OIDC .
1. Zaloguj się jako administrator ESA (main.admin) do adresu URL https://example.efectecloud.com/auth/admin
2. Wybierz odpowiednią dziedzinę z górnego menu 
3. Dodaj maper grup do ustawień dostawców tożsamości (musisz dodać inną nazwę atrybutu w zależności od typu uwierzytelniania SAML lub OIDC . Przejdź do swojego dostawcy tożsamości i do zakładki mapperów. To oświadczenie grupowe (informacje) nie pochodzi domyślnie z Entra , więc sprawdź, czy klient skonfigurował to oświadczenie grupowe w Entra zgodnie z uid . W przypadku OIDC : instrukcje klienta OIDC i instrukcje klienta SAML SAML
3A. W przypadku SAML użyj nazwy atrybutu: http://schemas.microsoft.com/ws/2008/06/identity/claims/groups, nadpisanie trybu synchronizacji: Force, Claim: groups 
3B. W przypadku OIDC użyj nazwy atrybutu: nadpisanie trybu synchronizacji grup: Wymuś, Żądaj: grupy

4. Następnie otwórz Ustawienia klienta z lewego panelu bocznego 
5. Wybierz konfigurację klienta (kończy się na shibboleth) https://example.efectecloud.com/shibboleth 
6. Wybierz kartę Zakresy klienta i wybierz łącze Shibboleth 
7. Wybierz przycisk Dodaj mapper i wybierz opcję Według konfiguracji z listy rozwijanej 
8. Wybierz opcję SAML Efecte ESM userLevel mapper” i dodaj nazwy oraz format nazw atrybutów SAML , jak na poniższym obrazku (com:efecte:esm:userLevel i Unspecified). Zapisz zmiany.

Należy pamiętać, że jeśli klient nie korzysta z domyślnych grup ESMAdmins, ESMUsers i ESMreaders, nazwy grup należy zmienić na hoście ESA . Mapery są przechowywane w katalogu "/opt/esa/ keycloak -scripts/[TENANT/REALM]".
Domyślny mapper w hoście:
// Root, Normal, Readonly, NoAccess
var
adminGroup = "ESMadmins";
var
normalGroup = "ESMusers";
var
readOnlyGroup = "ESMreaders";
var
userLevelDefault = "NoAccess";
var
userLevelIndex = 0;
Należy pamiętać, że nazwy mogą być identyfikatorami grup, a nie nazwami. Zależy to od konfiguracji oświadczeń w Entra ID ( Azure ).
9. Skonfiguruj mapper com:efecte:esm:roles, dodając nowy mapper według konfiguracji 
10. Wybierz opcję „Mapowanie ról SAML Efecte ESM [Nazwa domeny]” i dodaj nazwy oraz format nazw atrybutów SAML , jak na poniższym obrazku (com:efecte:esm:roles i Unspecified). Zapisz zmiany. 
11. Aby połączyć role ESM z grupami Azure , użyj identyfikatora zewnętrznego na ekranie konfiguracji roli ESM:
Uwaga : Powinien to być ObjectGUID grupy lub nazwa grupy Azure — w zależności od konfiguracji oświadczeń grupowych. 
Proces logowania ESM
1. ESM odczytuje nazwę użytkownika (userPrincipal) z żądania
- jeśli jest NULL - odrzuca logowanie
2. ESM odczytuje esm_userLevel z żądania
- jeśli jest NOACCESS - odrzuca logowanie
3. ESM próbuje znaleźć już istniejącego użytkownika (NIE osobę) według nazwy głównej
- jeśli „servlet.auth.create.users” jest ustawione na false, a użytkownik NIE zostanie znaleziony, logowanie zostanie odrzucone
4. Jeżeli użytkownik nie został znaleziony, następuje próba jego utworzenia:
- najpierw przegląda listę Osób i próbuje znaleźć na niej dopasowanie (według nazwy głównej)
kryteria.dołącz(Entity.SZABLONU).dodaj(Szablon.KOD, conf.osoba.szablon);
kryteria.dodaj(Entity.IS_DELETED, fałsz);
kryteria.dodaj(Selections.macro("$" + uid + "$"), uid );
- jeśli Osoba nie została znaleziona, próbuje ją utworzyć
- odczytuje esm_email (obowiązkowe), esm_firstName, esm_lastName z żądania i tworzy encję Person
- jeśli na drodze wystąpił błąd, przez który Osoba nie została utworzona lub znaleziono wiele Osób o tej samej nazwie - odrzuca logowanie
- potwierdza również, że użytkownik i osoba są połączone poprzez właściwość „servlet.auth.person.user.attribute.code” (wartość domyślna: efecte_user),
jeśli w tym odniesieniu nie ma użytkownika - odrzuca również logowanie
- tworzy następnie Użytkownika i umieszcza w nim odniesienie do Osoby
5. Jeżeli podczas tworzenia użytkownika wystąpił problem, logowanie jest odrzucane, ale przeprowadzane jest również sprawdzenie:
jeśli (userEntity == null || user.getPassword() != null) {
zwróć wartość true; // Użytkownik jest tworzony/edytowany przez instalatora/administratora
}
6. W jakiś sposób, jeśli Osoba, która powinna być powiązana z Użytkownikiem, NIE jest obecna, próbuje utworzyć jednostkę Osoba i powiązać ją z Użytkownikiem
7. Próbuje odczytać poziom użytkownika z żądania (jeśli był on obecny w wiadomości SAML )
- jeśli w jakiś sposób nadal nie zostanie utworzona żadna Osoba, automatycznie przypisze RE AD ONLY
- w przeciwnym razie iteruje po grupach przypisanych do Osoby - nazwa właściwości jest ustawiona w 'servlet.auth.person.groups.attribute.code', wartość domyślna: "groups"
- jeśli choć jedna grupa jest równa ' servlet.auth.admin.ad .group', wartość domyślna: "Efecte Administrator" - nadaje poziom ROOT
- jeśli choć jedna grupa jest równa ' servlet.auth.user.ad .group', wartość domyślna: „Efecte User” - daje poziom NORMALNY
- w przeciwnym wypadku daje poziom TYLKO DO AD
8. Jeśli w żądaniu wysłano „esm_userLevel”, nastąpi próba przypisania ról do użytkownika
- odczytuje właściwość SAML „roles”, iteruje po niej (oddzielone średnikami) i próbuje dodać każdą rolę do użytkownika
9. Na koniec zachowuje się inaczej, zgodnie z ustawionym wcześniej poziomem użytkownika:
- jeśli ustawiono opcję NORMAL lub ROOT, a użytkownik został faktycznie utworzony podczas obsługi tego żądania i nie wysłano żadnego komunikatu „esm_userLevel” w
Wiadomość SAML , spróbuje przypisać użytkownikowi domyślną rolę ustawioną za pomocą właściwości systemowej: „servlet.auth.user.roles”, wartość domyślna: Osoba udzielająca wsparcia
- jeśli ustawiono opcję TYLKO DO AD i NIE wysłano „esm_userLevel” z wiadomością SAML , zostanie podjęta próba dodania roli „servlet.auth.user.readonly.roles” do tego użytkownika
Rozwiązywanie problemów
Rozszerzenie Saml dla przeglądarki
Rozszerzenie SAML (dekodery SAML ) dla przeglądarki jest pomocne podczas debugowania logowania
Dekodery SAML są dostępne jako rozszerzenia przeglądarek (np. SAML Tracer dla przeglądarki Firefox, SAML Chrome Panel dla przeglądarki Google Chrome). Na przykład: https://addons.mozilla.org/en-US/firefox/addon/saml-message-decoder-extension/
Dzienniki
Jeśli logowanie ESA działa, ale logowanie do ESM nie
- Sprawdź dziennik ESM o nazwie itsm.log (Efect ESM→ Maintenance→Logs→Download logs→itsm.log)
Jeśli logowanie ESA nie działa
- Sprawdź server.log ESA (opt/ keycloak /standalone/log/server.log)
- Sprawdź dziennik kontenera ESA /opt/ keycloak /logs/ keycloak .log
Więcej informacji o niestandardowych maperach JavaScript: https://docs.efecte.com/internal-configuration-instructions/1812412-esa-custom-javascript-mappers