Define user-engine portal integration boundary
This commit is contained in:
parent
b56dbffd79
commit
9d1ae01b75
2 changed files with 36 additions and 2 deletions
34
docs/user-engine-provisioning-contract.md
Normal file
34
docs/user-engine-provisioning-contract.md
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
# user-engine identity provisioning contract
|
||||
|
||||
user-engine is authoritative for user, tenant membership and lifecycle intent.
|
||||
NetKingdom is authoritative for provider subjects, credentials, password
|
||||
policy, MFA factors and authentication sessions. KeyCape projects verified
|
||||
authentication facts; flex-auth decides whether an actor may change intent.
|
||||
|
||||
The NetKingdom adapter implements user-engine's provider-neutral
|
||||
`IdentityProvisioningPort`. Every operation has an idempotency key and
|
||||
correlation ID. Provisioning creates or links an LLDAP subject, initializes
|
||||
privacyIDEA eligibility without enrolling a factor, and returns the external
|
||||
subject. Password and factor enrollment remain user-facing KeyCape handoffs.
|
||||
|
||||
Lifecycle order is:
|
||||
|
||||
1. Commit user-engine intent and an outbox event atomically.
|
||||
2. Claim the event and call the provider with its stable idempotency key.
|
||||
3. Store the provider subject and completion evidence.
|
||||
4. Retry ambiguous failures; reconcile provider and domain state periodically.
|
||||
|
||||
Suspension disables provider authentication before reporting external
|
||||
completion. Reactivation preserves the same subject. Deprovisioning first
|
||||
removes active sessions and factors, then tombstones or removes the directory
|
||||
subject according to retention policy. A failed downstream action remains
|
||||
retryable and visible; it never rolls back authoritative audit history.
|
||||
|
||||
The adapter receives scoped provider credentials only through runtime secret
|
||||
references. Neither browsers nor the user-engine domain receive directory,
|
||||
MFA, KeyCape or mail-administration credentials.
|
||||
|
||||
Externally managed identities record provider, immutable external subject,
|
||||
ownership (`platform` or `customer`), provisioning mode (`managed`,
|
||||
`federated`, or `jit`), and last-observed freshness. Future SCIM and corporate
|
||||
directory adapters use the same lifecycle results and conflict rules.
|
||||
|
|
@ -25,7 +25,7 @@ as the first acceptance case.
|
|||
|
||||
```task
|
||||
id: NK-WP-0023-T01
|
||||
status: todo
|
||||
status: done
|
||||
priority: high
|
||||
state_hub_task_id: "8d96aa5e-9801-4d76-9140-d6076a4f2942"
|
||||
```
|
||||
|
|
@ -41,7 +41,7 @@ now so later enterprise directories do not require a domain rewrite.
|
|||
|
||||
```task
|
||||
id: NK-WP-0023-T02
|
||||
status: wait
|
||||
status: progress
|
||||
priority: high
|
||||
state_hub_task_id: "89fe51aa-f351-4763-a358-3eec79f28350"
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue