Why?
As we all try to make sense of identity technologies, we go through a process of fitting what we’re learning into our own mental map. It’s a lot of work. In the hope of possibly be of use to others I’m sharing my personal map. It consists of four actors and the six interconnections between them.
Four actors
Across a variety of identity technologies for identification, authentication, data sharing, authorization and so on there exist to varying extents four main kinds of actors. All of them are digital. The human user has been omitted in the interest of simplicity. If it were included it would be shown as interacting only with the user agent (U).
- U – A local user agent. It may just be a browser. Or it may include an OpenID, WS-*, password or SAML IdP, selector client. It may include a local personal data store. It works on behalf of the user.
- R – A relying Website or Web service or a local application. This relying agent performs some service and/or provides access to some resources. In the non-local cases it is usually an agent of some organizational or individual entity other than the user.
- P – An Internet service (or local application) providing a specific service (e.g. a calendar service), an identity provider, an attribute/claim provider or an authorization provider. In the non-local case it is usually an agent of organizational or individual entity other than the user. Examples include a Plaxo Portable Contacts service, an OpenID OP, WS-* Security Token Service, or a SAML IdP
- A – A cloud-based agent that works on behalf of the user. It may act as an authorization manager to which you delegate authorization services. It may provide a service discovery service. It may provide storage of self-asserted identity data (sometimes called a personal data store). It may provide linkage of partial identities (attribute sets) across data sources. It may provide schema mapping of identity attributes and social relationships necessary to achieve data portability. It may provide an auditing service. It may provide Cloud Selector functionality (tunneling WS-* functionality through OpenID AX extensions). Finally, it may provide other “sync” services such as information card synchronization services (to synchronized cards across our browsers and devices). Various subsets of these functions are sometimes referred to as a relationship manager. I sometimes refer to the entire bundle as a personal identity agent.
Each developer community has chosen to name these same four actors different things. For example, in Oauth the “R” is called a “consumer”. Or in SAML the “R” is called a “service provider.” Here are some examples:
| Actor |
OpenID |
SAML |
WS-* |
Oauth |
VRM |
ProtectServe |
Higgins |
ID-WSF |
| U |
Browser |
Browser or local app |
Browser + Selector |
Browser |
Browser + [Selector] |
Browser + [Selector] |
Browser + [Selector] |
Rich Web or local app |
| R |
Service Provider |
Service Provider |
Relying Party |
Consumer |
Vendor |
Consumer |
Relying Party |
Web Services Consumer |
| P |
OP |
IdP |
IdP STS |
Service Provider |
Third Party |
Service Provider |
IdP STS |
Web Services Provider |
| A |
n/a |
n/a |
[future: CardSync] |
n/a |
4th Party |
Authorization Manager |
Cloud Selector, Identity Data Service, CardSync |
ID-WSF Service Architecture/COT |
Six interaction paths
As you can see there are a total six interaction paths between the four actors. Each path is named by the letters of its start and end. For example, path PA is the path between P and A. Similarly, PU, UA, etc.
So that’s the basics of the framework. With it we can more easily compare technologies and protocols like OpenID, Oauth, WS-*, ProtectServe, VRM, etc. I’ll begin to do so in future posts.