Konfigurera: EPE eller ESA för att använda ESM-roller
Konfigurera: EPE eller ESA för att använda ESM-roller
I den här artikeln beskrivs instruktioner för att konfigurera Efectes provisioneringsmotor eller Efecte Secure Access komponent för att länka kataloggruppen till Efectes tjänsthanteringsroll.
Notera!
Observera att ESA sällan behöver gruppinformation eftersom den hanteras av EPE (Efecte provisioning task). EPE tar vanligtvis MemberOf-data till ESM och därifrån till ESS.
Notera!
Koppla aldrig användarnamn till dessa regler. Behörigheter bör komma via gruppmedlemskap, inte användarnamn.
Så här konfigurerar du EPE för att använda ESM-roller
- För att hämta grupper från katalogen till ESM, vänligen gör korrekt mappning till EPE-konfigurationen memberOf .

- Kontrollera att memberOf är samma kod som definieras i servlet.auth.person.groups.attribute.code i plattformsinställningarna.

- För att koppla ESM-roller till grupper – använd Extern identifierare på ESM:s rollkonfigurationsskärm:

- Vid inloggning itererar den över grupper som tilldelats en person - egenskapsnamnet är inställt i 'servlet.auth.person.groups.attribute.code', standardvärde: "entitlements"
- om även en enda grupp är lika med 'servlet.auth.admin.ad.group', ger det ROOT-åtkomst
- om även en grupp är lika med 'servlet.auth.user.ad.group', ger den NORMAL åtkomstnivå
Hur man konfigurerar ESA för att använda ESM-roller AD
- Logga in med ESA administratören (main.admin) till URL: en https://example.efectecloud.com/auth/admin
- Välj rätt sfär från toppmenyn

- Öppna klientinställningarna från den vänstra sidopanelen

- Välj klientkonfiguration (slutar med shibboleth) https://example.efectecloud.com/shibboleth

- Välj fliken Klientomfattningar och välj shibboleth-länken

- Välj knappen Lägg till mappare och välj Efter konfiguration från rullgardinsmenyn.

- Välj alternativet SAML Efecte ESM userLevel-mappare och lägg till namn och SAML attributnamnformat som i bilden nedan (com:efecte:esm:userLevel & Unspecified). Spara ändringarna.

Observera att om kunden inte använder standardnamnen för baslinjegrupperna ESMAdmins, ESMUsers eller ESMreaders kan gruppnamnen ändras i ESA värden. Mapparna lagras i "/opt/esa/ keycloak -scripts/[TENANT/REALM]" på ESA containern.
Standardmappare i värden:
// Root, Normal, Readonly, NoAccess
var
adminGroup = "ESMadmins";
var
normalGroup = "ESMusers";
var
readOnlyGroup = "ESMreaders";
var
userLevelDefault = "NoAccess";
var
userLevelIndex = 0;
- Konfigurera com:efecte:esm:roles-mapparen genom att lägga till en ny mapper via konfiguration

- Välj alternativet SAML Efecte ESM-rollmappare [Realm name] och lägg till namn och SAML attributnamnformat som i bilden nedan (com:efecte:esm:roles & Unspecified). Spara ändringarna.

- Gå till ESM. I ESM:s behörighet har varje behörighet attributet "Extern identifierare" - det ska sättas till namnet på kataloggruppen.
Så här konfigurerar du ESA för att använda ESM-roller Entra (tidigare Az)
Förutsättning: Gruppanspråket är konfigurerat till Azure (grupper skickas från Azure till ESA ), både SAML och OIDC stöds.
1. Logga in med ESA administratören (main.admin) på URL:en https://example.efectecloud.com/auth/admin
2. Välj rätt sfär från toppmenyn 
3. Lägg till gruppmapparen i inställningarna för identitetsleverantörer (du måste lägga till olika attributnamn baserat på din autentiseringstyp SAML eller OIDC . Gå till din identitetsleverantör och till fliken mappers. Detta gruppanspråk (information) kommer inte som standard från Entra , så kontrollera att kunden har konfigurerat detta gruppanspråk till Entra enligt uid . För OIDC : OIDC -kundinstruktioner och för SAML SAML kundinstruktioner.
3A. För SAML använd attributnamnet: http://schemas.microsoft.com/ws/2008/06/identity/claims/groups synkroniseringsläge override: Force, Claim: groups 
3B. För OIDC använd attributnamn: grupper synkroniseringsläge åsidosättning: Tvinga, Anspråk: grupper

4. Öppna sedan klientinställningarna från den vänstra sidopanelen. 
5. Välj Klientkonfiguration (slutar med shibboleth) https://example.efectecloud.com/shibboleth 
6. Välj fliken Klientomfång och välj shibboleth-länken 
7. Välj knappen Lägg till mappare och välj Efter konfiguration från rullgardinsmenyn. 
8. Välj alternativet SAML Efecte ESM userLevel mapper och lägg till namn och SAML Attribute Nameformat som i bilden nedan (com:efecte:esm:userLevel & Unspecified). Spara ändringarna.

Observera att om kunden inte använder standardgrupperna ESMAdmins, ESMUsers eller ESMreaders måste gruppnamnen ändras i ESA värden. Mapparna lagras i "/opt/esa/ keycloak -scripts/[TENANT/REALM]".
Standardmappare i värden:
// Root, Normal, Readonly, NoAccess
var
adminGroup = "ESMadmins";
var
normalGroup = "ESMusers";
var
readOnlyGroup = "ESMreaders";
var
userLevelDefault = "NoAccess";
var
userLevelIndex = 0;
Observera att även namn kan vara grupp-ID:n, inte namn. Beroende på hur anspråk konfigureras i Entra ID ( Azure ).
9. Konfigurera com:efecte:esm:roles-mapparen genom att lägga till en ny mappare via konfiguration 
10. Välj alternativet SAML Efecte ESM roles mapper [Realm name] och lägg till namn och SAML Attribute Nameformat som i bilden nedan (com:efecte:esm:roles & Unspecified). Spara ändringarna. 
11. För att ansluta ESM-roller till Azure Groups – använd Extern identifierare på ESM:s rollkonfigurationsskärm:
Obs ! Detta ska vara ObjectGUID för gruppen eller gruppnamnet för Azure-gruppen – beroende på hur den är konfigurerad för gruppanspråk. 
ESM-inloggningsprocess
1. ESM läser userPrincipal-namnet från begäran
- om den är NULL - avvisar den inloggning
2. ESM läser esm_userLevel från begäran
- om det är NOACCESS - avvisar den inloggning
3. ESM försöker hitta en redan befintlig användare (INTE person) enligt huvudnamnet
- om 'servlet.auth.create.users' är satt till falskt och användaren INTE hittas - avvisas inloggning
4. Om användaren inte hittades försöker den skapa den:
- först tittar den på listan över personer och försöker hitta en matchning där (efter huvudnamn)
kriterier.join(Entity.TEMPLATE).add(Template.CODE, conf.person.template);
kriterier.add(Entitet.ÄR_BORTTAGEN, falskt);
kriterier.add(Selections.macro("$" + uid + "$"), uid );
- om personen inte hittades försöker den skapa den
- den läser esm_email (obligatoriskt), esm_firstName, esm_lastName från begäran och skapar en personenhet
- om det uppstod ett fel längs vägen, och personen således inte skapades, eller om flera personer med samma namn hittades - avvisas inloggningen.
- det bekräftar också att användare och person är sammankopplade via egenskapen 'servlet.auth.person.user.attribute.code' (standardvärde: efecte_user),
om det inte finns någon användare i den referensen - avvisas även inloggning
- den skapar sedan användaren och lägger in en referens till en person i den
5. Om det uppstod problem med att skapa en användare under processen – inloggningen avvisas, men den utför också en kontroll:
om (userEntity == null || user.getPassword() != null) {
returnera sant; // Användaren skapas/redigeras av installatör/administratör
}
6. Om personen som ska vara kopplad till en användare INTE finns, försöker den på något sätt skapa en personenhet och länka den till en användare.
7. Den försöker läsa användarnivå från begäran (om den fanns i SAML -meddelandet)
- om det fortfarande inte finns någon person skapad, tilldelas RE AD ONLY automatiskt
- annars itererar den över grupper som tilldelats en person - egenskapsnamnet anges i 'servlet.auth.person.groups.attribute.code', standardvärde: "groups"
- om även en grupp är lika med ' servlet.auth.admin.ad.group ', standardvärde: "Effektera administratör" - det ger ROOT-nivå
- om även en grupp är lika med ' servlet.auth.user.ad.group ', standardvärde: "Effecte User" - det ger NORMAL nivå
- annars ger det RE AD ONLY-nivån
8. Om någon 'esm_userLevel' skickades i begäran försöker den tilldela roller till en användare.
- den läser SAML egenskapen 'roles', itererar över den (avgränsad med semikolon), och försöker lägga till varje roll till användaren.
9. Till slut beter den sig olika, beroende på den tidigare inställda användarnivån:
- om det var inställt på antingen NORMAL eller ROOT, OCH användaren faktiskt skapades under hanteringen av den begäran OCH det inte skickades någon 'esm_userLevel' i
SAML meddelandet, kommer det att försöka tilldela den användarstandardrollen, inställd med systemegenskapen: 'servlet.auth.user.roles', standardvärde: Supportperson
- om det var inställt på AD ONLY och 'esm_userLevel' INTE skickades med SAML -meddelandet, kommer den att försöka lägga till 'servlet.auth.user.readonly.roles'-roller till den användaren.
Felsök
Saml-tillägget för webbläsaren
SAML tillägget ( SAML avkodare) för webbläsaren är användbart vid felsökning av inloggningen.
SAML -avkodarna finns tillgängliga som webbläsartillägg (t.ex. SAML Tracer för Firefox, SAML Chrome Panel för Google Chrome). Till exempel: https://addons.mozilla.org/en-US/firefox/addon/saml-message-decoder-extension/
Loggar
Om ESA inloggning fungerar men ESM-inloggning inte
- Kontrollera ESM-loggen som heter itsm.log (Effektera ESM→ Underhåll→Loggar→Hämta loggar→itsm.log)
Om ESA inloggningen inte fungerar
- Kontrollera ESA :s server.log (opt/ keycloak /standalone/log/server.log)
- Kontrollera ESA :s containerlogg /opt/ keycloak /logs/ keycloak .log
Mer information om anpassade javascript-mappare: https://docs.efecte.com/internal-configuration-instructions/1812412-esa-custom-javascript-mappers