[Prev]

3.2.1.3 Back Channel, Simple

This flow expands on front channel by adding one web services call on back channel. This section addresses Req. D1.2-3.10-JITPerm.


Fig-19: Flow of front channel call that makes a call on back channel.

Example: In our concrete example U authenticates and makes a service request to A which invokes another service provider B which also contains information about user U.

Assumptions:

The Steps of the Protocol with one layer of Service Provider Invocations

  1. (Same as above.) User U wants to access service provider A and starts interaction with A.

  2. (Same as above.) U is redirected to IdP1 (n.b. IdP discovery is not addressed in this flow, though industry standards like [SAML2core] and [CardSpace] do address it)

  3. (Same as above.) U logs in at IdP1. The authentication method is out-of-scope for this flow.

    IdP1 returns two encrypted tokens to A:

    TokenAuthn

    the token contains U s permanent pseudonymous userID 123A4. It is encrypted such that only A can read it and authenticate the user.

    TokenIM

    the token is encrypted for the IM and contains the permanent pseudonymous userID of U with IM which is 789IM. The token is bound to A (contains an indication that only A can use it towards IM).

    A authenticates U with TokenAuthn (possibly Single Sign-On - SSO).

  4. A needs to use other service provider B to complete the services and needs the permanent pseudonymous userID for U in B. For this A passes TokenIM from IdP1 to IM.

    The service provider B is selected based on Trust and Privacy Negotiator's efforts to find a suitably trusted SP from the database maintained by the IM (or some other part of the Discovery functionality). (Req. D1.2-3.10-JITPerm)

    IM decrypts TokenIM from IdP1 and sees the user U registered as 789IM in its database. This with the token serves to authenticate the user to IM. Provided that the expiration time of the token is relatively short, the user can be assumed to be present (User Present scenario).

    B looks up the userID of 789IM for service provider B which is 456B (the lookup values can be in encrypted form).

  5. IM encrypts two new tokens for the invoked service providers B and gives them to A.

    TokenUIDinB

    the token is encrypted for B. The token contains the pseudonymous identity of user U at B. In this case it is: 456B.

    TokenIM

    the token is encrypted for the IM and contains the userID of U with IM which is 789IM The token is bound to B.

  6. A sends a request to B for a service for U and sends the two tokens from the IM.

    B decrypts the token and recognizes the user as having UserID 456B in its database.

    B sees that 456B is the user U . It calls the authorization function to see if U is authorized. Assuming the answer is granted, the service is provided.

    If B needs to invoke further services with a service provider C it communicates with the IM of U using its TokenIM and repeats the steps 4 through 6. See the recursive case, below.

  7. B returns a result to A which completes the service and returns result to user U.

If a User has multiple IMs, multiple IM tokens would be generated if there was no way to ask User's choice or other deciding rule to pick just one. This may result in practise nearly all IMs being aware of each other, but this need not always be the case and even partially populated IM matrix would remain useful to the user. Further, the IM matrix may be different for different users.


[Prev | Next]