One Identity Manager – Object Browser

Verktyget Object Browser kan ses som ett lager för att navigera kring de tabeller som används av metakatalogen i One Identity Manager. Det går inte att starta verktyget från Launchpad utan man hittar det under One Identity/One Identity Manager/Configuration. Man behöver logga in med systemkontot på samma sätt som man startar Launchpad.

Tabeller

Databasen i One Identity består av mängder av tabeller. Namnsättningen är relativt enkel att förstå och börjar med prefix för kända system.

  • ADS – tabeller för Active Directory
  • EX0 – tabeller för Exchange
  • SAP – tabeller för SAP

Andra tabeller som nyttjas frekvent:

  • AccProduct – tjänsteobjekt för IT-shop
  • Department – avdelning inom organisation
  • ESet – systemroll för entitlements (paket)
  • Locality – plats inom organisation
  • Org – affärsroll
  • Person  – användarobjekt
  • PersonWantsOrg – beställning från IT-shop
  • ProfitCenter – kostnadsställe
  • QERResource – entitlement som endast kan beställas en gång
  • QERReuse – entitlement som kan beställas flera gånger
  • TSBAccountDef – kontodefinition för system

Hur man navigerar

I Object Browser så navigerar man genom att i vänstersektionen välja den tabell som man vill lista resultat för. Mittsektionen visar sedan alla objekt under vald tabell. Högersektionen visar tillgängliga egenskaper för valt objekt. Exemplet nedan så visar egenskaperna för en SAP-roll.

Filter

 

För att filtrera bland objekt så klickar du på tabben Filter i nedre delen av mittsektionen. I exemplet har jag valt tabellen SAPRole i rullningslistan. Sedan klickar man på markerad knapp WHERE som kommer öppna ett fönster där jag kommer filtrera SAP-roller baserat på skapandedatum.

 

 

 

I fönstret WHERE clause wizard fortsätter vi genom att klicka på plusset för Value comparison. Här finns även andra möjligheter att filtrera på referenser till andra objekt.

 

 

Jag fortsätter genom att välja Created on och sedan väljer jag värdet is greater or equal och i datepickern väljer jag dagens datum. Detta innebär att vi endast kommer inkludera SAP-roller skapande från 16 januari och framåt. Beräkningen börjar från midnatt 00:00.

 

Klicka sedan på Finish och du kommer se att följande SQL-villkor genererats. Slutligen klickar du på filter-knappen för att se filtrerade objekt.

Sessionsvariabler

 

Sessionsvariabler är tillgängliga genom en instans som gör data tillgängliga till en användar-session. Detta inkluderar nuvarande användare, deras grupper och programfunktioner. Dessa variabler kan sedan användas vid simuleringar genom Actions/Events.

I bilden har jag lagt till variabeln FULLSYNC där jag satt strängvärdet True. Detta kan sedan nyttjas i en process genom följande: Value = CBool(Session.Variables(”FULLSYNC”))

 

Användbara sessionsvariabler:

  • EnvUserName – Namn på användaren som autentiserar sig i miljön, t.ex. Domän\AnvändareActive Directory.
  • FullSync – Variabeln sätts av alla synkroniserare. Värdena är True eller False.
  • GenProcID – Unikt Process ID nummer.
  • LogonUser – DialogUser.Username av nuvarande inloggad användare.
  • DialogUserUID – DialogUser.UID_DialogUser av inloggad användare.
  • UserName – Namnet som visas under XUserInserted eller XUserUpdated.
  • UserUID – Inloggad användares UID_Person, om användarrelaterad autentisering används.

Script tester

Script tester ger möjlighet att testa tillgängliga script som skapats genom Designer. Först väljer man ett objekt som man vill testa sitt skript på. Sedan väljer man sitt script i rullningslistan och anger eventuella parametrar. Klicka sedan på play-knappen för att testa. Return value returnerar värdet från skriptet. I mitt exempel returneras värdet True om skriptet lyckades.

 

Actions

Actions har flera funktioner men det som är av intresse är Events. Tillgängliga event är de event som har skapats och kopplats till tabeller i Designer. I exemplet har jag valt ett objekt från tabell SAPUserInSAPRole vilket är en M:N-tabell (many-to-many) för SAP-roller kopplade till SAP-användare. Till denna tabell har jag skapat eventet CCC_CREATE_ITSHOP_ORDER som har till uppgift att i sin triggande process konvertera om SAPUserInSAPRole-objekt till beställningar från IT-shopen. Rent tekniskt genererar detta ett objekt i tabellen PersonWantsOrg och XOrigin (ursprung) kommer ändras från Direct assignment till Indirect assignment för det konverterade objektet.

Fördefinierade event:

  • Insert (när ett objekt har skapats)
  • Update (när ett objekt har uppdaterats)
  • Delete (när ett objekt har raderats)
  • Assign (när ett objekt har skapats för M:N)
  • Remove (när ett objekt har tagits bort för M:N)

 

Genom att klicka på det markerade eventet så öppnas fönstret Generate processes. Här kan man välja att faktiskt generera eventet på objektet som är markerat under Base object. Vi väljer i detta läget att klicka Simulate istället, detta för att först simulera den skapade processen och verifiera felaktigheter.

 

 

Nu ser vi att den skapade processen CCC_CreateITShopOrderSAP har kunnat simuleras. Processen har bara ett exekverande block ”Create IT Shop Order” (markerat i bild). Skulle simuleringen misslyckas visas ett fönster med varningar och felsökningsloggar. Simulering är nödvändigt för att inte i onödan behöva trigga processer då det kan vara relativt svårt att felsöka processer med flera block.

Exekvera templates

Ibland vill man kunna uppdatera data för flera objekt samtidigt, det kan exempelvis vara att man vill sätta ett specifikt värde på ett fält. I bilden nedan har jag i vänstersektionen markerat tabellen DialogTable. Denna tabell är en kopplingstabell för alla tabeller i One Identity. I mittsektionen har jag valt tabellen SAPUser. Under Actions/Events ser vi det fördefinierade eventet EXECUTETEMPLATES som används för att exekvera s.k. templates. En template kan skapas för varje fält i en tabell och definieras under Value calculation.

 

Genom att klicka på det markerade eventet så ser vi återigen fönstret Generate processes. Under Additional parameters ser vi nu följande:

  • UpdateColumns – pipe (”|”) används för att separera kolumnerna som template ska triggas för (använd * för alla kolumner)
  • WhereClause – SQL-villkor, i mitt exempel har jag pekat ut ett referensobjekt (Person, via UID_Person)

Genom att till sist klicka på Generate så kommer den fördefinierade processen VID_ExecuteTemplates trigga vilket visas i jobbkön (Job queue) i följande bild.

SQL-queries

Det finns många bra funktioner i Object Browser men det jag använder mest är möjligheten att exekvera SQL-kommandon/script direkt. Detta gör man genom om först klicka på SQL i övre meny, sedan New SQL window.

I följande bild filtrerar jag på SAP-roller på samma sätts som vi tidigare gjorde under Filter. Jag har kopierat filtret som genererades för oss med enda skillnaden att sql-window kräver att man inkluderar select-from-where före. SQL-queries exekveras genom att klicka på den markerade play-knappen. Bilden i exemplet är medvetet klippt så alla kolumner syns inte. Ett tips är att genom att högerklicka i det rödmarkerade området så kan man spara resultatet som csv-fil, likt vanliga SQL Management Studio. Trevlig scripting!

 

Publicerat av:

Erik Sjögren

IAM/IGA-specialist erik.sjogren@smartsmiling.se +46 761 62 17 55

Erik är utbildad högskoleingenjör inom datateknik. 2013 erbjöd Smartsmiling ett exjobb som verkade intressant, och det var då han fick upp ögonen för automation och digitalisering. Idag är han en del av tvärfunktionella team som tillsammans utvecklar tekniska lösningar samtidigt som vi är med i kundens agila transformation.
”Det bästa med Smartsmilingär bredden av kompetens som finns och möjligheten att få ta sig an nya projekt och utmaningar, vilket är en drivkraft för mig”