LPS:IdM/midPoint/QSign

Z Helpdesk

Info

QSign - systém na schvalování a podepisování dokumentů.

QSign a REST API dodává firma Marbes.

IdM spravuje uživatele, role a organizační jednotky.

kind objectClass intent focus význam
account #User user UserType osoba
entitlement #Role role RoleType QSign role
generic #OrgUnit - OrgType pracoviště

Model a chování

User

Viz connector-qsign User.

Pouze zaměstnanci (kvuli technickému omezení i bývalí!), ostatní lze přiřadit ručně.

Korelace podle extId a hsmId.

Neznámé identity nechává, identita s loginem "admin" je protected.

Atributy:

  • extId: CRO_ID
  • hsmId: formát "{CRO_ID}@zcu.cz"
  • orgUnitCode: primární kód pracoviště jinak "UNI" (vyžadováno)
  • roles: viz #Roles

Mazání:

  • může selhat
  • před mazáním se provádí deaktivace
  • před mazáním se mění login na CRO ID (nebo "{LOGIN}.delete{ROK}", pokud není CRO ID)

Role

Viz connector-qsign Role.

Role jako takové jsou jen ke čtení a bez automatického importu (je jich jen několik). Novou roli lze importovat z resourcu Qsign ručně.

Udržuje se přiřazení rolí uživatelům, neznámé role se uživatelům mažou.

Přiřazení Qsign role uživateli neznamená založení uživatele na Qsign, pouze se přidá, pokud již uživatel existuje. Cílem je, aby fungovala deaktivace i s ručně přiřazenými rolemi.

Speciální QSign role je role s názvem SIGNER. Řídí se tím další atributy - v IS/STAG učitelé LPS:IdM/midPoint/Stag#Stag učitelé.

OrgUnit

Viz connector-qsign OrgUnit.

Posílá se kód a zkratka na základě číselníku z Magionu.

Atributy:

code: kód pracoviště, hodnota totožná s __UID__

name: zkratka pracoviště, může být duplicitní (Magion to nehlídá a QSign to povoluje)
==> tento atribut není použit jako secondaryIdentifier
==> midPoint povolí duplicitu a nepoužívá se pro discovery mechanizmus

Instalace

Zkontrolovat existující loginy a zarezervovat v IdM.

Postupy

Ruční založení uživatele

Přiřadit roli LR: Qsign User. Je vyžadováno CRO ID.

Role v QSign u každého uživatele

Trvalé role QSign, které mají přijít automaticky všem, je možné zařadit do inducement v roli LR: Qsign User.

Změna role QSign SIGNER

# konstanta (liší se pro každou instanci IdM)
oidSigner="$(./query-role.py --oid identifier=SIGNER archetypeRef@=970ca15a-2b40-4b5d-bbc0-b8e391f5d6d4 2>/dev/null)"
# přiřazení (podle loginu)
./modify-user.py -q name=$LOGIN -a $oidSigner:role
# přiřazení (podle CRO ID)
./modify-user.py -q personalNumber=$CRO_ID -a $oidSigner:role
# vylistování
./query-user.py assignment/targetRef@=$oidSigner --csv name
# zrušení (podle loginu)
./modify-user.py -q name=$LOGIN --delete-assignment $oidSigner:role

REST API

#url=https://stag-doc-test.zcu.cz/uni/system/public/api/v1
url=https://stag-doc.zcu.cz/uni/system/public/api/v1
read -r qsignpass

Search user:

curl -i -u "idm:$qsignpass" -X POST -H 'Content-Type: application/json' $url/user/search -d"{\"login\": \"login3\"}"

Delete user:

curl -i -u "idm:$qsignpass" -X DELETE $url/user/INTERNI_CISLO

List orgs:

curl -i -u "idm:$qsignpass" -X GET $url/org | jq .

Delete org:

curl -i -u "idm:$qsignpass" -X DELETE $url/org/KOD

TODO

QSign a REST API

  • často error 500, hlavně při větším zatížení
  • hodilo by se nějaké jednoduché volání na stav služby (aktuálně děláme query s konfigurovatelným ID uživatele)

User

  • nelze měnit login
  • při hledání se nedělá oboustranný LIKE
    • asi jen chyba v dokumentaci
    • (v konektoru dodatečný filter, případné zapnutí by nevadilo)
  • je potřeba zamezit živelnému vzniku loginů (jen s prefixem, aby nebylo v konfliktu, ...)

OrgUnit

  • nejde změna active=false
  • nejde create s active=false

QSign data

  • test_dezo: konflikt se skutečnou osobou (nahodnu) => zrušit extId
  • marbesco: konflikt s skutečnou osobou (správe QSign) => kontu marbesco přidělěno CRO ID a napojeno
  • 38 UNMATCHED identit (fakespis, externista_login, icz, ...) - možná hrozí konflikt, i když QSign dovoluje duplicitní loginy

midPoint

  • pouze zaměstnanci (tj. mimo doktorandů bez úvazku)
  • divočina, co se týče existence
    • buď přímé přiřazení role "LR: Qsign User"
    • nebo zaměstnanec, ale musí být nějaké alespoň nepřímé přiřazení resourcu "Qsign" (prakticky je nepřímo přiřazena role "LR: Qsign User")
    • podívat se ještě na ruční zařazování vs Orion stav
  • pracovat s duplicitními loginy? (šlo by to, korelace se podle loginů nedělá)
  • mazání pracovišť hned při deaktivaci? (není nutno)