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)
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.
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") && !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í.