What the engine checks
The token is verified by Spring Security’s OAuth2 resource server, on every request to a protected route and before the request reaches a route. The engine’s own rules then decide what the verified caller may do:
A public route, such as
GET /v1/health, reads no token, so a stale one there is no refusal.
A refusal is a problem document:
Names in the record
The engine records the token’sname and email claims beside its subject, where the token carries them: on each operation, on each four-eyes action for its maker, each approver and whoever decided it, and in each audit log entry. The record then reads without the provider: an auditor sees who acted, not only an opaque subject. The claims decide nothing; the subject alone is the identity. Another provider’s claim names are set in the configuration.
Set up the provider
1
A client for the engine
Register the engine as an audience at your provider. Tokens meant for the engine carry that audience; tokens for anything else are refused.
2
The roles claim
Map your groups to NodeAsset’s role names, such as
operator, approver or auditor, in a claim the access token carries. Segregation of duties lists every role.3
One subject per person
Four eyes compares subjects. Give each person a subject of their own, never a shared account: a person holding two roles still cannot approve their own action.
4
Investors
An investor’s token carries the
investor role and its holder id in the holder claim, as the venue registered it.5
Systems
Give each system a client of its own, with its service role:
app for an integrating application’s backend, feed for a statement connector, monitor for monitoring, and registrar for the register keeper’s own systems, which read what the venue asks of it.6
The engine
Set the sign-in mode to
idp, with the provider’s issuer, the engine’s audience and the provider’s key set URL (Configuration reference). The engine refuses to start under idp without all three.7
Check it
GET /v1/whoami answers what the engine read from a token: its subject, roles, holder, client, issuer, name and email.
