One Identity Manager

Wat ik test

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.

  • Joiner, mover en leaver: van HR-gegevens tot account in het doelsysteem
  • Provisioning en deprovisioning naar Active Directory en andere doelsystemen
  • Rolmodellen, groepslidmaatschappen en toegangsrechten
  • Access governance en attestaties
  • Privileged access management
  • Controles op API- en databaseniveau
One Identity Manager Robot Framework Python MSSQL API

Testscenario's

Wat ik test bij joiner, mover en leaver

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.

Joiner

Het account ontstaat in One Identity én in het doelsysteem, met de juiste attributen, OU, groepen en rollen.

Mover

Nieuwe rechten komen erbij en oude verdwijnen, ook rechten die via dynamische rollen of IT Shop-aanvragen zijn toegekend.

Leaver

Het account wordt uitgeschakeld en de rechten worden ingetrokken, binnen de termijn die het beleid voorschrijft.

Negatieve tests

Wat er niet mag gebeuren: dubbele accounts, rechten die blijven hangen of wijzigingen die het doelsysteem nooit bereiken.

Zo ziet een test eruit

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

Complexe 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.

  • Omgevingen inrichten met alle benodigde componenten en afhankelijkheden
  • Robot Framework koppelen aan databases, API's en IAM-systemen
  • Testdata beheren, zodat testruns herhaalbaar zijn
  • Testuitvoering automatisch laten draaien in de CI/CD-pipeline
VMware Hyper-V Docker MSSQL CI/CD

Robot Framework

Waarom Robot Framework

Robot Framework is een open-source framework voor acceptatietesten en testautomatisering. Ik bouw er mijn testsuites mee.

Leesbare tests

Keyword-driven, met scenario's in Given/When/Then-stijl. Business, testers en developers lezen dezelfde test.

Uit te breiden met Python

Wat er niet standaard in zit, schrijf ik als eigen Python-library, afgestemd op het systeem dat getest wordt.

Web, API en database

Met libraries voor web-, API- en databasetesten dek je de hele keten in één suite.

Duidelijke rapportage

HTML-rapporten en logs per testrun. Voor een overzicht over meerdere runs gebruik ik RobotDashboard.

Wil je je One Identity-processen automatisch testen?

Vertel kort hoe je omgeving eruitziet. Je krijgt binnen twee werkdagen antwoord.