This document is intended primarily for design discussion purposes.
The initial implementation will use the first representation (CIFER Core Schema).
Likely common attributes for ID Match operations:
- Name
- Official
- Preferred?
- FKA? Unlikely to be provided at run time, but could be loaded for historical matching
- Date of Birth
- Identifier
- National / SSN
- Network / NetID
- Institutional / Enterprise / Campus System-To-System ID
- External Identifier (student application system, social identity, etc)
- Email Address
- System of Record label ("hrms", "sis", etc)
- System of Record identifier (emplid, etc)
Less common, but possible attributes:
- Address
- Identifier
- Identity Proofing Document (Driver's License / Passport #)
- Telephone Number
- Home
- Mobile
Sample representations show all possible attributes, which is an unlikely scenario for actual usage.
Sample Representation (CIFER Core Schema)
See: SOR-Registry Strawman ID Match API, SOR-Registry Core Schema Specification
PUT /v1/people/sis/971194843 { "sorAttributes": { "names":[ { "type":"official", "given":"Patricia", "family":"Lee" }, { "type":"preferred", "given":"Pat", "family":"Lee" }, { "type":"fka", "given":"Patricia", "family":"Smith" } ], "dateOfBirth":"1983-03-18", "identifiers":[ { "type":"national", "identifier":"3B902AE12DF55196" }, { "type":"network", "identifier":"pl256" }, { // XXX "institutional" "type":"enterprise", "identifier":"U2878985" }, { "type":"external", "identifier":"cGF0cmljaWFzbWl0aA@social.com" } ], "emailAddresses":[ { "type":"personal", "address":"patriciasmith@social.com" } ], "telephoneNumbers":[ { "type":"mobile", "number":"8185551234" }, { "type":"home", "number":"8185556789" } ], "referenceId":"M523441767" } }
Sample Representation (TIER Minimal Schema)
See: Minimal Entity Registry Definition/Logical Design, tier-minimal-person-schema-example.json, Schema crosswalk table
PUT /v1/people { // Unclear if this is the correct use of id/updatingSOR "id":"971194843", "updatingSOR":"sis", "names":[ { "type":"legal", "given":"Patricia", "family":"Lee" }, { "type":"preferred", "given":"Pat", "family":"Lee" }, { // Type is not defined "type":"fka", "given":"Patricia", "family":"Smith" } ], // Date of Birth is not defined "identifiers":[ { // Type label is not defined "national":"3B902AE12DF55196" }, { "userName":"pl256" }, { // Type label is not defined "institutional":"U2878985" }, { // Type label is not defined "external":"cGF0cmljaWFzbWl0aA@social.com" }, { // Unclear if this is how to handle forced reconciliation; type label is not defined "referenceId":"M523441767" } ], "emails":[ { // What is a "home" email? "type":"home", "value":"patriciasmith@social.com" } ], "phoneNumbers":[ { "type":"mobile", "value":"+1-818-555-1234" }, { "type":"home", "value":"+1-818-555-6789" } ] }
Sample Representation (SCIM)
POST /v2/Users { "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"], // externalId behaves like the SOR ID // Unclear how to define SOR label, perhaps implied by authentication? "externalId":"971194843", "meta":{ ... }, // Unspecified which name this is, unclear that nickName would include familyName, // and so is unlikely to be appropriate for "preferred" "name":{ "formatted": "Patricia Lee", "familyName": "Lee", "givenName": "Patricia" }, // Date of Birth is not defined // userName is server defined, so not suitable for use // Unclear how to convey other identifiers "emails":[ { "value":"patriciasmith@social.com", // What is a "home" email? "type":"home" } ], "phoneNumbers":[ { "type":"mobile", "number":"+1-818-555-1234" }, { "type":"home", "number":"+1-818-555-6789" } ], // id behaves like referenceId (ie: assigned by server, can be used for forced reconciliation) "id":"M523441767" }