La fédération d'identité est une question de confiance. Comme le montre le diagramme ci-dessous, tous les participants à une telle fédération d'identité forment un cycle de confiance. On peut facilement étendre l'authentification fédérée pour Windows Azure Service Bus à des communautés d'utilisateurs externes avec l'identité sociale, l'identité cloud du locataire de Windows Azure Active Directory (WAAD) ou l'identité d'un partenaire commercial. Il prend également en charge les protocoles de fédération tels que SAML-P, WS-Fed et OpenID.
Dans le scénario ci-dessus, l'application client est implémentée en tant que Claim-Aware et accessible aux utilisateurs finaux avec l'identité fédérée mentionnée ci-dessus. Une fois que l'utilisateur s'est connecté à l'application client, il utilise le Windows Azure Service Bus pour effectuer des tâches professionnelles.
Active Directory Federation Service (ADFS) agit en tant que fournisseur d'identité pour les utilisateurs internes (employés) et en tant que service de jetons de sécurité (STS) pour les utilisateurs externes avec une identité fédérée. Dans ce billet, le STS est décrit comme un courtier d'authentification qui gère non seulement la génération des jetons de sécurité, mais aussi leur échange et leur transmission. La relation entre WAAD et Windows Azure Access Control Service (ACS) est similaire à ADFS en tant que rôle de fournisseur d'identité
et en tant que rôle de service de jetons de sécurité. En outre, ACS peut également être un rôle de fournisseur d'identité, l'un des rôles STS, avec ses propres identités de service.
Pour qu'un client puisse travailler avec Azure Service Bus, il doit obtenir un jeton SAML auprès de l'ADFS. Le client présente le jeton SAML à l'ACS auto-créé du Service Bus (SB ACS) pour l'échanger en tant que jeton SWT. Ensuite, le client envoie la demande à Service Bus avec le jeton SWT.
Dans la mise en œuvre la plus simple, le client est sécurisé par l'ADFS en tant que partie dépendante et reçoit des réclamations une fois que l'utilisateur est authentifié. Ensuite, le client utilise WS-Trust pour obtenir de l'ADFS un jeton SAML appliqué à SB-ACS. Cette implémentation déconnecte l'identité de l'appelant (l'identité avec les informations d'identification utilisées dans WS-Trust). Là encore, il est nécessaire de maintenir l'intégrité entre ces deux identités séparées, si les informations relatives à la demande du sujet doivent être connues par le service.
Le client peut également se faire passer pour l'utilisateur final en utilisant l'URL de retour comme moyen de consommer un jeton SAML appliqué à SB-ACS ou un jeton SWT appliqué à Azure Service Bus dans le contexte d'identité d'un seul sujet.
Passons en revue le cas d'utilisation du partenaire commercial avec le fournisseur d'identité SAML-P.
- L'utilisateur tente d'accéder à l'application client
- Le client redirige une requête non authentifiée vers l'ADFS
- L'utilisateur sélectionne l'IdP SAML-P au cours de la procédure de découverte du domaine vital (HRD).
- L'ADFS envoie un message SAMLRequest à l'IdP SAML-P
- SAML-P IdP authentifie l'utilisateur
- SAML-P renvoie le jeton SAML à l'ADFS
- L'ADFS génère un nouveau jeton SAML basé sur les règles de réclamation.
- Le navigateur envoie automatiquement un nouveau jeton SAML au client
- Le client présente un nouveau jeton SAML au SB-ACS
- SB-ACS échange le jeton SAML en jeton SWT sur la base des règles de réclamation.
- Le client présente le jeton SWT avec la demande de service à Azure Service Bus.
- Azure Service Bus valide le jeton et permet à la demande d'être transmise au service requis.
Le même processus s'applique à d'autres fournisseurs d'identité tels que Social IdP ou l'instance de locataire WAAD via Windows Azure ACS en tant que fournisseur de fédération vers ADFS. WAAD implémente également SAML-P en tant que fournisseur d'identité, à condition que RelayState soit pris en charge. Dans ce cas, il est possible d'établir une relation de confiance entre WAAD en tant que fournisseur d'identité et ADFS en tant que fournisseur de service en utilisant le terme SAML-P.