Home | About

Secure Federation

This pattern permits members of a federation participate in a circle of trust. It allows assigning roles to users / services of their organisation in the context of a B2B collaboration. It provides a mechanism to dynamically bootstrap or exclude participants of the collaboration (i.e. group members), and to accordingly update security context of the group on-the-fly.

In a typical cross-enterprise collaborative scenario, performing an activity requires participants (users, services, resources) to be provided by different enterprises. A demand for including new participants will appear during the collaboration lifetime, and the existing participants may be dropped.

At the same time, security of the collaboration needs to be maintained: members of a federation must be able to identify one another, identify messages as coming from other members of the federation, and identify the truth of claims made by other parties in the federation.

It is appropriate to apply this pattern:

When interacting entities are exposed via Web Services interfaces and can understand WS-Trust and WS-Coordination standards.
For establishing on-the-fly mechanism to dynamically bootstrap or exclude participants of the collaboration.

  • To provide a security baseline for a distributed transaction of Web services, which is independent of the transaction’s business logic, where transactions can be of varied nature (atomic transaction, business activity, or business process).
  • When the requestor directly invoking a service does not know/have in advance the specific rights and privileges required for the interaction.
  • When:
    • Dynamic federative collaborations of participants belonging to different enterprises is required.
    • Collaborative group needs to be secure from outsiders, and from past members; also, group; members must not be able to talk to outsiders in the context of the group.
    • Mechanism needs to provide peer-authentication and authorisation, and message confidentiality and integrity.
    • Participants may be introduced dynamically, which has to be done in a secure way.
    • Past group members are prevented from interactions within the group, by: their (SOAP) interceptor is re-configured, and the security context of the group is updated.

The architectural model assumed in the pattern is depicted in the next Figure - Secure Federation.
The initial assumption is that every entity in the model already owns a key pair and an identity token provided by the environment (i.e. a trust realm) they reside in. A token contains owner’s ID, public key, etc. These tokens can be attached to every message when authenticating a requester at the destination is required.
As an example, an identity token owned by web service 1 is: Tws1 = (WS1_ID, Puws1,…) signPrsts ,where WS1_ID is the identifier of the service1.

The Security Token Service (STS) that signs and issues these identity tokens may be different from the one which is subsequently involved in the creation of the security context. With that respect, the assumption is that there is a predefined relationship between the coordination service and the STS responsible for creating the key-pair for the group and the group token. This token is signed by a private key of that STS, and contains at least the groupID, an identifier of the service and the group public key: Tgws1 = {GroupID, IDws1, Pug,…}/signPrsts

This basic participants in the pattern are: