Archiv pro rubriku: CzechIdM

Nové GUI pro správu rolí

S nedávno vydaným releasem CzechIdM 2016q1 přichází nejen řada nových a zajímavých funkcí, ale i několik změn v GUI. Tou nejvýraznější z nich je nový, uživatelsky přívětivější formulář pro vytváření a editaci rolí. Jelikož se řada nových funkcí týká právě rolí a práce s nimi, přibylo do již tak poměrně nepřehledného editačního formuláře mnoho nových konfiguračních políček. Právě proto vyvstala potřeba formulář přepracovat. Continue reading

CzechIdMng – Nové GUI

Aktuálně dokončujeme testování nového uživatelského rozhraní. V následujících týdnech dojde k nasazení k prvnímu z našich zákazníků. Nové uživatelské rozhraní s pracovním názvem CzechIdMng komunikuje s CzechIdM prostředníctvím restových služeb. Je tedy oddělena backendová a frontendová část aplikace, kdy backend stále běží na aplikačním serveru (JBoss) a klient je spuštěn na jednoduchém http serveru (Apache) s podporou Node.js. Cílem tohoto oddělení je podpora více různých klientských aplikací nad jedním backend serverem (například pro mobilní aplikace) a celkový redesign uživatelského rozhraní, kde je kladen důraz na uživatelskou použitelnost a přehlednost (UX).

Continue reading

CzechIdM release 2016q1

Rok se s rokem sešel a nás uvítal nový a pro všechny zajímavý rok 2016. Jak je tomu zvykem, na začátek roku se dávají různá předsevzetí a cíle, které mají za úkol udělat budoucí rok lepší, krásnější a přívětivější, než ten minulý. Jedním z našich firemních předsevzetí pro nový rok bylo vydat nový release. Toto předsevzetí se nám povedlo splnit již v prvním čtvrtletí a teď nám nezbývá nic jiného než vám představit novou verzi produktu CzechIdM 2016q1. Tato verze s sebou přináší mnoho užitečných oprav a nových funkcí, pojďme si tedy společně některé z nich více přiblížit.

Continue reading

Virtuální systémy v CzechIdM

Na projektech u zákazníků se setkáváme se situací, kdy zákazník chce prostřednictvím CzechIdM evidovat účty uživatelů na systémech, které z nějakého důvodu nemohou být připojeny k CzechIdM na přímo (například daný systém neposkytuje žádné rozhraní k jeho napojení). Někdy jen není žádoucí přímé napojení na daný systém. Abychom těmto požadavkům zákazníků vyšli vstříc, máme v CzechIdM implementovaný model tzv. virtuálních systémů, jenž tyto požadavky řeší. V tomto článku se blíže podíváme, jak jsme virtuální systémy implementovali v CzechIdM.

Continue reading

CzechIdM Roadmap 2015

Každý větší software musí mít nejakou vizi, cíl, kam chce směřovat. Bez vize je jeho vývoj pouze nabalující se sněhovou koulí. Vývoj běží na úrovni implementace vlastní setrvačností. V začátcích nám samovolný vývoj nevadí, ale v momentě, kdy aplikace dosáhne určitého rozsahu, je takový způsob práce dále neudržitelný.

S příchodem roku 2015 jsme tedy i my formalizovali naši vizi a vytvořili pro CzechIdM Roadmapu.
CzechIdM je ve vývoji již zhruba pět let, což je relativně dlouho. Většina vývoje je přizpůsobování produktu na míru konkrétnímu zákazníkovi. Dostatečně obecné (a užitečné) funkcionality jsou zároveň zařazovány do standardního produktu. Vývoj je tedy z větší části řízen poptávkou po konkrétních funkcionalitách, z části menší pak vývojem vlastních features „do šuplíku“.

Continue reading

Pokročilé možnosti automatického přidělování rolí

V jednom z minulých článků jsem popsal novou funkcionalitu CzechIdm, kterou je automatické přidělování rolí. Ukázal jsem základní možnosti konfigurace a používání této novinky v CzechIdM. V tomto článku v krátkosti ukáži, jak je možné využít pokročilé možnosti konfigurace pro automatické přidělování rolí.

Zástupné znaky

V pravidle getAutoRolesAttributes je možné kromě přesného názvu atributu specifikovat také název s použitím takzvaných zástupných znaků (wildcards). V této chvíli lze jako zástupné znaky používat znak tečka (.) a znak procento (%). První jmenovaný zastupuje jeden libovolný znak ve jméně atributu, druhý pak libovolnou sekvenci znaků. Bude-li použit název atributu,

position.:cat

pak tento výraz odpovídá například oboum následujícím výrazům:

position0:cat
position9:cat

Odvození chování zástupného znaku procento pro předchozí příklad je pak už triviální.

Vícehodnotová podmínky

Může se stát, že chceme přiřadit roli uživatelům na základě více hodnot pro jeden název atributu. Například chceme, aby se automatická role přidělila všem uživatelům, kteří mají atribut „mobile“, jehož hodnota má jednu z následujících hodnot:

+421 777 777 777
+420 777 777 774

Pak je nutné konfiguraci nastavit tak, aby pro jeden název atributu bylo možné speficikovat více hodnot. To lze nastavit v GUI pro automatické přidělování rolí (v záložce pro editaci rolí)  tak, že hodnoty jednotlivých atributů oddělíme znakem středník (;) například takto:

;+421 777 777 777;+420 777 777 774;

Role pak bude přidělena všem uživatelům, kteří mají potřebný atribut s alespoň jednou uvedenou hodnotou (v případě relace EQ, viz předchozí článek). Logický operátor mezi jednotlivými hodnotami je tedy OR.

Zvláštní chování však má relace NEQ při použití vícehodnotového parametru. Při uvedení více hodnot, jako například v předchozí ukázce, bude mezi jednotlivými hodnotami v případě NEQ logický operátor AND (místo očekávaného OR v případě NEQ).

V tomto článku jsem představil pokročilé možnosti automatického přidělování rolí. Ukázal jsem, jak je možné používat vícehodnotové parametry v konfiguraci a také jak využít zástupné znaky pro názvy atributů. Pro jakékoli dotazy mě můžete kontaktovat na info@bcvsolutions.eu.

Seznam podporovaných systémů CzechIDM

K CzechIdM je možné připojit libovolný systém, který je dostupný po síti a je známa struktura identit. CzechIdM umožňuje spravovat uživatelské účty na vzdálených systémech prostřednictvím vhodných konektorů. Jedná se o komunikační rozhraní využívající standardní protokoly ke komunikaci se spravovaným systémem.

Děláme Identity Management přes 10 let, dříve jako konzultanti, 6 let pod vlastní firmou. Začali jsme s pevnou sadou konektorů, kterou postupně rozšiřujeme, vyvíjíme si i vlastní. Většinu informačních systémů na trhu jsme již připojovali a aktivně je naše Identity Managery spravují.czechidm

Pokud konektor  pro správu koncového systému nemáme, využijeme některý obecný nebo jej na míru vyvineme. U složitějšího systému, jako je  například SAP, je náročnost vlastního vývoje odpovídacící pracnosti v nižších jednotkách dní vývojáře.

Zde je seznam nejčastěji připojovaných systémů

Veřejné správa a samospráva – agendové systémy a spisové služby :
  • Marbes Proxio
  • Gordic Ginis
  • ICZ eSpis
  • ICTBrains Matrix
  • BBM iFIS – finanční řízení
  • Vera
Akreditované certifikační autority v ČR:
  • eIdentity.cz
  • Postsignum.cz QCA
Doménové řadiče a adresářové služby:
  • Microsoft Active Directory
  • Kerberos
  • OpenLDAP
  • Novell eDirectory
  • Red Hat Directory
Mailové systémy:
  • MS Exchange
  • Office 365
  • Linux postfix
  • Communigate
Databáze:
  • Microsoft SQL Server
  • MySQL
  • Oracle
  • PostgreSQL
  • Progres
  • Sybase
Operační Systémy:
  • HP-UX
  • Linux distribuce bez omezení – Red Hat, Debian, SuSE,…
  • Microsoft Windows všech verzí
  • Solaris
  • S/400
Personalistiky:
  • HRIS
  • Mysys HRMS
  • Navision
  • SAP
  • Vema
  • Helios
Web Single Sign On (SSO) a Access Management:
  • OpenAM
  • IBM/Tivoli Access Manager
  • Oracle Acces Manager
  • Sun Java System Access Manager
  • Kerberos
Zdravotnické systémy:
  • StaproMEDEA NIS
  • StaproPANAKEA
  • OpenLIMS
  • LEKIS
  • TESCO SW FaMa

Ostatní:

  • různé LDAPy
  • Plone
  • SAMBA

 

Pokud jste níže nenašli svůj systém, nezoufejte, seznam není kompletní. Napište nám na info@bcvsolutions.eu, zašleme Vám ínformaci jak je pracné Váš systém napojit.

Automatické přidělování rolí

Role v CzechIdM představují balík oprávnění identity ke koncovému systému nebo přímo CzechIdM (admin role). Role lze přiřazovat ručně, například pomocí webového GUI, nebo pomocí workflow a pravidel. Mým úkolem bylo implementovat nový způsob přiřazování rolí – automatické přidělování rolí, které lze použít v průběhu standardní rekoncilace/synchronizace. Dále se v článku dozvíte, jak byla tato nová funkcionalita v CzechIdM implementována a jak automatické přidělování rolí konfigurovat a spouštět.

Automatické role

Nejprve je třeba definovat, co jsou to automatické role. Nově v CzechIdM mají všechny role, včetně admin rolí, atributy, které slouží primárně pro rozhodování, komu danou roli při automatickém přiřazení přidělit. Počet těchto atributů je napevno stanoven na 10 a jsou jednoduše pojmenovány attribute1 až attribute10. Role je automatická právě tehdy, když má vyplněný alespoň jeden tento atribut – hodnota atributu není null a nebo prázdný řetězec.

Pro přiřazování automatických rolí byly definovány 4 nové užitečné metody nad třídou Data.

  • GetAutoRoles() – metoda používá aktivní UserView a pro daného uživatele vrací seznam automatických rolí, které splňují podmínky přidělení v příslušných atributech rolí.
  • AssignAutoRolesExpUsers() – na základě explicitně předaného seznamu uživatelů těmto přiřadí odpovídající automatické role.
  • AssignAutoRolesExpRoles() – na základě explicitně předaného seznamu rolí vyhledá odpovídající uživatele a těmto přiřadí odpovídající automatické role.
  • AssignAutoRoles() – pro všechny uživatele v systému přiřadí odpovídající automatické role.

Pomocí těchto metod lze například ve workflow nebo pravidlech jednorázově přiřadit automatické role uživatelům.

Konfigurace automatického přiřazení rolí

Předtím, než je možné přikročit k samotnému procesu automatického přidělování, je potřeba provést konfiguraci podmínek, které musí uživatelé splňovat, aby jim byla automatická role přidělena.

Podmínky je možné si představit jako trojici:

Atribut:Relace:Hodnota atributu

  • Atribut je název uživatelského atributu, například „tel“
  • Relace je vztah mezi názvem a hodnotou atributu, v současnosti lze vybírat z equal (EQ), not equal (NEQ) a like (LIKE)
  • Hodnota atributu je vypovídající, například „+420 540 123 456“

Konfigurace podmínky probíhá ve dvou krocích. První část konfigurace je umístěna v pravidle getAutoRolesAttributes. Pravidlo tedy editujeme, nejjednodušeji pomocí webového rozhraní. Pravidlo getAutoRolesAttributes obsahuje definici DTO, které představuje první část podmínky pro automatické přidělování rolí. Pravidlo má následující strukturu:

DTO roleAttrs = new DTOGroup();
 DTO attr1 = new DTOGroup();
 attr1.put(Constants.AUTO_ROLE_ATTRIBUTE_NAME, "tel");
 attr1.put(Constants.AUTO_ROLE_ATTRIBUTE_RELATION, RoleAttrRelation.EQ);
 …
 DTO attr10 = new DTOGroup();
 attr10.put(Constants.AUTO_ROLE_ATTRIBUTE_NAME, "");
 attr10.put(Constants.AUTO_ROLE_ATTRIBUTE_RELATION, RoleAttrRelation.EQ);
 …
 roleAttrs.put(AutoRoleAttr.EQ.name(), RoleAttrEq.OR);

Na řádku attr1.put(Constants.AUTO_ROLE_ATTRIBUTE_NAME, "tel"); jako druhý argument funkce attr1.put() vyplníme název atributu uživatele, například „tel“. Na následujícím řádku se vyplňuje Relace, v příkladu je RoleAttrRelation.EQ, který reprezentuje rovnost řetězců. Jak je vidět, lze nastavit až 10 podmínek pro přidělování rolí, přičemž logický operátor mezi jednotlivými podmínkami je ve výchozím stavu OR, jak je vidět na posledním řádku z příkladu.

Nyní máme tedy nastavenou první část podmínky Atribut:Relace:Hodnota a chybí nám ještě poslední část samotná hodnota atributu. Tu nastavujeme do již představených atributů rolí Attribute1 až Attribute10, přičemž pořadí atributů odpovídá řádkům v pravidle getAutoRolesAttributes. Toto můžeme nastavit pomocí webového GUI:

auto_config

Nyní máme již nastavené podmínky pro automatické přidělování rolí. Spuštění automatického přidělování rolí může probíhat automaticky při standardní rekoncilaci/synchronizaci. Pomocí GUI lze nastavit, kdy bude tato funkcionalita aktivní.

synch_conf

Omezení

Je třeba zdůraznit, že automatické přidělení rolí proběhne pouze při změnách uživatelské identity (update, vytvoření). Tedy vždy pouze pro určité stavy a akce. Jsou to tyto:

  • Assigned – UPDATE_IDENTITY
  • Matched – LINK_ACCOUNT_AND_UPDATE
  • Missing identity – CREATE_IDENTITY
  • Missing identity – CREATE_IDENTITY_AND_UPDATE

Automatické role mají určitá omezení, která je třeba mít na paměti při konfigurování. Zejména lze přiřazovat role pouze na základě atributů datového typu String. Například nelze použít pouze název atributu „homeOrganisation“ nebo „disabled“.

Dále je třeba počítat s tím, že jednotlivé podmínky jsou vzájemně spojeny logickým operátorem OR. Návrh automatických rolí počítá s pozdějším přidáním dalších logických operátorů jako je AND, nicméně v současné podobně je jedinou volbou OR.

Závěr

V tomto článku jsem představil novou vlastnost CzechIdM – automatické přiřazování rolí. Byly definovány automatické role, ukázány možnosti konfigurace automatického přiřazení rolí a také omezení pro tuto novou funkcionalitu. Možnosti využití jsou jistě širší, než je schopen pojmout tento článek, proto se můžete těšit na pokračování, kde budou představeny širší možnosti konfigurace automatických rolí. Pro jakékoli dotazy mě můžete kontaktovat na info@bcvsolutions.eu.