Fédération d’identité: ACS V2 via ADFS V2 | Federated Identity: ACS V2 via ADFS V2
Français | English |
En août 2001, l’équipe Windows Azure AppFabric a sorti une pré-version CTP (*) d’ACS (*) V2. (*) voir les abréviations en bas de la page Il y a eu des billets et des webcasts à propos des nouvelles fonctionnalités de cette version. Voici quelques liens: | In august 2010, the Windows Azure AppFabric team released a CTP(*) version of ACS(*) V2. (*) Abbreviations are given at the bottom of this page There were blog posts and videos about the new features of this release. Here are a few links: |
- portal.appfabriclabs.com (le portail où l’on retrouve la version CTP | the portal where CTP is available)
- https://channel9.msdn.com/posts/justinjsmith/ACS-Labs-Walkthrough/ (demo)
- https://blogs.msdn.com/b/justinjsmith/archive/2010/08/04/major-update-to-acs-now-available.aspx
- https://blogs.msdn.com/b/vbertocci/archive/2010/08/05/new-labs-release-of-acs-marries-web-identities-and-ws-blows-your-mind.aspx
- https://channel9.msdn.com/shows/Identity/Introducing-the-new-features-of-the-August-Labs-release-of-the-Access-Control-Service
(Vittorio Bertocci interroge Justin Smith | Vittorio Bertocci interviewing Justin Smith) - https://blogs.msdn.com/b/vbertocci/
(le blog de Vittorio Bertocci où il est beaucoup question d’ACS V2 en ce moment | Vittorio Bertocci’s blog were he’s been writing a lot about ACS V2 these times)
Supposons qu’on dispose d’un RP(*), un site Web, qui a déjà ADFS V2 comme STS (*). Typiquement, les utilisateurs ayant un compte Active Directory peuvent accéder à ce site webn même si ce dernier n’est pas hévergé dans le domaine. Par exemple, le site web peut être hébergé dans Windows Azure , ou n’importe où ailleurs sur Internet. De façon à pouvoir également authentifier des utilisateurs sans compte AD, une des topologies possibles est la suivante: | Let’s suppose we have a RP(*), a Web site, which already has an ADFS V2 as its STS (*). Typically, users who have Active Directory credentials can access to that web site, even when that web site is not hosted inside the domain. As an example, the web site may be hosted in Windows Azure, or anywhere else on the Internet. In order to be able to authenticate other users (without AD credentials), one of the possible topologies is the following: |
Une motivation possible pour cette topologie est d’avoir ADFS V2 qui contrôle toutes les revendications qui sont fournies par le RP, ainsi que la liste des fournisseurs d’identité possibles pour le RP. La principale valeurs des composants est: - ACS V2 traduit Open ID (ex: Yahoo!) ou Facebook connect (et d’autres) en lke protocole WF-Federation qui est implémenté par ADFS V2 - ADFS V2 peut générer des revendications à partir d’une authentification Windows, ainsi que depuis des STS externes comme ACS V2, de façon unifiée (en termes d’administration). Voici comment on peut configurer ADFS. Il y a deux fournisseurs: Active Directory et Access Control Services V2. | A motivation for this topology would be to have ADFS V2 controlling all the claims that are provided to the RP, as well as the list of available identity providers for the RP. The main values of the components are: - ACS V2 translates Open ID (ex: Yahoo!) or Facebook connect (and others) to WS-Federation protocol that can be understood by ADFS V2 - ADFS V2 can generate claims from Windows Authentication, as well as other external STS such as ACS V2, in a unified way (in terms of administration). Here is how we can configure ADFS. There are two providers: Active Directory, and Access Control Services V2. |
Voici les règles pour le fournisseur d’identité Active Directory | Here are the rules for the Active Directory identity provider |
et les règles pour ACS V2 | and the rules for the ACS V2 provider |
Il y a des règles pour le RP (l’application hébergée dans Windows Azure, dans cet exemple) | These are the rules for the RP (the application residing into Windows Azure in this example) |
ACS V2 est configuré de la façon suivante: il a Facebook, Google, Windows Live ID et Yahoo! comme fournisseurs d’identité. | ACS V2 is configured in the following way: It has Facebook, Google, Windows Live ID and Yahoo! as identity providers. |
ADFS V2 est un RP pour ACS V2. | ADSF V2 is a RP for ACS V2. |
Testons maintenant depuis une session utilisateur dans le domaine (test-a). | Let’s now test from a user session within the domain (user test-a). |
L’application redirige le navigateur vers le seul STS qu’il connaît: ADFS V2. Comme ADFS V2 a plusieurs fournisseurs d’identité possibles, il demande à l’utilisateur celui qu’il veut. L’utilisateur garde le choix par défaut (AD). | The application redirects the browser to the only STS it knows: ADFS V2. As ADFS V2 has several possible identity providers, it asks user which one he wants to use. User will keep default one (AD). |
L’application (RP) affiche les revendications qu’elle a reçues (c’est ce que fait le modèle d’application WIF par défaut). Comme l’utilisateur a été authentifié par Windows, ADFS V2 a ajouté un rôle spécifique (FromADFS-Administrator) de façon à ce que l’application puisse donner accès à plus de fonctionnalités. Cela a été fait par une règle dans ADFS V2. Comme pour tout utilisateur authentifié, une règle ajoute un rôle FromADFS-Public également. | RP application displays the claims it received (this is from a WIF template). As user was authenticated thru Windows means, ADFS V2 added a custom role called FromADFS-Administrator so that application let user access more features. This was done by a rule inside ADFS V2. As for any authenticated user, another rule added the FromADFS-Public role too. |
Fermons le navigateur et testons à nouveau. Dans ce cas, l’utilisateur choisit ACS V2 comme fournisseur d’identité. | Let’s close the browser and test again. In this case, user will choose ACS V2 as the identity provider. |
Comme ACS V2 a lui aussi plusieurs fournisseurs d’identité, il demande à l’utilisateur de choisir. Dans ce scénario, l’utilisateur choisit Yahoo! | As ACS V2 also has several possible identoty providers, it asks user to choose. In this scenario, user chooses Yahoo! |
Yahoo! demande à l’utilisateur s’il est d’accord pour fournir des informations à ACS V2. L’utilisateur accepte. | Yahoo! asks user if he agrees to send information to ACS V2. User agrees. |
Comme l’utilisateur n’a pas été authentifié par Windows, ADFS V2 n’a pas ajouté le rôle FromADFS-Administrator. Comme pour n’importe quel utilisateur authentifié, une autre règle a ajouté le rôle FromADFS-Public. | As users was not authenticated thru Windows means, ADFS V2 did not add FromADFS-Administrator. As for any authenticated user, another rule added the FromADFS-Public role. |
Avec tous les rôles et autres revendications reçues par le RP, ce dernier a tout ce qu’il faut pour implémenter ses mécanismes d’autorisation et de personnalisation. ACS V2 étant un service dans le nuage, si des nouveaux fournisseurs d’identité ou même protocoles apparaissent sur Internet, il devrait être facile de les ajouter à ACS V2 depuis le portail, sans avoir besoin de changer les règles dans ADFS V2 ni changer le code de l’application. | With all the roles and other claims received by the RP, it has all needed information for its authorizations and personalization work. ACS V2 being a cloud service, should other very popular identity providers or even protocols emerge on the Internet, it may be easy to add them from ACS V2 portal, without requiring to change ADFS V2 rules or application code. |
:-)
Benjamin
(*)
ACS = Access Control Service
ADFS = Active Directory Federation Services
CTP = Community Technology Preview
IP = Identity Provider
RP = Relying Party
STS = Security Toekn Service
WIF = Windows Identity Foundation