ADFS, l’expérience Web SSO (fédérée) 1 ère partie

40
ADFS, l’expérience Web SSO (fédérée) 1 ère partie Philippe Beraud Consultant Principal Microsoft F rance

description

ADFS, l’expérience Web SSO (fédérée) 1 ère partie. Philippe Beraud Consultant Principal Microsoft France. Sommaire. Vue d’ensemble d’ADFS Composantes Scénarios de mise Eléments d’architecture d’ADFS Politique et configuration ADFS Federation Service (FS) Federation Service Proxy (FS-P) - PowerPoint PPT Presentation

Transcript of ADFS, l’expérience Web SSO (fédérée) 1 ère partie

Page 1: 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

ADFS, l’expérience Web SSO (fédérée)1ère partie

Philippe BeraudConsultant Principal

Microsoft France

Page 2: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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)

Page 3: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 4: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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)

Page 5: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 6: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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é

Page 7: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 8: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 9: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 10: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 11: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

DémonstrationDémonstration

Fédération d’identité en action

Page 12: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 13: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 14: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 15: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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)

Page 16: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 17: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 18: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 19: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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)

Page 20: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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 ?

Page 21: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 22: ADFS, l’expérience Web SSO (fédérée) 1 ère  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

Page 23: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 24: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 25: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 26: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 27: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

DémonstrationDémonstration

Web SSO ADFS et les technologies SharePoint

Page 28: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 29: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 30: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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)

Page 31: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 32: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 33: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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]    

Page 34: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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="&lt;RequestSecurityTokenResponse&gt;...&lt;/RequestSecurityTokenResponse&gt;" />

<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="&lt;RequestSecurityTokenResponse&gt;...&lt;/RequestSecurityTokenResponse&gt;" />

<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>

Page 35: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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>

Page 36: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 37: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 38: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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

Page 39: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie
Page 40: ADFS, l’expérience Web SSO (fédérée) 1 ère  partie

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