La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

ADFS, l’expérience Web SSO (fédérée) 2ième partie

Présentations similaires


Présentation au sujet: "ADFS, l’expérience Web SSO (fédérée) 2ième partie"— Transcription de la présentation:

1 ADFS, l’expérience Web SSO (fédérée) 2ième partie
3/26/2017 3:56 PM ADFS, l’expérience Web SSO (fédérée) 2ième partie Philippe Beraud Consultant Principal Microsoft France © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

2 Objectifs de la session
3/26/2017 3:56 PM Objectifs de la session Parcourir en détail le scénario de Web SSO fédéré de la première partie Appréhender comment développer une solution de fédération de bout-en-bout avec ADFS Mettre en exergue les points clé Tout ceci est applicable aux scénarios intranet et extranet fédéré © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

3 Scénario : problème métier
3/26/2017 3:56 PM Scénario : problème métier Nature du problème à résoudre : offrir un accès partenaires à l’application Web Ordering Exigences applicatives Réduire les coûts de supports : le fournisseur de ressources ne gère pas les identités des partenaires Compte Les partenaires sont propriétaires des identités : la gestion des rôles à lieu du coté Compte Interopérer : les partenaires Compte peuvent envoyer les identités depuis d’autres plateformes interopérables Améliorer de la sécurité : révoquer l’accès à l’application dès que l’utilisateur est « déprovisionné » de son « royaume » S’appuyer sur l’infrastructure existante : IIS, Active Directory, AD/AM, PKI © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4 Environnement de développement d’application Installation sur une seule machine
Windows Server 2003 R2 Active Directory ou AD/AM IIS 6.0 avec SSL configuré ASP.Net 2.0 ADFS Federation Service Account Store Application Web Agent for Claims-aware application Application « Claims-aware » Chargement du HTTP module Application Pool configuré pour ASP.Net 2.0

5 Applications « Identity-aware »
3/26/2017 3:56 PM Applications « Identity-aware » Authentification (AuthN) Vérifier que l’utilisateur a présenté une identité valide Autorisations (AuthZ) Vérifier que l’utilisateur dispose des permissions appropriées pour accéder à la ressource Prendre des décisions d’autorisation et de personnalisation basées sur l’identité en entrée © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

6 Points de développement
3/26/2017 3:56 PM Points de développement Infrastructure: Modification des claims lorsqu’ils passent à travers chaque FS Active Directory Cadre de confiance Fédération Forêt Ressource Trey Research, Inc. Infrastructure: AuthN des utilisateurs FS-R FS-A Application : mise en œuvre d’applications qui peuvent tirer parti des claims pour les authZ Forêt Compte A. Datum Corp Client WS © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

7 Exigences d’une application « Identity-aware » fédérée
3/26/2017 3:56 PM Authentification Infrastructure Vérifier que l’utilisateur a présenté une identité valide Authentification Application Vérifier que l’utilisateur a été authentifié par ADFS Autorisations Vérifier que l’utilisateur dispose des permissions appropriées pour la ressource Modification des claims Ajouter/supprimer/modifier les claims à transmettre sur l’identité © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

8 Vue d’ensemble de l’authentification
3/26/2017 3:56 PM Vue d’ensemble de l’authentification Infrastructure Dév Application Dév ADFS Ressource Dév ADFS Compte 1. L’utilisateur arrive sur le site 2. L’utilisateur est redirigé vers le FS Ressource pour l’authN 3. L’utilisateur est redirigé vers le Compte pour l’authN 4. L’utilisateur s’authentifie 5. Un jeton est présenté par l’utilisateur à ADFS 6. ADFS valide le jeton 7. Le jeton contient des claims pour autoriser l’accès au site Qu’est-ce que cela signifie ? Nous avons dissocié le développeur d’application du développeur en charge de l’évènement d’authentification L’authentification au niveau de l’application Web consiste en une vérification que l’identité présentée a bien été signée par une entité de confiance © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

9 Méthodes d’authentification Infrastructure
3/26/2017 3:56 PM Windows Integrée Approche recommandée (intranet) Utilisation de la session générée lors de l’ouverture de session sur une machine Windows Certificat X.509 v3 Client Le browser Web reçoit une requête pour présenter un certificat client et l’utilisateur choisit le certificat à présenter en fonction des racines de confiance ou de certification croisée De type Forms Le browser Web présente une page Web personnalisable à l’utilisateur pour recueillir les « lettres de créances » Basic Le browser Web présente un dialogue utilisateur/mot de passe classique © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

10 Pages d’authentification Federation Services Infrastructure
3/26/2017 3:56 PM Personnalisable à la fois visuellement et logiquement clientlogon.aspx (compte) Le browser est redirigé sur cette page lors de la phase d’authentification Choix du mécanisme d’authentification Reprise de l’identité visuelle de l’organisation signout.aspx (compte) Suppression des cookies de session depuis le browser, résultant en une déconnexion discoverclientrealm.aspx (ressource) Découverte du royaume d’appartenance Le mécanisme de découverte peut être modifié (ex. IP, adresse mèl) Inhibé si précisé dans la QueryString https://<server>/<app>/<page.aspx>?whr=urn:federation:<homerealm> © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

11 Pages d’authentification Federation Services Infrastructure
3/26/2017 3:56 PM L’action courante à réaliser et le contexte nécessaire associé sont rendus disponibles via la propriété FormContext de l’objet LSAuthenticationObject Modèle de programmation Récupération de l’instance LSAuthenticationObject via la propriété statique Current LSAuthenticationObject logonServer = LSAuthenticationObject.Current; Examen de la propriété CurrentAction de la classe FormContext afin de déterminer l’action qui est demandée par FS-P logonServer.FormContext.CurrentAction Si nécessaire, « caste » de la classe FormContext en LSFormContext afin d’obtenir les informations nécessaires afin de réaliser l’action demandée Page Discover Client Realm Page Client Logon Page Sign Out © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

12 Pages d’authentification Federation Services
3/26/2017 3:56 PM Démonstration Pages d’authentification Federation Services © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

13 Exigences d’une application « Identity-aware » fédérée
3/26/2017 3:56 PM Authentification Infrastructure Vérifier que l’utilisateur a présenté une identité valide Authentification Application Vérifier que l’utilisateur a été authentifié par ADFS Autorisations Vérifier que l’utilisateur dispose des permissions appropriées pour la ressource Modification des claims Ajouter/supprimer/modifier les claims à transmettre sur l’identité © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

14 Autorisations applicatives à l’aide des claims
3/26/2017 3:56 PM Autorisations applicatives à l’aide des claims Claims Déclarations faites à propos d’utilisateurs Peuvent être utilisées à des fins d’autorisation Trois types de claims Identité (Identity) User Principal Name (UPN) Common Name Groupe (Group) Personnalisé (Custom) Exemple d’ensemble de claims Identity Group Purchaser Administrator Platinum Custom SpendingLimit:$500 Position: Purchasing Agent © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

15 Bénéfices des claims Les claims…
Exposent un ensemble riche de données d’autorisation Sont peuplées à partir d’Active Directory et d’AD/AM à l’aide d’une interface graphique Sont peuplées à partir d’autres sources via un module de transformation de claim Sont modifiées aux différents nœuds par lesquels ils transitent Sont auditées au niveau d’un référentiel centralisé Sont échangées entre partenaires « WS-Federation Passive Requestor Interop Profile » (PRIP)

16 Applications « Claims-Aware »
Que signifie être une application « Claims-Aware » ? Une application dispose d’un ensemble donné de claims qu’elle s’attend à recevoir et sait comment l’utiliser Une fois reçus, les claims peuvent être utilisées pour Prendre des décisions d’autorisation Présenter des informations à l’utilisateur L’application fait confiance à un unique Federation Services (ou ferme de) pour lui fournir les claims Une telle application permet de conférer un accès sécurisé et approprié pour les client / partenaire / fournisseur / collaborateur en dehors de leur domaine/forêt

17 Applications « Claims-Aware »
Que signifie écrire une application « Claims-Aware » ? Application ASP.Net 2.0 Module HTTP WebSsoAuthenticationModule Configuration d’un Federation Services spécifique Implémenter les APIs ADFS Assemblage System.Web.Security.SingleSignOn Ou une API qui consomme les claims ASP.Net IsInRole() Authorization Manager (AzMan)

18 APIs ADFS Module HTTP WebSsoAuthenticationModule
3/26/2017 3:56 PM APIs ADFS Module HTTP WebSsoAuthenticationModule Assemblage System.Web.Security.SingleSignOn Placé en frontal de l’application ASP.NET via le fichier web.config Positionne un objet SingleSignOnIdentity dans le HttpContext de l’application Objet SingleSignOnIdentity Utilisé par les pages .aspx de l’application pour l’accès aux claims du jeton WebSSO SingleSignOnIdentity SsoId = HttpContext.Current.User.Identity as SingleSignOnIdentity © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

19 Vérifier que l’utilisateur a été authentifié
Second « round » d’authentification L’application vérifie qu’elle dispose d’un jeton signé valide SingleSignOnIdentity fournit un accès au(x) Statut d’authentification de l’utilisateur (IsAuthenticated) URLs associées à l’ouverture de session (SignInUrl) et à la déconnexion (SignOutUrl) Facilité d’utilisation SingleSignOnIdentity SsoId = User.Identity as SingleSignOnIdentity if (SsoId.IsAuthenticated) { // user authenticated by ADFS } else Response.Redirect(SsoId.SignInUrl, true);

20 Accéder aux claims ADFS System.Web.Security.SingleSignOn.Authorization
SecurityProperty Champs statiques publics CommonNameClaimUri CustomClaimUri ClaimUri GroupClaimUri UpnClaimUri Propriétés publiques ClaimType Name Uri value SecurityPropertyCollection Agrège les claims Permet l’itération à travers l’ensemble de claims Comparer l’URI pour identifier le type de claim et prendre l’action appropriée

21 Accéder aux claims ADFS
Itérer à travers une SecurityPropertyCollection foreach (SecurityProperty securityProperty in SsoId.SecurityPropertyCollection) { // For each group that we find, we need to add it to AzMan Context if (securityProperty.Uri == SecurityProperty.GroupClaimUri) azMan.AddRoleToContext(securityProperty.Value); } else if (securityProperty.Uri == SecurityProperty.UpnClaimUri) // set tu upn upn = securityProperty.Value; else if (securityProperty.Uri == SecurityProperty.CustomClaimUri) // set custom claims customClaims.Add(securityProperty.Name, securityProperty.Value);

22 Introduire Authorization Manager (AzMan)
3/26/2017 3:56 PM Introduire Authorization Manager (AzMan) Fournit Un Framework pour le Role Based Access Control (RBAC) Un accès à travers des rôles utilisateur assignés Une application de la politique d’autorisation à l’exécution Etapes relatives à l’utilisation d’AzMan Définir un ensemble d’opérations Grouper les opérations en tâches Assigner des tâches à des rôles Inclus dans Microsoft Windows Server 2003 R2 © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

23 Introduire Authorization Manager (AzMan)
3/26/2017 3:56 PM Introduire Authorization Manager (AzMan) API AzMan et RCW Microsoft.Interop.Security.AzRoles Initialisation de l’application – AzInitializeApplication A la connexion d’un utilisateur Initialisation du contexte utilisateur – AzInitializeContext Exploitation des rôles pour la définition de l’interface Lors d’une requête pour une opération donnée Méthode AccessCheck(Scope, Operation, Operation Data) du contexte utilisateur Exécution automatique des règles Métier © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

24 Intégrer ADFS et AzMan Référence .NET nécessaire
Initialisation de l’application using Microsoft.Interop.Security.AzRoles; using System.Web.Security.SingleSignOn; using System.Web.Security.SingleSignOn.Authorization; AzAuthorizationStoreClass azStore; IAzApplication2 azApp; azStore = new AzAuthorizationStoreClass(); azStore.Initialize(0, azmanStoreLocation, null); azStore.UpdateCache(null); azApp = azStore.OpenApplication2("Trey Ordering", null);

25 Intégrer ADFS et AzMan Initialisation du contexte utilisateur
Contexte relatif à S – Everyone Création sans validation au niveau du domaine Champ nom de domaine est vide, pas de groupes dans le jeton WebSsoIdentity SsoId = User.Identity as SingleSignOnIdentity; IAzClientContext2 azContext; // Determine if the user is authenticated If (WebSsoId.IsAuthenticated) { azContext = azApp.InitializeClientContext2("Trey Ordering", null); }

26 RBAC dans l’application Ordering
Magasin de politique AzStore.xml Rôles Administrator Purchaser PLATINUM SILVER GOLD Tâches Change Depart Information Change Partner Info Order Parts Opérations Update Billing Code Update Company Contact Phone Number Submit Order Query Order Status Update Department Code

27 Définir les rôles en fonction des claims
foreach (SecurityProperty securityProperty in SsoId.SecurityPropertyCollection) { // For each group claim that we find, we need to add it to the AzMan context if (securityProperty.Uri == SecurityProperty.GroupClaimUri) object[] roles = new object[1]; roles[0] = securityProperty.Value; // roleName azContext.AddRoles(roles, null); }

28 Obtenir les rôles depuis le contexte utilisateur
public string[] GetRoles() { object[] roles; string[] strRoles; roles = (object[]) azContext.GetRoles(""); strRoles = new string[roles.Length]; for (int i = 0; i < roles.Length; i++) strRoles[i] = roles[i].ToString(); } return(strRoles); public bool IsUserInRole(string role) string[] roles; bool bResult = false; roles = GetRoles(); for (int i = 0; bResult == false && i < roles.Length; i++) if (roles[i].ToLower() == role.ToLower()) bResult = true; return(bResult);

29 Afficher les éléments d’interface en fonction des rôles
if (IsUserInRole(“PLATINUM")) { partnerLevel = “PLATINUM" ; } if (IsUserInRole(“GOLD")) { partnerLevel = “GOLD" ; if (IsUserInRole(“SILVER")) { partnerLevel = “SILVER" ; if (IsUserInRole(“Purchaser")) { EnablePurchaserFunction(); partnerDiscountLabel.Visible = true; partnerDiscountLabel.Text = "As a " + partnerLevel + " partner you receive a " + discountLevel + "% discount!"; purchaseLimitText.Text = purchaseLimit;

30 Construire une application « Claims-Aware »
3/26/2017 3:56 PM Démonstration Construire une application «  Claims-Aware » © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

31 Qu’en est-il du support du IsInRole ASP.NET ?
3/26/2017 3:56 PM Qu’en est-il du support du IsInRole ASP.NET ? Logique d’autorisation bâtie sur la correspondance de chaîne ADFS crée un GenericPrincipal peuplé avec les claims ADFS de type group en tant que Rôles Exemple de code pour une vérification d’accès à l’aide de GenericPrincipal using System.Security.Principal; If (User.IsInRole(“Administrators”)) // Do something © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

32 Exigences d’une application « Identity-aware » fédérée
3/26/2017 3:56 PM Authentification Infrastructure Vérifier que l’utilisateur a présenté une identité valide Authentification Application Vérifier que l’utilisateur a été authentifié par ADFS Autorisations Vérifier que l’utilisateur dispose des permissions appropriées pour la ressource Modification des claims Ajouter/supprimer/modifier les claims à transmettre sur l’identité © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

33 Flot des claims ADFS Partenaire - Compte Peuplement
3/26/2017 3:56 PM Flot des claims ADFS Partenaire - Compte Peuplement Claims organisationnelles Compte Transformation Claims en sortie Magasin AD Transmission des claims Application - Ressource Activation Transformation Claims organisationnelles Ressource Claims en entrée Application © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

34 Module de transformation de claim
3/26/2017 3:56 PM Module de transformation de claim Obtenir des claims depuis d’autres sources Réaliser des transformations de claims non disponibles au niveau de l’interface graphique Ajouter / Supprimer / Modifier des claims basés sur les règles métier Implémentation interface IClaimTransform © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

35 Interface du module de transformation
Référence à System.Web.Security.SingleSignOn.ClaimTransforms ClaimTransforms.dll dans le GAC sous %windir%\assembly\GAC\System.Web.Security.SingleSignOn.ClaimTransform Méthode TransformClaims invoquées deux fois PreProcessing : Avant que le FS ne réalise ses propres opérations de transformations de claims PostProcessing : A l’issue de ces opérations public class CustomTransformModuleClass : IClaimTransform { public void TransformClaims( SecurityPropertyCollection incomingClaims, SecurityPropertyCollection corporateClaims, SecurityPropertyCollection outgoingClaims, ClaimTransformStage transformStage, string issuer, string target) // manipulate claims } Ex. CustomTransformModule.cs

36 Considérations relatives au module de transformation
Réaliser des tâches à même d’offrir en temps d’exécution raisonnable Un module de transformation est directement dans le pipeline de construction de claims Tout temps additionnel passé à attendre la construction des claims constitue un temps d’attente supplémentaire pour l’utilisateur Enregistrer le module au niveau de l’interface graphique Localisé au niveau de l’onglet Transform Module de Trust Policy Properties

37 Module de transformation de claims Federation Services
3/26/2017 3:56 PM Démonstration Module de transformation de claims Federation Services © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

38 Revue du scénario Réduire les coûts de supports
3/26/2017 3:56 PM Revue du scénario Réduire les coûts de supports Aucune gestion des identités partenaires requise L’ensemble des identités arrive sous forme d’un ensemble de claims Les partenaires sont propriétaires des identités L’application offre un accès basé sur les claims Les claims et les accès sont déterminés par le partenaire Interopérer WS-Federation Passive Requestor Interop Profile (WS-F PRIP) Les partenaires peuvent envoyer les identités depuis d’autres plateformes Améliorer de la sécurité Un utilisateur supprimé du système d’identité partenaire perd immédiatement accès à l’application S’appuyer sur l’infrastructure existante Identités dans Active Directory, autorisations dans AD/AM © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

39 Pour plus d’informations sur ADFS
3/26/2017 3:56 PM Pour plus d’informations sur ADFS SDK ADFS sur MSDN .NET Show « ADFS » Rejoignez les discussions sur © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

40 Pour plus d’informations sur AzMan
3/26/2017 3:56 PM Pour plus d’informations sur AzMan « Designing Application-Managed Authorization » « Role-Based Access Control for Multi-tier Applications Using Authorization Manager » « Developing Identity-Aware ASP.NET Applications  », Microsoft Identity and Access Management Series (http://go.microsoft.com/fwlink/?LinkId=14841) © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

41 3/26/2017 3:56 PM © 2006 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

42 Microsoft France 18, avenue du Québec 91 957 Courtaboeuf Cedex
3/26/2017 3:56 PM Microsoft France 18, avenue du Québec Courtaboeuf Cedex © 2006 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Télécharger ppt "ADFS, l’expérience Web SSO (fédérée) 2ième partie"

Présentations similaires


Annonces Google