# itc-access provenance reading index Historical input only. Current canon and ADR-006 override superseded assertions. - [research/CorpusIndex.md](../source/research/CorpusIndex.md) — d110cd1f6653. - [research/README.md](../source/research/README.md) — 1ab93b1176ac. - [research/ResearchSeed.md](../source/research/ResearchSeed.md) — 1e432ff04d17. - [research/authentication-federation/nist-800-63-4.md](../source/research/authentication-federation/nist-800-63-4.md) — 8697b739399c. - [research/authentication-federation/oidc-core-subject-identifiers.md](../source/research/authentication-federation/oidc-core-subject-identifiers.md) — e1a0bf8a2754. - [research/authentication-federation/saml-nameid-federation.md](../source/research/authentication-federation/saml-nameid-federation.md) — 394457cf75d2. - [research/authentication-federation/shared-signals-caep-risc.md](../source/research/authentication-federation/shared-signals-caep-risc.md) — 7303fd449a83. - [research/authorization-relationships/cedar-principal-action-resource-context.md](../source/research/authorization-relationships/cedar-principal-action-resource-context.md) — 1932a8632dd3. - [research/authorization-relationships/cerbos-abac-derived-roles.md](../source/research/authorization-relationships/cerbos-abac-derived-roles.md) — c35f15042d45. - [research/authorization-relationships/openfga-modeling.md](../source/research/authorization-relationships/openfga-modeling.md) — e2d03ddfa7be. - [research/authorization-relationships/zanzibar-rebac.md](../source/research/authorization-relationships/zanzibar-rebac.md) — 1f736195ab4b. - [research/identity-provisioning/keycloak-organizations.md](../source/research/identity-provisioning/keycloak-organizations.md) — 09c43cdc9ecf. - [research/identity-provisioning/ldap-rfc4519-inetorgperson-rfc2798.md](../source/research/identity-provisioning/ldap-rfc4519-inetorgperson-rfc2798.md) — c3f3323a3f25. - [research/identity-provisioning/ory-kratos-keto.md](../source/research/identity-provisioning/ory-kratos-keto.md) — 5cd12c38f8d3. - [research/identity-provisioning/scim-rfc7643-rfc7644.md](../source/research/identity-provisioning/scim-rfc7643-rfc7644.md) — c5c03952ac2f. - [research/identity-provisioning/zitadel-organizations-projects.md](../source/research/identity-provisioning/zitadel-organizations-projects.md) — f4b1b6f4cce3. - [scenarios/ScenarioTests.md](../source/scenarios/ScenarioTests.md) — 400641667064. - [terminology/TerminologyConflictMap.md](../source/terminology/TerminologyConflictMap.md) — 06c8134a399a. - [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) — 5d22816b0bfe. ## Shared terminology and scenario fragments ### S01. Single Person With One Local Account Frozen source: [scenarios/ScenarioTests.md](../source/scenarios/ScenarioTests.md) lines 13–24; SHA-256 `0040dd866009ad1199e89f89267e3aab86894859f6ae6d07f393e4f0b8cdb6f5`. Historical wording; this is not a current model definition. ```text ## S01. Single Person With One Local Account Expected representation: one Natural Person, one Account in an application Scope, one local Identifier, one Profile, and one Membership or access relationship if the account belongs to a group. Checks: - The person is not identical to the account. - The profile is not the credential. - Authorization can project the account or subject into a Principal. ``` ### Conflict: User Frozen source: [terminology/TerminologyConflictMap.md](../source/terminology/TerminologyConflictMap.md) lines 6–28; SHA-256 `03cc685a840d47b36bf124aa8c1465216dfcb1c463f911dbe5e934b7fa81e3b6`. Historical wording; this is not a current model definition. ```text ## Conflict: User Problem: `user` can mean a person, account, login credential holder, application profile, authorization subject, or product-facing actor. Source evidence: - SCIM User = provisionable Identity Record (`scim-rfc7643-rfc7644.md`) - Keycloak/ZITADEL User = Account with credentials (`keycloak-organizations.md`, `zitadel-organizations-projects.md`) - OpenFGA `user:` tuple prefix = Authorization Principal id (`openfga-modeling.md`) - OIDC End-User = implied Natural Person, not modeled (`oidc-core-subject-identifiers.md`) Canonical stance: do not use `user` as a root concept. Current mapping rule: - Provisioning record (SCIM/LDAP) → Identity Record - Login-enabled product record → Account - Public/local display → Profile - Access evaluation → Principal or Authenticated Subject - Human being → Natural Person ``` ### Conflict: Identity Frozen source: [terminology/TerminologyConflictMap.md](../source/terminology/TerminologyConflictMap.md) lines 29–43; SHA-256 `acf3297ff3ac425a535639c97c8e9368833d0e4e78225679263bcd5ab6ecbbed`. Historical wording; this is not a current model definition. ```text ## Conflict: Identity Problem: `identity` can mean selfhood, a directory record, an issuer-bound subject, a set of claims, a DID, a credential, a profile, or an account. Source evidence: - Kratos Identity = traits + credentials (`ory-kratos-keto.md`) - OIDC developers conflate `sub` with "identity" (`oidc-core-subject-identifiers.md`) - DID is identifier, not identity record (`did-core.md`) - VC credentialSubject = claims about subject (`vc-data-model-2.md`) Canonical stance: avoid bare `identity`. Prefer Identity Record, Identifier, Claim, Credential, Profile, Persona, or Synonymity Assertion. ``` ### Conflict: Subject, Principal, Actor Frozen source: [terminology/TerminologyConflictMap.md](../source/terminology/TerminologyConflictMap.md) lines 60–79; SHA-256 `5f7282450703c7ab38c6d6b044bf99731c274974dd8ece1785de74bdc1365feb`. Historical wording; this is not a current model definition. ```text ## Conflict: Subject, Principal, Actor Problem: protocols, authorization engines, and social models overload these terms. Source evidence: - OIDC Subject = issuer-scoped identifier (`oidc-core-subject-identifiers.md`) - SAML Principal = authenticated subject in assertion (`saml-nameid-federation.md`) - Cedar Principal = typed entity in authorization request (`cedar-principal-action-resource-context.md`) - Zanzibar/OpenFGA Subject = opaque authz participant (`zanzibar-rebac.md`) - ActivityPub Actor = server-hosted social entity (`activitypub-actors-followers.md`) - FOAF Agent = actionable entity, includes Person (`foaf-agent-person-group-onlineaccount.md`) - GDPR Data Subject = natural person (`gdpr-pseudonymization.md`) Canonical stance: - Actor = conceptual participant - Authenticated Subject = issuer/protocol view - Authorization Principal = decision-engine projection ``` ### Conflict: Identifier, Credential, Claim Frozen source: [terminology/TerminologyConflictMap.md](../source/terminology/TerminologyConflictMap.md) lines 150–162; SHA-256 `ff9f6502a126229aa65ea20817e698285a74df128aa35ea286cf24f87462216e`. Historical wording; this is not a current model definition. ```text ## Conflict: Identifier, Credential, Claim Problem: tokens and documents bundle all three. Source evidence: - OIDC ID Token contains sub (identifier) and claims (`oidc-core-subject-identifiers.md`) - VC = signed claims with proof (`vc-data-model-2.md`) - DID verification method = cryptographic credential (`did-core.md`) - SAML AttributeStatement = claims; NameID = identifier (`saml-nameid-federation.md`) Canonical stance: identifier refers; credential proves; claim states. ``` ### Conflict: Synonymity, Linking, Matching, Merge Frozen source: [terminology/TerminologyConflictMap.md](../source/terminology/TerminologyConflictMap.md) lines 163–177; SHA-256 `a714d30d2c1bedfcfe3020fa277c5a6226ec408eebd65efc33aadcba9b825ddf`. Historical wording; this is not a current model definition. ```text ## Conflict: Synonymity, Linking, Matching, Merge Problem: systems collapse probabilistic matches, verified links, and destructive merges into one feature. Source evidence: - Probabilistic matching → weak assertion (`deterministic-vs-probabilistic-matching.md`) - OIDC iss+sub binding → strong scoped assertion (`oidc`, `synonymity-assertions` notes) - Schema.org sameAs = weak web equivalence (`schema-org` note) - GDPR cross-linking raises identifiability risk (`gdpr-pseudonymization.md`) - MDM golden record merge = downstream anti-pattern (`deterministic` note) Canonical stance: synonymity is scoped, evidenced, revocable assertion. ``` ### Conflict: Issuer Frozen source: [terminology/TerminologyConflictMap.md](../source/terminology/TerminologyConflictMap.md) lines 191–203; SHA-256 `e7ca901947a8931fb1c427fa217f22bac361c15aa6c57da67580d799676980a7`. Historical wording; this is not a current model definition. ```text ## Conflict: Issuer Problem: issuer means OIDC OP, VC issuer, SAML IdP, or CSP. Source evidence: - OIDC iss claim defines subject namespace (`oidc-core-subject-identifiers.md`) - VC issuer signs credential (`vc-data-model-2.md`) - NIST CSP performs proofing (`nist-800-63-4.md`) Canonical stance: Issuer = Scope authority + Trust Relationship; specify protocol role when mapping. ``` ### subject Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 25–25; SHA-256 `904b2af8c84d271ad315098c387b00d51eef6463d3d4343c16469844f65f9cd5`. Historical wording; this is not a current model definition. ```text | subject | Authenticated Subject | OIDC, SAML, SSF events | Protocol/security view after issuer identification. Not Actor or Principal. | ``` ### principal Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 26–26; SHA-256 `3ab8b5d536f3e1da3f172f95431751a51786291480592b7e2e784338466657ba`. Historical wording; this is not a current model definition. ```text | principal | Authorization Principal | Cedar, Cerbos, Zanzibar, OpenFGA | Decision-engine participant. OpenFGA `user:` prefix is not a human user. | ``` ### pan / cvv / chd Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 42–42; SHA-256 `84eacf96d9ff1a172086a00c1ecf31e94f5b594ee4dce3559e8ccd2525ab6b9c`. Historical wording; this is not a current model definition. ```text | pan / cvv / chd | Out of canon | PCI DSS | Downstream PCI vault only. | ``` ### representation Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 102–102; SHA-256 `1a93d64d4e3f608806754d3889b9655d0083e2f5ce92db14780c8513fbfff419`. Historical wording; this is not a current model definition. ```text | representation | Representation Relationship | SCIM manager, DID controller | Acting on behalf of another. DID controller may differ from subject. | ``` ### pairwise subject Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 115–115; SHA-256 `508a529137ad7a0e7f1409063b306cad3bb1f8aa1c9c15f179c21ab657f46d33`. Historical wording; this is not a current model definition. ```text | pairwise subject | Scoped Identifier | OIDC | RP-specific sub preventing global correlation. | ``` ### relationship tuple Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 116–116; SHA-256 `3cab1bbb2dfc5afd3dcde230e104ddd95e67ccddc46fb2bbcc38f99103a55f49`. Historical wording; this is not a current model definition. ```text | relationship tuple | Relationship Tuple | Zanzibar, OpenFGA, Keto | Authz projection: subject#relation@object. | ``` ### policy Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 117–117; SHA-256 `13bcf330fb1989abf5ba4d7c673d2c3a646480236f81792abadb74afa660b983`. Historical wording; this is not a current model definition. ```text | policy | Authorization Projection | Cedar, Cerbos | Rule artifact; downstream of canon model. | ``` ### holder Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 128–128; SHA-256 `1e57bb144bb8a072a4180be14a8a91f8126c4f958397a8fd62e12c63db8806b6`. Historical wording; this is not a current model definition. ```text | holder | Actor (custody role) | VC, OpenID4VC | Party possessing VC; may differ from subject. | ``` ### data subject Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 132–132; SHA-256 `2aae43d6df259e4678d0a2d27fcf4efd546ecd99201d1a3e573cef845e78a822`. Historical wording; this is not a current model definition. ```text | data subject | Natural Person | GDPR | Identifiable natural person for privacy regulation. | ``` ### tuple (authz) Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 135–135; SHA-256 `89a5e53a0468189c92022352aac36ccf34b62a8a34b49c13241eb5fa91aa830c`. Historical wording; this is not a current model definition. ```text | tuple (authz) | Relationship Tuple | Zanzibar | Authorization fact, not social relationship. | ``` ### userset Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 136–136; SHA-256 `6ad9832f81b69b4e039e5bb2c0e8751894d408412f573668619adfa74cde2e8c`. Historical wording; this is not a current model definition. ```text | userset | Authorization Principal (indirect) | Zanzibar, OpenFGA | Subject referenced via relation chain. | ``` ### contextual tuple Frozen source: [terminology/TerminologyInventory.md](../source/terminology/TerminologyInventory.md) lines 138–138; SHA-256 `5b1c5f8c2795fc54d61f319bd4c6238538588fa4026e779d0ed615e998133218`. Historical wording; this is not a current model definition. ```text | contextual tuple | Delegation context | OpenFGA | Ephemeral authz fact at check time. | ```