Thoughts about Interchange Formats

Following the principle of leveraging our existing UCTrust / Shibboleth infrastructure, identity information will be transmitted as SAML assertions.  To support our three access scenarios, though, we will need to wrap those SAML assertions in another structure that can allow SPs to process transactions and snapshots in a reasonable manner, as well as allow for verification that the information is complete and is not forged.

The User Provisioning Interchange Format (UPIF) consists of a set of one or more SAML objects along with the following information:

The transaction IDs are set according to the access scenario being employed:

Error Detection and Recovery

For various reasons, an SP and an IdP may get their transaction IDs out of synchronization. It is the responsibility of SPs to detect this by validating the values of earliestTransactionID and latestTransactionID in every UPIF object they receive.

When transaction IDs do get out of sync, SPs must recover by obtaining a Snapshot and assuring that it matches the information they have stored internally before making Change Log or Subscription requests.  Failing to do this will result in the SP having incomplete information about its users.  The SP can use either of two methods to assure proper matching:

The choice between these two methods is left to the SP's administrators.