GraphGists

This GraphGist is based on A discussion on the Neoj4 mailing list . This represents (part of) a very simple subset of an RBAC model (role based access control) and identity provisioning system where

  1. a few role definitions have been made (r1 member of g1 etc)

  2. a person is assigned a role

  3. since a role is a member of a group the provisioning system creates a user(id) on some server with groupmembership based on the role definition i have used the RECON as type since normally the actual relation will be reconciled back to the provisiningsystem

  4. through this userid the person can access a service

so in the sample p1 has received r1 which should have given him a userid (u1) connected to group 1 (g1) allowing the person to acccess service 1

This is a faked situation where some local administrator has changed the group membership of U1 to G2 (iso G1)..

in real life this can happen and lead to a situation where ones role memberships (and derived authorizations) (SOLL) are not in line with the actual situation (IST)

it would be great to detect such "incomplancies"

Setup

Find reconciliation loops

MATCH (p:Person)-[:MEMBER_OF]->(r:Role)-[:MEMBER_OF]->(g:Group)-[:RECON_MEMBER_OF]->(u:User)-[:RECON_MEMBER_OF]-(p)
RETURN p