Joiner
Het account ontstaat in One Identity én in het doelsysteem, met de juiste attributen, OU, groepen en rollen.
Ik bouw geautomatiseerde tests voor One Identity Manager. Zo weet je na elke wijziging of provisioning, rechten en koppelingen nog doen wat ze moeten doen.
One Identity Manager
One Identity Manager regelt wie welke accounts en rechten krijgt. Een fout in een rolmodel of koppeling raakt meteen veel gebruikers. Daarom wil je die processen bij elke release opnieuw controleren, en niet met de hand.
Ik test One Identity sinds versie 6.x, tot en met 10.x. Mijn testsuites bestaan uit Robot Framework met eigen Python-libraries, en werken via de API en rechtstreeks op de MSSQL-database.
Testscenario's
Een identity doorloopt een vaste levenscyclus. Bij elke stap controleer ik de kant van One Identity Manager én het doelsysteem zelf, en ook wat er juist níét mag gebeuren.
Het account ontstaat in One Identity én in het doelsysteem, met de juiste attributen, OU, groepen en rollen.
Nieuwe rechten komen erbij en oude verdwijnen, ook rechten die via dynamische rollen of IT Shop-aanvragen zijn toegekend.
Het account wordt uitgeschakeld en de rechten worden ingetrokken, binnen de termijn die het beleid voorschrijft.
Wat er niet mag gebeuren: dubbele accounts, rechten die blijven hangen of wijzigingen die het doelsysteem nooit bereiken.
Een vereenvoudigd fragment van een joiner-test. Het scenario bovenaan is leesbaar voor beheer en functioneel beheer; daaronder staat hoe één stap wordt gecontroleerd in de database van One Identity Manager.
*** Settings ***
Library DatabaseLibrary
Library ../libraries/ActiveDirectory.py
Resource ../resources/one_identity.resource
*** Test Cases ***
Joiner gets an enabled AD account
[Tags] joiner active-directory
Given a new employee in department "Finance"
When the DBQueue has been processed
Then an enabled AD account exists for the employee
And the account is a member of "GG-Finance-Users"
*** Keywords ***
An enabled AD account exists for the employee
# Eerst de kant van One Identity: precies één account, niet uitgeschakeld
${sql}= Catenate SELECT SAMAccountName, AccountDisabled FROM ADSAccount
... WHERE UID_Person = '${PERSON_UID}'
${rows}= Query ${sql}
Length Should Be ${rows} 1
Should Be Equal As Integers ${rows}[0][1] 0
# Dan het doelsysteem zelf
AD Account Should Be Enabled ${rows}[0][0]
Testomgevingen
Een IAM-test raakt meerdere systemen tegelijk: One Identity Manager, de database, Active Directory en andere doelsystemen. Testresultaten zeggen alleen iets als die keten lijkt op productie.
Ik bouw en beheer zulke omgevingen on-premises, in de cloud of lokaal, afhankelijk van het project. Meestal op VMware of Hyper-V.
Robot Framework
Robot Framework is een open-source framework voor acceptatietesten en testautomatisering. Ik bouw er mijn testsuites mee.
Keyword-driven, met scenario's in Given/When/Then-stijl. Business, testers en developers lezen dezelfde test.
Wat er niet standaard in zit, schrijf ik als eigen Python-library, afgestemd op het systeem dat getest wordt.
Met libraries voor web-, API- en databasetesten dek je de hele keten in één suite.
HTML-rapporten en logs per testrun. Voor een overzicht over meerdere runs gebruik ik RobotDashboard.
Vertel kort hoe je omgeving eruitziet. Je krijgt binnen twee werkdagen antwoord.