ADFS, l’expérience Web SSO (fédérée)1ère partie
ADFS, l’expérience Web SSO (fédérée)1ère partie
Philippe BeraudConsultant Principal
Microsoft France
Sommaire
Vue d’ensemble d’ADFSVue d’ensemble d’ADFS
ComposantesComposantes
Scénarios de miseScénarios de miseEléments d’architecture d’ADFSEléments d’architecture d’ADFS
Politique et configuration ADFSPolitique et configuration ADFS
Federation Service (FS)Federation Service (FS)
Federation Service Proxy (FS-P)Federation Service Proxy (FS-P)
Web AgentsWeb Agents
Interopérabilité entre plates-formes Interopérabilité entre plates-formes
WS-Federation Passive Requestor Interop ProfileWS-Federation Passive Requestor Interop Profile (WS-Fed (WS-Fed PRIP)PRIP)
Active Directory Federation ServicesObjectifs
Projeter l’identité utilisateur sur la base d’une première ouverture Projeter l’identité utilisateur sur la base d’une première ouverture de sessionde session
Etendre le périmètre d’utilisation d’Active DirectoryEtendre le périmètre d’utilisation d’Active Directory
Fournir des mécanismes d’authentification et d’autorisation Fournir des mécanismes d’authentification et d’autorisation distribuésdistribués
Permettre aux clients, partenaires, fournisseurs, collaborateurs Permettre aux clients, partenaires, fournisseurs, collaborateurs un accès sécurisé et contrôlé aux applications web situées hors un accès sécurisé et contrôlé aux applications web situées hors de leur forêt Active Directoryde leur forêt Active Directory
Connecter les « îles » ( à travers les frontières des plateformes, Connecter les « îles » ( à travers les frontières des plateformes, organisationnelles ou de sécurité)organisationnelles ou de sécurité)
Permettre la mise en place de solutions de Web SSO ainsi qu’une Permettre la mise en place de solutions de Web SSO ainsi qu’une gestion simplifiée des identitésgestion simplifiée des identités
Active Directory Federation ServicesQuelques précisions
ADFS n’est pasADFS n’est pasLe nouveau nom de Microsoft Passport Le nouveau nom de Microsoft Passport
Un nouveau référentiel d’identitésUn nouveau référentiel d’identités
Un nouveau type de relation d’approbation ou de forêtUn nouveau type de relation d’approbation ou de forêt
ADFS ne nécessite pasADFS ne nécessite pasUne extension du schéma Active DirectoryUne extension du schéma Active Directory
ADFS estADFS estUn composant de Windows 2003 Server R2Un composant de Windows 2003 Server R2
Une implémentation interopérable de la spécification WS-Federation Une implémentation interopérable de la spécification WS-Federation Passive Requestor Profile (WS-F PRP)Passive Requestor Profile (WS-F PRP)
ADFS s’appuie sur un certain nombre de composants de l’offre ADFS s’appuie sur un certain nombre de composants de l’offre MicrosoftMicrosoft
AD et AD/AM en temps que référentiel utilisateurAD et AD/AM en temps que référentiel utilisateur
ASP.Net 2.0ASP.Net 2.0
Certificate Services (optionnel)Certificate Services (optionnel)
Authorization Manager (optionnel)Authorization Manager (optionnel)
Quelques définitions…
Jetons de sécuritéJetons de sécuritéBases pour une authentification et une autorisation distribuéesBases pour une authentification et une autorisation distribuées
Les jetons de sécurité définissent des déclarations (Les jetons de sécurité définissent des déclarations (claimsclaims) faites ) faites au sujet d’une identité, d’aptitude ou de privilègesau sujet d’une identité, d’aptitude ou de privilèges
Nom, adresse mèl, clé, groupe, rôle, etc.Nom, adresse mèl, clé, groupe, rôle, etc.
Attributs/propriétés de sécuritéAttributs/propriétés de sécurité
Quelques exemplesQuelques exemplesSignéSigné
Certificat X.509, ticket Certificat X.509, ticket KerberosKerberos, assertion SAML, licence , assertion SAML, licence XrMLXrML, etc., etc.
Exigence ou non d’une preuve de possessionExigence ou non d’une preuve de possession
Clé secrète, mot de passeClé secrète, mot de passe
Quelques définitions…
Service de jetons de sécurité Service de jetons de sécurité Un service de jetons émet des jetons de sécuritéUn service de jetons émet des jetons de sécurité
Un service de jeton peut « échanger » des jetons lorsque la Un service de jeton peut « échanger » des jetons lorsque la requête traverse les frontières de royaumes de sécuritérequête traverse les frontières de royaumes de sécurité
Ticket Kerberos Ticket Kerberos contenantcontenant des des claimsclaimsSID= S-1-5-21-3485267726-SID= [email protected][email protected]
JetonJeton SAML SAML contenant descontenant des assertions Company=assertions Company=A.DatumA.DatumRole=Purchasing AgentRole=Purchasing Agent
Centre de Centre de distribution des distribution des clésclés
Service de Service de jetons de jetons de sécuritésécurité
Composantes ADFS
Active Directory ou Active Directory Application Mode (AD/AM)Active Directory ou Active Directory Application Mode (AD/AM)Fournisseur d’identitésFournisseur d’identités
Authentification des utilisateursAuthentification des utilisateursGestion des attributs utilisés pour constituer les Gestion des attributs utilisés pour constituer les claimsclaims
Support des forêts Windows 2000 et 2003Support des forêts Windows 2000 et 2003
Federation ServiceFederation Service (FS) (FS)Service de jetons de sécuritéService de jetons de sécurité
Mappage des attributs utilisateur en claimsMappage des attributs utilisateur en claimsEmission de jetons de sécuritéEmission de jetons de sécurité
Gestion des politiques de confiance de fédérationGestion des politiques de confiance de fédération
Federation Service ProxyFederation Service Proxy (FS-P) (FS-P) Proxy client pour les demandes de jetonsProxy client pour les demandes de jetonsUI pour les clients Browser (Découverte du royaume, UI pour les clients Browser (Découverte du royaume, Authentification)Authentification)
Web Server SSO Agent (Web Server SSO Agent (Agent SSOAgent SSO))Agent d’authentificationAgent d’authentification
S’assure de l’authentification utilisateurS’assure de l’authentification utilisateurConstitue le contexte utilisateur d’autorisationConstitue le contexte utilisateur d’autorisation
Composantes ADFS
NotesNotesLes composantes FS et FS-P sont co-logés par défaut et peuvent Les composantes FS et FS-P sont co-logés par défaut et peuvent être dissociésêtre dissociésLes composantes FS, FS-P et SSO Agent requièrent la version IIS Les composantes FS, FS-P et SSO Agent requièrent la version IIS 6.0 de Windows Server 2003 R26.0 de Windows Server 2003 R2Seuls les clients Browser sont supportésSeuls les clients Browser sont supportés
WSWS
FSFSFS-PFS-P
HTTPSHTTPS
Active Active DirectorDirector
y ou y ou AD/AMAD/AM
ApplicationApplication
LPC/Méthodes LPC/Méthodes WebWeb
Authentification Authentification Kerberos/LDAPKerberos/LDAP
Agent Agent SSOSSO
Gestion fédérée d’identité ADFS
Espace de Espace de noms privénoms privéA. Datum A. Datum
Corp.Corp.
FS-AFS-A
Espace de noms Espace de noms privéprivé
Trey ResearchTrey Research, , Inc.Inc.
« Projette » les identités Active Directory dans d’autres « Projette » les identités Active Directory dans d’autres royaumes de sécuritéroyaumes de sécurité
Émission de jetons de sécuritéÉmission de jetons de sécuritéGestion de Gestion de
la confiance – Clésla confiance – Clésla sécurité – Jetonsla sécurité – Jetons//ClaimsClaims nécessaires nécessairesla confidentialité -- Jetonsla confidentialité -- Jetons//ClaimsClaims autorisésautorisésl’audit -- Identités , autoritésl’audit -- Identités , autorités
FS-RFS-R
Fournisseur Fournisseur de de
ressourcesressources
Fournisseur Fournisseur de de
ressourcesressources
FournisseuFournisseur de r de comptecompte
FournisseuFournisseur de r de comptecompte
FédérationFédération
Flux d’authentification ADFS
FS-AFS-A
WSWS
FS-RFS-R
ForêtForêt intranetintranet ForêtForêt
DMZDMZ
FédérationFédération
Pare-feuPare-feu Pare-feuPare-feu
Pare-feuPare-feu Pare-feuPare-feu
ClientClient
[1] [1] HTTP GET par le bHTTP GET par le browser rowser à destination duà destination du serveur Webserveur Web (WS) (WS)
[1][1]
Relation de confiance établie « Relation de confiance établie « out-of-bandout-of-band » par l’échange de certificats » par l’échange de certificats X.509 et de politiques de X.509 et de politiques de claimsclaims
Articulation de l’ensemble de l’authentification autour du client pour les Articulation de l’ensemble de l’authentification autour du client pour les clients Browserclients Browser
FS-PFS-PAA
[6][6]
[[22] ] Redirection HTTP 302 Redirection HTTP 302 versvers FS-P R FS-P R
Découverte du Royaume d’AppartenanceDécouverte du Royaume d’Appartenance
[2][2][3][3]
[[33] ] Redirection HTTP 302 Redirection HTTP 302 versvers FS-A FS-A
Authentification de l’utilisateur et demande de jetonAuthentification de l’utilisateur et demande de jeton
[4][4]
[[44] ] Obtention des attributs par Obtention des attributs par FS-A et construction FS-A et construction du jeton(Adu jeton(A))
[5][5]
[[55] ] Renvoi par Renvoi par FS-AFS-A du jeton(A) du jeton(A) au browser au browser
HTTP POST par le browser HTTP POST par le browser du jeton(A) versdu jeton(A) vers FS-P FS-P
[6][6]
[[66] ] Construction par FS-R d’un Construction par FS-R d’un jeton(R)jeton(R) à partirà partir du jeton(A)du jeton(A)
[7][7]
[[77] ] Renvoi par FS-R du jeton(R)Renvoi par FS-R du jeton(R) au browser au browser
HTTP POST par le browser HTTP POST par le browser du jeton(R)du jeton(R) à WS à WS
[8][8]
[[88] ] RenvoiRenvoi par WS de la page par WS de la page
DémonstrationDémonstration
Fédération d’identité en action
Scénario B2B – Web SSO fédéréLes partenaires n’ont PAS besoin de comptes locaux
FS-AFS-A
SWSW
FS-RFS-R
ForêtForêt intranetintranet
FédérationFédération
Pare-feuPare-feu Pare-feuPare-feu
Pare-feuPare-feu
Pare-feuPare-feu
ClientClient
ClientClient
AcheteurAcheteurinterneinterne
Acheteur nomadeAcheteur nomadeA. Datum CorpA. Datum Corp.. Trey Research Inc.Trey Research Inc.
FS-P A FS-P A (ext)(ext)
Applications Web hébergées chez Applications Web hébergées chez Trey Research,Inc.Trey Research,Inc.Les utilisateurs A. Datum Corp. utilisent leur compte AD A. Datum Les utilisateurs A. Datum Corp. utilisent leur compte AD A. Datum Corp.Corp.
Intranet : Web SSO à l’issue de l’ouverture de session Intranet : Web SSO à l’issue de l’ouverture de session WindowsWindows
Internet : Web SSO à l’issue de l’ouverture de session Internet : Web SSO à l’issue de l’ouverture de session FormsForms ou ou d’une authentification SSL cliented’une authentification SSL cliente
Scénario B2E – Web SSO ExtranetSSO pour l’interne et les utilisateurs itinérants
FS-AFS-A
FS-P A FS-P A (ext)(ext)
ApplicationApplicationWebWeb
FS-RFS-R
ForêtForêtintranetintranet
ForêtForêt DMZDMZ
Pare-feuPare-feu
Pare-feuPare-feu
ClientClient
GestionnaireGestionnairede stockde stock
CommercialCommercial
Acme Sporting GoodsAcme Sporting Goods
Relation de Relation de confianceconfiance WindowsWindows
FédérationFédération
Application Web de commandes en ligne dans la DMZ Application Web de commandes en ligne dans la DMZ Tous les utilisateurs Acme Tous les utilisateurs Acme Sporting GoodsSporting Goods ont leur compte dans ont leur compte dans l’AD intranetl’AD intranet
Intranet : Web SSO à l’issue de l’ouverture de session Intranet : Web SSO à l’issue de l’ouverture de session WindowsWindows
Internet : Web SSO à l’issue de l’ouverture de session Internet : Web SSO à l’issue de l’ouverture de session FormsForms ou ou d’une authentification SSL cliented’une authentification SSL cliente
Scénario B2C – Web SSO « en ligne »Web SSO classique pour les internautes
SWSW
FSFS
ForêtForêtintranetintranet
ForêtForêt DMZDMZ
Pare-feuPare-feu
Pare-feuPare-feu
Acme Sporting GoodsAcme Sporting Goods
AD/AMAD/AM
ClientClient
Site de commerce en ligne et services client associés Site de commerce en ligne et services client associés Les clients disposent de comptes dans la DMZ (AD ou AD/AM) Les clients disposent de comptes dans la DMZ (AD ou AD/AM)
Internet : Web SSO à l’issue de l’ouverture de session Forms Internet : Web SSO à l’issue de l’ouverture de session Forms
Sommaire
Vue d’ensemble d’ADFSVue d’ensemble d’ADFS
ComposantesComposantes
Scénarios de miseScénarios de mise
Eléments d’architecture d’ADFSEléments d’architecture d’ADFS
Politique et configuration ADFSPolitique et configuration ADFS
Federation Service (FS)Federation Service (FS)
Federation Service Proxy (FS-P)Federation Service Proxy (FS-P)
Web AgentsWeb AgentsInteropérabilité entre plates-formes Interopérabilité entre plates-formes
WS-Federation Passive Requestor Interop ProfileWS-Federation Passive Requestor Interop Profile (WS-Fed (WS-Fed PRIP)PRIP)
Architecture ADFS
IISIIS
ASP.NETASP.NET
ADAD
IISIIS
ASP.NETASP.NET
IISIIS
ASP.NETASP.NET
Politique Politique de de
confiancconfiance FSe FS
Information de confiance Information de confiance Domaine/ForêtDomaine/Forêt
Version Version politique de politique de confianceconfiance
Information Information de de
configuration configuration FS-ProxyFS-Proxy
Information Information de de
configuration configuration Web AgentWeb Agent
MétabaseMétabase IISIIS
Federation Service (FS)
Federation Service Proxy (FS-P) Web Server SSO
Agent
LectureLecture//
écriturécrituree
Lecture Lecture seuleseule
Lecture Lecture seuleseule
Web.confiWeb.configg
• Chemin Chemin CookieCookie• AudiencesAudiences• URLs de URLs de retourretour
URL URL Service Service
FSFS
Web.confiWeb.configg
URL URL Service Service
FSFS
Web.confiWeb.configg
Magasin de Magasin de politique de politique de confiance confiance
FSFS
Jetons de sécurité ADFS
Exclusivement des assertions SAML 1.1 (Exclusivement des assertions SAML 1.1 (Security Assertion Security Assertion Markup LanguageMarkup Language))
Aucun chiffrement des jetonsAucun chiffrement des jetonsL’ensemble des messages est véhiculé sur HTTPSL’ensemble des messages est véhiculé sur HTTPS
Les jetons sont signésLes jetons sont signésInteropérabilité avec d’autres solutions (défaut)Interopérabilité avec d’autres solutions (défaut)
Signature avec la clé privée RSA et signature vérifiée avec la clé Signature avec la clé privée RSA et signature vérifiée avec la clé publique du certificat X.509 correspondantpublique du certificat X.509 correspondant
Gestion des clés internes ADFS (optionnel)Gestion des clés internes ADFS (optionnel)Les jetons FS-R à destination d’un Agent SSO peuvent être signés avec Les jetons FS-R à destination d’un Agent SSO peuvent être signés avec la clé de session Kerberosla clé de session Kerberos
Emission de certificatsEmission de certificatsAuto-signé, Microsoft Certificate Services, AC commercialeAuto-signé, Microsoft Certificate Services, AC commerciale
Certificat de signature et clé privéeCertificat de signature et clé privéeLe FS doit signer les assertions SAML qu’il génèreLe FS doit signer les assertions SAML qu’il génère
Stocké dans le magasin de certificats MachineStocké dans le magasin de certificats Machine
Certificats de vérificationCertificats de vérificationUn FS doit être à même de vérifier les assertions SAML émisesUn FS doit être à même de vérifier les assertions SAML émises
Par : lui-même, d’autres FS au sein de la ferme, des FS partenaires de Par : lui-même, d’autres FS au sein de la ferme, des FS partenaires de confianceconfiance
Stockés dans la politique de confianceStockés dans la politique de confianceLa chaîne de certification est stockée en entierLa chaîne de certification est stockée en entier
De multiple certificats peuvent être configurésDe multiple certificats peuvent être configurés
Certificats FS pour la signature
Types de claims supportés
Types de claim interopérables Types de claim interopérables WS-FederationWS-FederationIdentitéIdentité
User Principal NameUser Principal Name (UPN) (UPN)Adresse mèlAdresse mèlCommon NameCommon Name (toute chaîne de caractères) (toute chaîne de caractères)
GroupeGroupePersonnaliséPersonnalisé
Paire nom/valeur, exemple SS=1 99 01 75 111 001 22Paire nom/valeur, exemple SS=1 99 01 75 111 001 22
Données Données authZauthZ seulement pour seulement pour ADFS-vers-ADFSADFS-vers-ADFSSIDsSIDs
Envoyés afin d’éviter les comptes fantômes en Envoyés afin d’éviter les comptes fantômes en ExtranetExtranet DMZ DMZEnvoyés dans l’élément Envoyés dans l’élément AdviceAdvice du jeton SAML (ne constitue pas un du jeton SAML (ne constitue pas un type de type de claimclaim standard) standard)
Traitement des jetons et des claimsTraitement des jetons et des claims
Demande Demande de jetonde jeton
Ouverture de Ouverture de sessionsession
ClaimClaimss
Magasins Magasins d’identitéd’identité
ssADAD
ADAMADAM
CookiCookiee
Magasins Magasins de de
politiquespolitiquesPrimairePrimaire
SecondairSecondairee
Jeton en Jeton en réponseréponse
Queue Queue interneinterne
Queue IISQueue IIS
Parcours et Parcours et validationvalidation
Extracteur de Extracteur de claimsclaims
TransformatioTransformation des claimsn des claims
Création et Création et signature du signature du jeton SAMLjeton SAML
Cache des Cache des politiques de politiques de
confianceconfiance
1.1. Ouverture de Ouverture de sessionsession
2.2. Extraction des Extraction des claimsclaims
ConteContenu ?nu ?
Transformation des claims
Remplacement de suffixe – CRemplacement de suffixe – Claimlaim Identité UPN et Adresse mèl Identité UPN et Adresse mèlSupporté uniquement pour les Supporté uniquement pour les claimsclaims allant vers un partenaire de allant vers un partenaire de ressources fédéréressources fédéré[email protected] [email protected] [email protected] [email protected]
Transformation « Groupe vers Groupe »Transformation « Groupe vers Groupe »Group=Group=PurchasingPurchasing Agents Agents Group=PurchasersGroup=Purchasers
Transformation des noms de Transformation des noms de claimclaim personnalisés personnalisésSS=1 99 01 75 111 001 22 SS=1 99 01 75 111 001 22 NumSecSosNumSecSos=1 99 01 75 111 001 22=1 99 01 75 111 001 22
Transformation « Groupe vers UPN »Transformation « Groupe vers UPN »Supporté uniquement pour les Supporté uniquement pour les claimsclaims provenant d’un partenaire de provenant d’un partenaire de comptes fédérécomptes fédéré
Transformation « Groupe SAML vers Groupe AD » (SG2ADG) Transformation « Groupe SAML vers Groupe AD » (SG2ADG) Supporté uniquement pour les Supporté uniquement pour les claimsclaims provenant d’un partenaire de provenant d’un partenaire de comptes fédérécomptes fédéré
Transformation personnaliséeTransformation personnaliséeInterface pour développer des modules Interface pour développer des modules Plug-inPlug-in de transformation de transformationCf. 2Cf. 2ndende partie partie
Magasin Magasin ADAD
Flot des claims ADFS de fédérationFlot des claims ADFS de fédération
ApplicationApplication
Partenaire - ComptePartenaire - Compte
ApplicationApplication - - RessourceRessource
PeuplementPeuplement TransformatiTransformationon
ActivationActivation
Transmiss
ion des
Transmiss
ion des
claim
scla
ims
Claims Claims en en
sortiesortie
Claims Claims en en
entréeentrée
TransformatiTransformationon
Claims Claims organisationnelleorganisationnelle
ssRessourceRessource
Claims Claims organisationnelleorganisationnelle
ssCompteCompte
Schématique FS-Proxy
RequêteRequête
Page Page Client Client LogonLogon
Page Page
Sign Sign
OutOut
Page Page Discove
Discover Client r Client RealmRealm
Application PoolApplication Pool
W3WP.exeW3WP.exeWW33AADDMM
Aspnet_isapi.dAspnet_isapi.dllll
HTTP.SYSHTTP.SYS
HttpApplication
HttpHandler
Aspnet_wp.exeAspnet_wp.exe
LSLS AuthenticatioAuthenticatio
nn Module Module
AuthentificatiAuthentification utilisateuron utilisateur
Traitement Traitement CookieCookie
Federation Service Federation Service ((FS-FS-RR))
Federation Service Federation Service Proxy (FS-P)Proxy (FS-P)
FS-P Compte
IU IU FormsFormsWebWeb
Demande de jetonCrédentiels d’authN
Utilisateur(session établie: claims
depuis leCookie de cache)
Cred. d’authN Utilisateur
bb.
d.e.
c.
f.
Réponse à la demande de jeton
Assertion SAML(initialisation de la session
établie: claims pour leCookie de cache)
b.
a. g.Demande de jeton302 depuis FS-R
Réponse à la demande de jeton
POST vers FS-R
BrowserBrowser
Federation Service Federation Service ((FS-FS-RR))
Identification Identification utilisateurutilisateur
Traitement Traitement CookieCookie
FS-P Ressource
IUIUDécouverte Découverte de royaumede royaume
Demande de jetonAssertion SAML
(session établie: claims depuis le
Cookie de cache)
Royaume Compte
Utilisateur
bb.
f.g.
e.
h.
Federation Service Federation Service Proxy (FS-P)Proxy (FS-P)
Réponse à la demande de jeton
Assertion SAML(initialisation de la session
établie: claims pour leCookie de cache)
BrowserBrowser
b.
c. i.Demande de jeton
302 vers FS-ARéponse à la demande de
jetonPOST vers Agent Web
d.
Demande de jeton302 depuis Agent Web
Réponse à la demande de jeton
POST depuis FS-A
a.
Cookie Royaume CompteParamètre Royaume
Compte
Agent Web SSO AgentApplication basée sur un jeton NT
Windows 2003
Windows 2000
Validation de la signature de
l’assertion SAML et extraction des
claims
Application Application PoolPool
W3WP.exeW3WP.exe
LsaLogonUser
RequêteRequête
Kerberos AuthN
Provider
ADFS AuthN Provider
HTTP.SYSHTTP.SYS
WW33AADDMM
Extension Extension ISAPIISAPI
Filtre ISAPIFiltre ISAPI
Service Service WindowsWindows
Assemblage Assemblage WebSSOWebSSO
Code géré
Code natif
Application Application WebWebImpersonatio
n jeton NT
Construction d’un
jeton NT
Transmission de l’assertion SAML et
récupération des claims
Pipeline de requête IIS
Vérification pour l’assertion SAML ou le Cookie ADFS
DémonstrationDémonstration
Web SSO ADFS et les technologies SharePoint
Application PoolApplication Pool
Agent Web SSO AgentApplication « Claim-Aware »
W3WP.exeW3WP.exeAspnet_wp.exeAspnet_wp.exe
RequêteRequête
HttpApplication
HttpHandler
HTTP.SYSHTTP.SYS
WW33AADDMM
Aspnet_isapi.dAspnet_isapi.dllll
Assemblage Assemblage WebSSOWebSSO
Web SSO Web SSO AuthenticatiAuthenticationon Module Module
Interopérabilité avec d’autres serveurs Web
Centrify DirectControl for Microsoft ADFSCentrify DirectControl for Microsoft ADFShttp://www.centrify.com/directcontrol/adfs.asp http://www.centrify.com/directcontrol/adfs.asp
Offre un équivalent « cross-plateformes » à l’agent ADFS Web SSO Offre un équivalent « cross-plateformes » à l’agent ADFS Web SSO pour IIS 6.0 : pour IIS 6.0 : Apache, WebLogic, Tomcat, Websphere, JBossApache, WebLogic, Tomcat, Websphere, JBoss
Supporte aussi bien les applications sans modification que les Supporte aussi bien les applications sans modification que les applications qui ont été étendues pour tirer partie de applications qui ont été étendues pour tirer partie de l’environnement SAML (« Claim-Aware »)l’environnement SAML (« Claim-Aware »)
Quest Vintela Single Sing-On for Java Quest Vintela Single Sing-On for Java (VSJ) (VSJ) v3.1v3.1http://www.vintela.com/products/vsjhttp://www.vintela.com/products/vsj
Filtre servlet VSJ 3.1 ADFSFiltre servlet VSJ 3.1 ADFS
Aucune modification nécessaire avec VSJ 3.1 pour les applications Aucune modification nécessaire avec VSJ 3.1 pour les applications Java existantes Java existantes
PingID/SourceID PingID/SourceID WS-Federation for Apache 2.0 ToolkitWS-Federation for Apache 2.0 Toolkithttp://www.sourceid.org/projects/ws-federation-apachehttp://www.sourceid.org/projects/ws-federation-apache
Module en Open Source à destination des applications Apache Module en Open Source à destination des applications Apache écrites en écrites en Java, Perl et PHP Java, Perl et PHP
Sommaire
Vue d’ensemble d’ADFSVue d’ensemble d’ADFS
ComposantesComposantes
Scénarios de miseScénarios de mise
Eléments d’architecture d’ADFSEléments d’architecture d’ADFS
Politique et configuration ADFSPolitique et configuration ADFS
Federation Service (FS)Federation Service (FS)
Federation Service Proxy (FS-P)Federation Service Proxy (FS-P)
Web AgentsWeb Agents
Interopérabilité entre plates-formes Interopérabilité entre plates-formes
WS-Federation Passive Requestor Interop ProfileWS-Federation Passive Requestor Interop Profile (WS-Fed PRIP)(WS-Fed PRIP)
WS-Federation Passive Requestor Profile
Supporté par ADFS v1 dans Windows Server 2003 R2Supporté par ADFS v1 dans Windows Server 2003 R2« Binding » des spécifications « Binding » des spécifications WS-TrustWS-Trust et et WS-FederationWS-Federation des services des services Web de seconde génération à destination des clients passifs (browser)Web de seconde génération à destination des clients passifs (browser)
« « Web Services Federation Language: Passive Requestor ProfileWeb Services Federation Language: Passive Requestor Profile » (WS-Fed » (WS-Fed PRP)PRP)
BEA, IBM, Microsoft, RSA BEA, IBM, Microsoft, RSA SecuritySecurity, Verisign Juillet 2003, Verisign Juillet 2003
http://msdn.microsoft.com/ws/2003/07/ws-passive-profilehttp://msdn.microsoft.com/ws/2003/07/ws-passive-profile
Adhésion implicite aux politiques en suivant les redirections 302Adhésion implicite aux politiques en suivant les redirections 302
Acquisition implicite de jetons via les messages HTTPAcquisition implicite de jetons via les messages HTTP
Requiert un transport sécurisé (HTTPS) pour l’authentificationRequiert un transport sécurisé (HTTPS) pour l’authentification
Aucune fourniture de « preuve de possession » pour les jetonsAucune fourniture de « preuve de possession » pour les jetons
Mise à cache limitée (durée) des jetonsMise à cache limitée (durée) des jetons
Les jetons PEUVENT être rejouésLes jetons PEUVENT être rejoués
Interopérabilité WS-Fed PRPRevues des spécifications et ateliers de mise en œuvre publicsRevues des spécifications et ateliers de mise en œuvre publics
http://groups.yahoo.com/group/WS-Security-Workshopshttp://groups.yahoo.com/group/WS-Security-Workshops WS-Federation Passive Requestor Profile Interoperability Workshop WS-Federation Passive Requestor Profile Interoperability Workshop (2004)(2004)
Microsoft, IBM, RSA, Oracle (Microsoft, IBM, RSA, Oracle (OblixOblix)), , PingIDPingID, BMC (Open Network), CA , BMC (Open Network), CA ((NetegrityNetegrity) ) Interopérabilité au sens service de jetons de sécurité pour les assertions SAMLInteropérabilité au sens service de jetons de sécurité pour les assertions SAML
WS-Federation Passive Requestor Interoperability ProfileWS-Federation Passive Requestor Interoperability Profile (WS-Fed PRIP) (WS-Fed PRIP)http://download.microsoft.com/download/e/9/0/e90f1994-91be-4cf8-be5e-6ab542061http://download.microsoft.com/download/e/9/0/e90f1994-91be-4cf8-be5e-6ab54206192d/2004.03.Fed_passive_profile_interop_workshop_invite_pack.zip92d/2004.03.Fed_passive_profile_interop_workshop_invite_pack.zip
Avant-première des solutions WS-Federation lors de TechEd’04 (2004)Avant-première des solutions WS-Federation lors de TechEd’04 (2004)Pavillon d’interopérabilité TechEdPavillon d’interopérabilité TechEd« « Leading Identity Management Vendors Join Microsoft to Demonstrate Leading Identity Management Vendors Join Microsoft to Demonstrate Federated Identity Using Web ServicesFederated Identity Using Web Services » »
http://www.microsoft.com/presspass/press/2004/may04/05-25IMVRallyPR.asphttp://www.microsoft.com/presspass/press/2004/may04/05-25IMVRallyPR.asp
Interopérabilité des solutions WS-Federation au Burton Catalyst (2005)Interopérabilité des solutions WS-Federation au Burton Catalyst (2005)Démonstration d’interopérabilité multi-protocoles de fédération d’identitéDémonstration d’interopérabilité multi-protocoles de fédération d’identité
Microsoft, IBM, BMC, PingID, Symabs, Trustgenix, DataPowerMicrosoft, IBM, BMC, PingID, Symabs, Trustgenix, DataPower
WS-Fed PRIPParamètresParamètres URL URL de la « de la « Query StringQuery String » »
Requêtes de jetonRequêtes de jetonwa=wsignin1.0wa=wsignin1.0wtrealm=resource realm URIwtrealm=resource realm URI[wreply=[wreply=rresource IP/STS Url]esource IP/STS Url][wctx=anything] [wctx=anything] [wct=ISO8601 UTC][wct=ISO8601 UTC]
RéponsesRéponseswa=wsignin1.0wa=wsignin1.0wresult=RequestSecurityTokenResponsewresult=RequestSecurityTokenResponse[wctx=wctx from the request][wctx=wctx from the request]
WS-Fed PRIP
RequestingBrowser
Requestor’sIP/STS
TargetResource
Target’sIP/STS
Detect realm
Redirect to requestor’s IP/STS
Login
Return identity token
Return resource token
Return secured response
Get resource
Redirect to resource’s IP/STS GET https://res.resource.com/app HTTP/1.1HTTP/1.1 302 Found
Location: https://sts.resource.com/sts?wa=wsignin1.0&wreply=http://res.resource.com/app&wct=2006-03-01T19:06:21ZGET https://sts.resource.com/sts?wa=wsignin1.0&wreply=https://res.resource.com/app&wct=2006-03-01T19:06:21Z HTTP/1.1
HTTP/1.1 302 Found
Location: https://sts.account.com/sts?wa=wsignin1.0&wreply=https://sts.resource.com/sts&wctx= https://res.resource.com/app&wct=2006-03-01T19:06:22Z&wtrealm=resource.comGET https://sts.account.com/sts?wa=wsignin1.0&wreply=https://sts.resource.com/sts&wctx=https://res.resource.com/app&wct=2006-03-01T19:06:22Z&wtrealm=resource.com HTTP/1.1
HTTP/1.1 200 OK. . .<html xmlns="https://www.w3.org/1999/xhtml"><head><title>Working...</title></head><body><form method="post" action="https://sts.resource.com/sts">
<input type="hidden" name="wa" value="wsignin1.0" />
<input type="hidden" name="wctx" value="https://res.resource.com/app" />
<input type="hidden" name="wresult" value="<RequestSecurityTokenResponse>...</RequestSecurityTokenResponse>" />
<button type="submit">POST</button> <!-- included for requestors that do not support javascript --></form><script type="text/javascript"> setTimeout('document.forms[0].submit()', 0);</script></body></html>
POST https://sts.resource.com/sts HTTP/1.1 …. . .
wa=wsignin1.0
wctx=https://res.resource.com/app
wresult=<RequestSecurityTokenResponse>...</RequestSecurityTokenResponse>
HTTP/1.1 200 OK. . .<html xmlns="https://www.w3.org/1999/xhtml"><head><title>Working...</title></head><body><form method="post" action="https://res.resource.com/app"><p>
<input type="hidden" name="wa" value="wsignin1.0" />
<input type="hidden" name="wresult" value="<RequestSecurityTokenResponse>...</RequestSecurityTokenResponse>" />
<button type="submit">POST</button> <!-- included for requestors that do not support javascript --></p></form><script type="text/javascript">setTimeout('document.forms[0].submit()', 0);</script></body></html>
POST https://res.resource.com/app HTTP/1.1 ...
wa=wsignin1.0
wresult=<RequestSecurityTokenResponse>...</RequestSecurityTokenResponse>
WS-Fed PRIPRequested Security Token ResponseRequested Security Token Response (RSTR) (RSTR)
<RequestSecurityTokenResponse<RequestSecurityTokenResponse xmlns="http://schemas.xmlsoap.org/ws/2005/02/trust">xmlns="http://schemas.xmlsoap.org/ws/2005/02/trust">
<AppliesTo<AppliesTo xmlns="http://schemas.xmlsoap.org/ws/2004/09/policy">xmlns="http://schemas.xmlsoap.org/ws/2004/09/policy">
<EndpointReference<EndpointReference xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing" >xmlns="http://schemas.xmlsoap.org/ws/2004/08/addressing" >
<Address><Address> https://www.treyresearch.net/adfs/fshttps://www.treyresearch.net/adfs/fs
</Address></Address>
</EndpointReference></EndpointReference>
</AppliesTo></AppliesTo>
<RequestedSecurityToken><RequestedSecurityToken><saml:Assertion<saml:Assertion … </saml:Assertion>… </saml:Assertion>
</RequestedSecurityToken></RequestedSecurityToken>
</RequestSecurityTokenResponse></RequestSecurityTokenResponse>
WS-Fed PRIP
<saml:Conditions<saml:Conditions NotBeforeNotBefore="200="20066-0-033-0-011T17:11:30Z" T17:11:30Z" NotOnOrAfterNotOnOrAfter="200="20066-0-033-0-011T22:21:30Z">T22:21:30Z">
<saml:AudienceRestrictionCondition><saml:AudienceRestrictionCondition><saml:Audience><saml:Audience>
https://www.treyresearch.net/adfs/fs</saml:Audience>https://www.treyresearch.net/adfs/fs</saml:Audience></saml:AudienceRestrictionCondition></saml:AudienceRestrictionCondition>
</saml:Conditions></saml:Conditions>
<saml:AuthenticationStatement<saml:AuthenticationStatement AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password" AuthenticationMethod="urn:oasis:names:tc:SAML:1.0:am:password" AuthenticationInstant="200AuthenticationInstant="20066-0-033-0-011T19:29:23Z">T19:29:23Z">
<saml:Subject><saml:Subject><saml:NameIdentifier Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"> <saml:NameIdentifier Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">
[email protected] [email protected] </saml:NameIdentifier></saml:NameIdentifier>
</saml:Subject></saml:Subject></saml:AuthenticationStatement></saml:AuthenticationStatement>
<saml:AttributeStatement><saml:AttributeStatement><saml:Subject> … </saml:Subject><saml:Subject> … </saml:Subject><saml:Attribute AttributeName="Group"<saml:Attribute AttributeName="Group"
AttributeNamespace="AttributeNamespace="http://schemas.xmlsoap.org/claimshttp://schemas.xmlsoap.org/claims">"><saml:AttributeValue><saml:AttributeValue>
Purchasing AgentPurchasing Agent </saml:AttributeValue></saml:AttributeValue>
</saml:Attribute></saml:Attribute></saml:AttributeStatement></saml:AttributeStatement>
<Signature<Signature xmlns="http://www.w3.org/2000/09/xmldsig#"> xmlns="http://www.w3.org/2000/09/xmldsig#"> … </Signature>… </Signature>
Syntaxe des assertions SAML 1.1Syntaxe des assertions SAML 1.1
Interopérabilité WS-Fed PRPAdoption de Adoption de WS-FederationWS-Federation PRIP PRIP
Supporté parSupporté parBMC Federated Identity ManageBMC Federated Identity Managerr IBM Tivoli Federated Identity ManagerIBM Tivoli Federated Identity Manager
Future fonctionnalité cFuture fonctionnalité courant 2006 ourant 2006 dedeCA eTrust SiteMinder Federation Security ServicesCA eTrust SiteMinder Federation Security ServicesCitrix Access SuiteCitrix Access SuiteInternet2 Shibboleth 1.3 Internet2 Shibboleth 1.3 ((Shib-ADFSShib-ADFS))PingID PingFederate v3.1PingID PingFederate v3.1
SourceSource Burton GroupBurton Group « « Federation Products: Building Blocks of a Federation Products: Building Blocks of a Growing Federation EcosystemGrowing Federation Ecosystem » »
http://www.burtongroup.com/research_consulting/doc.aspx?cid=715http://www.burtongroup.com/research_consulting/doc.aspx?cid=715
Pour plus d’informations sur ADFS
Page d’accueil ADFS sur Microsoft TechNetPage d’accueil ADFS sur Microsoft TechNethttp://technet2.microsoft.com/WindowsServer/en/Library/050392bc-http://technet2.microsoft.com/WindowsServer/en/Library/050392bc-c8f5-48b3-b30e-bf310399ff5d1033.mspx c8f5-48b3-b30e-bf310399ff5d1033.mspx
« « Overview of Active Directory Federation Services (ADFS) in Overview of Active Directory Federation Services (ADFS) in Windows Server 2003 R2Windows Server 2003 R2 » »
http://go.microsoft.com/fwlink/?LinkId=54650 http://go.microsoft.com/fwlink/?LinkId=54650
« « Active Directory Federation Services Design GuideActive Directory Federation Services Design Guide » »http://technet2.microsoft.com/WindowsServer/en/Library/b0f029cb-http://technet2.microsoft.com/WindowsServer/en/Library/b0f029cb-65ab-44fb-bcfc-5aa02314e06e1033.mspx65ab-44fb-bcfc-5aa02314e06e1033.mspx
« « ADFS Step-by-Step GuideADFS Step-by-Step Guide » »http://go.microsoft.com/fwlink/?LinkId=49531http://go.microsoft.com/fwlink/?LinkId=49531
« « Windows SharePoint Services and SharePoint Portal Server Windows SharePoint Services and SharePoint Portal Server 2003 Support boundaries for Active Directory Federation 2003 Support boundaries for Active Directory Federation ServicesServices » »
http://support.microsoft.com/default.aspx?scid=kb;en-us;912492http://support.microsoft.com/default.aspx?scid=kb;en-us;912492
.NET Show .NET Show « « ADFSADFS » »http://msdn.microsoft.com/theshow/episode047/default.asphttp://msdn.microsoft.com/theshow/episode047/default.asp
Rejoignez les discussions surRejoignez les discussions sur http://www.identityblog.comhttp://www.identityblog.com
Microsoft FranceMicrosoft France18, avenue du Québec18, avenue du Québec
91 957 Courtaboeuf Cedex91 957 Courtaboeuf Cedex
www.microsoft.com/france
0 825 827 8290 825 827 829
[email protected]@microsoft.com