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 APISOR-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 Designtier-minimal-person-schema-example.jsonSchema 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)

See: SCIM, RFC 7643

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"
}
  • No labels