Blokování účtů v CzechIdM

Jednou ze základních schopností každého identity manageru je blokování účtů na připojených koncových systémech. Náš CzechIdM nabízí několik možností jak tuto operaci provést. V tomto krátkém článku probereme každou z nich.

CzechIdM lze pro každý systém nakonfigurovat jedním z následujících způsobů – blokování resetem hesla – pro zablokování účtu volat pravidlo – bez nějaké zvláštní podpory blokování (lze využít mapování atributů – viz níže)

 

Začneme nejdříve případem, kdy koncový systém nativně nepodporuje blokování účtů. Jedná se většinou o nějaké svépomocí vytvořené aplikace. V takovéto situaci nám nezbývá níc jiného, než provádět blokaci účtu změnou hesla na neznámou hodnotu. Tento způsob je samozřejmě možné použít i v případě, že systém podporu pro blokování má. Tedy za předpokladu, že se u účtu heslo nastavit dá. I když je tento způsob použitelný téměř kdekoliv, tak na druhou stranu má jednu nepříjemnou komplikaci. Tou je následné odblokování. CzechIdM si z bezpečnostních důvodů neukládá hesla a tudíž není možné obnovit původní heslo. Odblokování v tomto případě tedy znamená pouze to, že je uživateli povoleno si přes webové rozhraní CzechIdM nastavit nové heslo.

Většina systémů ale umožňuje blokovat účet nastavením attributu, k tomu určeném. Za tímto účelem lze využít namapování tohoto atributu na interně používaný název „disabled“ a ve spojení s transformačními pravidly docílit požadované funkčnosti. Například na níže uvedeném obrázku lze vidět systém, na kterém se provádí blokace účtů nastavením atributu „Disabled“ na hodnotu „1“ (jedná se o řetězec). Interně pracuje CzechIdM s atributem „disabled“ typu Boolean. Ten nese informaci zda je zablokována identita uživatele (nemůže se přihlásit do CzechIdM). Proto jsou zde nastavena transformační pravidla pro konverzi mezi typy. Když tedy dojde k zablokování identity, nastaví se „disabled“ na true a protože je na tento interní atribut namapován atribut účtu „Disabled“, tak je hodnota true transformována na „1“ a v této podobě uložena na koncový systém.

[img_assist|nid=149|title=CzechIdM – mapování atributů pro blokování účtů|desc=|link=node|align=center|width=640|height=390]

 

Následující kód ukazuje, jak vypadá jedno z použitých transformačních pravidel.

 

<?xml version="1.0" encoding="UTF-8"?>

<!--

Převede String na Boolean. Vrátí true, pokud není atribut null a je rozdílný od nuly a od "false".
Jinak vrátí false.

-->

<rule-definition xmlns="urn:jbpm.org:bcv_rule-1.0" name="transformAttrFromStringToBool">
    
    String attrValue = this.interpreter.get("attrValue");
    
    if (attrValue != null) {
        return !attrValue.equals("0") &amp;&amp; !attrValue.equalsIgnoreCase("false");
    } else {
        return false;
    }
    
</rule-definition>

 

Pokud by zablokování účtu vyžadovalo nějaké složitější akce lze využít poslední možnost, kterou CzechIdM nabízí a tou je spouštění pravidla při požadavku na zablokování a odblokování účtu.

Toto pravidlo dostane jako parametry: – operationType: možné hodnoty jsou OperationType.DISABLE nebo OperationType.ENABLE – resourceName: název koncového systému – schemaName: název schématu na koncovém systému – schemaAttributes: mapa jejiž klíče jsou názvy atributů účtu (respektive jejich názvy v idm – na obrázku v pravém sloupci); ke každému klíči obsahuje odpovídající hodnotu – accountUid: identifikátor účtu – identityName: jméno identity již účet patří

Je tak možné pozměnit několik atributů, spustit složitější kód nebo třeba poslat email.

CzechIdM stále vyvíjíme a vylepšujeme, takže je možné, že ještě dojde k úpravám výše uvedených mechanizmů. Pokud Vás napadne nějaké vylepšení nebo připomínka, tak směle pište do komentářů. Za každou připomínku budeme velmi vděční.