Drive Your Progress

François Tran

Mon blog Nelite

  • François Tran

    Windows 8 Dynamic Access Control By John Craddock aux TechDays 2012 (Bruxelles)

    • 0 Comments

    Pour nos amis belges ne ratez pas la session Dynamic Access Control dans Windows 8 présenté par John Craddock alias Monsieur “XT Seminars” le 14 février de 17:45 à 19:00. Le modèle d’identité par revendications arrive enfin au cœur de la stratégie sécurité de la plate-forme Windows pour sa version 8 !

    http://www.microsoft.com/belux/techdays/2012/SessionDetail.aspx?sessionId=202

    Sinon pour les gens qui veulent voir tout de suite de quoi il en retourne, je vous conseille également de visionner cette petite vidéo de présentation de DAC via Channel9 du site MSDN (Vous pourrez également télécharger les slides correspondant à la présentation) :

    http://channel9.msdn.com/events/BUILD/BUILD2011/SAC-422T

  • François Tran

    A lire : "Guide to Claims-Based Identity and Access Control, Second Edition"

    • 0 Comments

    Plop,

    Pour les personnes intéressées par les questions autour de la fédération d'identité, je vous conseille vivement la lecture de l'excellent guide sur l'identité basée sur les revendications dans sa seconde édition :

     http://www.microsoft.com/download/en/details.aspx?id=28362 ou ici via le site MSDN : http://msdn.microsoft.com/en-us/library/ff423674.aspx

    Ce guide très complet explique de façon très ludique les questions d'identité au travers de technologies à base de revendications, les mécanismes de fédération, les standards avec des scénarios à l’appui.

    A noter que dans cette seconde édition, ce qui est à noter sont les chapitres supplémentaires dédiés à Sharepoint 2010 et Windows Azure ACS... Et pour ceux qui veulent mettre en application sans plus attendre c’est par ici que ça se passe : http://claimsid.codeplex.com/

    Enjoy ! François. @++

  • François Tran

    [Powershell][AD] les problèmes de taille de Token causé par les imbrications de groupe

    • 0 Comments

    Plop,

    Chez les clients ayant de nombreux groupes de sécurité et utilisant beaucoup l’appartenance de groupe afin de donner des droits accès, que ce soit pour des applications ou à des données partagées, vous serez certainement confrontés aux limites de taille de jeton.

    Comment déceler les utilisateurs à risque ? Facilement grâce à Powershell, en utilisant tout simplement un attribut disponible sur les Global Catalog qui est “tokengroups” contenant la liste des SID des groupes, que ce soit de premier niveau ou ‘n’ niveau (groupe dans le groupe).

    tokengroups sur MSDN –> http://msdn.microsoft.com/en-us/library/windows/desktop/ms680275(v=vs.85).aspx

    Cela nous permet donc de retrouver le nombre groupes dans lequel l’utilisateur est embarqué.

    (Get-QADUser <MyUser>).tokengroups.count

     

    Pour aller au but de ce topic, je vous invite surtout à regarder ce post de M. Ali sur les archives du blog AD Powershell et de récupérer le script proposé :

    http://blogs.msdn.com/b/adpowershell/archive/2009/09/05/token-bloat-troubleshooting-by-analyzing-group-nesting-in-ad.aspx

    Ce script est bien fait et le gros bonus de ce script est le paramètre –TreeView qui permet d’avoir une représentation arborescence des groupes embarqués mais également de donner la valeur “maxnestinglevel” qui représente le nombre de niveau d’imbrication de groupes de l’utilisateurs, information pertinente.

    Image6_2

    Evidemment PS 2.0 et module AD requis pour avoir les cmdlets AD.

    François. @+

  • François Tran

    [Powershell] [AD] Des infos. AD en tant que variables pré-chargés dans votre console

    • 0 Comments

    Plop tout le monde,

    Ci-dessous une “petite astuce” histoire de gagner des précieuses minutes quand vous travaillez à la volée sur votre active Directory, surtout quand vous n’avez pas la possibilité d’importer le module Active Directory.

    Dans votre profil Powershell ($profile), il peut être sympathique de pré-charger comme variable certaines informations de votre Active Directory afin de pouvoir l’interroger plus facilement à la volée.

    # Retrieve Forest Informations
    $Forest = [System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest()

    # retrieve Domain Informations
    $domainList = $forest.domains

    foreach ($Domain in $domainList)
    {
    # create variable which name is current domain
    $ShortDomainName = ($Domain.Name).split(".")[0]
    New-Variable -name "$ShortDomainName" -value $Domain

    # Group Policies from Current Domain
    $gpm = New-Object -ComObject GPMgmt.GPM
    $gpmConstants = $gpm.GetConstants()
    $gpmDomain = $gpm.GetDomain($Domain,'',$gpmConstants.UseAnyDC)
    $gpmSearchCriteria = $gpm.CreateSearchCriteria()
    $gpmAllGpos = $gpmDomain.SearchGPOs($gpmSearchCriteria)

    # create variable which name is current GPO_domain
    New-Variable -name "GPO_$ShortDomainName" -value $gpmAllGpos
    }

    Une fois ce bout de code chargé, vous avez la possibilité maintenant directement d’interroger votre AD via les variables :

    $Forest : pour retrouver les informations relatives à votre forêt.

    2012-02-08_123204

    Par exemple si vous souhaitez retrouver certaines informations sur les subnets de vos sites AD :
    $forest.sites | select name,subnets,Location

    2012-02-08_130041


    $<Domain> : où <Domain> est le nom court du domaine root ou enfant cible à interroger. Chaque domaine de la forêt a une variable chargée à son nom ($domain1, $domain2, etc…)

    2012-02-08_123405

    Par exemple si vous souhaiter, retrouver les noms,IP version d'OS et site AD relatif à vos DCs:
    $MonDomaine.DomainControllers | select name,Ipaddress,OSVersion,SiteName

    2012-02-08_124827

    Il est intéressant également de pouvoir charger les informations GPOs de tous les domaines :

    $GPO_<Domain> : où <Domain> est le nom court du domaine enfant cible à interroger

    2012-02-08_13004sddddddddddd1

    Vous n’avez plus qu’à choisir le ou les informations de votre choix.

    François. @+

  • François Tran

    Savez vous Googler efficacement ?

    • 0 Comments

    Bonjour à tou(te)s

    Comme la plupart du commun des mortels, nous sommes des utilisateurs invétérés du moteur de recherche Google pour rechercher sur la toile les informations tant désirés.

    Parfois les informations se cachent dans un petit coin de page de site parmi des milliards d’autres... et trouver les critères de recherches efficaces pour caractériser votre recherche est un exercice parfois pas si facile qu’il n’y parait.

    Pour les utilisateurs plus aguerris, la recherche avancée est un bon moyen de préparer votre recherche aux petits oignions:

    image

    Ce qui est intéressant de connaitre est que chacun des champ de la recherche avancée correspond à une syntaxe de recherche précise. Google nous souffle quelques un en tant qu’astuce . C’est un peu maigre, mais découvrons les ensemble !

    image

    image Par exemple, cliquer sur astuce à droite du champ de recherche “Cette expression exacte”. L’astuce vous indique alors que pour une recherche de l’expression exacte, il faut juste la placer entre guillemets.
    Facile !
    image L’opérateur OR"

    Pas mal !
    image le moins ! “-“

    Allez sur www.google.fr et recherchez perche. Vous y trouverez des tas de sites sur la perche (le poisson).
    Hors vous recherchez tout ce qui correspond au mot perche mais pas ce qui est relatif au poisson.

    Tapez la recherche perche –poisson et là.. miracle !

    Vous en avez marre de chercher un eventid mais il vous retourne toujours les même page sur un code d’erreur qui ne correspond pas à votre attente ? essayez !

    Réjouissez vous ! Vous en avez bien plus encore  mais certains sont méconnus dont voici quelques exemples :

    site: Un de mes préféré ! je cherche une fiche KB sur le technet uniquement ?
    --> site:technet.microsoft.com !
    filetype La syntaxe ultime ! De plus vous pouvez l’utilisez sur beaucoup d’autres extensions que ceux proposés dans la recherche avancée. par exemple filetype:flv
    daterange: la syntaxe pour les fanas de films de recherches datées:
    Star Wars daterange:2452122-2452234   Clignement d'œil
    Les valeurs correspondent en fait à la date Julian, qui est le nombre de jour depuis le 1er janvier 4713 AvJC.
    cache: Pour les fanas de pages en voie de disparition… qui ont été effacés et que vous retrouvez presque par magie.
    Vous ne pouvez même pas imaginer ce qu’on peut trouver dans le cache de Google..

     

    Si vous voulez en avoir une liste plus étendue, je vous conseille le site de Google, même si ce n’est pas mis en avant, allez au chapitre 2.2 sur les “query terms”

    Sinon sur le site de dumblitttleman qui synthétise très bien les syntaxes de recherche :

     

    Sinon histoire de mentionner BING le moteur de recherche de Microsoft Clignement d'œil, voici le lien vers la référence des opérateurs avancés du MSDN

    Bonne recherche !

  • François Tran

    Publication de l’update Rollup 1 pour ADFS 2.0 !

    • 0 Comments

    C’est par ici pour le lien MS !! –> Bulletin

    Des corrections de bugs sont inclus dans ce lot :

    • KB2254265 The "500" error code is returned when you send an HTTP SOAP request to the "/adfs/services/trust/mex" endpoint on a computer that is running Windows Server 2008 R2 or Windows Server 2008.
    • KB2272757 An identity-provider-initiated sign-on process is slow in Windows Server 2008 R2 and in Windows Server 2008.
      •The "400" error code is returned when sending an authentication request to AD FS 2.0 federation server proxy through Windows integrated authentication endpoint (Nego 2).
    • Decrease in performance occurs on AD FS 2.0 federation server when a user who is authenticating has a large number of group memberships.
    • Failure to join an AD FS 2.0 federation server to an existing SQL-based federation server farm when the AD FS 2.0 administrator that tries the join operation does not have admininistrator rights to the SQL Server database.
    • AD FS 2.0 Federation Service cannot create or verify Security Assertion Markup Language (SAML) tokens when the private keys of an AD FS 2.0 token-signing certificate and/or token decryption certificate are stored by using third-party cryptographic service providers (CSP), for example hardware security mode (HSM).

    Mais aussi des apports de fonctionnalités intéressantes tels que :

    • Multiple Issuer Support“ :
      • L’intégration de la gestion de domaines multiples (UPN), pour le SSO entre la forêt cliente et Office 365. Pour les organisations ayant des domaines de haut niveau multiples, il n’est donc plus nécessaire de multiplier les instances de serveurs AD FS 2.0.
    • Client Access Policy Support
      • Dans le cadre d’Office 365, donne la possibilité de limiter l’accès au service à l’ordinateur ou au périphérique tel qu’un smartphone qui émet la requête selon sa localisation ou même selon la méthode employé (Exchange Activesync etc…)
    • Congestion Avoidance Algorithm
      • Algorithme permettant à un serveur de fédération Proxy de rejeter les demandes d’authentification si son serveur de fédération est surchargé, permettant ainsi d’éviter un dysfonctionnement global. Il temporise donc pour le serveur de fédération en interne.
      • Cet algorithme se configure dans la section <microsoft.identityServer.proxy> du fichier de configuration du serveur de fédération Proxy : <congestionControl latencyThresholdInMSec="2000" minCongestionWindowSize="16" />.
      • Parameters Allowed Values

        Description

        latencyThresholdInMsec

        Min Value = 1000
        Max Value=60000
        Default value = 2000

        Controls the sensitivity of the congestion algorithm trigger. When the average latency time rises above the latencyThresholdInMsec value, congestion control comes into effect.
        minCongestionWindowsSize

        Min Value = 1
        Max Value = 10000
        Default value = 16

        Controls the severity of the congestion algorithm. Defines the smallest number of concurrent requests from the federation server proxy to federation server if persistent congestion occurs.

    Et également par l’ajout de compteurs de performances additionnels pour AD FS 2.0.

    • Additional AD FS 2.0 performance counters

    Performance counter name When to use Performance Counter Location
    Outstanding Token Requests When you want to measure the number of outstanding WS-Trust Token Requests on federation server proxy Federation server proxy
    Rejected Token Requests When you want to measure the number of WS-Trust requests that were rejected because of congestion throttling on federation server proxy Federation server proxy
    Rejected Token Requests/sec When you want to measure the number of WS-Trust requests that were rejected because of congestion throttling per second on federation server proxy Federation server proxy
    Token Request Latency When you want to measure the average roundtrip time (RTT) of WS-Trust requests on federation server proxy Federation server proxy
    Failed U/P authentications When you want to measure the number of failed username and password authentications on federation server Federation server
    Failed U/P authentications per Second When you want to measure the number of failed username and password authentications per second on federation server Federation server

    Enjoy !

  • François Tran

    La fédération d’identité et Microsoft ADFS 2.0 – Part. 2/2

    • 0 Comments

    Le billet précédent était dédiée à la compréhension générale de la fédération d’identité et l’introduction de la plate-forme GENEVA, réponse de Microsoft aux problématiques de l’identité. Celui-ci sera consacré au composant AD FS (Active Directory Federation Service) dans sa version 2.0, son architecture, sa gestion des accès par revendications et ses modèles de déploiement type.

    Pour commencer, on va remonter dans l’histoire dans les années 2002 et citer quelques grandes initiatives de Microsoft dans la réflexion sur l’identité. Microsoft a depuis longtemps investi le terrain de l’identité, que ce soit par la participation à l’élaboration de standards :

    • Comme SAML au travers de OASIS (Organization for the Advancement of Structured Information Standards), de la Liberty Alliance et maintenant la Kantara Initiative
    • Comme “Web Services Federation Language” avec d’autres acteurs majeurs de l’industrie (BEA Systems, BMC, CA, IBM, Novell, Verisign)

    Mais également par la création d’un des plus large service d’authentification au monde et à l’échelle d’Internet (.NET Passport l’ancêtre de Windows Live ID : plus de 250 millions de “Passport actifs” et plus d’1 milliards d’authentification par jour effectuées), leur permettant ainsi de développer une approche de l’identité numérique. Ces efforts et investissements importants leur ont rapportés un retour d’expérience indéniable en la matière, menant ainsi au développement des « Lois de l’identité » (disponible ici –> "Laws of Identity"), des fondements d’une notion de méta-Système d’identité et de produits Microsoft associés.


    Entrons dans le vif du sujet et abordons les pré-requis du produit AD FS 2.0 :

    image

    Hardware requirement

    Minimum requirement

    Recommended requirement

    CPU speed

    Single-core, 1 gigahertz (GHz

    Quad-core, 2 GHz

    RAM 1 Gb 4 Gb
    Disk Space 50 MB 100 MB

    image

    Navigateur Windows 7 Windows Vista
    Internet Explorer 7.0

    x

    x

    Internet Explorer 8.0

    x

    x

    Firefox 3.0

    x

    x

    Safari 3.1

    x

    x

    image 

    • Supported Operating Systems: Windows Server 2008, Windows 2008 R2
    • .NET 3.5 SP1
    • Windows Powershell

    Au delà de ces pré-requis, plusieurs conditions sont à réunir pour obtenir une solution AD FS 2.0 qui fonctionne :

    • Connectivité réseau effective entre le DC, les ordinateurs le service FS, le proxy FSP (si utilisé) et l’agent Web AD FS.
    • Architecture DNS et une résolution DNS effective des serveurs AD FS pour résoudre les liens d’identités métadata.
    • Magasin d’attributs : AD DS 2003 à 2008 R2, SQL 2005 à 2008, ainsi que des magasins d’attributs personnalisés type LDAP.
    • Autorité de certification dans l’organisation pour (l’utilisation de certificats auto-signés est possible mais non recommandés dans des environnements de production) :
      • Les certificats SSL pour la protection des communications. Il s’agit d’un certificat SSL standard utilisé pour sécuriser les communications entre les serveurs de fédération, les clients et les serveurs proxys de fédération. Certificate key usage : Digital Signature, Encryption.
      • La signature des jetons de sécurité. Il s’agit d’un certificat standard X.509 utilisé pour signer de façon sécurisée tous les jetons que le serveur de fédération (STS) émet. Certificate key usage : Digital Signature.

    Les 4 composants constituant AD FS 2.0 :

    image

     

     

     

     

     

     

    Federation Service” :

    • Le service de fédération peut comprendre un ou plusieurs serveurs de fédération (ferme de serveurs) partageant une stratégie d’approbation commune.
    • Le serveur de fédération acheminent les demandes d’authentification émises par les comptes d’utilisateurs d’autres organisations ou par des clients se trouvant n’importe où sur Internet.
    • Le serveur de fédération réalise la délivrance, la gestion et la validation des demandes de jetons de sécurités, ainsi que les opérations de chiffrement qui permettent de générer les jetons de sécurité.
    • Contrairement aux serveurs proxy de fédération, les serveurs de fédération prennent en charge l’utilisation de l’authentification intégrée Windows pour les clients sur le réseau d’entreprise.

    Federation Service Proxy” :

    • Il fait office de proxy pour le service de fédération dans le réseau de périmètre (DMZ). Il utilise les protocoles WS-F PRP (WS-Federation Passive Requestor Profile) pour collecter les informations d’identification des utilisateurs auprès des clients de navigateur, puis envoie de leur part les informations d’identification au service de fédération.
    • Bien que les serveurs proxy de fédération ne puissent pas générer de jetons, ils peuvent être utilisés pour router ou rediriger les jetons aux clients et, en cas de besoin, les réacheminer aux serveurs de fédération.
    • Les serveurs proxy de fédération ne prennent pas en charge l’utilisation de l’authentification intégrée Windows pour les clients sur le réseau d’entreprise.

    Web agents for Claim-Aware Applications” :

    • Permet l’interrogation des revendications des jetons de sécurité AD FS (Une application prenant en charge les revendications est une application Microsoft ASP.NET qui utilise les revendications présentes dans un jeton de sécurité AD FS pour prendre des décisions d’autorisation et personnaliser des applications).
    • Les agents Web AD FS (Active Directory Federation Service) sont des extensions de l’interface ISAPI (Internet Server Application Programming Interface) qui s’exécutent sur les services Internet (IIS) 7.0 et Windows Server 2008, et gèrent les jetons de sécurité et les cookies d’authentification pour le serveur Web.
    • Un agent Web AD FS intercepte les demandes URL entrantes des clients souhaitant accéder à une ressource protégée et garantit qu’un jeton d’authentification valide est présenté.
    • Plusieurs agents Web non-Microsoft sont disponibles. Vous pouvez les utiliser pour exécuter des applications fédérées sur des plateformes autres qu’IIS 7.0. Ces agents Web sont basés sur une spécification développée de manière collaborative qui définit la génération et la consommation de jetons de sécurité selon un schéma prescrit. Cette spécification porte le nom de « WS-F PRP » (WS-Federation Passive Requestor Interoperability Profile). (Centrify DirectControl solution for web and Java/J2EE).

    Web agents for Windows NT Token-Based Applications” :

    • Peut être utilisé sur un serveur Web hébergeant une application basée sur une autorisation de jeton Windows NT pour prendre en charge la conversion d’un jeton de sécurité AD FS en jeton d’accès Windows NT d’emprunt d’identité.
    • Une application basée sur des jetons Windows NT est une application IIS (Internet Information Services) conçue pour utiliser des mécanismes d'autorisation natifs de Windows traditionnels. elles peuvent être utilisées seulement par des utilisateurs qui peuvent se connecter à l'ordinateur à l'aide de techniques d'authentification basées sur des jetons Windows NT.

    L’installation du composant AD FS 2.0 :

    image Attention, une erreur à ne pas commettre lors de l’installation du composant est d’utiliser l’interface de gestion du serveur d’ajout de rôle !! En effet, si vous utilisez la fonction ajout de rôle et installez AD FS via cette méthode, vous n’obtiendrez QUE la version 1.0 d’AD FS… et ce, même si vous l’effectuez depuis un serveur 2008 R2… Cela peut paraître étrange mais vous n’avez pas d’autres choix que de télécharger le composant pour l’installer.

    Je vous conseille également de prévoir déjà à l’avance vos certificats SSL afin de pouvoir terminer d’une traite la configuration de votre Service de fédération AD FS 2.0 dans le chapitre suivant.

    image Une fois la version AD FS 2.0 téléchargée, exécutez la pour installer le composant en poursuivant l’assistant d’installation.

    cliquez sur le bouton “Next” afin de poursuivre l’installation.
    image Acceptez les conditions et termes d’utilisation et de licence en cochant la case “I accept… Agreement” afin de commencer l’installation.

    Cliquez sur le bouton “Next” afin de poursuivre l’installation.
    image Choisissez “Federation Server” afin d’initier l’installation d’un serveur de fédération complet.

    Cliquez sur le bouton “Next” afin de poursuivre l’installation.
    image L’assistant d’installation détectera automatiquement si vous avez les pré-requis nécessaire pour continuer. Dans le cas contraire il installera les composants manquants.

    Cliquez sur le bouton “Next” afin de poursuivre l’installation.

    image image image image
    image Laissez coché la case “Start… closes.” afin de démarrer immédiatement la console de gestion et procéder à la configuration du composant.

    Cliquez sur le bouton “Finish” afin de terminer l’assistant d’installation AD FS 2.0.
    image Une fois l’installation terminée, vous arrivez sur la console de gestion AD FS afin de débuter la partie paramétrage du composant.

    La configuration du composant AD FS 2.0 :

    image

    L’assistant de configuration du composant AD FS 2.0 vous propose soit de :

    • Créer un nouveau service de fédération complet
    • D’ajouter un nouveau serveur de fédération dans une ferme de serveurs de fédération.
    image

    L’assistant de configuration du composant AD FS 2.0 vous propose soit de créer :

    • Une ferme de serveur de fédération, choix envisagé dans le déploiement de solution à haute disponibilité et tolérance de panne. L’équilibrage repose sur la mise en place du composant NLB (Network Load Balancing)/
    • Un serveur de fédération autonome afin de fournir un STS à destination de scénarios simples de fédération.

    Choisissez votre cas de figure et cliquez sur “Next” afin de passer à l’étape suivante de la configuration.

    image A cette étape de la configuration, l’assistant vérifie les certificats SSL éligibles pour la sécurisation des communications dans le magasin de certificat du serveur.

    Choisissez le certificat réservé à cet effet et cliquez sur le bouton “Next” afin de valider votre choix.
    image Cliquez sur le bouton “Next” afin de commencer la configuration automatique.

    Patientez, jusque la fin de la configuration du composant AD FS 2.0.





    image
    image
    Vous remarquerez qu’une base de donnée de type WID (Windows Internal Database) a été installée par défaut.

    Si vous souhaitez utiliser un serveur SQL afin d’héberger les données de configuration de la base de votre service AD FS 2.0, il sera obligatoire d’effectuer cette étape de configuration via Powershell Sourire

    --> « Add-pssnapin microsoft.adfs.powershell »

    image Dans le cas d’utilisation d’AD FS 2.0 en ferme de serveur, il est recommandé d’utiliser une base SQL et non WID.

    L’utilisation de WID entraîne en effet, systématiquement un  mode Primaire/secondaires avec réplication toutes les 5 minutes entre les partenaires qui ne permet pas un mode de propagation fiable.

    image Vous avez à présent une console complète à disposition afin de commencer à accueillir des relations de confiance de partenaires de fédération.

    Ajout d’une relation de confiance, de partenariat :

    Afin d’initier un partenariat entre 2 organisations, il est nécessaire d’établir en tout premier lieu une relation de confiance ou Trust entre les 2 parties. Dans ce partenariat, la configuration de ce trust est nécessaire pour définir le processus de gestion de jetons et revendications entrantes/sortantes selon que l’on soit positionné en tant que “Claim Provider” ou “Relying Party”.

    • Sélection de la source de données « Data Source » :
      • Importation via l’adresse URL de fédération metadata
      • Importation via fichier  de fédération metadata (Format XML)
      • Importation manuelle en renseignant les informations
    • Choix du profil :
      • De type AD FS 2.0 supportant les features avancés de la version 2 (Encryption des jetons de sécurité et support du protocole SAML 2.0)
      • De type ADFS 1.0 et 1.1
    • Choix du certificat pour permettre le cryptage des jetons de sécurité (Optionnel)
    • Choix des protocoles pris en charge :
      • Support de « WS-Federation Passive Protocol »
      • Support de « SAML 2.0 WebSSO Protocol »
    • Relying party trust identifiers :
      • L’URL de federation metadata. Cet URL doit être accessible pour les clients et serveurs de fédération (https). Cet URL doit être accessible par tous les serveurs STS partenaires.
      • Issuance Authorization Rules : Permit or Deny all users to access this relying party.

    Les “Claims rules” d’une relation de confiance :

    Les règles de gestion et le process des revendications doivent être définies dans le TRUST afin de prendre en charge les revendications entrantes et sortantes par le moteur de gestion des revendications.


    image

    Processus “Claims pipeline”

    Il est constitué de 3 phases, chacune ayant son lot de règles procédant à l’analyse de tous les revendications qui leur sont soumises.





    image

    Phase  d’acceptation de la revendication entrante :

    • Extraction de la revendication du jeton.
      Elimination des revendications qui ne sont pas attendus ou trust.

    Phase d’autorisation  :

    • Analyse du jeton demandeur afin de vérifier si celui –ci est est autorisé à obtenir un jeton retour pour la partie tierce donnée.

    Phase de délivrance des revendications sortantes :

    • Constitution des revendications de sorties afin de constituer le jeton de sécurité  de réponse.

    Chaque phase comporte une liste d’actions disponible :

    Issuance Transform Rules
    (Règles spécifiant les revendications qui seront envoyés à la partie tierce de confiance)

    Issuance Authorization Rules
    (Règles spécifiant les utilisateurs autorisés à accéder à la partie tierce de confiance)

    Delegation Authorization Rules
    (Règles spécifiant les utilisateurs autorisés à agir en tant que d’autres utilisateurs de la partie tierce de confiance)

    • Send LDAP Attributes as claims
    • Send Group Membership as a claim
    • Transform an incoming Claim
    • Pass Through or Filter an incoming Claim
    • Send Claims using a Custom Rule
    • Permit or Deny Users Based on an incoming Claim
    • Permit All Users
      Send LDAP Attributes as a claim
    • Transform an incoming Claim
    • Pass through of filter an incoming Claim
    • Send Claims Using a custom Rule
    • Permit or Deny Users Based on an incoming Claim
    • Permit All Users
      Send LDAP Attributes as a claim
    • Send Group Membership as a claim
    • Transform an incoming Claim
      Pass through of filter an incoming Claim
    • Send Claims Using a custom Rule

    Du côté du navigateur notons l’existence de notions de cookies facilitant les connexions au sites et applications fédérées.

    image image

    Authentification Cookie

    Account Partner Cookie

    Sign-Out Cookie

    • Une fois qu’un jeton a été vérifié au niveau d’un service de fédération ou d’une application Web, un cookie d’authentification est émis au navigateur client.
    • Chaque fois qu’un client doit être authentifié, ce cookie est utilisé par le service de fédération et, si le cookie est valide, l’utilisateur n’est pas contraint d’entrer à nouveau ses informations d’identification.
    • Le contenu de ce cookie d’authentification est chiffré à l’aide du protocole SSL au cours de la transmission uniquement. Le contenu des cookies d’authentification est signé, mais il n’est pas chiffré lorsqu’il est écrit sur le disque.
    • Ce cookie peut contenir des informations personnelles définies par l’application, en fonction des revendications incluses dans le jeton par un administrateur. Ces informations personnelles peuvent être écrites sur le disque de l’ordinateur du navigateur Web.
    • Facilite le SSO
    • Les informations  sur l’adhésion intéractive du compte partenaire  y sont inscrits et envoyés au client pour éviter à nouveau le processus de découverte de partenaire.
    • C’est un cookie persistant, qui n’est ni-signé ni encrypté.
    • Facilite la déconnexion.
    • Chaque fois que le  FS délivre un jeton, le partenaire de ressource du token ou le serveur web cible est inscrit au cookie de déconnexion.
    • Quand le FS reçoit une demande de déconnexion , il envoie  à chaque  serveur de jeton cible une demande de nettoyage des artefacts d’authentification tels que des cookies en cache.

    Avant de vous lancer dans un projet de fédération d’identité, posez vous les bonnes questions et surtout “identifiez les objectifs de votre architecture” ?image

    En fonction des mappages de vos objectifs d’architecture, 3 scénarios de base sont à retenir :

    image

    Conception SSO de Web pour prendre en charge l’accès client à des applications dans des scénarios entreprise-client (B2C)

    • Flux des messages pour l’accès à distance des clients.
    • Demande d’application de client.
    • Authentification de l’utilisateur.

     

    image

    Conception SSO de Web fédéré pour prendre en charge les scénarios interentreprises (B2B) et la collaboration entre divisions avec des forêts indépendantes.

    • Flux des messages pour la fédération via un accès interne.
    • Demande d’application de client.
    • Authentification de l’utilisateur.
    • Flux des messages pour la fédération via un accès distant.
    • Demande d’application de client.
    • Authentification de l’utilisateur.

     

    image

    Conception SSO de Web fédéré avec approbation de forêt pour prendre en charge les scénarios intra-entreprise (B2E).

    • Flux des messages pour l’accès à distance des utilisateurs itinérants.
    • Demande d’application de client
      Authentification de l’utilisateur demandant à accéder à l’application.
    • Flux des messages pour l’accès interne de l’utilisateur distant.
    • Demande d’application de client.
    • Authentification de l’utilisateur.

    Afin de clôre ce billet, nous allons finir sur les bonnes pratiques sécurité pour la planification et le déploiement sécurisé d’AD FS 2.0.

    • Application des “Security Configuration Wizard best practices” appliqués au serveurs de fédération ou fédération proxy.
      • Farm.xml, SQLFarm.xml, StandAlone.xml, Proxy.xml (scwcmd register /kbname:ADFS2Standalone /kbfile:"%programfiles%\Active Directory Federation Services 2.0\scw\StandAlone.xml" etc…)
    • Utiliser la fonction “token replay detection” si le niveau de sécurité élevé est requis.
    • Utiliser le cryptage des jetons, particulièrement dans le cas de résolution d’objets supportant SAML.
    • Utiliser  la fonction “extended protection for authentication” afin de prévenir les attaques de type “man-in-the-middles”. Cette protection consistant à forcer les communications via un“Chanel Binding Token” (CBT) peut être activée via une cmdlet mais au détriment d’une compatibilité de certains navigateur WEB.
    • S’assurer que les log, events et traces soit correctement configurés afin de préserver les données sensibles, et privées qui peuvent éventuellement y être stockées (cas de certaines revendications et valeurs qui peuvent apparaitre dans les events et traces) en positionnant des ACL sur l’accès aux events et traces ADFS.
    • Réduire la surface d’attaque de SQL en suivant les best practices MS SQL)
  • François Tran

    La fédération d’identité et Microsoft ADFS 2.0 – Part. 1/2

    • 0 Comments

    Bonjour à tou(te)s Sourire

    Mon premier billet sur ce blog ! Et je commence sur un sujet des plus intéressant et très à la mode : La fédération d’identité et le produit Microsoft ADFS 2.0. Vu que les notions de fédération d’identité sont complexes et assez vastes, pour se faire, nous allons dans ce premier billet, introduire la notion d’identité numérique et clarifier les bases de la fédération d’identité. Nous nous focaliserons ensuite plus précisément sur ADFS 2.0 dans un second billet.

    Pour commencer, qu’est ce que l’identité numérique ? C’est la représentation numérique d’une personne physique se déclinant en un “identifiant” et “d’un ensemble d’attributs qui lui sont liés (nom, prénom, adresse, téléphone, fax, bureau…)”.


    Quels sont les type identités les plus courantes nous définissant numériquement ?

    • Identité personnelle : permet l’authentification vers des services grand public.
      E-Commerces, pages personnelles en ligne, jeux, loisirs…
    • Identité administrative : permet l’authentification vers des services administratifs gérant vos informations citoyennes.
      Impôts, sécurité sociale, Etat Civil…
    • Identité professionnelle : permet l’authentification vers des services et applications de son entreprise.
      Messagerie, Internet, espaces de collaboration, applications métiers…

    image

    Du point de vue des entreprises, des solutions de Gestion des Identités et des Accès existent déjà, et apportent des éléments de réponses à ces problématiques :

    • La multiplication d’annuaires afin de délimiter les populations d’utilisateurs  (Internes, externes, fournisseurs).
    • La mise à disposition de systèmes de délégation pour le provisionnement des annuaires de collaborateurs externes à l’entreprise afin de gérer les mises à jour.

    Mais ces solutions ont leur limite : la complexité de mise en œuvre de ces architectures et de toutes les questions relatives à la sécurité du SI restant à la charge de l’entreprise sans compter le coût de gestion de ces infrastructures multiples.

    D’un point de vue grand public, la multiplication des identités numériques nous contraint à une gestion des identités fastidieuse et couteuse en temps. Combien de fois avons nous perdu de temps à nous ré-inscrire sur un service X en rentrant inlassablement nos données personnelles maintes et maintes fois ?… Ce qui nous amène à introduire la notion de fédération d'identité.


    L’externalisation des processus métiers, et à présent, les offres Cloud ont posés la problématique de la gestion des identités multiples hors du royaume de sécurité de l‘entreprise, repoussant encore plus loin les frontières du SI. La fédération d'identités offre donc une valeur ajoutée particulière :

    • Aux grandes organisations décentralisées.
    • Aux organisations  gérant l’accès à des ressources partagées  à de vastes communautés.
    • Aux entreprises offrant réciproquement leur services, au-delà de leur frontières. Donnant ainsi accès à leurs applications aux collaborateurs de leurs partenaires.

    D’un point de vue grand public, la fédération d’identité permet à chacun de :

    • Disposer d’une identité unifiée, utilisable sur divers sites Web indépendants.
    • Orienter les applications compatibles vers un gestionnaire d’identité unifié.
    • Disposer d’un id/mdp unique et du “Single Sign On”.
    • Mettre à la disposition des applications une fiche d’identité paramétrable (nom, prénom, date de naissance, sexe, email, etc.).
    • Conserver un lien vers cette fiche d’identité unique pour connaître ses évolutions.

    Par exemple : Réseau social : Facebook et LinkedIn / Services Web : Yahoo ID, Microsoft Windows Live ID, etc… )

    D’un point de vue de l’entreprise, avec l’avènement des services Web, l’arrivée des architectures fédérées est inévitable, car celle-ci est une composante importante des architectures SOA (Services Oriented Architecture). Celles-ci proposent d’établir des liens de confiance de manière distribuée, basée sur des standards, ouvrant ainsi la voie à des scénarios de B2B, de collaboration et de partage de données. Elle permet :

    • Le partage d’identités à des applications externes à l’entreprise autour de nouvelles normes émergeants (WS-Federation, SAML…).
    • La mise en relation des fournisseurs d’identités à des fournisseurs de services en donnant la possibilité à des utilisateurs identifiés pour le compte d’applications internes/externes  l’entreprise sur la base des technologies « Web Services ».
    • De faciliter les échanges entre partenaires.
    • D’éviter la duplication de référentiels utilisateurs.
    • La délégation de gestion des utilisateurs sur la base de liens de confiance entre entreprises.
    • De fournir des fonctions de « Single Sign On ».

    Quel est donc la réponse de Microsoft par rapport à la fédération d’identité et quel rôle ADFS 2.0 joue t’il donc dans la fédération d’identité ?

    La réponse de Microsoft à cette problématique est GENEVA. C’est une plate-forme ouverte permettant l’accès simplifiée pour les utilisateurs, basée sur les notions de « fédération » de « revendications ». Dans sa version actuelle, la solution GENEVA est constitué  de 3 composants :

    • WIF (Windows® Identity Foundation) pour les développeurs .NET.
      • C’est une infrastructure pour la génération d'applications prenant en charge les identités. L'infrastructure rend les protocoles WS-Trust et WS-Federation abstraits et présente aux développeurs des API pour la génération de services d'émission de jeton de sécurité (STS) et d'applications prenant en charge les revendications. Les applications peuvent utiliser WIF pour traiter les jetons émis à partir de services d'émission de jeton de sécurité et prendre des décisions basées sur l'identité au niveau de l'application Web ou du service Web.
    • Active Directory Federation Services 2.0, pour les professionnels de l’IT.
      • Cette extension de Microsoft Active Directory offre une fonction interopérable de gestion des identités fédérée et basée sur les “revendications”. AD FS 2.0 permet d’autoriser des individus à ouvrir une session sur Active Directory, puis à utiliser leurs informations d'identification de manière sécurisée pour s'authentifier sur d'autres systèmes ou applications gérant les revendications à l’aide de jetons de sécurité basé sur le standard SAML 2.0.
    • Windows CardSpace 2.0, pour les utilisateurs.
      • Windows 7 et Windows Vista intègre les CardSpaces, lesquels servent aux utilisateurs à entrer leurs informations d’identification tel un sélecteur d’identité.

    image

    Cette plate-forme :

    • Contribue pour les développeurs à simplifier l’accès applicatif en externalisant l’authentification et le contrôle d’accès des applications (ASP.NET, SharePoint, autres) et des services Web via les revendications et à réduire l'effort de développement induit avec une logique de sécurité préétablie.
    • Aide les professionnels de l’informatique à déployer et gérer efficacement de nouveaux services et applications en réduisant le travail d’implémentation personnalisé, en centralisant et en standardisant la gestion des accès dans l'entreprise, en rendant possible la mise en œuvre d’un modèle de sécurité cohérent et en facilitant la collaboration entre organisations.

    Les notions en jeu quand on parle de fédération d’identité :

    • « Identity Providers » ou fournisseurs d’identité : Fournissent les identités numériques.
    • « Relying Parties » ou parties tierces : Fournissent le service (Service Provider), tel qu’un site Web, ou un service en ligne (application).
    • « Subjects » ou sujets : Représentent les individus, ou autres entités depuis lesquels les revendications sont émises (utilisateurs finaux, compagnies et organisations).
    • « Trust » ou relation de confiance. Pour qu’un Service Provider et un Identity Provider puissent dialoguer il faudra qu’ils fassent partie du même cercle de confiance. Ainsi au sein d’une Fédération d’Identité, on va distinguer plusieurs cercles de confiances regroupant chacun leurs Identity Provider et Service Provider. Cette confiance se matérialise en un partage de clés symétriques, et la confiance dans une chaîne de certificats X509).Ces protocoles permettent de normaliser et standardiser les échanges d’identité entre les référentiels d’utilisateurs et les applications indépendamment de leur localisation.

    Les normes, spécifications et standards qu’il faut connaître quand on parle de fédération d’identité.

    • WS-federation (Web Services – *):
      • Soutenu par de multiples fournisseurs (BEA Systems, BMC Software, CA, Inc., IBM, Layer 7 Technologies, Microsoft, Novell, VeriSign), cette spécification définit des mécanismes de fédération d'espaces de confiance hétérogènes
      • Protocole fondamental utilisé dans la pile d’identités de Microsoft, reposant sur la suite de protocle WS-* (STAR pour Secured, Transacted, Asynchronous & Reliable en anglais).
    • SAML (Security Assertion Markup Language):
      • Ce langage de balisage des assertions de sécurité, reconnu, basé sur le format xml a été initié par l’OASIS (Organization for the Advancement of Structured Information Standards), repris ensuite par la Liberty Alliance et devenu maintenant la Kantara Initiative.
      • Pris en charge dans sa Version 2.0 par Microsoft ADFS V2.0.

    Ces protocoles permettent de normaliser et standardiser les échanges d’identité entre les référentiels d’utilisateurs et les applications indépendamment de leur localisation.

    Les termes à connaître quand on parle de fédération d’identité :

    • Les « claims» ou revendications sont des déclarations faites par un serveur de fédération à propos d’un utilisateur. Elles sont utilisées par les applications Web pour prendre des décisions en matière d’autorisation. Les revendications proviennent soit d’un magasin de comptes local, soit d’un partenaire de compte
    • Les « Security token » ou jetons de sécurité qui définissent des revendications faites au sujet d’une identité, d’aptitude ou de privilèges tels qu’un nom, une adresse email, un groupe, un rôle etc...

    image Jeton de sécurité de type SAML contenant des assertions :

    • Company=Nelite
    • Email=francois.tran@ MyCompany.com
    • Role=Consultant
    • Groupe=CoreIdentityCollaborationConsultant
    • Les Security Token Service ou STS sont des services émetteurs de jetons de sécurité, pouvant échanger des jetons lorsque la requête traverse les frontières de royaumes
      de sécurité.

    Afin d’illustrer efficacement l’application directe de la fédération d’identité et pour que vous puissiez comprendre son mécanisme, je vous propose 2 schémas simplifiés :

    Dans le cas d’une utilisation la plus simple de la fédération d’identité : Accès à un service Web.

    1. Je veux accéder à mon service dénommé MANA hébergé sur un serveur Web.
    2. Je suis redirigé vers mon STS afin de m’identifier. Ayant déjà un jeton Kerberos, je suis authentifié auprès de mon STS et je lui demande un jeton de sécurité pour me permettre d’accéder au service MANA.
    3. Mon STS me fournit un jeton signé accompagné de mes revendications UPN:francois.tran@ MyCompany.com et GroupMembership : ManaUser.
    4. Je présente au Serveur fournissant le service Mana le jeton signé fourni par mon STS.
    5. L’accès à l’application Web Mana m'est ouverte car je suis reconnu comme étant un utilisateur fédéré, décliné dans le “TRUST” défini entre mon organisation et le service MANA et comme membre de ManaUser de part ma revendication “groupMembership=ManaUser”.

    image

    Imaginez maintenant ce même schéma avec un service Mana hébergé dans le cloud, ou bien même que celui-ci ne soit un serveur Web NON-Microsoft. Tout cela est donc possible grâce aux standards utilisés qui offre une interopérabilité multi-fournisseurs.

    Dans le cas d’une utilisation plus courante de la fédération d’identité : Accès à une application Web externalisée et hébergée chez un partenaire.

    1. Je suis utilisateur de “Mon Entreprise” et je souhaite accéder à l’application partenaire “APP.”
    2. Bonjour, qui es tu ? Contacte mon STS pour t’authentifier.
    3. Je viens m’authentifier pour accéder à l’APP. Communiquons en https.
    4. Désolé, mais je ne te connais pas, contacte ton STS toujours sur https, tu peux utiliser ton “HomeRealmDiscovery”
    5. Bonjour, tu es le serveur STS pour mon organisation, j’ai besoin de m’authentifier pour accéder à APP. de notre partenaire.
    6. Ok je te connais via ton ticket Kerberos, je vais le réutiliser pour créer un jeton de sécurité signé de type SAML prouvant ton identité et te le transmettre.
    7. Voici un jeton de sécurité signé par mon STS prouvant de mon identité. Vérifie si je suis un partenaire éligible à un jeton parmi ta liste de TRUST.
    8. Oui, je connais ta compagnie et je t’approuve en tant qu’individu de mon partenaire “Mon entreprise”. Je signe digitalement à mon tour le jeton SAML que tu m’as fourni, que j’alimenterai de revendications supplémentaires (si nécessaire, et selon les règles de gestions des revendications du trust qui nous unit). Je te le transmet dans le même canal sécurisé https ce jeton.
    9. J’ai à présent une identité complète fédérée, voici le jeton SAML, peux tu stp me donner l’accès.

    image

    Ce type d’architecture autorise des périmètres homogènes et hétérogènes et n’impose pas un modèle propriétaire aux tierces-parties ou à ses fournisseurs car la fédération est basée sur la relation de confiance et l’échange entre 2 partenaires basés sur des standards reconnus et constitués par une grande majorité des acteurs majeurs du marché.

    Ce billet, je l’espère, vous aura permis d’avoir une compréhension globale des termes et mécanismes de fédération d’identité et une bonne introduction en la matière pour aborder dans un prochain billet, la solution AD FS 2.0 de Microsoft.

Page 1 of 1 (8 items)