isnet 76 - serveur campus des écoles hes genevoises

Transcription

isnet 76 - serveur campus des écoles hes genevoises
Informatique de gestion
HEG – Genève
Laboratoire de Technologies Objet
Campus de Battelle – Bâtiment F
Route de Drize 7
CH-1227 Genève
Tél : +41 22 388 17 00
Fax : +41 22 388 17 01
www.hesge.ch/heg
IDENTITÉ DIGITALE FÉDÉRÉE
RAPPORT DÉTAILLÉ
Projet déposé dans le cadre du programme de la réserve stratégique de la HES-SO
Novembre 2006
Sous la direction de Peter DAEHNE, professeur HES
http://campus.hesge.ch/Daehne/ISNet76
Informatique de gestion
ISNET 76
TABLE DES MATIÈRES
1 Le problème.............................................................................................................. 5
1.1 Les enjeux pour l'entreprise ................................................................................ 5
1.2 La sécurité .......................................................................................................... 6
1.3 Les failles............................................................................................................ 7
1.4 Le Single Sign-On ............................................................................................... 8
1.5 Le cas d'Internet ............................................................................................... 11
1.5.1 Intranet ................................................................................................... 11
1.5.2 Extranet .................................................................................................. 14
1.5.3 Au-delà de l'entreprise ............................................................................ 15
2 Spécifications de Liberty Alliance ............................................................................. 16
2.1 Le concept d'identité ........................................................................................ 16
2.2 Les objectifs...................................................................................................... 17
2.3 Identité réseau fédérée ..................................................................................... 18
2.4 Cercle de confiance .......................................................................................... 18
2.5 L'architecture ................................................................................................... 21
2.5.1 Le module ID-FF ...................................................................................... 22
2.5.2 Autres modules ....................................................................................... 22
3 Conformité des implantations ................................................................................. 24
3.1 Liberty Interoperable™ ..................................................................................... 24
3.2 Tests de conformité .......................................................................................... 24
3.3 Produits inter opérables .................................................................................... 24
4 Mise en œuvre........................................................................................................ 26
4.1 Concepts.......................................................................................................... 26
4.1.1 Le fournisseur de service.......................................................................... 26
4.1.2 Le fournisseur d'identité .......................................................................... 27
4.1.3 Le client .................................................................................................. 27
4.2 Composants matériels et logiciels nécessaires.................................................... 28
4.2.1 Logiciel ................................................................................................... 28
4.2.2 Matériel .................................................................................................. 28
4.3 Implantation..................................................................................................... 29
4.3.1 La cible ................................................................................................... 30
4.3.2 Architecture du système .......................................................................... 31
4.3.3 Accès aux services ................................................................................... 31
2
Informatique de gestion
ISNET 76
4.3.4 Authentification ...................................................................................... 32
4.3.5 Logiciel ................................................................................................... 32
4.3.6 Systèmes Microsoft Windows™............................................................... 33
4.3.7 Procédure ............................................................................................... 33
5 Modèle business ..................................................................................................... 35
5.1 Cadre ............................................................................................................... 35
5.2 Type d'échange ................................................................................................ 36
5.3 Innovation produit ............................................................................................ 36
5.4 Gestion de l'infrastructure ................................................................................ 37
5.5 Relation client................................................................................................... 38
5.6 Aspects financiers ............................................................................................. 39
6 Prototypes .............................................................................................................. 41
7 Conclusion.............................................................................................................. 42
8 Bibliographie........................................................................................................... 44
3
Informatique de gestion
ISNET 76
TABLE DES FIGURES
Fig. 1.1 : Le dilemme entre accessibilité de l'information et exigences de sécurité.......... 6
Fig. 1.2 : Les multiples identifications d'un utilisateur.................................................... 7
Fig. 1.3 : Identification d'un utilisateur sur différents systèmes interconnectés............... 9
Fig. 1.4 : Single Sign-On d'un utilisateur sur un ensemble de systèmes interconnectés 10
Fig. 1.5 : Succession des opérations dans un contexte single sign-on / intranet............ 12
Fig. 2.1 : Les attributs définissant l'identité d'un utilisateur ......................................... 16
Fig. 2.2 : Première connexion d'un utilisateur dans un environnement fédéré.............. 19
Fig. 2.3 : Première connexion auprès d'un partenaire du même cercle de confiance .... 20
Fig. 2.4 : Architecture modulaire générale .................................................................. 21
Fig. 3.1 : Logo certifiant la conformité du produit aux spécifications ........................... 25
Fig. 4.1 : Les acteurs de la fédération d'identité .......................................................... 26
Fig. 4.2 : L'architecture du système informatique des entreprises considérées.............. 30
Fig. 4.3 : La nouvelle architecture du système ............................................................. 31
Fig. 4.4 : Étapes de la mise en conformité du système avec la fédération d'identités.... 34
Fig. 5.1 : Les piliers des modèles business ................................................................... 35
4
Informatique de gestion
ISNET 76
1 LE PROBLÈME
Aujourd'hui, l'Internet est devenu le principal moyen de communication et
d'échange d'informations de notre société. Tout individu équipé d'un ordinateur et
d'une ligne de communication1 peut accéder aux nombreux services proposés par ce
média. Son ubiquité a naturellement séduit les entreprises et les administrations qui
se sont appuyées sur ce formidable moyen de communication pour développer
toutes sortes de services en ligne.
Certains de ces services sont destinés au grand public. Le tout premier d'entre eux
est bien sûr la messagerie2 ; mais l'usager peut également employer l'Internet pour
administrer son compte bancaire, gérer son portefeuille d'actions et ses
investissements, payer ses factures, opérer des transactions immobilières, effectuer
des achats de vêtements, de films, de musique, etc.
D'autres sont à usage interne de l'entreprise qui les utilise pour accomplir sa mission.
Parmi ceux-ci, on peut citer l'interconnexion des divers départements et succursales
dans un contexte d'architecture distribuée, le télétravail des employés, le contact
avec les collaborateurs mobiles ainsi que les relations commerciales avec les
fournisseurs et/ou les clients ou encore la gestion de la connaissance3.
Notons encore que l'Internet est un vecteur fondamental pour toutes les entreprises,
4
qu'elles soient des SSCI ou non, qui confient la réalisation de leurs développements
informatiques à des tiers5 ; ces derniers sont en effet souvent localisés à l'autre bout
du monde.
Remarquons enfin que, ces dernières années, la fonction de l'Internet a évolué de
l'interconnexion d'ordinateurs vers l'interconnexion d'applications et de services. Le
nombre de clients ainsi que le nombre de dispositifs et points d'accès à ces
applications et services ont également explosé.
1.1 Les enjeux pour l'entreprise
Parallèlement à l'essor de l'Internet et des systèmes de communication, les
plateformes logicielles et matérielles des entreprises se sont multipliées. Pour faire
face à la demande croissante de services en ligne, tant de la part des usagers que des
collaborateurs et partenaires de l'entreprise, de nouveaux systèmes ont dû être
développés.
Les entreprises se sont donc retrouvées confrontées au problème de la gestion
efficace de nombreux systèmes devant être déployés, maintenus et intégrés à un
nombre croissant de réseaux et de plateformes différents.
1
Cette ligne de communication peut être la ligne fixe du téléphone, une connexion via un réseau coaxial ou hertzien, un réseau
d'entreprise ou encore une connexion mobile.
2
Historiquement s'entend, mais ces services se sont également développés en direction de la messagerie instantanée ou encore
de la vidéoconférence.
3
Cette liste est bien sûr loin d'être exhaustive. Régulièrement de nouvelles applications de l'Internet ayant pour objectif
d'améliorer la productivité, la performance et la visibilité de l'entreprise voient le jour.
4
SSCI : Société de Services et de Conseils en Informatique.
5
Outsourcing.
5
ISNET 76
Informatique de gestion
Simultanément à ce défi de gestion, elles ont dû affronter, de la part d'usagers et de
partenaires commerciaux de plus en plus dynamiques, des exigences toujours
croissantes en matière de quantité, qualité, actualité et disponibilité d'information.
Les départements informatiques furent soumis à une forte pression de la part de leur
management pour qu'ils augmentent et améliorent l'accès à l'information tant pour
6
7
les collaborateurs que pour les partenaires et clients de l'entreprise . Ces exigences
les ont conduits à réévaluer tant l'architecture du système d'information que la
sécurisation de l'accès à ce système. En effet, les parties en présence sont très
hétéroclites, jouissent de droits d'accès aux informations très variés et désirent par
ailleurs communiquer de manière dynamique et transparente.
Le dilemme8 qui se présente alors est le suivant : comment concilier à la fois une
diffusion à grande échelle de l'information avec les exigences de sécurité et de
confidentialité nécessaires à la préservation des secrets de l'entreprise et à la bonne
marche des affaires.
Accessibilité
Disponibilité
Utilisabilité
Expérience
Transparence
Contrôle
Consistance
Risque
Responsabilité
Coût
Fig. 1.1 : Le dilemme entre accessibilité de l'information et exigences de sécurité [Nor02].
L'enjeu majeur de cette situation pour l'entreprise est la maîtrise des coûts engendrés
par la mise en place d'une architecture ayant les caractéristiques requises pour
satisfaire à ces spécifications. La figure 1.1 illustre cette situation.
1.2 La sécurité
La sécurisation de l'accès aux informations vitales de l'entreprise, nous l'avons vu, est
une des composantes principales des défis que doit relever l'entreprise dont le
6
Intranet.
7
Extranet.
8
Désigné dans [Nor02] par le terme : the IT dilemma.
6
Informatique de gestion
ISNET 76
système d'information s'appuie sur des réseaux ouverts au public, en particulier
Internet.
Pour les services accessibles à travers le réseau, la principale mesure de sécurité
généralement mise en place est l'authentification de l'identité de l'utilisateur. Nous
ne discuterons pas ici des autres mesures qui doivent impérativement être prises,
parmi lesquelles on peut citer non exhaustivement : la sécurisation physique de
l'accès aux locaux hébergeant le matériel lui-même, le cryptage des informations
confidentielles transmises ainsi que la mise en place de pare-feux protégeant le
réseau de l'entreprise contre les intrusions malveillantes et les virus.
Le fournisseur du service doit s'assurer qu'un client9 qui a recours à ce service est un
utilisateur autorisé et non pas un imposteur. C'est dans ce contexte qu'interviennent
les concepts de nom d'utilisateur et de mot de passe ; en fournissant au service un
couple nom d'utilisateur/mot de passe valide, le client fait état de son identité et
prouve ainsi qu'il dispose des autorisations et des droits d'accès requis pour
bénéficier des fonctionnalités offertes par le service.
1.3 Les failles
Dans le contexte actuel, un utilisateur standard d'un réseau d'entreprise peut
posséder des dizaines d'identifications (voir : figure 1.2 ci-dessous) qu'il utilise pour
accéder aux divers sites, portails, applications et services qu'il emploie, tant pour
gérer ses affaires privées que pour accomplir les tâches de son cahier des charges
d'employé d'une entreprise.
Fig. 1.2 : Les multiples identifications d'un utilisateur.
9
Le client en question peut être un soit utilisateur physique soit un utilisateur virtuel, à savoir une application qui requiert des
informations de façon automatique en invoquant le service.
7
Informatique de gestion
ISNET 76
Pour chacune des applications avec lesquelles il interagit, il doit non seulement
définir un couple nom d'utilisateur/mot de passe, mais encore s'en souvenir. Il doit
de plus composer avec le fait que les règles imposées par les différents points d'accès
pour la définition de ces informations varient grandement. Ces variations peuvent
porter sur le nombre minimal de caractères nécessaires ou encore sur les
combinaisons de caractères alphabétiques et numériques ainsi que les changements
de casse imposées.
L'existence de ces différentes règles fait qu'il est dès lors pratiquement impossible,
pour des raisons de convenance et de facilité de mémorisation, de définir à chaque
fois le même couple nom d'utilisateur/mot de passe. La tentation est alors grande
pour l'utilisateur de noter ces informations d'identification, soit sous forme
manuscrite, soit sous forme électronique10, soit encore de les faire mémoriser par le
navigateur Internet de son poste de travail. Si de plus l'utilisateur est amené à
changer souvent de poste de travail, cette dernière solution aura pour effet de laisser
les traces de ces informations d'identification sur chacun des postes employés.
Ces comportements fautifs et inconsidérés des utilisateurs sont induits par la jungle
d'informations d'identification avec lesquels ils doivent composer tous les jours. Ils
créent ainsi des failles dans le système de sécurité, justement en raison du fait que la
plupart des applications auxquelles ils sont confrontés quotidiennement sont
sécurisées. Il devient dès lors clair que trop de sécurité tue la sécurité.
Si la multiplication des procédures d'identification que l'utilisateur doit subir tout au
long de la journée est éventuellement supportable pour un usager privé, elle est
contraire aux règles élémentaires de l'ergonomie, et, lorsque cet utilisateur est un
employé d'une entreprise, elle a tendance à le lasser et finit par le rendre nettement
moins productif.
1.4 Le Single Sign-On
Comme nous l'avons vu, l'interconnexion des systèmes dans les entreprises
complique singulièrement la tâche d'un utilisateur qui doit s'identifier auprès de
chaque application qu'il emploie pour effectuer sa tâche.
Lorsque l'application en cours d'utilisation en référence une autre dont elle requiert
un service ou des informations11, l'utilisateur doit également s'identifier auprès de
12
cette dernière . À chaque fois, il sera soumis à une procédure interactive
d'identification au cours de laquelle il va être amené à fournir des couples
nom d'utilisateur/mot de passe éventuellement différents.
L'administrateur du système devra quant à lui gérer des comptes ainsi que les droits
qui y sont associés pour chacune des applications employées dans l'accomplissement
de la mission de l'entreprise. Ces comptes devront être gérés de manière
coordonnée, de telle sorte que l'intégrité globale du système de sécurité soit
garantie. Le scénario que nous venons de décrire est illustré par la figure 1.3.
10
Ces informations peuvent aussi bien être mémorisées dans un simple fichier texte du poste de travail que sur un post-it
électronique déposé sur le bureau ou encore dans un PDA ou un téléphone portable.
11
Cette situation est illustrée sur la figure 1.3 où l'application du domaine 1 invoque un service de l'application du domaine 2.
12
Cette seconde identification peut être requise longtemps après le démarrage de la première application. Le système la
demandera au moment où l'application principale invoquera effectivement le service auprès de la seconde.
8
ISNET 76
Informatique de gestion
Une telle architecture est en général la conséquence de l'histoire de l'entreprise13 et
de l'informatisation progressive de ses diverses missions. Les divers composants du
système global ont été peu a peu assemblés et leur intégration s'est effectuée par
14
juxtaposition des différentes applications existantes ou nouvellement développées .
Domaine 1
Identification
Domaine 1
Informations
des comptes du
domaine 1
Application
Domaine 1
Domaine k
Utilisateur
Administrateur
du système
Domaine 3
Identification
Domaine k
Identification
Domaine 3
Identification
Application
Domaine
2
Domaine k
Application
Domaine 3
Application
Domaine 2
Informations
des comptes du
domaine 2
Domaine 2
Fig. 1.3 : Identification d'un utilisateur sur différents systèmes interconnectés.
La croissance de tels systèmes hétéroclites, la dégradation de l'ergonomie générale
pour l'utilisateur et la baisse du niveau de sécurité engendrée par la multiplication
des procédures d'identification ont favorisé le développement de nouveaux services
dont l'objectif est de favoriser la coordination et l'intégration des fonctions
d'identification et d'administration des comptes à travers l'ensemble des domaines
de gestion de l'entreprise. Un tel service est susceptible de rentabiliser réellement les
coûts d'exploitation en :
ƒ diminuant le temps passé par les utilisateurs à s'identifier auprès des différents
domaines et en réduisant les possibilités que cette opération échoue ;
ƒ améliorant considérablement la sécurité du système par le fait qu'un utilisateur
ne doit plus se rappeler de nombreux couples nom d'utilisateur/mot de passe ;
ƒ réduisant le temps que les administrateurs du système doivent consacrer à la
création et à la suppression des différents comptes ainsi qu'à la gestion des
droits qui y sont associés ;
ƒ augmentant l'intégrité du système de sécurité par le fait que les
administrateurs gèrent les comptes utilisateurs de façon globale en leur
attribuant de manière consistante les droits d'accès à l'ensemble des
ressources qui leur sont nécessaires.
13
Existence d'unLegacy System, c'est-à-dire d'un assemblage hétérogène d'applications développées progressivement durant
l'existence de l'entreprise et héritées du passé.
14
Nous pouvons même nous trouver face à des applications fonctionnant sur des plateformes matérielles différentes, mues par
des systèmes d'exploitation différents.
9
ISNET 76
Informatique de gestion
Ce service a été baptisé Single Sign-On en référence à la perception de l'impact
qu'en ont les utilisateurs finaux ; remarquons toutefois que l'aspect gestion des
comptes est tout aussi important que celui du confort de l'utilisateur. La figure 1.4
illustre le principe de fonctionnement de cette approche.
Identification
Domaine 1
Utilisateur
Informations
des comptes du
domaine 1
Application
Domaine 1
Domaine k
Domaine 3
Identification
Domaine k
Identification
Domaine 3
Identification
Application
Domaine
2
Domaine k
Application
Domaine 3
Application
Domaine 2
Informations
des comptes du
domaine 2
Système de gestion des comptes
Domaine 1
Administrateur
du système
Domaine 2
Fig. 1.4 : Single Sign-On d'un utilisateur sur un ensemble de systèmes interconnectés.
Dans ce contexte, l'utilisateur s'identifie une seule fois auprès du domaine sous le
contrôle duquel s'exécute l'application principale qu'il emploie. À cette occasion, il
peut être amené à fournir des informations supplémentaires qui prouveront qu'il
possède également les droits d'accès aux domaines secondaires auxquels son
application fera référence pour accomplir sa tâche. Ces informations sont transmises
au service de gestion du Single Sign-On qui se charge ensuite de l'authentification
automatique de l'utilisateur auprès de tous les domaines auprès desquels celui-ci
jouit de droits d'accès. Une relation de confiance a ainsi été établie entre le domaine
d'identification de l'utilisateur et ceux auxquels il accède par la suite.
Ce modèle simplifie grandement la tâche des administrateurs du système lors de la
gestion des comptes des utilisateurs. Ils ne sont en effet confrontés plus qu'à un seul
15
logiciel d'administration au moyen duquel les identifications pour l'ensemble des
domaines du système d'information de l'entreprise peuvent être gérées de façon
coordonnée et synchronisée.
D'un point de vue technique, les informations d'identification échangées entre le
domaine principal d'identification et les domaines secondaires en raison de la
relation de confiance devront être protégées d'une éventuelle interception,
particulièrement si ces informations transitent par des réseaux publics. Celles-ci
peuvent en effet être employés par des tiers malveillants pour s'introduire de façon
non autorisée dans le système d'information de l'entreprise.
15
Dans les versions les plus modernes de ce service, le logiciel d'administration des comptes utilisateurs s'appuie sur un service
d'annuaire qui, entre autres, répertorie et se charge de la gestion des informations concernant les utilisateurs.
10
Informatique de gestion
ISNET 76
À partir du moment où un tel service est déployé pour gérer l'ensemble des
identifications nécessaires aux applications de l'entreprise, l'employé peut être muni
d'un unique badge qui lui permettra non seulement de s'identifier auprès du système
d'information au moyen d'un lecteur idoine, mais aussi de commander les portes
d'accès sécurisées aux locaux de l'entreprise. Le danger de la communication
éventuelle, volontaire ou non, d'un mot de passe à un tiers est alors complètement
écarté.
1.5 Le cas d'Internet
L'approche que nous venons de décrire est pertinente tant du point de vue logistique
qu'économique. Elle est relativement facile à mettre en place pour le système
d'information d'une entreprise16 ou pour celui d'un ensemble d'entreprises faisant
17
partie d'un même groupe .
Nous avons vu plus haut que l'Internet prenait une place de plus en plus importante
dans la connexion des systèmes d'entreprises, ceci tant pour l'interaction avec les
collaborateurs que pour celle avec les clients et/ou les fournisseurs. Les applications
du système d'information informatisé d'une entreprise moderne sont également
largement déployées en s'appuyant sur le réseau des réseaux. Le problème de
l'identification se pose alors de manière encore plus accrue. En effet, les utilisateurs
doivent non seulement s'identifier auprès des applications de l'entreprise, mais aussi
auprès de portails, de fournisseurs de services, etc.
1.5.1 Intranet
Dans le cas de l'intranet, la situation est relativement semblable à celle du système
d'information interne à l'entreprise. En effet, l'ensemble des applications et services
ainsi que le service de gestion des comptes sont, en principe, sous le contrôle total
de l'entreprise. Il est donc relativement aisé de définir une architecture du système
adaptée aux besoins de gestion de l'identification des utilisateurs de telle sorte que
ces derniers n'aient besoin de s'identifier qu'une seule fois pour avoir accès aux
18
diverses ressources de l'intranet .
Une architecture possible du système pourrait être conçue en s'appuyant sur le
modèle suivant :
ƒ La gestion des accès est contrôlée par un service spécialisé : le gestionnaire
d'accès. Celui-ci est déployé sur un serveur Web ou encore hébergé par le
serveur d'applications. Il est responsable de contrôler de façon centralisée
l'ensemble des accès des utilisateurs aux divers services mis à disposition par
l'intranet. Pour la vérification des autorisations d'accès, celui-ci s'appuie sur un
16
Remarquons toutefois que l'impact économique du cas particulier de l'adaptation d'applications anciennes dont le
mécanisme d'authentification est profondément enterré dans le code peut être non négligeable, voire prohibitif.
17
Ce n'est pas toujours le cas bien sûr. Nous pourrions citer comme exemple certains grands groupes du luxe français qui sont
constitués d'une telle myriade d'entreprises différentes qu'il est pratiquement impossible pour eux d'intégrer les systèmes
d'information spécifiques de chaque enseigne. La grande mobilité du secteur fait par ailleurs que cette intégration n'est pas
toujours un objectif stratégique, bien au contraire.
18
L'adaptation d'une architecture de gestion des droits ad hoc héritée du passé et conçue sans dessein global peut toutefois se
révéler difficile.
11
ISNET 76
Informatique de gestion
système de gestion des comptes semblable à celui que nous avons décrit plus
haut19.
ƒ Les différents domaines et applications représentés dans les figures 1.3 et 1.4
sont également déployés sur des serveurs Web. À chaque domaine est associé
un contrôleur d'accès fonctionnant en collaboration avec le gestionnaire
d'accès. Le contrôleur d'accès est responsable de la reconnaissance d'un
utilisateur déjà identifié ainsi que de la vérification des droits d'accès de cet
utilisateur au domaine et/ou à l'application.
ƒ Lorsqu'un utilisateur est reconnu par le système, le gestionnaire d'accès lui
ouvre une session20 et ses informations d'identification ainsi que la description
de ses droits d'accès sont représentés par un jeton qui est en général implanté
au moyen d'un cookie.
ƒ Il n'est pas nécessaire que les serveurs Web mentionnés soient tous différents
ni qu'ils résident sur des machines différentes. L'architecture décrite peut très
bien résider sur une seule machine physique sous le contrôle d'un seul serveur
Web.
La figure 1.5 illustre la succession des opérations engendrées par une session de
travail d'un utilisateur s'identifiant dans un contexte de single sign-on au sein d'une
telle architecture.
Contrôleur d'accès
Utilisateur
Application 1
Contrôleur d'accès
Gestionnaire d'accès
Application 2
1. Demande d'accès
2. Jeton présent?
3. Redirection page login
4. Authentification et création du jeton
5. Redirection vers la page originale avec jeton
6. Répétition demande 1.
7. Jeton présent?
8. Autorise ou refuse l'accès
9. Autre demande d'accès
10. Jeton présent?
11. Autorise ou refuse l'accès
Fig. 1.5 : Succession des opérations dans un contexte single sign-on / intranet [PaB04]21.
19
Voir chapitre 1.4.
20
La session a en général une durée limitée.
21
Cette architecture est celle qui est mise en place par Java Sun Access Manager qui est le module du serveur d'applications de
Sun Microsystems responsable de la gestion des authentifications d'utilisateurs. Il ne s'agit toutefois pas d'une solution
originale ; la plupart des solutions de single sign-on déployées dans le cadre de solutions intranet et/ou internet fonctionnent en
se basant sur une architecture semblable.
12
Informatique de gestion
ISNET 76
Description du processus de la figure 1.5
1. L'utilisateur demande l'accès à une application de l'intranet auprès de
laquelle il faut s'identifier et pour laquelle il faut disposer de droits d'accès.
2. Le contrôleur d'accès installé sur le serveur Web hébergeant l'application
intercepte la requête de l'utilisateur et vérifie si celui-ci dispose d'un jeton
d'identification valide muni des droits d'accès adéquats.
3. En cas d'absence du jeton, le contrôleur d'accès redirige le navigateur Web
de l'utilisateur vers une page de login à laquelle l'url de la requête originale
est passée comme paramètre.
4. L'utilisateur s'identifie auprès du gestionnaire d'accès22. Celui-ci crée alors
une session pendant la durée de laquelle l'utilisateur est identifié avec tous
ses droits ainsi qu'un jeton mémorisant ces informations.
5. Le gestionnaire d'accès envoie le cookie contenant le jeton au navigateur de
l'utilisateur et redirige ce dernier vers l'url mémorisée et reçue lors des
opérations 3. et 4.
6. Suite à cette redirection, la requête d'accès initiale à l'application est à
nouveau effectuée.
7. Comme lors de l'opération 2., le contrôleur d'accès installé sur le serveur
Web hébergeant l'application intercepte la requête et vérifie que l'utilisateur
possède un jeton valide.
8. Si le jeton de l'utilisateur est muni des droits nécessaires pour accéder à
l'application, la page demandée est retournée à son navigateur, dans le cas
contraire, l'accès lui est refusé.
9. L'utilisateur peut ensuite effectuer des requêtes d'accès à d'autres
applications sous le contrôle du gestionnaire d'accès.
10. L'utilisateur est ici muni d'un jeton valide (obtenu lors de l'opération 4.), il
n'aura donc pas besoin de s'identifier à nouveau.
11. L'accès à l'application est autorisé ou refusé par le contrôleur d'accès en
fonction des droits dont dispose l'utilisateur.
Le processus peut se répéter tant que l'utilisateur est muni d'un jeton valide ; toutes
ses requêtes seront en effet accompagnées du jeton que le gestionnaire d'accès lui a
fourni lors de l'opération 4. Les différents contrôleurs d'accès associés aux
applications accessibles depuis l'intranet autoriseront ou refuseront l'accès en
fonction des droits associés au jeton, sans que l'utilisateur ait besoin de s'identifier à
nouveau.
Le processus se termine lorsque la session expire ou lorsque l'utilisateur effectue
explicitement une procédure de déconnexion.
La circulation du cookie contenant le jeton au travers du réseau est le point critique
du point de vue de la sécurité d'une telle architecture. On peut aisément se protéger
contre un vol du jeton en l'encryptant. Le gestionnaire d'accès peut également
émettre des jetons à usage unique pour chaque ressource dont il gère l'accès.
22
Cette identification peut s'effectuer en fournissant un couple (nom d'utilisateur, mot de passe) valide ou, comme nous l'avons
vu plus haut dans le chapitre 1.4, au moyen d'un badge, d'une smartcard, d'un certificat émis par le navigateur Web ou encore
par des moyens d'identification biométriques.
13
Informatique de gestion
ISNET 76
1.5.2 Extranet
La résolution du problème du single sign-on dans le cas de l'extranet est plus
problématique. Dans ce contexte, les applications auxquelles un utilisateur est
susceptible d'avoir accès pour effectuer sa mission sont en général détenues par des
entreprises différentes.
En effet, le gestionnaire d'un garage peut par exemple avoir accès aux applications
de sa banque pour effectuer et vérifier ses paiements, aux applications de son
entreprise pour émettre et gérer ses factures, à celles de plusieurs fournisseurs de
pièces détachées pour commander les pièces nécessaires à l'entretien des véhicules
dont il représente la marque, à celles des entreprises dont il assure l'entretien de la
flotte, etc.
Techniquement, le problème peut se résoudre en mettant en place une architecture
pratiquement identique à celle que nous avons décrite dans le chapitre 1.5.1
ci-dessus23. Le problème principal réside dans le fait que le gestionnaire d'accès est
l'élément central de cette architecture. Ce dernier doit en effet avoir la connaissance
des informations d'identité des différents utilisateurs employant les applications
contrôlées par les contrôleurs d'accès qui lui sont associés.
Or, les utilisateurs sont répartis dans les différentes entreprises qui mettent à
disposition les applications que nous avons mentionnées dans notre exemple. Ces
entreprises considèrent en général que les informations concernant leurs employés
sont vitales pour leur fonctionnement et, par conséquent, voient leur diffusion à des
tiers d'un assez mauvais œil. De même, elles répugnent assez naturellement à
renoncer au contrôle de la gestion de l'accès à leurs applications ou à déléguer
celui-ci.
Pour mettre en place une telle architecture, il sera nécessaire que les entreprises
partenaires concluent des accords bilatéraux, voire multilatéraux qui spécifieront
explicitement les conditions de mise à disposition des informations concernant les
utilisateurs, la répartition des responsabilités dans les gestion de ces informations
d'identité, les procédures de définition des droits d'accès, etc. S'il est certainement
possible d'envisager une telle solution lorsqu'on se trouve en présence de deux ou
trois entreprises différentes, il devient franchement impossible de le faire lorsque le
nombre de protagonistes augmente. La cause principale de l'impasse sera presque
toujours le problème de la mise à disposition d'informations cruciales pour le métier
de l'entreprise dans le cadre d'une association dont les participants sont souvent
également concurrents.
Remarquons tout de même que si les entreprises appelées à collaborer dans une
architecture de ce type font partie d'un même groupe, les principales objections
relevées ci-dessus ne sont plus pertinentes24.
23
Notons tout de même qu'un système plus sophistiqué que les cookies devra être mis en place pour la transmission et
l'échange des jetons contenant les informations d'identification et les différents droits d'accès. En effet, l'usage d'un cookie est,
de par la définition même du concept de cookie, limité à un seul nom de domaine Internet (DNS).
24
Certains groupes se prêtent bien sûr mieux que d'autres à de telles collaborations entre les différentes entreprises qui les
composent. Toutefois, lorsqu'on est en présence d'un secteur d'activité à forte mobilité, comme par exemple le luxe (LVMH,
Richemond, Prada, PPR, …), il est fort possible que cette collaboration aille à l'encontre de la stratégie générale du groupe,
principalement en raison des liens de dépendance qui sont alors, de facto, créés.
14
Informatique de gestion
ISNET 76
1.5.3 Au-delà de l'entreprise
Nous venons de montrer comment la multiplication des partenaires rendait
problématique la mise en commun d'informations en vue de gérer l'accès aux
différents sites concernés via une procédure de single sign-on. Les systèmes, les
réseaux physiques par lesquels transitent les informations et même parfois les postes
de travail sont différents ; le contrôle de tous ces éléments est réparti entre les
différents acteurs concernés.
De plus, la centralisation de la gestion de l'identification des utilisateurs d'une
application et/ou d'un système en augmente considérablement la vulnérabilité et la
sensibilité aux attaques extérieures. En effet, une telle architecture possède un
unique composant critique du point de vue de la sécurité : la base de données
mémorisant les informations d'authentification des utilisateurs25. Un viol de cette
base de données peut être exploité par des pirates pour effectuer des opérations non
autorisées sur l'ensemble des sites et applications contrôlés par le processus
d'identification26.
Toutes ces raisons mettent en évidence l'importance qu'il y a de concevoir un
nouveau modèle, s'affranchissant des contraintes imposées par une gestion
centralisée du processus d'identification.
25
Cette base de données contient non seulement les informations privées se rapportant aux différents utilisateurs du système,
mais également le ou les mots de passe qui leur sont associés ainsi que la description des droits d'accès aux différents sites et
applications du système dont ceux-ci disposent.
26
Single sign-on = single point of failure.
15
ISNET 76
Informatique de gestion
2 SPÉCIFICATIONS DE LIBERTY ALLIANCE
La Liberty Alliance est un consortium qui a été créé en décembre 2001 par un
groupe d'environ 30 entreprises. Leur objectif commun était de définir un ensemble
de bonne pratiques et de standards ouverts permettant une gestion fédérée de
l'identité et prenant en compte les besoins actuels et futurs des individus et des
entreprises dans un environnement où les applications et les services sont déployés
sur l'Internet27. Cet objectif a été atteint dès 2002, date de la publication des
premières spécifications définissant les fondations de la gestion de l'identité dans un
environnement hétérogène et distribué.
Depuis lors, de nombreuses entreprises, actives dans des domaines aussi divers que
les technologies de l'information, la finance, les télécommunications, les médias,
l'industrie ou encore les organisations gouvernementales, ont rejoint le consortium.
Celui-ci comprend actuellement plus de 150 entreprises.
2.1 Le concept d'identité
L'identité d'un individu n'est pas seulement définie par les nom, prénom et date de
naissance qu'il acquiert à sa venue au monde. Elle évolue au fur et à mesure de
l'interaction de l'individu avec la société qui l'entoure et les organisations
(administrations, entreprises, etc.) auxquelles il a recours. À ces contacts, elle
s'enrichit d'informations nouvelles, pertinentes pour ces interlocuteurs.
Utilisateur
Préférences
Nom: Jean DUPOND
e-mail: [email protected]
Identification
Passeport: 123456
Permis: A, B, F4
Fonction: directeur des RH
Musique: Jazz, Disco
Train: Silence, marche
Fumeur: oui
Langues: français, anglais
...
Fig. 2.1 : Les attributs définissant l'identité d'un utilisateur.
On distingue principalement les caractéristiques d'identification pures de celles qui
définissent des attributs plus informels tels que les goûts ou les préférences d'un
individu [LaA03]. Les caractéristiques d'identification sont définies par des
organismes gouvernementaux28, des entreprises29 et par la biométrie30 de l'individu
27
"The Liberty Vision : To enable a networked world in which individuals and businesses can more easily conduct transactions
while protecting the privacy and security of vital identity information" [LaB03].
28
Parmi celles-ci, on peut noter principalement le numéro de passeport, les différents permis de conduire détenus, le numéro
AVS ou encore le numéro de contribuable.
16
Informatique de gestion
ISNET 76
lui-même. Les préférences sont en général inhérentes à l'individu31, à son
comportement ou encore à son environnement32.
Un désignera par identité (d'un individu) l'ensemble des caractéristiques énoncées
ci-dessus33. Aucune entité, qu'elle soit réelle ou virtuelle, qui est en relation avec
l'individu n'en mémorise toutes les informations constitutives de l'identité. C'est la
nature de la relation que l'individu entretient avec l'entité qui détermine quelles sont
les informations pertinentes susceptibles d'être échangées entre les deux parties en
présence.
Les informations échangées devraient être réduites à un strict sous-ensemble
nécessaire et suffisant pour que la relation entre l'individu et l'entité puisse se
dérouler à la satisfaction des deux parties. Les raisons principales de cette restriction
sont la protection de la sphère privée et des considérations de sécurité.
2.2 Les objectifs
Les objectifs principaux poursuivis par les spécifications éditées par la Liberty Alliance
sont [Was05] :
ƒ de permettre aux utilisateurs d'un réseau d'employer une identité digitale en
assurant la protection de leur sphère privée ainsi que la sécurité de leurs
transactions ;
ƒ de permettre aux entreprises de gérer et d'administrer les relations qu'elles
entretiennent avec leurs clients sans intervention de tiers ;
ƒ de définir un standard ouvert de single sign-on qui permet aussi bien une
authentification décentralisée que l'obtention d'autorisations d'accès auprès
de plusieurs fournisseurs différents ;
ƒ de créer une infrastructure de gestion de l'identité en réseau qui prenne en
compte tous les dispositifs d'accès au réseau, actuels et émergents34.
Dans le monde de l'Internet, la protection de la sphère privée et le contrôle de
l'identité sont d'une importance capitale. D'un coté, les entreprises désirent avant
tout assurer la sécurité des transactions effectuées, de l'autre coté, les utilisateurs ont
des exigences ergonomiques telles que la simplicité d'emploi et l'accès rapide aux
informations. Il s'agit donc de définir un modus vivendi qui satisfait à la fois les
exigences des entreprises et celles des utilisateurs.
29
Les informations associées par les entreprises aux individus comprennent notamment le statut de l'employé au sein de
l'entreprise, sa fonction ou encore le nom d'utilisateur qui lui est attribué pour accéder au système d'information de
l'entreprise.
30
Les informations biométriques usuellement répertoriées sont les empreintes digitales et/ou rétiniennes ainsi que l'ADN de
l'individu.
31
Parmi celles-ci, on peut trouver les préférences musicales, celles relatives à la position préférée de l'individu dans un train (sens
de la marche ou non, fumeur ou non fumeur, wagon silence, etc.), l'historique de ses achats auprès d'une entreprise de vente
en ligne, son dossier médical, etc.
32
Numéros de téléphone, adresse, langues comprises et parlées, type de terminal mobile employé, etc.
33
Voir aussi figure 2.1.
34
En particulier, cette gestion ne devrait pas nécessiter des modifications du logiciel d'accès à Internet employé (et devrait donc
être compatible avec les browsers du marché).
17
Informatique de gestion
ISNET 76
La réponse de Liberty Alliance à ces problèmes est la définition du concept
d'identité réseau fédérée35. Ce concept permet principalement de définir une
association entre les différentes identités qu'un utilisateur peut posséder au sein d'un
réseau.
2.3 Identité réseau fédérée
Le concept d'identité fédérée procure aux utilisateurs un processus d'identification
simplifié pour employer les ressources pour lesquelles ils bénéficient de droits
d'accès. Un stockage centralisé des informations personnelles d'identité n'est plus
nécessaire ; la vulnérabilité des systèmes aux attaques malicieuses s'en trouve ainsi
diminuée.
Un utilisateur s'identifie une seule fois et peut contrôler les attributs de son identité36
qui sont mémorisés par les différents fournisseurs de services. Ceux-ci ne stockent
donc que les informations qui sont strictement nécessaires à la fourniture du service
demandé. L'utilisateur bénéfice ainsi d'un confort d'utilisation des systèmes accru
ainsi que d'un contrôle fin des informations qu'il divulgue.
Les fournisseurs de services peuvent aisément personnaliser l'interaction qu'ils
entretiennent avec l'utilisateur en fonction des informations d'identité recueillies.
Quant aux entreprises, elles peuvent mener des transactions commerciales avec des
clients, des partenaires et des employés formellement authentifiés. Ils ont ainsi la
garantie que leurs interlocuteurs sont bien ceux qu'ils prétendent être.
2.4 Cercle de confiance
Le concept de cercle de confiance37 définit un ensemble de fournisseurs de services
qui partagent des identités réseau et qui sont liés par un contrat spécifiant les
conditions sous lesquelles ces identités sont partagées. Les règles principales
régissant ce partage sont [LaA03] :
ƒ il existe un contrat clair entre les fournisseurs de services comme mentionné
ci-dessus ;
ƒ les utilisateurs sont avertis quelles sont les informations les concernant qui sont
mémorisées par le système et doivent donner un accord formel autorisant leur
stockage ;
ƒ la notification à l'utilisateur et son accord sont mémorisés par le système en
vue d'audit.
Un utilisateur qui s'identifie auprès d'un fournisseur de services faisant partie d'un
cercle de confiance sera automatiquement reconnu par les autres membres ayant
adhéré au cercle. De plus, seules les informations strictement nécessaires à la gestion
des droits de l'utilisateur seront mémorisées localement auprès des autres membres
du cercle de confiance.
35
Federated network identity.
36
Voir chapitre 2.1.
37
Il est à noter que ce concept n'a rien de nouveau. En effet, c'est exactement le type d'accord qui liait à l'origine les différents
partenaires de la Lloyd's de Londres.
18
Informatique de gestion
ISNET 76
Une session d'un utilisateur à partir du poste de travail de son entreprise peut alors
donner lieu à différents cas d'utilisation. La figure 2.2 illustre le processus qui se
déroule lors de la première connexion d'un utilisateur dans un environnement
fédéré.
Fig. 2.2 : Première connexion d'un utilisateur dans un environnement fédéré.
Première connexion d'un utilisateur (figure 2.2) :
0. Un contrat régissant les conditions du partage d'identité des utilisateurs est
conclu entre l'entreprise est ses divers partenaires.
1. Un utilisateur se connecte via son browser Internet depuis un poste de travail
de l'entreprise, usuellement en fournissant au système un nom d'utilisateur
et un mot de passe.
2. Le serveur d'authentification vérifie les informations de connexion fournies
par l'utilisateur. S'il est reconnu, il est considéré comme authentifié par le
système.
3. L'entreprise faisant partie d'un cercle de confiance, le serveur d'identité
permet à l'utilisateur de choisir s'il désire recevoir des propositions de
fédération de la part des partenaires lorsqu'il s'identifiera auprès d'eux.
4. Si l'utilisateur accepte de recevoir ces propositions, le fait est signalé aux
autres membres du cercle de confiance.
5. L'utilisateur étant authentifié, il peut travailler normalement en ayant recours
aux services du système de son entreprise.
Les étapes 3. et 4. ci-dessus n'ont lieu que lors de la première connexion d'un
utilisateur et ne se dérouleront plus lors de ses connexions ultérieures.
Une fois que l'utilisateur est authentifié par le système de l'entreprise, il peut être
amené au cours de son travail à s'identifier auprès de l'un ou l'autre des partenaires
19
Informatique de gestion
ISNET 76
faisant partie du même cercle de confiance38. Ce cas d'utilisation est illustré par la
figure 2.3.
Fig. 2.3 : Première connexion auprès d'un partenaire du même cercle de confiance.
Première connexion auprès d'un partenaire du même cercle de confiance (fig 2.3) :
0. L'utilisateur a été authentifié par le système de l'entreprise.
1. L'utilisateur se rend sur le site d'un partenaire, soit explicitement, soit en
suivant un hyperlien.
2. Le partenaire gère lui-même un ensemble d'utilisateurs ayant divers droits
d'accès à son système. Il demande à l'utilisateur de fournir la paire nom / mot
de passe par laquelle il le reconnaît39.
3. Le partenaire vérifie les informations de connexion et authentifie l'utilisateur.
4. Comme cet utilisateur a autorisé les partenaires à lui proposer la fédération
de ses identités, cette proposition est émise par le partenaire. Sa réponse est
enregistrée.
5. L'utilisateur est authentifié normalement et peut recourir aux services offerts
par le système du partenaire (il reste bien sûr authentifié également auprès
du système de l'entreprise). Ces services peuvent être personnalisés en
fonction du profil enregistré auprès du partenaire.
L'utilisateur est maintenant reconnu réciproquement par les systèmes de l'entreprise
et du partenaire. Lors d'une session ultérieure, lorsque l'utilisateur (après s'être
identifié auprès du système de son entreprise) essayera de se connecter au système
38
En se rendant explicitement sur le site du partenaire ou en suivant un hyperlien d'une page Internet.
39
En général, cette paire est différente de celle que l'utilisateur a fourni au système de son entreprise.
20
Informatique de gestion
ISNET 76
du partenaire, celui-ci le reconnaîtra sans autre forme de procès et les étapes 2., 3. et
4. décrites ci-dessus ne seront plus effectuées. L'utilisateur a également la possibilité,
à tout moment, de renoncer à la fédération.
Les systèmes concernés se notifient réciproquement les déconnexions locales de
l'utilisateur et ce dernier a la possibilité d'effectuer une déconnexion globale de tous
40
les systèmes auprès desquels il est identifié .
La sécurité est assurée par le fait qu'à aucun moment, les systèmes de l'entreprise et
du partenaire n'échangent effectivement des informations d'identité41 de l'utilisateur.
Celui-ci est représenté dans la fédération par un pseudonyme qui l'identifie. La
protection de la sphère privée de l'utilisateur est assurée par le fait que chacun des
partenaires ne mémorise que les informations qui concernent strictement
l'interaction de l'utilisateur avec leur système.
2.5 L'architecture
Dès le départ du projet, Liberty Alliance a défini une architecture modulaire générale
des différentes spécifications envisagées dans le but de fixer les grandes lignes
directrices du projet d'une part, dans celui de fournir un cadre cohérent et global
dans lequel les futures versions pourrons s'inscrire. Cette architecture est illustrée par
la figure 2.4.
LIBERTY IDENTITY
FEDERATION
FRAMEWORK
(ID-FF)
LIBERTY IDENTITY SERVICES
INTERFACE SPECIFICATIONS
(ID-SIS)
Instanciation de l'implémentation
technique définie par ID-WSF
Gestion de la fédération
d'identités
LIBERTY IDENTITY WEB
SERVICES FRAMEWORK
(ID-WSF)
Interopérabilité des services à
utilisateur authentifié
STANDARDS EXISTANTS (SAML, SOAP, HTTP, WSS, etc.)
Fig. 2.4 : Architecture modulaire générale [LaA03].
L'ensemble des spécifications s'appuie sur des standards existants ; l'idée étant
d'adopter et d'étendre des standards largement présents sur le marché plutôt que
d'en définir de nouveaux, propriétaires et incompatibles avec l'existant. Le projet
40
Global Logout.
41
Au sens défini dans le chapitre 2.1.
21
Informatique de gestion
ISNET 76
s'appuie donc sur les résultats des travaux de spécification de standards menés par
OASIS42, W3C43 et IETF44.
Le module ID-FF est chargé de la gestion de la fédération d'identités comme décrit
plus haut45. Il peut être déployé sans la présence des autres modules et peut
fonctionner en collaboration avec des systèmes d'authentification existants.
Le module ID-WSF définit un framework permettant de créer, de découvrir et de
consommer des Web services communiquant avec des utilisateurs (ou des services)
authentifiés. Il s'agit de la spécification d'une couche de base ayant recours à l'ID-FF
pour gérer l'authentification et sur laquelle s'appuie ID-SIS.
Le module ID-SIS est un ensemble de spécifications qui définissent comment
construire des services inter opérables se basant sur ID-WSF. La mise à disposition de
services tels qu'un agenda partagé, la géo location ou encore des systèmes d'alertes
est envisageable.
2.5.1 Le module ID-FF
Dans la présente étude, nous nous intéressons principalement aux fonctionnalités
offertes par le module ID-FF. Il s'agit principalement de46 :
ƒ Opt-in Account Linking : le mécanisme de fédération.
ƒ Simplified Sign-On : identification unique d'un utilisateur faisant partie d'un
cercle de confiance et entre cercles de confiance.
ƒ Fundamental Session Management : définition et communication du type
d'authentification d'un utilisateur entre les systèmes d'un cercle de confiance ;
déconnexion globale47.
ƒ Affiliations : proposition aux utilisateurs de recevoir les offres de fédération au
cours de la navigation entre systèmes d'un cercle de confiance.
ƒ Anonymity : possibilité pour un système d'obtenir des attributs concernant un
utilisateur sans connaître son identité48.
Toutes ces fonctions sont nécessaires pour mettre en œuvre l'ensemble des
mécanismes décrits au chapitre 2.4.
2.5.2 Autres modules
Les modules ID-WSF et ID-SIS définissent des fonctionnalités qui permettront de
développer les capacités de la fédération d'identité, en particulier en y incluant les
42
OASIS : Organization for the Advancement of Structured Information Standards (http://www.oasis-open.org).
43
W3C : World Wide Web Consortium (http://www.w3.org).
44
IETF : Internet Engineering Task Force (http://www.ietf.org).
45
Voir chapitres 2.3 et 2.4.
46
Les termes anglais sont employés dans la liste pour assurer l'univocité de désignation.
47
Global logout.
48
Par exemple, au moment de la connexion d'un utilisateur à un système, celui-ci peut demander au système auprès duquel cet
utilisateur est authentifié si cet utilisateur a accepté de recevoir les offres de fédération.
22
Informatique de gestion
ISNET 76
Web services. Ils n'ont pas besoin d'être déployés pour gérer la fédération d'identités
elle-même. Nous ne les décrirons donc pas ici.
23
Informatique de gestion
ISNET 76
3 CONFORMITÉ DES IMPLANTATIONS
La multiplication des produits offerts sur le marché par de nombreux fournisseurs de
logiciels49 pose la question cruciale de la conformité aux spécifications des
implantations proposées.
3.1 Liberty Interoperable™
Pour résoudre ce problème, les membres du consortium Liberty Alliance ont défini
dès 2003 un programme de certification : Liberty Interoperable™. L'objectif de ce
programme est de mettre à la disposition des fournisseurs de solutions un
environnement dans le cadre duquel la conformité de leur produit aux spécifications
peut être validée.
Les membres des sociétés candidates à la certification doivent passer différents tests
basés sur des scripts et des scénarios publiés sur le site Internet de Liberty Alliance50
et élaborés par un groupe d'experts désignés par le consortium. Ces tests sont
organisés en events regroupant différents constructeurs et sont organisés plusieurs
fois par année.
3.2 Tests de conformité
Les tests de conformité sont organisés par Liberty Alliance et durent en général une
semaine au cours de laquelle les sociétés candidates à la certification doivent
démontrer leur conformité aux spécifications d'une part, l'inter opérabilité de leur
produit d'autre part. Le programme de tests stipule également que les
fonctionnalités de base doivent être accomplies dans divers contextes ressemblant à
de véritables déploiements du produit.
La démonstration de l'inter opérabilité doit être effectuée avec deux autres produits
d'entreprises concurrentes participant au programme de certification. Ces
concurrents sont choisis au hasard. La réussite du test est certifiée de façon croisée
par les paires d'entreprises qui signent un protocole standard attestant du succès ; le
protocole est également validé par le groupe d'experts de Liberty Alliance et
complété par un journal des messages échangés qui constitue la trace du test.
La confidentialité nécessaire à la conduite des affaires est garantie par le fait
qu'aucun observateur autre que les membres de l'équipe de test de l'entreprise
candidate et ceux de l'organisation n'est admis à ces séances.
3.3 Produits inter opérables
Les produits qui ont passé avec succès les tests de conformité peuvent afficher le
logo de la figure 3.1. Une liste des produits ayant obtenu cette certification est
49
Le nombre de fournisseurs de logiciels qui proposent des solutions de fédération d'identité augmente sans cesse ; il approche
bientôt de la centaine.
50
Voir http://www.projectliberty.org/liberty/liberty_interoperable/documents.
24
Informatique de gestion
ISNET 76
disponible sur le site de Liberty Alliance51. À ce jour, tous tests confondus, plus de
soixante-dix produits ont obtenu cette certification.
Fig. 3.1 : Logo certifiant la conformité du produit aux spécifications.
Les clients qui font l'acquisition d'un produit muni de ce logo ont l'assurance que
celui-ci :
ƒ est conforme aux spécifications de Liberty Alliance ;
ƒ sera maintenu conformément aux standards industriels de qualité ;
ƒ est effectivement la version qui a passé les tests de certification.
Si un problème à propos de la qualité ou de la conformité du produit survient dans
les deux ans qui suivent l'obtention du logo, Liberty Alliance se réserve le droit
d'exiger de la société éditrice de remédier au problème dans un délai de soixante
jours, sous peine de retrait de la certification.
Ce programme permet ainsi à un client de choisir un produit en toute connaissance
de cause et d'envisager une stratégie à moyen terme pour son déploiement au sein
de l'entreprise. Il a ainsi la garantie que le choix qu'il a effectué ne sera pas
rapidement obsolète et est assuré que la solution qu'il envisage, ce qui est
fondamental, sera relativement pérenne.
51
Voir http://www.projectliberty.org/liberty/liberty_interoperable/interoperable_products.
25
ISNET 76
Informatique de gestion
4 MISE EN ŒUVRE
Nous examinerons tout d'abord, en toute généralité, les principaux concepts qui sont
mis en jeu lors de la mise en œuvre d'une fédération d'identité, puis nous
recenserons les composants matériels et logiciels nécessaires, enfin, nous définirons
comment, dans le cas particulier d'une petite ou moyenne entreprise52, ces concepts
et ces composants doivent être implantés.
4.1 Concepts
Pour la mise en œuvre de la fédération d'identité, on distingue trois acteurs
principaux : le fournisseur de service, le fournisseur d'identité et le client.
Fournisseur
d'identité
Échange
d'informations
Fournisseur de
service
Client
Redirection
Fig. 4.1 : Les acteurs de la fédération d'identité.
4.1.1 Le fournisseur de service
Le fournisseur de service53 est l'organisation, l'entreprise qui fournit un certain
nombre de services en ligne aux utilisateurs ; l'accès à tout ou partie de ces services
n'est donné qu'à des utilisateurs authentifiés. Le fournisseur de service procède à
cette authentification, soit via son propre service d'authentification s'il est
responsable de la gestion de l'identification principale de l'utilisateur, soit via un
fournisseur d'identité dans le cas contraire.
Dans le cadre d'une fédération, les identités ne sont pas centralisées, chaque
fournisseur de service est libre de les gérer comme il l'entend. La mise en place d'une
fédération nécessite la coopération de différents fournisseurs de service et
notamment, que chacun accorde sa confiance aux autres puisqu'il délègue l'accès à
52
PME.
53
Service Provider (SP) dans la terminologie Liberty Alliance.
26
Informatique de gestion
ISNET 76
son application au serveur d'identité. Ces questions se règlent de manière
contractuelle54.
Si par exemple, le fournisseur de service est une compagnie d'aviation qui propose
une application Internet de vente de ses billets. Cette compagnie peut avoir envie de
s'associer avec des hôtels et des entreprises de location de véhicules de sorte que ses
clients puissent facilement naviguer de l'application de vente de billets vers celles des
entreprises partenaires, sans avoir besoin de s'identifier à nouveau.
La compagnie d'aviation devra conserver les coordonnées de ses clients (nom,
adresse, numéro de carte de crédit, etc.) et les protéger par un login55. Chaque
ensemble d'informations caractérisant un client et identifié par un login est
mémorisé et constitue l'identité au sens de la compagnie d'aviation.
Remarquons que suivant le type de fournisseur de service, l'identité d'un utilisateur
sera constituée d'informations différentes ; en effet, l'entreprise partenaire de
location de véhicules devra connaître le type de permis de conduire dont dispose le
client et d'autres informations encore. L'utilisateur du système a alors deux identités
distinctes, l'objectif de la fédération étant justement de les mettre en relation.
4.1.2 Le fournisseur d'identité
Le fournisseur d'identité56 est le serveur qui fait le lien entre les différentes identités
des fournisseurs de service ayant conclu un accord de partenariat. C'est au
fournisseur d'identité que s'adressent les fournisseurs de service lors de la phase
d'authentification pour déterminer si un utilisateur a déjà été identifié par un autre
partenaire de la fédération57.
Lorsqu'un fournisseur de service veut faire partie d'une fédération, il doit
obligatoirement mettre en place un fournisseur d'identité pour gérer cette
fédération.
4.1.3 Le client
Le client58 des services offerts par les fournisseurs de service d'un cercle de confiance
possède des identités chez chacun d'eux (et donc autant de logins). En fédérant ces
identités, il va pouvoir éviter de s'identifier auprès de chacun de ces fournisseurs de
service. Il lui suffira d'être identifié auprès de l'un d'entre eux pour que les autres
59
arrivent à le reconnaître .
Le client est généralement matérialisé par un browser via lequel il accède aux
informations des fournisseurs de service qui l'intéressent. Les requêtes
d'authentification effectuées par l'application des fournisseurs de service sont
54
Le sujet des dispositions contractuelles n'est pas traité par Liberty Alliance. Elles doivent faire partie du business modèle mis en
place par le fournisseur de service.
55
Couple identification / mot de passe.
56
Identity Provider (IDP) dans la terminologie Liberty Alliance.
57
Pour une description détaillée du fonctionnement, voir chapitre 2.4.
58
Personal dans la terminologie Liberty Alliance.
59
Pour une description détaillée du fonctionnement, voir chapitre 2.4.
27
Informatique de gestion
ISNET 76
redirigées vers le ou les fournisseurs d'identité concernés qui, en réponse,
transmettent les informations d'identification strictement nécessaires.
4.2 Composants matériels et logiciels nécessaires
Le déploiement d'une application Internet au sein d'une fédération d'identité
requiert un certain nombre de ressources matérielles et logicielles. Celles-ci devront
être installés sur les divers sites des membres de la fédération.
4.2.1 Logiciel
Le premier composant nécessaire est bien sûr l'application Internet fournissant le
service en relation avec le métier de l'entreprise et que celle-ci désire intégrer à une
fédération d'identité. Si l'application n'a pas été conçue avec ce dernier objectif, il
faudra en principe la modifier pour que l'identification de l'utilisateur s'effectue via le
fournisseur d'identité.
La mise en place du système de fédération d'identité lui-même s'effectue à travers
l'installation d'un serveur d'identité respectant les spécifications de Liberty Alliance.
Chaque membre de la fédération devra déployer un serveur d'identité respectant ces
spécifications. Il n'est évidemment pas nécessaire que les partenaires de la fédération
mettent en œuvre le même logiciel ; en effet, si les deux logiciels sont certifiés par
Liberty Alliance, alors ils sont par définition compatibles entre eux60.
Le fournisseur de service doit installer un serveur d'identité, ce qui aura pour
conséquence d'installer un certain nombre de Web services que l'application Internet
va employer pour déterminer si l'utilisateur a déjà été authentifié ou si elle doit
présenter une page d'identification. De même, si l'application identifie elle-même
l'utilisateur, elle doit le signaler à son serveur d'identité via les Web services qui ont
été installés.
Le client n'a besoin que d'un simple navigateur Internet par l'intermédiaire duquel il
accède aux services offerts par les membres d'une fédération d'identité. En effet, sur
le poste du client, la mise en œuvre se résume à l'emploi de fonctionnalités
disponibles depuis fort longtemps pour tous les browsers, à savoir la redirection http
et les cookies. De ce fait, le client peut se trouver en n'importe quel lieu muni d'une
connexion Internet.
4.2.2 Matériel
Concernant le matériel, le fournisseur de service utilise en principe une machine
comme serveur d'application pour faire fonctionner ses services propres et les
services qu'elle met à disposition de la fédération, une seconde machine
fonctionnant comme serveur d'identité et enfin un serveur Internet donnant l'accès à
ses services. Ces rôles peuvent bien évidemment être remplis par une seule et unique
machine physique, tout comme ils peuvent être répartis sur deux machines dans
n'importe laquelle des trois combinaisons61 possibles.
60
Voir chapitre 3.3.
61
Si SA : serveur d'application, IDP : serveur d'identité et SI : serveur Internet, on peut combiner (SA+IDP)(SI) ou (SA+SI)(IDP) ou
encore (SA)(IDP+SI).
28
Informatique de gestion
ISNET 76
Cependant, une même machine physique peut jouer plusieurs rôles dans des
contextes différents. En effet, il est tout a fait possible que la machine héberge une
configuration faisant d'elle un serveur d'identité dans un cercle de confiance donné
et en même temps fonctionner comme fournisseur de service dans un autre cercle de
confiance.
Le client enfin n'a besoin que d'un poste de travail sur lequel il peut faire fonctionner
un navigateur Internet.
4.3 Implantation
Des expériences de fédération d'identité ont déjà été mises en œuvre ou sont en
cours de déploiement dans de très grands groupes d'entreprises parmi lesquels on
peut citer, non exhaustivement, France Télécom62 et General Motors63.
France Télécom est principalement un fournisseur d'accès. Dans son cas, la
fédération d'identité est mise en œuvre pour faciliter l'accès de ses clients à des
services fournis par d'autres membres du groupe, principalement ses filiales de
e-commerce. En fédérant les identités de ses abonnés avec celles de ses filiales,
France Télécom espère ainsi encourager ses clients à naviguer – et donc à acheter –
sur les sites de ses filiales plutôt que sur ceux de ses concurrents.
En ce qui concerne General Motors, la fédération d'identité est principalement
déployée dans le cadre du système intranet de l'entreprise ainsi qu'en interaction
avec des services externes que General Motors met à la disposition des ses employés.
Parmi ceux-ci, on peut citer le fournisseur d'accès AOL : les identifications AOL des
employés de General Motors sont fédérées avec celles de l'intranet de la société. Un
employé passe ainsi de façon transparente des activités relevant du domaine de sa
sphère privée – surfer sur le net – au monde de l'entreprise64.
D'autres consortiums ont également envisagé la fédération d'identité comme
solution aux problèmes posés par le fait que leur informatique est composée d'un
grand nombre de systèmes disparates et non compatibles65. C'est par exemple le cas
de l'administration publique de la République Française [Min02]. Dans un tel
environnement, les systèmes sont tout d'abord reliés entre eux par un réseau, puis la
fédération d'identité est employée pour mettre en place, sur chaque système
individuel, des services disponibles sur Internet auxquels ont peut ensuite accéder
66
sans peine depuis n'importe quelle partie du système .
62
Voir [Fra04].
63
Voir http://project-liberty.org/about/enabledproducts.php
64
À ce propos, on pourrait d'ailleurs se poser tout un ensemble de questions relevant de l'éthique ; ces questions dépassent le
cadre de cette étude.
65
Cette situation est beaucoup plus répandue qu'on ne pourrait le croire. Cette multiplication des systèmes est en général liée à
l'historique de la création de l'entreprise et de son développement, sur plusieurs régions et/ou pays, en filiales indépendantes,
collaborant toutes avec la maison mère.
66
On voit donc que, même détournée de sa vocation première qui est de gérer des communautés d'utilisateurs, la fédération
d'identité trouve des applications dans l'intégration de l'informatique d'entreprise.
29
Informatique de gestion
ISNET 76
4.3.1 La cible
Les grandes entreprises évoquées dans le précédent chapitre disposent en général
d'un département informatique conséquent, équipé d'une grande quantité de
matériel performant et au sein duquel travaillent plusieurs dizaines, voire plusieurs
centaines de collaborateurs.
Nous nous proposons de concevoir une solution adaptées aux petites et moyennes
entreprises67 du tissu économique local. On sait que ce type d'entreprises – moins de
250 employés – représente la très grande majorité des entreprises suisses68. Parmi ces
entreprises, celles qui nous intéressent tout particulièrement sont celles qui gèrent
elles-mêmes leur informatique. Une enquête réalisée en 200569 auprès de 138
entreprises de la région genevoise a mis en évidence que 64% des entreprises
interrogées possédaient un département informatique [Pag05]. Une autre étude,
réalisée en 200270 et portant sur 465 entreprises de la Suisse Romande, a montré que
38% des entreprises consultées faisaient réaliser leur site Internet par leur propre
équipe d'informaticiens ; de plus, pour 21% des entreprises, le site Internet est relié
au système d'information de l'entreprise [Leh02]. Nous considérerons donc des
entreprises dont le système informatique correspond à l'architecture de la figure 4.2.
Fig. 4.2 : L'architecture du système informatique des entreprises considérées.
Remarquons que la figure 4.2 illustre les différents éléments conceptuels que sont les
serveurs de données, d'applications et Internet par trois machines physiques
différentes. Ces trois fonctions peuvent bien sûr être remplies par une unique
machine physique, tout comme chacune d'elles peut être remplie par plusieurs
machines physiques. Tout va dépendre de la taille de l'entreprise et de la puissance
de calcul nécessitée par les différentes applications métier qu'elle fera fonctionner
67
PME.
68
L'Office fédéral de la statistique a déterminé lors de son dernier recensement qui date de 2001 que largement plus de 90%
des entreprises étaient des PME (http://www.bfs.admin.ch). Cette observation doit tout de même être tempérée par le fait que
plus de 80% des entreprises sont des entités employant moins de 10 personnes.
69
Enquête effectuée dans le cadre d'un travail de diplôme à la HEG Genève et portant sur l'ASP.
70
Étude réalisée par l'Inforge, HEC Lausanne, PSINet et le GRI et portant sur l'utilisation de l'Internet dans les entreprises
romandes.
30
Informatique de gestion
ISNET 76
avec son système. Notons enfin que divers éléments de sécurité, tels que des
pare-feux71, doivent également être mis en place et ne sont pas représentés sur ce
schéma.
4.3.2 Architecture du système
Comme nous l'avons vu plus haut, pour qu'un fournisseur de service puisse faire
partie d'une fédération, il est nécessaire de modifier l'architecture du système et d'y
adjoindre un serveur d'identité. La figure 4.3 illustre cette nouvelle architecture du
système de l'entreprise.
Fig. 4.3 : La nouvelle architecture du système.
Comme nous l'avons déjà mentionné, le serveur d'identité n'est pas forcément
matérialisé par une machine physique distincte des autres. Cette fonction peut tout à
fait être assumée par une des autres machines physiques du site.
4.3.3 Accès aux services
Les services délivrés par un tel système sont ceux qui correspondent au métier de
l'entreprise. Très souvent, faute d'accords avec des partenaires potentiels, ces
services sont strictement réservés aux employés et ne sont donc disponibles que
depuis une connexion effectuée depuis un poste de travail du réseau local de
l'entreprise.
Si l'activité principale de l'entreprise consiste à effectuer du commerce électronique
en ligne ou une activité analogue impliquant des transactions financières telles que
des paiements, une partie des utilisateurs du système s'y connecte depuis l'extérieur
de l'entreprise, via Internet. Deux cas de figure peuvent alors se présenter :
ƒ Chaque paiement donne lieu à une transaction sécurisée au cours de laquelle
le client transmet ses informations d'identité personnelles telles que l'adresse
de livraison et le numéro de sa carte de crédit.
71
Firewall.
31
Informatique de gestion
ISNET 76
ƒ L'entreprise gère, pour chacun de ses clients, un login formé d'une paire
identification / mot de passe à laquelle les informations d'identité personnelles
sont associées. Lors d'une transaction, seul le login est fourni par le client, le
système se chargeant de retrouver les informations qui y sont associées.
La première solution a l'inconvénient que le client doit fournir ses informations
personnelles chaque fois qu'il effectue une transaction avec l'entreprise ; de plus, des
informations confidentielles telles que le numéro de carte de crédit seront transmises
lors de chaque transaction, augmentant ainsi les risques de vol.
Pour la seconde solution, l'entreprise devra gérer des identifications pour ses clients
auxquelles elle associera les informations d'identité personnelles. Cette solution est
plus ergonomique pour le client qui doit saisir moins d'information lors de chaque
transaction ; elle est plus sûre également, puisque les informations confidentielles ne
sont transmises qu'une seule fois.
4.3.4 Authentification
Pour pouvoir faire partie d'une fédération d'identité, le système de l'entreprise doit
impérativement authentifier ses utilisateurs. Les utilisateurs doivent être authentifiés
au niveau du système de l'entreprise, de telle sorte que cette authentification soit
valide pour l'ensemble des applications auxquelles les utilisateurs ont accès. Ces
utilisateurs sont bien sûr les employés de l'entreprise, mais également les clients de
celle-ci, si ces derniers ont accès au système de l'entreprise par l'intermédiaire
d'Internet72.
Si aucun système d'authentification n'est mis en place, celui-ci pourra être pris en
charge par le serveur d'identités que nous avons ajouté au système. Si un système
centralisé d'authentification existe déjà, celui-ci pourra s'intégrer à la nouvelle
configuration.
Si par contre les identifications s'effectuent au coup par coup, sous la responsabilité
individuelle de chacune des applications fournissant les services, ces applications
devront être modifiées pour s'intégrer à une authentification centralisée.
4.3.5 Logiciel
De nombreux produits conformes aux spécifications et qui ont donc obtenu une
certification de Liberty Alliance sont disponibles sur le marché. Parmi ceux-ci, nous
suggérons d'employer Sun Java™ System Access Manager, car il s'intègre
relativement facilement à la plupart des plates-formes du marché et qu'il est possible
d'en obtenir des versions gratuitement pour effectuer des développements et tester
des configurations73. De surcroît, Sun Microsystems™ étant l'initiateur et l'un des
acteurs et animateurs principaux du consortium Liberty Alliance, ce choix garantit
une implantation la plus conforme possible des spécifications ; on peut compter enfin
sur le fait que, étant donné la position de Sun Microsystems™, les évolutions des
spécifications de Liberty Alliance seront intégrées rapidement dans leurs produits.
72
Notons que toute la partie du site Internet qui représente la vitrine de l'entreprise peut rester en accès libre. Seuls les accès
aux services sécurisés doivent être munis d'un système d'authentification.
73
C'est uniquement lorsqu'on décide d'en faire une exploitation commerciale qu'il est nécessaire d'acheter le produit.
32
Informatique de gestion
ISNET 76
Ce système permet de gérer les identifications de manière centralisée, ainsi que la
fédération d'identité. Il fait partie de la suite Sun Java™ Entreprise System qui
comprend un serveur d'applications. Dans le cas d'applications s'exécutant sous le
contrôle de ce dernier, il sera donc relativement simple de mettre en place la
configuration d'un fournisseur de service intégré à un cercle de confiance.
Remarquons que si le système de l'entreprise est déjà muni d'une procédure
d'authentification centralisée et que celle-ci est réalisée par un logiciel d'un
constructeur offrant par ailleurs un composant de gestion de la fédération d'identité
certifié Liberty Alliance, nous conseillons alors de déployer ce dernier. En effet, une
telle solution aura pour avantage, en principe74, de diminuer grandement le temps
nécessaire à l'administrateur du système pour se familiariser avec le nouveau
composant, puisqu'il aura déjà l'habitude de travailler avec d'autres produits du
même constructeur.
4.3.6 Systèmes Microsoft Windows™
La compagnie Microsoft ne fait pas partie du consortium Liberty Alliance et offre des
solutions propriétaires, aussi bien pour l'authentification des utilisateurs du système
que pour la fédération d'identité. Les utilisateurs d'un domaine Windows™ sont
répertoriés via la technologie Active Directory qui est une implémentation du
protocole LDAP75. La fédération d'identité est implantée au moyen du composant
ADFS76 qui implante les spécifications de WS-Federation et fournit la technologie de
single sign-on pour les applications Internet dans un environnement Windows™.
Notre objectif, dans le cadre de ce projet, est de définir une architecture qui permet
de fédérer le système de l'entreprise avec des systèmes qui se conforment aux
spécifications de Liberty Alliance. Une telle architecture est ouverte et indépendante
des spécifications propriétaires d'un constructeur particulier. ADFS n'est pas
compatible avec les spécifications ID-FF de Liberty Alliance. Néanmoins, de nombreux
produits certifiés Liberty Alliance, dont le logiciel proposé au chapitre 4.3.5, sont
capables de s'appuyer sur les services fournis par Active Directory pour gérer les
authentifications des utilisateurs. De même, comme démontré dans les prototypes
réalisés, il est possible de mettre en place des serveurs multi protocoles qui
permettent l'inter opérabilité entre ADFS et Liberty Alliance.
4.3.7 Procédure
L'ensemble des éléments que nous avons évoqués nous amène à définir la procédure
de la figure 4.4 qui décrit la suite des différentes opérations à accomplir, en fonction
de la configuration initiale du système de l'entreprise, pour rendre ce dernier
compatible avec la fédération d'identités. Remarquons que certaines des étapes de
cette procédure, bien qu'étant relativement simples, peuvent avoir un coût non
négligeable, en particulier l'étape Modifier les applications.
74
Ce n'est bien sûr vrai que si le constructeur s'est préoccupé de maintenir une unité ergonomique entre les différents produits
constituant son offre.
75
Lightweight Directory Access Protocol.
76
Active Directory Federation Protocol.
33
Informatique de gestion
ISNET 76
Fig. 4.4 : Étapes de la mise en conformité du système avec la fédération d'identités.
La réalisation de ces étapes permet d'obtenir un système au sein duquel les
utilisateurs s'authentifient avec un unique login77, ce qui est un gain appréciable pour
les systèmes pour lesquels ce n'était pas le cas. En effet, les nouvelles applications qui
seront développées dans ce cadre pourront aisément être intégrées à ce système et
s'appuyer dessus pour gérer l'authentification et les droits d'accès des différents
utilisateurs.
De plus, ce système est maintenant prêt à fonctionner dans le cadre d'une fédération
d'identités. Il peut faire partie d'un cercle de confiance et donc autoriser l'accès à ses
services à des utilisateurs externes authentifiés par des partenaires. De même, les
utilisateurs du système peuvent naviguer de façon transparente vers les services
offerts par les partenaires.
77
Single sign-on.
34
ISNET 76
Informatique de gestion
5 MODÈLE BUSINESS
La gestion de l'authentification et de la fédération d'identité sont essentiellement
indépendantes du métier exercé par l'entreprise. Nous nous intéresserons donc
principalement aux aspects qui concernent la gestion de l'identité et son partage
avec des partenaires. Le modèle que nous allons décrire enrichit donc le modèle
business mis en œuvre par l'entreprise pour exercer son métier ; dans certains cas, les
revenus seront obtenus par des moyens différents, éventuellement à moindre coût
que le modèle de base, dans d'autres, de profits complémentaires et/ou
supplémentaires pourront être générés.
5.1 Cadre
Les différents concepts formant un business modèle78 peuvent être schématisés par la
figure 5.1. Ces concepts sont répartis en quatre grands piliers qui couvrent les
différents aspects à envisager lors de la définition de la structure de l'entreprise et de
son réseau de partenaires pour la création, le marketing et la livraison de valeurs avec
pour objectif la génération de profits durables [Dub02].
Innovation
produit
Relation
client
Clientèle ciblée
Stratégie d'information
Proposition de valeur
valeur proposée
Confiance / fidélité
nécessaire à
Compétences
Canaux de distribution
Gestion de
l'infrastructure
Aspects
financiers
Ressources et moyens
Modèle de revenu
Configuration activités
Modèle de profit
Réseau partenaires
Structure de coût
Fig. 5.1 : Les piliers des modèles business.
Ces piliers représentent respectivement les produits offerts79 par une entreprise qui
forment la valeur pour laquelle le client est disposé à payer, l'infrastructure et le
réseau de partenaires80 nécessaires à la création de valeur, les relations que
78
Principalement dans le contexte des nouvelles technologies de l'information.
79
Innovation produit : quoi ?
80
Gestion de l'infrastructure : comment ?
35
Informatique de gestion
ISNET 76
l'entreprise entretient avec ses clients81 pour générer des revenus et les aspects
financiers82 des trois autres piliers tels que les modèles de coûts et de profit.
5.2 Type d'échange
La fédération d'identité permet à des systèmes informatiques d'entreprises
partenaires de reconnaître mutuellement les authentifications d'utilisateurs qu'ils ont
effectué. Le type d'échange de service qui aura lieu sera donc principalement de type
83
B2B . Dans certains cas, suivant le métier de l'un des partenaires, des échanges de
type B2C84 peuvent également être affectés par la fédération. Le modèle proposé
ci-dessous se base sur un type d'échange du type B2B ; le "client" est donc une
personne morale. S'il y a lieu, les éléments affectant une relation B2C que l'un des
partenaires pourrait avoir seront mentionnés explicitement.
5.3 Innovation produit
Services offerts
Chacun des différents partenaires d'une fédération d'identité offre un certain
nombre de services aux autres. Ce sont :
ƒ la reconnaissance d'utilisateurs authentifiés par les entreprises partenaires ;
ƒ la fourniture d'attributs d'identité aux entreprises partenaires pour les
utilisateurs authentifiés.
Si l'entreprise est de surcroît engagée dans une relation B2C avec des clients via son
site Internet, le service offert au client est :
ƒ la simplification de sa procédure d'identification pour l'ensemble des sites des
partenaires de la fédération par la mise à la disposition d'une identification
unique.
Proposition de valeur
Les valeurs de ces services sont :
ƒ la simplification de l'accès aux services du système par les utilisateurs
authentifiés par les entreprises partenaires ;
ƒ la fourniture automatique d'informations utiles aux entreprises partenaires
pour effectuer leurs transactions.
En ce qui concerne les clients d'une relation B2C, les valeurs de ces services sont :
ƒ l'amélioration ergonomique de la navigation entre les sites Internet des
différents partenaires de la fédération ;
ƒ les valeurs spécifiques du métier de l'entreprise qui sont proposées au client
peuvent être ciblées en fonction d'un profil qui peut être établi finement grâce
aux différents attributs associés à son identité.
81
Relation client : qui ?
82
Aspects financiers : combien ?
83
Business to business.
84
Business to customer.
36
Informatique de gestion
ISNET 76
Clientèle ciblée
Dans le cas de la relation B2B :
ƒ les clients sont les partenaires commerciaux de l'entreprise.
Dans le cas de la relation B2C :
ƒ la clientèle est identique à celle définie pour le métier de l'entreprise ; la
fédération peut toutefois générer une nouvelle clientèle atteinte indirectement
au travers des partenaires de la fédération.
Compétences
L'entreprise dispose des compétences nécessaires pour offrir les valeurs proposées
par le fait même que le système informatique de l'entreprise est architecturé de telle
sorte qu'il puisse gérer la fédération d'identité. Ces compétences sont vraiment
disponibles, parce que l'entreprise gère elle-même son système informatique85.
5.4 Gestion de l'infrastructure
Configuration des activités
Pour mettre en œuvre la fédération d'identité, les différents partenaires concernés
doivent :
ƒ définir clairement les responsabilités de chaque entreprise ;
ƒ établir la liste des risques en cas de litige ou de fraude ;
ƒ élaborer les procédures de fédération des identités et celles pour terminer une
relation de confiance86 ;
ƒ définir la nature et le format des attributs à échanger entre les systèmes des
entreprises ;
ƒ rédiger les conditions d'utilisation et les chartes de sécurité.
D'un point de vue juridique87, il faut également :
ƒ que les données personnelles des utilisateurs soient protégées conformément
aux lois en vigueur ;
ƒ que l'anonymisation des données personnelles transmises soit garantie ;
ƒ que les procédures de résolution des litiges en cas de fraude ou de panne des
services offerts soient définies.
Réseau de partenaires
Les entreprises partenaires d'une fédération d'identité établissent des contrats de
partenariat bilatéraux ; l'objectif stratégique commun étant de regrouper dans un
85
Voir chapitre 4.3.1. Il en irait autrement si la gestion de l'informatique de l'entreprise étaient confiée à un tiers dans le cadre
d'une solution ASP par exemple.
86
Une relation de confiance peut se terminer en cas de fin de vie d'un service, d'une cessation d'activité de l'un des partenaires
ou encore du désengagement de l'association de l'un des partenaires.
87
Les aspects juridiques devront être particulièrement étudiés dans le cas d'établissement de partenariats inter cantonaux ou
encore transfrontaliers. En effet, tant les lois sur la protection des données que celles régissant les litiges dépendent en général
de la localisation géographique du siège social des partenaires et peuvent être différentes d'une entité juridique à l'autre.
37
Informatique de gestion
ISNET 76
cercle de confiance un ensemble de métiers complémentaires et dont les services
collaborent.
Ressources et moyens
Les équipements suivants sont nécessaires à la création des valeurs proposées :
ƒ un serveur qui sera chargé de la gestion des identités et de leur fédération ;
comme déjà évoqué au chapitre 4.3.2, une nouvelle machine physique n'est
pas forcément nécessaire ;
ƒ un logiciel de gestion et d'administration de la fédération d'identité ; ce logiciel
sera déployé sur la nouvelle machine physique mentionnée ci-dessus ou sur
l'un des serveurs existants.
Le strict minimum des équipements nécessaires se résume donc au logiciel de gestion
de la fédération, le reste pouvant s'appuyer sur des ressources déjà existantes.
Remarquons que l'acquisition d'une machine dédiée à la gestion de la fédération
augmentera les performances globales du système informatique de l'entreprise, en
particulier ses temps de réponse, contribuant ainsi à la consolidation et à
l'amélioration de la réputation de l'entreprise auprès de ses partenaires et de ses
clients.
En ce qui concerne les ressources humaines, il est nécessaire de disposer d'un
administrateur système dont les responsabilités sont :
ƒ l'installation, la configuration et la maintenance du serveur de gestion de la
fédération d'identités ;
ƒ la gestion des identités des utilisateurs du système.
Ces ressources sont en partie disponibles, car une entreprise qui gère elle-même son
système informatique dispose déjà d'une personne qui s'occupe de l'administration
de ce système. Une disponibilité ponctuelle de l'administrateur en phase initiale du
projet sera nécessaire pour procéder à l'installation et à la configuration du serveur
d'identités. Les activités de maintenance et de gestion des identités quant à elles
représentent une charge qu'on peut évaluer au maximum à deux jours par mois ;
celles-ci pourront donc être facilement intégrées au cahier des charges de
l'administrateur, éventuellement en transférant une partie des ses responsabilités
vers d'autres collaborateurs de la division informatique de l'entreprise.
5.5 Relation client
Stratégie de l'information
Dans le cas de la relation B2B :
ƒ les clients sont des partenaires qui exercent un métier qui est complémentaire
à celui de l'entreprise ; les informations les concernant sont donc a priori
connues et ont donc déjà été récoltées ;
ƒ cette connaissance des caractéristiques des partenaires permet de définir de
façon optimale les accords bilatéraux de partenariat.
Dans le cas de la relation B2C :
ƒ les habitudes des clients, leur façon de naviguer dans le site de l'entreprise et
entre les différents sites des partenaires sont relevées et exploitées pour définir
38
Informatique de gestion
ISNET 76
un profil personnalisé du client qui est mémorisé dans les attributs associés à
son identité ; en fonction de ce profil, des opportunités d'achat ciblées lui sont
proposées.
Confiance et fidélité
L'entreprise entretient, en principe, un climat de confiance avec ses partenaires
commerciaux usuels. Celui-ci est renforcé par :
ƒ la conclusion d'accords formels de partenariat, spécifiant explicitement et de
façon détaillée les droits et devoirs de chacune des parties ;
ƒ le fait que les accords de partenariat s'inscrivent dans un cadre juridique
clairement défini – code des obligations, loi fédérale sur la protection des
données88.
En offrant des capacités de fédération d'identité pour l'emploi de ses services,
l'entreprise s'ouvre à de nouveaux partenaires intéressés par la simplification des
procédures d'accès ainsi que l'automatisation des transactions, gagnant par là même
des parts de marché sur le terrain de l'échange d'informations d'identité.
Dans le cas de la relation B2C, les clients doivent faire confiance à l'entreprise à
propos de l'exploitation qui sera faite de leurs données personnelles. Cette confiance
est établie et renforcée en :
ƒ leur rappelant explicitement qu'un cadre juridique contraignant, la loi fédérale
sur la protection des données, fixe les limites de l'exploitation des données
personnelles ;
ƒ leur permettant de s'exclure explicitement de listes de publipostages
publicitaires et leur garantissant que leurs données personnelles ne seront pas
transmises à des tiers ;
ƒ exploitant le profil du client avec intelligence et parcimonie dans le but de
créer une dynamique de relation positive.
Les clients des entreprises partenaires sont incités, par la simplification des
procédures d'identification et par des liens croisés figurant dans les sites des
partenaires, à profiter des services de l'entreprise qui acquiert par ce biais un
nouveau segment de clientèle.
Canaux de distribution
Les valeurs proposées sont diffusées aux partenaires au travers de l'Internet, au sein
des cercles de confiances établis et formalisés par les divers accords bilatéraux
conclus.
5.6 Aspects financiers
Modèle de revenu
Chaque fourniture d'attributs d'identité aux entreprises partenaires est facturée sous
la forme d'un micro paiement, le montant de ces paiements est modulé par la
quantité et la qualité des informations fournies.
88
Voir [LPD92].
39
Informatique de gestion
ISNET 76
Les transactions effectuées par le partenaire grâce à ces attributs donnent lieu au
versement d'une commission.
Dans le cadre d'une relation B2C, l'entreprise diversifie son offre de services en
proposant à ses clients des liens vers ses partenaires de la fédération, exerçant ainsi
un effet de levier sur les sources de revenus qui viennent d'être énoncées.
Structure de coût
Les coûts supplémentaires à ceux déjà engagés dans l'accomplissement du métier de
l'entreprise d'une telle solution sont constitués :
ƒ du prix d'achat du matériel (serveur) dédié à la gestion de la fédération
d'identités ;
ƒ du montant de la licence d'exploitation du logiciel de gestion et
d'administration de la fédération d'identités ;
ƒ d'une fraction du salaire de l'administrateur chargé de la gestion des identités
des utilisateurs du système et de la maintenance du système de fédération.
Modèle de profit
Les coûts du système sont principalement constitués de coûts fixes – le prix du
matériel et le montant de la licence – qui peuvent rapidement être amortis.
La couverture des autres frais et la génération de profit sont déterminées en
extrapolant les résultats des opérations effectuées avec les partenaires commerciaux
de l'entreprise avant la mise en œuvre du nouveau système.
Dans le cas d'une relation B2C, on peut également espérer une augmentation du
chiffre d'affaires dans le domaine du métier de l'entreprise dans la mesure où, via le
réseau de partenaires de la fédération, elle va atteindre de nouveaux clients.
Dans le cas de relations B2B, la productivité des employés est améliorée par le fait
que leur navigation au sein des sites des entreprises partenaires de la fédération s'en
trouvera simplifiée.
Enfin, le temps de développement de nouvelles applications au sein de l'entreprise se
trouvera réduit par le fait que tous les aspects de la gestion de l'authentification et
de la mémorisation des attributs d'identité nécessaires à l'application sont pris en
charge par le composant de fédération. Le temps nécessaire à la gestion des
utilisateurs sera également réduit, puisqu'une partie des attributs de ceux-ci seront
gérés par les partenaires.
40
Informatique de gestion
ISNET 76
6 PROTOTYPES
L'architecture proposée au chapitre 4.3.2 a été testée en réalisant un prototype dont
les procédures d'installation sont décrites dans l'annexe A.
Différents prototypes d'architectures prenant en compte les différents scénarios
envisageables, y compris des solutions basées sur Microsoft Windows™, ont été
étudiés et réalisés et sont décrits dans l'annexe B. L'inter opérabilité des solutions
Windows™ avec Liberty Alliance est également démontrée.
41
Informatique de gestion
ISNET 76
7 CONCLUSION
Dans le monde économique actuel, les entreprises partagent de plus en plus
d'informations avec leurs clients et leurs partenaires commerciaux. Ces différents
acteurs évoluent dans un environnement distribué dont Internet est la colonne
vertébrale. Les fonctions même de l'Internet ont évolué de la simple interconnexion
d'ordinateurs vers celle d'applications et de services ; simultanément, le nombre de
clients, de dispositifs et de points d'accès à ces applications et services a explosé.
Les utilisateurs de ces applications et services, qu'ils soient de simples clients ou des
employés de l'entreprise doivent s'authentifier pour y avoir accès. La gestion de
l'identité est ainsi devenue un élément vital de toute transaction commerciale
effectuée au travers de ces applications et services. L'accès à chaque application ou
service est en général protégé par un système d'authentification propre ; la
multiplication des identités est ainsi devenu le cauchemar des utilisateurs
commerciaux de l'Internet.
Les spécifications émises par Liberty Alliance définissent une architecture de gestion
de l'identité digitale dont le pilier fondamental est la fédération d'identités. Ce
concept permet à un utilisateur authentifié par un service d'une entreprise de
naviguer librement vers les services d'entreprises partenaires, faisant partie d'un
même cercle de confiance.
De grands groupes comme General Motors, ou encore France Télécom ont
commencé à mettre en œuvre ces principes à grande échelle, en ayant comme
objectif l'intégration des dizaines de systèmes disparates et des centaines
d'applications legacy des différentes entreprises faisant partie du groupe.
Nous avons montré que ces concepts étaient également applicables à beaucoup plus
petite échelle et avec un autre objectif. En effet, moyennant un investissement en
matériel, logiciel et ressources humaines très raisonnable, une PME peut
actuellement transformer l'architecture de son système d'information existant de
sorte qu'il soit compatible avec la fédération d'identité. Si ses partenaires
commerciaux en font autant, elle peut alors établir un cercle de confiance avec
ceux-ci, jetant ainsi les bases de nouvelles formes de collaboration entre les différents
partenaires.
Les entreprises concernées fonctionnent selon un modèle d'affaires qui est spécifique
au métier qu'elles exercent. Nous avons proposé un modèle d'affaires qui complète
celui-ci et qui définit les bases de ces collaborations. Nous avons montré que ces
collaborations pouvaient être profitables, qu'elles étaient source de nouveaux
revenus, qu'elles permettaient de réduire un certain nombre de coûts et, enfin,
qu'elles pouvaient être génératrices de nouveaux marchés.
Microsoft™, l'un des principaux acteurs du marché, ne fait pas partie de Liberty
Alliance et a défini un standard de fédération propriétaire. Nos prototypes illustrent
comment construire des solutions entièrement Microsoft™ d'une part, comment
définir des solutions inter opérables avec les produits implantant les spécifications de
Liberty Alliance d'autre part.
Nous avons ainsi défini les bases d'une solution complète et cohérente qui permet
aux entreprises de prendre en connaissance de cause les décisions stratégiques
techniques et commerciales nécessaires à leur positionnement dans un
42
Informatique de gestion
ISNET 76
environnement distribué sécurisé et convivial. Pour que les PME adoptent ce type de
solution et modernisent leur fonctionnement, il faut bien sûr qu'elles s'affranchissent
de l'isolationnisme bien helvétique qui prévaut encore dans nombre d'entreprises,
principalement celles à base fortement familiale. Nous devons leur faire comprendre
que l'informatique n'est qu'un outil parmi d'autres pour accomplir leur mission. Il n'y
a pas de profit direct et immédiat à mettre en œuvre la fédération d'identité ; il s'agit
plutôt de mettre en place une structure qui s'inscrit dans une vision à moyen et long
terme du mode de fonctionnement de l'entreprise.
La fédération d'identité constitue, nous l'avons vu, le pilier fondamental des
spécifications de Liberty Alliance. Ces spécifications comportent également la
description d'autres services, de plus haut niveau, et pour lesquels les partenaires du
consortium vont fournir des implantations dans une seconde phase. Ces services
permettront principalement d'assurer l'inter opérabilité des Web Services requérant
une authentification et d'implanter de nouvelles fonctionnalités tels que la géo
localisation, des carnets de contacts décentralisés, des calendriers partagés, des
services de présence ou d'alerte, etc. Nous envisageons, pour nos recherches futures,
d'approfondir ces aspects qui sont la base sur laquelle il sera possible de construire
une architecture orientée services89 au sein d'une fédération, architecture qui sera un
enjeu stratégique pour l'entreprise de demain.
89
SOA.
43
Informatique de gestion
ISNET 76
8 BIBLIOGRAPHIE
[Ang05]
Rajeev Angal, Srividhya Narayanan, Pat Petterson, Malla Simhachalam,
Building Identity-Enabled Web Services,
http://developers.sun.com/prodtech/identserver/reference/techart/idenabled-ws.html, 18 octobre 2005
[Ber04]
Philippe Beraud, Jean-Yves Grasset, Gestion des identités numériques,
http://www.microsoft.com, mai 2004
[Boy02]
Danah Boyd, FACETED ID/ENTITY : Managing representation in a digital
world, http://smg.media.mit.edu/people/danah/thesis/danahThesis.pdf,
septembre 2002
[Cah05]
Conor Cahill & al., Liberty Technology Tutorial,
http://www.projectliberty.org/liberty/content/download/800/5730/file/Spec
sOverviewAOL.pdf, 2005
[Cha02]
David Chappel, Tyler Jewell, Java Web Services, O'Reilly & Associates, Mars
2002, ISBN 0596002696
[Cla02]
Mike Clark, Peter Fletcher, Jeffrey Hanson, Romin Irani, Mark Waterhouse,
Jorgen Thelin, Web Services Business Strategies and Architectures, Expert
Press, Août 2002, ISBN 1904284132
[Cro05]
Pierre Cros, Authentic – Guide de l'administrateur,
http://authentic.labs.libre-entreprise.org/doc/fr/authentic-admin.html,
2005
[Dei02a]
Harvey Deitel, Paul Deitel, J. Gadzik, K. Lomeli, S. Santry, S. Zhang, Java
Web Services For Experienced Programmers, Prentice Hall, Août 2002,
ISBN 0130461342
[Dei02b]
[Dub02]
Harvey Deitel, Paul Deitel, B. Duwalt, L. Trees, Web Services: A Technical
Introduction, Prentice Hall, Août 2002, ISBN 0130461350
Magali Dubosson-Torbay, Alexander Osterwalder , Yves Pigneur, eBusiness
Model Design, Classification and Measurements, Thunderbird
International Business Review, vol 44, n°1, Janvier 2002
[Faj05]
Aries Fajar Dwiputera, Single Sign-On architectures in public networks,
INFOTECH Seminar Advanced Communication Services (ACS), 2005,
http://www.linecity.de/INFOTECH_ACS_SS05/infotech_acs_ss05.html.
[Fra04]
France Telecom, Focus sur Liberty Alliance,
http://www.francetelecom.com/sirius/rd/fr/ddm/fr/technologies/ddm20041
0/print_index1.htm, Octobre 2004
[JDN03]
JDN Solutions, Liberty Alliance : les premiers projets voient le jour,
http://solutions.journaldunet.com/0311/031114_liberty.shtml,
14 novembre 2003
[Kem04]
John Kemp, Liberty ID-WSF – a Web Services Framework,
http://www.projectliberty.org/liberty/content/download/390/2729/file/Liber
ty_ID-WSF_Web_Services_Framework.pdf, 2004
44
Informatique de gestion
ISNET 76
[Koc05]
Michael Koch, Kathrin M. Möslein, Identities Management for
E-Commerce and Collaboration Applications, International Journal of
Electronic Commerce, vol 9, n°3, Spring 2005,
http://www11.informatik.tumuenchen.de/publications/pdf/Koch2004b.pdf.
[LaA03]
Liberty Alliance Project, Introduction to the Liberty Alliance Identity
Architecture,
http://www.projectliberty.org/liberty/content/download/383/2708/file/LAP
%20Identity%20Architecture%20Whitepaper%20Final.pdf, Mars 2003
[LaB03]
Liberty Alliance Project, Business Benefits Of Federated Identity,
http://www.projectliberty.org/liberty/content/download/382/2705/file/LAP
%20Business%20Benefits%20White%20Paper%20v4.pdf, Avril 2003
[LaC03]
Liberty Alliance Project, Business Guidelines : Raising the Business
Requirements for Wide Scale Identity Federation,
http://www.projectliberty.org/liberty/content/download/1366/8739/file/Lib
ertyBusinessGuidelines.pdf, Juillet 2003
[Leh02]
Patrick Lehner, Utilisation d'Internet dans les enterprises romandes, Georg
Editeur SA, Mai 2002, ISBN 2-8257-0789-9
[Lio04]
Yves Lions, La gestion de l'identité en ligne,
http://www.fing.org/servlet/com.univ.collaboratif.utils.LectureFichiergw?ID
_FICHIER=248, 2002
[LPD92]
Loi fédérale sur la protection des données du 19 juin 1992,
http://www.admin.ch/ch/f/rs/235_1, 19 juin 1992.
[Mad05]
Paul Madsen, Liberty ID-WSF People Service – federated social identity,
http://www.projectliberty.org/liberty/content/download/387/2720/file/Liber
ty_Federated_Social_Identity.pdf, 5 décembre 2005
[Min02]
Ministère du budget et de la réforme de l'état, Le projet Liberty Alliance :
pour un standard de l’identité numérique en réseau,
http://www.adae.gouv.fr/article.php3?id_article=78, 12 septembre 2002
[Miy06]
Teruko Miyata & al., A Survey on Identity Management Protocols and
Standards, IEICE Transactions on Information and Systems, vol. E89-D,
n°1, pp. 112-123, http://ietisy.oxfordjournals.org/cgi/content/refs/E89D/1/112, Janvier 2006.
[New04]
PR Newswire, Le livre blanc de la Liberty Alliance examine comment
l'identité fédérée permet de réduire le vol d'identité,
http://www.prnewswire.co.uk/cgi/news/release?id=117641,
23 février 2004
[New05]
PR Newswire, Liberty Alliance lance les Directives commerciales et de
politique pour le déploiement de la gestion de l'identité fédérée,
http://www.prnewswire.co.uk/cgi/news/release?id=155728,
11 octobre 2005
[Nor02]
Eric Norlin, André Durand, Federated Identity Management,
http://www.pingidentity.com, 2002
45
Informatique de gestion
[Ola03]
[PaA04]
ISNET 76
Thor Olavsrud, Liberty Alliance Details Identity Architecture,
http://www.atnewyork.net/news/article.php/2108141, 11 mars 2003
Pat Patterson, Pirasenna Velandai Thiyagarajan, Federated Identity : Access
Control and Single Sign-On,
http://developers.sun.com/prodtech/javatools/jsenterprise/reference/presen
tations/sso_presentation.pdf, 5 octobre 2004
[PaB04]
Pat Patterson, Pirasenna Velandai Thiyagarajan, Marina Sum, Federated
Identity : Single Sign-On Among Enterprises,
http://developers.sun.com/prodtech/identserver/reference/techart/federate
d.html, 14 octobre 2004
[Pag05]
Sophie Page, L'ASP – Une nouvelle solution pour la gestion de
l'informatique en entreprise. Travail de diplôme à la Haute École de
Gestion de Genève, Département Informatique de Gestion,
http://campus.hesge.ch/Daehne/TD/2005/PageSophie1.pdf, Novembre
2005.
[Pap03]
Greg Papadopoulos, Getting It Right – Digital identification and finegrained billing in the Web services world,
http://www.sun.com/aboutsun/media/presskits/projectliberty/getright.html, 2003
[Pass]
Microsoft Passport, http://www.microsoft.com/net/default.asp
[Pfi03]
Birgit Pfitzmann, Michael Waidner, Analysis of Liberty Single-Sign-on with
Enabled Clients, Internet Computing, IEEE, Volume 7, Issue 6,
Novembre-Décembre 2003.
[Rit03]
Albert Ritch, Les Web Services. Travail de diplôme à la Haute École de
Gestion de Genève, Département Informatique de Gestion,
http://campus.hesge.ch/Daehne/TD/2003/RitchAlbert.pdf, Novembre
2003.
[Sal03]
Olivier Salaün, Introduction aux architectures web de Single Sign-On,
http://www.cru.fr/sso/jres-sso, 15 octobre 2003
[Saml]
SAML, http://www.oasis-open.org/committees/security
[Sem02]
Radovan Semancíc, Internet applications security,
http://storm.alert.sk/work/papers/phd-exam-work-november-2002-html,
Novembre 2002
[Sub04]
S. Subenthiran, K. Sandrasegaran, R. Shalak, Requirements for Identity
Management in Next Generation Networks, Advanced Communication
Technology, The 6th International Conference on, Volume 1, pp 138-142,
Septmbre 2004, ISBN-89-5519-119-7.
[Sun02a]
Sun Microsystems®, Developper’s Guide Sun One Application Server 7,
http://docs.sun.com/db/coll/s1_asse_en, 2002.
[Sun02b]
Sun Microsystems®, Federation Management,
http://docs.sun.com/source/816-6687-10/liberty.html, 2 décembre 2002
46
Informatique de gestion
[Sun04]
ISNET 76
Sun Microsystems®, Sun Java System Access Manager – Contrôle d'accès
et services de fédération d'identité standardisés pour les intranets et les
extranets, http://www.janua.fr/doc/SunJavaSystemAccessManager_FR.pdf,
2004
[Sun05]
Sun Microsystems®, Sun Java System Application Server,
http://www.sun.com/software/products/appsrvr, 2005.
[Tas02]
John Taschek, Liberty Alliance or Passeport?,
http://www.eweek.com/print_article/0,3668,a=28521,00.asp, Juin 2002
[Thi05]
Pascal Thiaulier, Benard Roy, La gestion de l'identité et des accès,
http://www.fiq.qc.ca/_site/PHOTOS/QUEBEC/DOCUMENTS/la_gestion_de_i
dentite_architecture.ppt, 2005
[Van03]
Michelle Vance, Tiffany Van Gorder, Liberty Alliance Releases New
Specifications, Privacy and Security Guidelines to Drive Development of
Identity-Based Web Services,
http://www.projectliberty.org/liberty/news_events/press_releases/liberty_all
iance_releases_new_specifications_privacy_and_security_guidelines_to_dri
ve_development_of_identity_based_web_services, Avril 2003
[Var03]
[Var05]
Christine Varney, Privacy and Security Best Practices,
http://www.projectliberty.org/liberty/content/download/374/2681/file/final
_privacy_security_best_practices.pdf, 12 novembre 2003
Christine Varney, Victoria Sheckler, Deployment Guidelines for Policy
Decision Makers,
http://www.projectliberty.org/liberty/content/download/373/2678/file/depl
oyment_guidelines_v2_9.pdf, 21 septembre 2005
[Vis05]
Visual Studio .NET,
http://www.microsoft.com/france/vstudio/default.mspx, 2005.
[Was05]
Thomas Wason, IEEE-ISTO, Liberty ID-FF Architecture Overview, V1.2,
http://www.projectliberty.org/liberty/content/download/318/2366/file/draft
-liberty-idff-arch-overview-1.2-errata-v1.0.pdf , 2005
[Wss]
WS-Security, http://www.oasis-open.org/committees/wss
[Xml02]
OMG – XML Metadata Interchange Specification version 2.0.
http://www.omg.org/technology/documents/formal/xmi.htm, 2 mai 2002.
[Xpa99]
XML Path Language version 1.0. http://www.w3.org/TR/xpath,
16 novembre 1999.
47
Informatique de gestion
HEG – Genève
Laboratoire de Technologies Objet
Campus de Battelle – Bâtiment F
Route de Drize 7
CH-1227 Genève
Tél : +41 22 388 17 00
Fax : +41 22 388 17 01
www.hesge.ch/heg
IDENTITÉ DIGITALE FÉDÉRÉE
ANNEXES
Projet déposé dans le cadre du programme de la réserve stratégique de la HES-SO
Novembre 2006
Sous la direction de Peter DAEHNE, professeur HES
http://campus.hesge.ch/Daehne/ISNet76
Informatique de gestion
ISNET 76
ANNEXE A
Configuration pour sample1
Sur la base du document d’installation du sample1 de Sun.
HEG926 : SP1
SERVER_PROTO : http
SERVER_HOST : heg926.ge-em.ad.etat-ge.ch
SERVER_PORT : 46407
SERVICE_DEPLOY_URI : amserver
META_ALIAS : heg926.ge-em.ad.etat-ge.ch
Root suffix : dc=ge-em,dc=ad,dc=etat-ge,dc=ch
Utilisateur à créer sur le serveur : sp1User / ploufman
HEG931 : IDP1
SERVER_PROTO : http
SERVER_HOST : heg931.ge-em.ad.etat-ge.ch
SERVER_PORT : 19709
SERVICE_DEPLOY_URI : amserver
META_ALIAS : heg931.ge-em.ad.etat-ge.ch
Root suffix : dc=ge-em,dc=ad,dc=etat-ge,dc=ch
Utilisateur à créer sur le serveur : sp1User / ploufman
Répertoires
Sun Access Manager :
D:\Sun\AccessManager
Sun Web Server :
D:\Sun\WebServer
Répertoire du serveur virtuel dans Sun Web Server :
D:\Sun\WebServer\https-<hostname>
Autres configurations
Les deux machines se trouvant sur le même DNS, il faut modifier le nom du cookie
qu’elles utilisent pour éviter qu’ils ne s’écrasent mutuellement sur le browser (voir les
notes d’installation).
1
Informatique de gestion
ISNET 76
Notes sur Access Manager
Démarrer les services
pour démarrer le serveur web, il faut d’abord fermer IIS : dans les services windows,
il faut arrêter Service de publication World Wide Web. Ensuite on peut démarrer
Web Server (https-<hostname>)
Configuration des serveurs
la configuration des serveurs virtuels se trouve dans :
D:\Sun\WebServer\https-<hostname>\config
Le fichier server.xml indique notamment le port que le listener de Web Server
écoute :
<LS id="ls1" port="19709" servername="HEG931.ge-em.ad.etatge.ch" defaultvs="https-HEG931.ge-em.ad.etat-ge.ch" ip="any"
security="false" acceptorthreads="1" blocking="false"/>
Si Access Manager est installé sur Web Server, c’est donc également sur ce port qu’il
est accessible.
On trouve aussi dans ce fichier la liste des applications web déployées.
Admin du serveur web
pour accéder à l’administration du serveur web, il faut démarrer le service
correspondant : Démarrer\Sun Microsystems\Web Server\Start Web
Server Administration Server ou aller dans les services Windows et
démarrer Web Server Administration Server.
On y accède ensuite avec l’url du serveur web mais sur le port 8888
Supprimer le password admin du serveur web
pour supprimer le mot de passe admin pour Web Server Administration :
Dans le fichier D:\Sun\WebServer\https-admserv\config\admpw, le mot de passe est
écrit sous la forme login:password
Il faut supprimer le mot de passe après le login, et se logger en admin sans mot de
passe.
2
Informatique de gestion
ISNET 76
Pages de login AM
pour modifier l’aspect des pages de login d’Access Manager, il faut éditer les fichiers
dans
D:\Sun\WebServer\https-HEG931.ge-em.ad.etat-ge.ch\is-webapps\services\config\auth
(Supposition : à la création du serveur virtuel https-HEG931.ge-em.ad.etat-ge.ch, les
fichiers contenus dans D:\Sun\AccessManager\web-src sont copiés dans
D:\Sun\WebServer\https-HEG931.ge-em.ad.etat-ge.ch\is-web-apps).
Admin AM
pour accéder à l’interface de gestion d’Access Manager, il faut aller sur le serveur
web dans le répertoire amconsole, par exemple : http://heg931.ge-em.ad.etatge.ch:19709/amconsole
Créer un utilisateur
Dans la console d’administration (ex : http://heg931.ge-em.ad.etatge.ch:19709/amconsole), aller dans l’onglet Gestion des Identités, puis afficher
Utilisateurs, cliquer sur Nouveau… et remplir les champs obligatoires.
Déployer une application web
Il y a deux manières de déployer une application web :
1) avec la commande wdeploy, en suivant les instructions du guide d’installation.
uri_path : /sp1
instance : heg926.ge-em.ad.etat-ge.ch
vs_id : https-HEG926.ge-em.ad.etat-ge.ch (Attention: sensible à la casse)
-d directory : ignoré
2) depuis l’interface d’administration du serveur web Sun. Il faut pour cela démarrer
le serveur d’administration (dans les services windows), puis ouvrir la console web de
la machine sur le port 8888 (ex : http://heg931.ge-em.ad.etat-ge.ch:8888) et
se logger avec les login choisi à l’installation.
Sur la page principale, choisir le serveur et cliquer sur manage, puis aller à l’onglet
virtual server class. Choisir la classe et cliquer sur manage, puis choisir le serveur
virtuel et cliquer sur manage. Dans l’onglet Web applications, choisir le menu Deploy
Web Application (à gauche), sélectionner le fichier war et choisir l’URI (par exemple
"/sp1"), puis valider.
Serveurs IDP et SP sur le même domaine
Si les serveurs d’identification (IDP) et du fournisseur de service (SP) sont sur le même
domaine (ex : heg931.ge-em.ad.etat-ge.ch et heg926.ge-em.ad.etat-ge.ch sont tous
les deux dans le domaine ge-em.ad.etat-ge.ch), les cookies se trouvent dans la même
3
Informatique de gestion
ISNET 76
entrée sur le browser et par conséquent, ils s’écrasent mutuellement. Ceci provoque
un échec dans la fédération (l’utilisateur n’arrive jamais sur la page Federation Done).
Pour éviter cela, il faut renommer les cookies utilisés par les serveurs pour que
chacun porte un nom différent. Par défaut, le cookie est nommé iPlanetDirectoryPro.
Il faut éditer le fichier AMConfig.properties qui se trouve dans le sous-répertoire
config du répertoire d’installation d’Access Manager. Il suffit ensuite de modifier la
propriété com.iplanet.am.cookie.name pour que les cookies de chaque serveur
soient nommés différemment (ex : com.iplanet.am.cookie.name=IDP1Cookie sur le
serveur IDP1 et com.iplanet.am.cookie.name=SP1Cookie sur le serveur SP1)
Pour créer une organisation / sous-organisation
Aller dans la console d’administration, onglet gestion des identités. En haut du menu
de gauche est inscrit l’organisation courante (ex : ge-em). On peut voir les
informations relatives à cette organisation avec la liste déroulante Afficher. En
choisissant Organisations et Nouveau…, on peut créer une sous-organisation.
Ensuite, en cliquant sur cette sous-organisation (sur lien hypertexte, pas sur la flèche
à droite), on entre dans la sous-organisation, comme l’indique l’indication en haut du
menu de gauche (ex : ge-em > subOrg).
4
Annexe B : ISNet76
HEVs
Active Directory Federation Services (ADFS).................................................. 4
Système requis ...................................................................................................................... 4
Scénarios ............................................................................................................................... 4
B2B: ADFS Federated Web SSO....................................................................................... 4
B2E: ADFS Extranet Web SSO ......................................................................................... 5
B2C : ADFS « Online » Web SSO .................................................................................... 5
Extensions/interopérabilités ................................................................................................ 6
Token-based and Claims-aware applications .................................................................... 6
Lab (Scénario B2B) .............................................................................................................. 7
AD configuration................................................................................................................ 8
ADFS Configuration .......................................................................................................... 8
Création d’une application claims-aware ........................................................................... 9
Troubleshooting ............................................................................................................... 10
Url du site ......................................................................................................................... 10
Scénario B2C ...................................................................................................................... 11
ADFS configuration ......................................................................................................... 11
Url du site ......................................................................................................................... 11
Erreur................................................................................................................................ 11
Intégration du scénario avec Authorization Manager.................................................... 12
Fonctionnalités de l’application ....................................................................................... 12
Configuration de l’Active Directory et Active Directory Federation Services................ 12
Configuration de l’Authorization Manager...................................................................... 12
Configuration de l’application (web.config) .................................................................... 14
Code behind...................................................................................................................... 14
Limitations ....................................................................................................................... 16
Erreurs .............................................................................................................................. 17
URL du site ...................................................................................................................... 17
Application Token-Based – Exemple SharePoint ........................................................... 17
AD Configuration............................................................................................................. 17
SharePoint Configuration................................................................................................. 18
ADFS Configuration ........................................................................................................ 18
Url du site ......................................................................................................................... 18
Sources................................................................................................................................. 18
MIIS .................................................................................................................... 19
Versions............................................................................................................................ 19
Compatibilité.................................................................................................................... 19
Système requis: ................................................................................................................ 20
Password Management..................................................................................................... 20
Bon à savoir:..................................................................................................................... 21
Sources: ............................................................................................................................ 21
Centrify DirectControl ..................................................................................... 21
Composants DirectControl................................................................................................ 22
Téléchargement de Centrify DirectControl ..................................................................... 23
1
Installation du module ....................................................................................................... 24
Configuration de Tomcat pour l’authentification avec Centrify DC ............................... 24
Installation de l’exemple « ADFS-claims-aware » .......................................................... 24
Configuration du server d’application pour SSL ............................................................. 25
Déclaration de l’application au niveau du serveur ADFS................................................ 25
Tester l’application........................................................................................................... 26
Développez l’application claims-aware ............................................................................ 26
Rôles Tomcat.................................................................................................................... 26
IfUserInRole tag............................................................................................................... 26
Source............................................................................................................................... 26
Problème de certificats....................................................................................................... 27
Source .................................................................................................................................. 28
Liberty Alliance ................................................................................................. 28
Concepts clés....................................................................................................................... 29
Fédération – SSO initiation ............................................................................................... 29
Implémentations libres ...................................................................................................... 30
Membres actuels................................................................................................................. 30
Liberty Alliance Interoperability...................................................................................... 30
PingFederate..................................................................................................................... 30
SymLabs........................................................................................................................... 31
Sun.................................................................................................................................... 31
IBM .................................................................................................................................. 31
Oracle ............................................................................................................................... 32
Novell ............................................................................................................................... 32
Liste complète .................................................................................................................. 32
Sources................................................................................................................................. 32
PingFederate ...................................................................................................... 33
Overview ............................................................................................................................. 33
Nature du produit ............................................................................................................. 33
Description du produit...................................................................................................... 33
Concepts clés.................................................................................................................... 35
Adapters et Agent toolkit ................................................................................................. 37
Interopérabilités................................................................................................................ 37
Installation du serveur ....................................................................................................... 38
Déploiement des scénarios (SAML 2.0)............................................................................ 38
Paramètres locaux ............................................................................................................ 39
Configuration de l’IDAdapter .......................................................................................... 40
Configuration du SP Adapter ........................................................................................... 41
Connexion au SP .............................................................................................................. 42
Connexion à l’IdP............................................................................................................. 44
Test du scénario IdP-Initiated .......................................................................................... 45
Test du scénario SP-Initiated............................................................................................ 46
Personnalisation de l’application en fonction de l’utilisateur........................................ 47
Ajout d’un attribut............................................................................................................ 47
Configuration du SpAdapter pour l’ajout d’un attribut.................................................... 48
Configuration de l’IdPAdapter pour l’ajout d’un attribut ................................................ 49
Modification de l’application ........................................................................................... 49
Intégration avec l’ADFS (SP connexion) ......................................................................... 50
2
LDAP IdPAdapter Configuration..................................................................................... 50
LDAP Data Store Configuration ...................................................................................... 51
ADFS account partner...................................................................................................... 51
ADFS SP Connexion........................................................................................................ 52
Test de l’application ......................................................................................................... 53
Erreur................................................................................................................................ 56
Intégration avec l’ADFS (IdP connexion)........................................................................ 56
ADFS resource partner..................................................................................................... 56
ADFS IdP Connexion....................................................................................................... 57
Test de l’application ......................................................................................................... 58
Erreur................................................................................................................................ 59
Sources................................................................................................................................. 60
SourceID............................................................................................................. 61
Installation du framework et des exemples...................................................................... 61
Test de l’application ........................................................................................................... 61
Interopérabilité................................................................................................................... 63
Erreurs ................................................................................................................................ 63
Org.Mentalis.Security ...................................................................................................... 63
System.Security.dll........................................................................................................... 63
Autres projets d’identité fédérée ..................................................................... 63
Shibboleth ........................................................................................................................... 63
Source............................................................................................................................... 63
Liberty Alliance, Shibboleth et Lemonldap..................................................................... 64
Source............................................................................................................................... 64
http://fr.wikipedia.org/wiki/Authentification_unique ...................................................... 64
Microsoft Passport ............................................................................................................. 64
Standards identités fédérées.............................................................................................. 64
Tableau des principaux projets d’identités fédérées ........................................................ 64
Evolution des standards.................................................................................................... 65
Tableau de comparaison .Net Passport, Ping ID et Shibboleth........................................ 65
FAQ..................................................................................................................... 66
Existe-il un méta-annuaire unique pour une fédération ? ................................................ 66
L’interopérabilité entre les protocoles Liberty Alliance et ADFS est-elle possible ?...... 67
ADFS ou Liberty Alliance ?............................................................................................. 67
Sources................................................................................................................ 67
3
Active Directory Federation Services (ADFS)
ADFS est un composant de Windows Server 2003 R2. Il fournit la technologie SSO (Single
Sign-On) pour des applications Web dans des scénarios extranet tels que B2C, B2B ou interne
à une compagnie (multi-forest) dans un environnement Windows.
ADFS utilise les spécifications WS-Federation. Cependant, il fournit en extension une
architecture supportant les assertions SAML et l’authentification via Kerberos.
Système requis
Windows Server 2003 R2
Internet Information Services (IIS) version 6.0
Microsoft ASP.NET 2.0
Microsoft .NET Framework 2.0
Le site Web IIS par défaut configuré avec TLS (Transport Layer Security) ou SSL (Secure
Sockets Layer), utilisé par Microsoft IT pour sa solution. ADFS est installé dans le site Web
par défaut sur le serveur IIS.
Un certificat pour le service de fédération. Microsoft IT utilise le même certificat X.509 pour
la signature des jetons et pour l'authentification SSL auprès des sites Web.
Scénarios
B2B: ADFS Federated Web SSO
Dans ce scenario, l’utilisateur d’une compagnie partenaire n’a pas besoin d’un compte à
l’intérieur de l’Active Directory du domaine dans lequel se trouve la ressource qu’il veut
utiliser. Il se connecte en local, initialise sa connexion SSO et peut accéder à la ressource du
domaine partenaire grâce à la Federation Trust entre les deux serveurs de fédération : le
serveur de fédération account auprès duquel s’authentifie l’utilisateur et le serveur de
fédération resource qui le met en lien avec l’application Web qui tourne sur le serveur Web du
domaine.
[projectDirectory]/ADFS/ADFS_ITForum.ppt
4
B2E: ADFS Extranet Web SSO
Tous les employés d’une compagnie ont un compte dans l’Active Directory. Ils peuvent se
connecter soit en intranet (Windows Desktop logon) soit à partir d’une application Web
(Forms-based logon).
[projectDirectory]/ADFS/ADFS_ITForum.ppt
A noter la nécessité d’utiliser un serveur de fédération proxy qui va faire le lien avec le
serveur de fédération account, afin de permettre à l’utilisateur venant de l’internet de
s’authentifier dans son domaine (Active Directory du domaine, son « royaume »)
B2C : ADFS « Online » Web SSO
Dans ce cas là, les utilisateurs internet sont des clients et ont leur compte dans la DMZ. Ils
utilisent un login internet (Form-based login).
[projectDirectory]/ADFS/ADFS_ITForum.ppt
5
Extensions/interopérabilités
ADFS a été conçu pour tourner dans un environnement Windows, selon les scenarios décrits
précédemment. Il gère deux types d’applications (ressources) aux mécanismes différents,
Token-based et Claims-Aware, tournant sur le serveur Web IIS (langage .Net).
Cependant, il existe des extensions ou toolkits pour étendre l’ADFS à d’autres plateformes,
tels que :
a. Centrify
b. SourceID
L’interopérabilité entre ADFS et des plateformes autres que Windows peut se faire à l’aide
des serveurs de fédération résultants des projets Liberty Alliance et Shibboleth, basés sur les
spécifications SAML, mais intégrant également les fédérations basées sur WS-federation.
a. Pingfederate (SourceID)
b. Shibboleth
Token-based and Claims-aware applications
Claims-Aware applications:
Les “Claims” sont des déclarations (par exemple: name, identity, key, group, privilege, ou
capability) faites sur les utilisateurs et comprises par les deux partenaires dans l’ADFS. Elles
sont utilisées pour des buts d’autorisation dans une application. Ces claims se baladent à
travers le service de fédération entre les serveurs de fédérations et entre les serveurs de
fédération ressource et la ressource.
Une application claims-aware accepte les claims envoyés par le service de Fédération.
Lien :
http://technet2.microsoft.com/WindowsServer/en/Library/050392bc-c8f5-48b3-b30ebf310399ff5d1033.mspx?mfr=true
Sitemap :
Welcome to the Windows Server TechCenter > Windows Server TechCenter > Windows Server 2003 Technical
Library > Windows Server 2003: Product Help > R2: Product Help (R2 only) > Active Directory Federation
Services (ADFS) > ADFS Concepts > Understanding ADFS Authentication and Authorization > Understanding
Claims
Et :
Welcome to the Windows Server TechCenter > Windows Server TechCenter > Windows Server 2003 Technical
Library > Windows Server 2003: Product Help > R2: Product Help (R2 only) > Active Directory Federation
Services (ADFS) > ADFS Concepts > Understanding ADFS Authentication and Authorization > Controlling
Access to Web-based Applications > Claims-aware applications
Token-Based applications:
Une application Token-based est une application IIS (sharepoint par exemple) qui utilise les
mécanismes d’autorisation « natifs » de Windows. Ces applications ne sont pas préparées
pour utiliser les claims. Elles ne peuvent être utilisées que par des utilisateurs du royaume
local ou d’un royaume de confiance (trusted realm).
Pour plus d’informations, suivez le lien :
http://technet2.microsoft.com/WindowsServer/en/Library/050392bc-c8f5-48b3-b30ebf310399ff5d1033.mspx?mfr=true
Sitemap:
Welcome to the Windows Server TechCenter > Windows Server TechCenter > Windows Server 2003 Technical
Library > Windows Server 2003: Product Help > R2: Product Help (R2 only) > Active Directory Federation
Services (ADFS) > ADFS Concepts > Understanding ADFS Authentication and Authorization > Controlling
Access to Web-based Applications > Windows NT token-based applications
6
Lab (Scénario B2B)
L’architecture mise en place se présente sous la forme suivante:
[projectDirectory]/ADFS/ADFS_Step-by-Step_Guide.doc
J’ai donc configuré quatre machines virtuelles :
- serveur de fédération resource (domaine treyresearch.net)
- serveur de fédération account (domaine adatum.com)
- serveur Web (domaine treyresearch.net) où se trouve la resource
- poste client (domaine adatum.com) d’où un utilisateur du domaine local veut
accéder à la ressource du domaine partenaire.
Machine virtuelle
Computer use
Computer name
Adresse IP
Passerelle
DNS
Alternate DNS
Composants
Windows
Active Directory
DNS server
Domain
NetBios Name
Softwares
Others
W2003 Enterprise
Edition adfsresource
Federation Server
adfsresource
192.168.73.141
192.168.73.2
192.168.73.141
W2003 Enterprise
Edition adfsaccount
Federation Server
adfsaccount
192.168.73.142
192.168.73.2
192.168.73.142
W2003 Standard
Edition adfsclient
Poste Client
adfsclient
192.168.73.137
192.168.73.2
192.168.73.141
192.168.73.142
Application server (IIS) Application server (IIS)
Federation service
Federation service
yes
yes
no
yes
yes
no
treyresearch.net
adatum.com
adatum.com
treyresearch
adatum
IIS Resource kit 6.0
IIS Resource kit 6.0
SQL Server 2000
SQL Server 2000
enterprise edition sp 4 enterprise edition sp 4
MIIS
MIIS
PingFederate
Java SDK 1.5/Apache
SSL Certificate
SSL Certificate
generated
generated
Set
Set
AdfsAppPoolIdentity
AdfsAppPoolIdentity
(both fed server and domain controller on the same computer)
W2003 Standard
Edition adfsweb
Web server
adfsweb
192.168.73.143
192.168.73.2
192.168.73.141
Application server (IIS)
ADFS web agents
no
no
treyresearch.net
IIS Resource kit 6.0
SQL Server Express
2005
Windows sharepoints
services
SSL Certificate
generated
Stepbystep website
Se référer au document « ADFS_Stepbystep.doc » pour les étapes de l’installation.
7
AD configuration
Le but était de créer deux utilisateurs dans l’Active Directory de leur domaine, pouvant
accéder à une petite application Web du domaine partenaire, mais avec des rôles différents.
Concrètement, l’utilisateur adminis se connecte en local sur son domaine, initie le Web SSO
et accède à l’application Web du domaine partenaire avec les droits administrateur. Le
cheminement est le même pour l’autre utilisateur, mise à part qu’il n’a pas les droits pour
accéder à l’administration de l’application Web.
Dans l’Active Directory du domaine adatum.com, création des utilisateurs et des groupes
d’utilisateurs :
Création
Security global group
Security global group
User
Nom
TreyClaimAppAdmins
TreyClaimAppUsers
Admin Hister
User
Alan Shen
User
Admin Hister
Alan Shen
User name
Not applicable
Not applicable
Adminis
(adminis va pouvoir accéder
à l’application Claims-aware
avec le rôle administrateur)
Alansh
(alansh va accéder à
l’application Claims-aware
avec le rôle guests)
Add as a member of:
TreyClaimAppAdmins
TreyClaimAppUsers
ADFS Configuration
Le principe est le suivant : on crée des « Organization claims » de type groupe du côté
« account » du service de fédération qui sont liés à des groupes d’utilisateurs de l’Active
Directory. A partir des ces « Organization claims », des « Outgoing claims » sont envoyés à
travers la fédération. Du côté « resource », ils sont réceptionnés en tant que « Incoming
claims » et transformés en « Organization claims ». Chaque « claims » requis par l’application
sont activés, afin qu’elle puisse les recevoir :
Federated
Account
Resource
type
Claim
Namespace
Active
Account
(incoming/
Resource
Enabled
Directory
Organization
outgoing)
Organization
in
Claims
App
Adatum ClaimApp Claim
Oui
Adatum ClaimApp
Oui
Claims
TreyClaimsAppUsers
Trey ClaimApp Claim
ClaimAppMappi
Group
ng
TreyClaimsAppAdmin
Trey Claim App
s
Admin
ClaimAppAdmin
Admin
8
Schéma du flux des claims à travers la fédération :
[projectDirectory]/ADFS/ADFS_Step-by-Step_Guide.doc
Création d’une application claims-aware
Il reste à construire une application Web en .Net qui réceptionne et utilise les claims. Dans
mon exemple, j’attribue les rôles aux utilisateurs en fonction de leur « Organization claims ».
J’ai d’abord créé une petite application avec login qui gère des utilisateurs et des rôles
enregistrés dans une base de données SQL (ASPNETDB.mdf). Cette application accepte deux
rôles : Administrators et Guests. L’utilisateur auquel est attribué le rôle Administrators a
accès aux pages d’administration, les autres non. Si un utilisateur de la fédération a pour
claims l’ « Organization claims » « Adatum ClaimApp Admin », alors il se voit attribuer le
rôle Administrators, autrement il a le rôle « Guests ».
Pour créer une application qui accepte les claims, voir le fichier Web.config de l’application.
Dans le fichier de code behind, j’ai utilisé le code suivant :
using System.Web.Security.SingleSignOn;
using System.Web.Security.SingleSignOn.Authorization;
…
protected void Page_Load(object sender, EventArgs e)
{
SingleSignOnIdentity ssoId = User.Identity as SingleSignOnIdentity;
…
SecurityPropertyCollection spc = ssoId.SecurityPropertyCollection;
SecurityProperty sp = spc[1];
…
if (sp.Value.Equals("Adatum ClaimApp Admin"))
{
…
Roles.AddUserToRole(name, "Administrators");
…
}
…
}
9
Pour gérer les droits utilisateurs de manière plus précise et plus personnalisée, il y a la
possibilité d’utiliser AzMan (Authorization Manager).
Le login (basé sur ASP.NET Role Manager) ne fonctionne pas avec les claims. Impossible de
se loguer.
Troubleshooting
En cas de problème de fonctionnement du service de Fédération, le lien suivant permet de
mettre en place l’environnement permettant le Débogage et d’établir un diagnostic des pannes
de l’ADFS :
http://technet2.microsoft.com/WindowsServer/en/Library/ed76b687-7585-421d-ad4147c21499de001033.mspx?mfr=true
Sitemap:
Welcome to the Windows Server TechCenter > Windows Server TechCenter > Windows Server 2003 Technical
Library > Windows Server 2003: Operations > R2: Operations (R2 only) > ADFS Operations Guide >
Troubleshooting Active Directory Federation Services
Erreur
Si éventuellement cette erreur survient et qu’en apparence tout est bien paramétré, remplacé
dans la configuration des serveurs de fédération l’adresse DNS par l’adresse IP du serveur.
Url du site
http://adfsweb.treyresearch.net:8081/claimapp/
10
Scénario B2C
Le scénario B2C consiste à créer une application Web permettant à un utilisateur internet
(mais qui possède un compte dans l’Active Directory) de se connecter à l’Active Directory,
afin d’accéder à la ressource du domaine.
Comme les machines virtuelles ont des adresses IP privées, je dois installer l’application Web
d’authentification à Active Directory sur le même domaine que l’application claims-aware.
En cas de succès de l’authentification, l’application redirige l’utilisateur sur l’application
claims-aware pour l’initialisation du SSO.
Pour plus d’informations sur la manière d’utiliser les formulaires d’authentification à l’Active
Directory en ASP.NET 2.0 consultez les sites :
http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnpag2/html/paght000026.asp
Et
http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnpag2/html/paght000021.asp
De même que les fichiers sources du site « formsADAuth ».
ADFS configuration
Il faut créer un claim pour un utilisateur du domaine treyresearch.net. Prenons l’exemple de
l’utilisateur Terry Adams (terrya) créé dans l’Active Directory du domaine treyresearch.net
sous Users.
J’ai créé un nouvel « Organization Claim » Trey ClaimApp External (Facultatif, car
l’utilisateur Terry Adams peut être mappé à un « Organization Claim » déjà existant. Ensuite,
j’ai mappé (populate) l’utilisateur depuis l’Active Directory au groupe (« Organization
Claim ») (« Group Claim Extraction »). Finalement, j’ai activé le groupe pour l’application
claims-aware.
Url du site
http://adfsweb.treyresearch.net:8080/b2c
Erreur
Impossible de se connecter à l’annuaire LDAP du domaine Adatum.com ("Unable to establish
secure connection with the server"). Nécessite probablement l’installation d’un proxy.
11
Intégration du scénario avec Authorization Manager
L’Authorization Manager (AzMan) est une nouvelle fonctionnalité de Windows Server 2003
qui permet à l’aide d’un « snap-in mmc » (azman.msc) d’implémenter l’administration d’une
application basé sur les rôles. Et comme la sécurité sur le framework .Net met essentiellement
l’accent sur les rôles…
Dans AzMan, on définit les autorisations pour une application pour un utilisateur de l’Active
Directory. Comme les rôles liés à un utilisateur peuvent contenir des tâches, qui peuvent
contenir des opérations, on peut définir de manière plus précise (affiner) et mieux structurée
les autorisations pour chaque utilisateur.
Plus d’infos à l’adresse (Concepts + création d’un nouveau magasin):
http://www.windowsecurity.com/articles/Authorization_Manager_Role_Based_Administratio
n_Windows_Server_2003_Part1.html
Fonctionnalités de l’application
J’ai une application Web qui accède à la base de données Northwind et affiche les tables
Customer et Order dans un Gridview.
Les données comprises dans la table Customer peuvent être effacées ou mise à jour à partir du
Gridview.
Il est possible d’ajouter un nouveau client ou une nouvelle commande. Un lien hypertexte
renvoie sur une page de l’administration (dossier admin accessible uniquement avec le rôle
ASPNET Administrator), qui permet l’insertion via un FormView.
Chaque fonctionnalité de l’application correspond à une opération définie dans AzMan. Selon
les rôles affectés à l’utilisateur, il pourra accéder à l’une ou l’autre des fonctionnalités. Les
rôles AzMan définissent les fonctionnalités accessibles à un utilisateur (propriétés « enabled »
ou « visible » des contrôles), mais ils doivent aussi correspondre aux rôles ASPNET qui
définissent l’accès aux dossiers et aux fichiers.
Ainsi, l’utilisateur MrS contenu dans le rôle Manager de AzMan, doit aussi, d’après son rôle
AzMan être ajouté au rôle Administrator de ASPNET. Le rôle AzMan permet à cet utilisateur
d’activer l’hyperlien qui pointe sur la page d’ajout d’un nouveau client et le rôle ASPNET
donne les droits d’accès à cette page ou au dossier dans laquelle elle se trouve.
Configuration de l’Active Directory et Active Directory Federation Services
Il faut créer les utilisateurs qui vont pouvoir accéder à l’application. Tous les utilisateurs
proviennent du domaine treyresearch.net. Les domaines étant privés, AzMan n’arrive pas à
accéder à l’annuaire LDAP du domaine adatum.com.
Utilisateurs créés : terrya, mrs, azbak. Les deux premiers existent déjà et sont configurés dans
l’ADFS. Par contre l’utilisateur Azman Rbac doit figurer dans l’ADFS pour la création du
claim lisible par l’application. Simplement, dans le magasin Active Directory de l’ADFS, au
niveau du groupe d’extraction des claims (*, Trey ClaimApp External), rajouter l’utilisateur
azbak.
Configuration de l’Authorization Manager
Pour créer un nouveau magasin, une nouvelle application et pour des détails sur les concepts
et les objets se trouvant dans AzMan, se référer aux liens « Création d’un magasin AzMan »
et « Définition des rôles AzMan » de la section source.
Voici à quoi ressemble ma configuration AzMan. A noter le nom de l’application (très
important) : claimsaware :
12
Dans le dossier Groups du magasin, j’ai créé un groupe admins avec l’utilisateur mrs.
J’ai ensuite défini les opérations suivantes :
ID Opération
Nom Opération
Description Opération
1
Select Customers
Active l’affichage du GridView des clients
2
Add Customer
Active la fonctionnalité d’ajout d’un nouveau client
3
Delete Customer
Active le bouton Delete du GridView des clients
4
Update Customer
Active le bouton Edit du GridView des clients
5
Create Customer
Active la fonctionnalité d’ajout d’une commande
6
Select Orders
Active l’affichage du GridView des commandes
Puis les tâches suivantes :
ID Tâche
Nom Tâche
Description Tâche
Contient opérations/tâches
1
Display Customer
Active l’affichage des GridView
op:1, op:6
2
Modify Customer
Active la gestion des données des grilles
op:2, op:3, op:4, tâche:1
Et enfin les rôles suivants :
Nom Rôle
Description Rôle
Contient rôle/tâches/opérations
Reader
Peut lire les données
tâche:1
Manager
Gère les données
rôle:1, tâche:2, op:5
Ensuite, reste à assigner les utilisateurs aux rôles :
Nom Rôle
Assignement utilisateurs
Reader
[email protected]
Manager
[email protected] (groupe admins)
Restricted (facultatif)
[email protected]
La
création
des
tâches
n’est
pas
très
utile,
car
la
référence
« Microsoft.Interop.Security.AzRoles.dll » en .Net ne permet pas d’accéder aux tâches, mais
uniquement aux opérations en fonction de leurs identifiants.
13
Configuration de l’application (web.config)
Il faut tout d’abord rajouter à la section <ConnectionStrings>, la connexion à la base de
données (utilisation de SQL Express Server 2005) et la connexion à l’annuaire LDAP.
<connectionStrings>
<add name="NorthwindConnectionString" connectionString="Data
Source=adfsweb\SQLExpress;integrated security=true;attachdbfilename=C:\SQL Server 2000 Sample
Databases\NORTHWND.MDF;user instance=true;"
providerName="System.Data.SqlClient" />
<add name="LocalPolicyStore"
connectionString="msldap://adfsresource.treyresearch.net/CN=App,DC=treyresearch,DC=net" />
</connectionStrings>
Dans la section <roleManager>, il faut ajouter le roleManager d’AzMan :
<roleManager
enabled="true"
cacheRolesInCookie="true"
defaultProvider="AspNetSqlRoleProvider"
cookieName=".ASPXROLES"
cookiePath="/"
cookieTimeout="30"
cookieRequireSSL="true"
cookieSlidingExpiration="true"
createPersistentCookie="false"
cookieProtection="All">
<providers>
<add name="RoleManagerAzManProvider"
type="System.Web.Security.AuthorizationStoreRoleProvider, System.Web, Version=2.0.0.0,
Culture=neutral, publicKeyToken=b03f5f7f11d50a3a"
connectionStringName="LocalPolicyStore"
applicationName="claimsaware"/>
</providers>
</roleManager>
Le provider par défaut est le roleManager AspNet (défini dans machine.config). Si l’on met le
roleManager d’AzMan comme provider par défaut, alors les rôles utilisés seront ceux
d’AzMan. Par exemple, le code suivant :
if (!User.IsInRole(role))
Roles.AddUserToRole(name, role);
Si le provider par défaut est AzMan: le test se fait sur les rôles AzMan et le code
« Roles.AddUserToRole » génère une exception. Il ne semblerait pas que l’on puisse
administrer AzMan avec du code .Net (ce qui paraît logique pour des questions de sécurité).
De plus, je n’ai pas trouvé le moyen de gérer les droits d’accès aux dossiers ou fichiers de
l’application Web avec des donc rôles AzMan, pas d’accès à la partie administration.
Si le provider par défaut est ASPNET : le test se fait sur les rôles ASPNET et le code cidessus permet de transférer le rôle AzMan en rôle ASPNET. Ainsi, si un utilisateur à le rôle
Manager sous AzMan, il obtiendra le rôle Administrator sous ASPNET, lui donnant ainsi
accès à la partie admin.
Code behind
La première chose à faire est d’importer la référence
« Microsoft.Interop.Security.AzRoles.dll ». Elle se trouve dans l’onglet « COM » sous le nom
de « AzRole 1.0 » (je ne sais pas le nom exact) si l’on travaille sur Windows Server 2003.
14
Sinon, il faut télécharger le runtime « Windows 2000 Server Authorization Manager
Runtime » à l’adresse
http://www.microsoft.com/downloads/details.aspx?FamilyID=7edde11f-bcea-4773-a29284525f23baf7&DisplayLang=fr
Après exécution du setup, la dll se trouve dans le répertoire
« [installation _directory]\Windows(R) 2000 Authorization Manager Runtime\PIA \1.2\»
using Microsoft.Interop.Security.AzRoles;
Le code pour se connecter à AzMan, initialiser un magasin et ouvrir l’application
« claimsaware » est le suivant :
AzAuthorizationStoreClass AzManStore = new AzAuthorizationStoreClass();
AzManStore.Initialize(0, ConfigurationManager.ConnectionStrings
["LocalPolicyStore"].ConnectionString, null);
IAzApplication azApp = AzManStore.OpenApplication("claimsaware", null);
Création du contexte client
IPrincipal userPrincipal = HttpContext.Current.User;
WindowsIdentity userIdentity = userPrincipal.Identity as WindowsIdentity;
clientContext = azApp.InitializeClientContextFromName(name, sp.Value, null);
où
SingleSignOnIdentity ssoId = User.Identity as SingleSignOnIdentity;
name = HttpContext.Current.User.Identity.Name.ToString();
SecurityPropertyCollection spc = ssoId.SecurityPropertyCollection;
SecurityProperty sp = spc[1];
On récupère ensuite tous les rôles ASPNET de l’utilisateur et on les efface. Cette
réinitialisation est nécessaire, au cas où on aurait changé le rôle d’un utilisateur dans AzMan.
Les rôles ASPNET doivent correspondre aux rôles AzMan tels qu’il sont définis au moment
de lancer l’application.
String[] myRoles = Roles.GetRolesForUser();
Roles.RemoveUserFromRoles(name, myRoles);
Ensuite, pour chaque rôle AzMan attribué à l’utilisateur courant, on va générer le rôle
ASPNET correspondant.
Array data = (Array)clientContext.GetRoles(null);
foreach (string Role in data)
{
if (Role == "Manager")
goGetRole("Administrators");
if (Role == "Reader")
goGetRole("Guests");
if (Role == "Restricted")
Label2.Text += "restricted access: no role obtained";
}
protected void goGetRole(String role)
{
if (!User.IsInRole(role))
{
Roles.AddUserToRole(name, role);
}
Label2.Text += role;
}
15
Cette façon de faire n’est pas dynamique et l’ajout d’un rôle AzMan peut entraîner l’ajout
d’un rôle ASPNET, ce qui dans le code ci-dessus implique que l’on doive rajouter une ligne.
Pour éviter cette situation, le mieux est de créer des rôles AzMan et ASPNET avec des noms
identiques, évitant ainsi les tests :
foreach (string Role in data)
goGetRole(Role);
Pour créer un rôle ASPNET dynamique, utiliser le contrôle « CreateUserWizard”.
Pour activer les fonctionnalités liées à un utilisateur, on va tester pour chaque opération si
l’utilisateur peut accéder à cette opération. Si oui, fonctionnalité activée.
if (op_validation(1))
activeOp_SelectCustomer();
if (op_validation(2))
activeOp_AddCustomer();
if (op_validation(3))
activeOp_DelCustomer();
if (op_validation(4))
activeOp_ModCustomer();
if (op_validation(5))
activeOp_AddOrder();
if (op_validation(6))
activeOp_SelectOrders();
protected Boolean op_validation(int opID)
{
object[] operationIds = new object[] { opID };
object[] result = (object[])clientContext.AccessCheck("Auditstring",
new object[1], operationIds, null, null, null, null, null);
int accessAllowed = (int)result[0];
if (accessAllowed != 0)
{
return false;
}
else
{
return true;
}
}
Si on ajoute une opération, il faut ajouter un test avec la méthode qui va avec. Dans le
principe, j’ai créé une méthode pour chaque fonctionnalité (=pour chaque opération).
Limitations
Les tâches ne peuvent pas être gérées avec .Net.
Le code est peut dynamique. Un changement dans AzMan peut entraîner une réécriture du
code de l’application.
Avec une application de type claims-aware, il n’est pas possible de se loguer avec un
utilisateur ASPNET, malgré que le rôle manager pour ASPNET est activé.
Cette solution apporte quand même un plus par rapport à une solution sans AzMan, car il
permet un affinage des droits utilisateurs, grâce à la notion d’opérations. Sans AzMan, c’est
possible de gérer l’application de la même manière, mais comme la notion d’opérations
n’existe plus, il faudrait créer un rôle pour remplacer chaque opération. Au niveau de l’ADFS,
16
il faudrait créer des groupes (« Claims Aware Applications ») pour chaque rôle ASPNET, car
on détermine le rôle d’un utilisateur en fonction de son groupe claims. C’est possible, même
si c’est moins intéressant avec une structure moins logique.
Erreurs
1. Le nom de l’application est « claimsaware » et non pas « app » (=magasin).
2. La chaine de connexion à LDAP commence par « msldap » et non « ldap ». CN= au nom
du magasin.
3. « Database is read-only »
Solution:
Télécharger l’outil SSEUtil de SQLExpress, puis tapez en commande:
C:\temp>SSEUtil.exe -child "NT Authority\Network Service" -detach
C:\Inetpub\stepbystep\claimapp\App_Data\aspnetdb.mdf
4. Droits d’accès insuffisants pour accéder à AzMan (ouverture de l’application). Dans
AzMan, faites un clique droit sur le nom du magasin > propriétés > security, puis ajouter les
droits de lectures à IIS (IIS_WPG).
URL du site
http://adfsweb.treyresearch.net:8080/claimappaz/
Application Token-Based – Exemple SharePoint
L’application SharePoint est une application de type Windows Traditionnal ou Token-Based.
On va voir avec cet exemple, comment mettre en place l’ADFS avec une application de ce
type.
Dans l’idée, on a deux utilisateurs de deux domaines différents : terrya du domaine
treyresearch qui à un rôle administrateur et adamcar du domaine adatum qui a un rôle lecteur.
AD Configuration
Dans l’Active Directory du domaine treyresearch:
Création
Nom
Security global group
Federated users/
AdatumTokenAppUsers
User
Terry Adams
Dans l’active Directory du domaine adatum :
Création
Nom
Security global group
TreyTokenAppUsers
User
Adam Carter
User name
Not applicable
Terrya
(terrya va pouvoir accéder à
l’application Token-Based
avec le rôle administrateur)
User name
Not applicable
adamcar
(adamcar va pouvoir accéder
à l’application Token-Based
avec le rôle lecteur)
Adam Carter est ajouté au groupe TreyTokenAppUsers.
Via l’ADFS, le groupe TreyTokenAppUsers sera associé au groupe AdatumTokenAppUsers à
qui est attribué le droit de lecture dans SharePoint. Ce droit de lecture ne peut pas être attribué
directement à Adam Carter dans la configuration de SharePoint, car il appartient à un autre
domaine que celui où est installé SharePoint.
17
SharePoint Configuration
Pour installer SharePoint, se référer au manuel « ADFS_stepbystep.doc » : En résumé, dans
« add/remove programs/windows components », il faut installer « SharePoints services » et
« ADFS Web Agents », de même qu’il faut configurer IIS avec l’ADFS Web Agent (TokenBased).
Une fois l’installation effectuée, il faut configurer les permissions d’accès à SharePoint :
Création de l’utilisateur terrya avec le rôle administrateur et du groupe TreyTokenAppUsers
avec le rôle lecteur.
ADFS Configuration
Adam Carter appartient au groupe TreyTokenAppUsers, qui va se retrouver associé au groupe
AdatumTokenAppUsers du serveur resource, via les claims.
Federated
type
Group
Claim
Account
Active
Account
Directory
Organization
Claims
TreyTokenAppUsers
Trey TokenApp Claim
Namespace
(incoming/
outgoing)
Resource
Resource
Active Directory
Organization
Resource group
Claims
TokenAppMappi
Adatum TokenApp
AdatumTokenAp
ng
Claim
pUsers
L’utilisateur terrya n’a pas besoin d’être configuré dans l’ADFS. Il faut être logué en local
sous terrya pour accéder au site.
Url du site
http://adfsweb.treyresearch.net/
Sources
Windows Server 2003 R2 home:
http://www.microsoft.com/windowsserver2003/default.mspx
MS IT Showcase ADFS:
http://download.microsoft.com/download/1/C/E/1CE0BC41-88F1-4208-9F7E97CC93FE2C2D/ADFS-R2ITVC.doc
Claims-Aware or Token-Based applications:
http://technet2.microsoft.com/WindowsServer/en/Library/050392bc-c8f5-48b3-b30ebf310399ff5d1033.mspx?mfr=true
Troubleshooting ADFS
http://technet2.microsoft.com/WindowsServer/en/Library/ed76b687-7585-421d-ad4147c21499de001033.mspx?mfr=true
ADFS Overview
[projectDirectory]/ADFS/ADFS_Overview.doc
Architecture ADFS et interopérabilité
[projectDirectory]/ADFS/ADFS_Architecture_DrillDown.ppt
[projectDirectory]/ADFS/ADFS_Federated_Identity.ppt
[projectDirectory]/ADFS/ADFS_ITForums.ppt
18
Lab/B2B Scénario
[projectDirectory]/ADFS/ADFS_Lab.pdf
[projectDirectory]/ADFS/ADFS_Step-by-Step_Guide.doc
Création d’un magasin AzMan
http://www.windowsecurity.com/articles/Authorization_Manager_Role_Based_Administratio
n_Windows_Server_2003_Part1.html
Définition des rôles AzMan
http://www.windowsecurity.com/articles/Authorization-Manager-Role-Based-AdministrationWindows-Server-2003-Part2.html
Définition des opérations et des tâches
msdn.microsoft.com/msdnmag/issues/03/11/AuthorizationManager/
Authorization Manager et ASP.Net 2.0
http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnpag2/html/PAGHT000019.asp
Résolution d’erreurs
http://forums.asp.net/941457/ShowPost.aspx
MIIS
MIIS est un système qui gère et coordonne les informations d’identités provenant de multiples
sources de données dans une organisation, permettant ainsi de combiner ces informations en
une seule vue logique qui représente toutes les informations d’identités pour un utilisateur ou
une ressource donné.
En d’autres termes, il permet de regrouper (centralise et manage) les données utilisateurs,
applications ou provenant d’autres ressources réseau en une seule vue.
Versions
- Microsoft Identity Integration Server 2003 SP1, Enterprise Edition
- Identity Integration Feature Pack 1a for Microsoft Windows Server Active Directory:
o Gratuit, mais utilisable uniquement entre AD, ADAM, Exchange Server.
Identity Integration Feature Pack 1a for Microsoft Windows Server Active Directory a été
conçu pour intégrer les informations d’identités entre plusieurs forêts Active Directory ou
entre AD et ADAM.
Compatibilité
MIIS Server 2003 intègre les informations d’identités provenant des sources suivantes :
Network operating systems
Microsoft Windows NT, Active Directory, Active Directory Application Mode, IBM Directory
and directory services
Server, Novell eDirectory, Resource Access Control Facility (RACF), SunONE/iPlanet
Directory, X.500 systems, Global Address Lists (Exchange), LDAP Directory Interchange
Format and other met directory products
E-mail
Lotus Notes and Domino, Microsoft Exchange 5.5
19
Application
PeopleSoft, SAP, ERP, telephone switches, XML- and DSML-based systems
Database
Microsoft SQL Server, Oracle, Informix, dBase, IBM DB2, Access, Excel, OLE DB via SQL
Data Transformation Services (DTS)
File-based
DSMLv2, LDIF, CSV, delimited, fixed width, attribute value pairs
Système requis:
- Windows Server 2003 enterprise Edition (y.c. CALs (Client Access Licenses))
- SQL Server 2000 standard ou enterprise Edition SP3
Ceci est valable pour les deux versions.
Password Management
Cette fonctionnalité permet de regrouper les mots de passe d’un utilisateur dans une même
vue, afin de faciliter la réinitialisation (resetting) des mots de passe. En effet, l’administrateur
peut grâce à cette fonctionnalité gérer les mots de passe d’un utilisateur depuis une seule
application, au lieu de devoir perdre du temps à se déplacer là où il peut le réinitialiser.
Exemple :
Recherche de l’utilisateur
Accès à la vue de l’ensemble des mots de passe de l’utilisateur
20
Cette fonctionnalité ne fournit donc pas une solution SSO.
Extrait du FAQ MIIS :
MIIS 2003 peut-il synchroniser les mots de passe ? Permet-il l'implémentation de l'identification unique
(single sign-on, également appelé SSO) ?
Non. MIIS 2003 ne synchronise pas les mots de passe. Il permet à travers une simple interface Web de définir ou
réinitialiser les mots de passe de différents systèmes. MIIS 2003 ne permet pas le single sign-on ; ce rôle est dévolu à
Active Directory, Kerberos et d’autres composants du système d’exploitation Windows.
Bon à savoir:
- MMS n’est plus valable. Il est définitivement remplacé par MIIS 2003.
- Avec MIIS, la gestion des mots de passe entraîne également une synchronisation entre
MIIS et l’Active Directory (ou autre méta-annuaires). ADFS, par contre, est
étroitement intégré à Active Directory et ne nécessite pas de méta-annuaires à
maintenir ou d’architecture de synchronisation à construire.
- MIIS et ADFS: “ADFS is used for authentication, e.g., for WebSSO and for federated
scenarios. MIIS is used for user provisioning with business rules and for directory
synchronization. They complement each other. »
(http://www.microsoft.com/technet/community/chats/trans/windowsnet/05_0517_tn_a
d.mspx)
Sources:
MIIS 2003 Product Overview:
http://www.microsoft.com/windowsserversystem/miis2003/evaluation/overview/default.mspx
MIIS 2003 SP1 System Requirements:
http://www.microsoft.com/windowsserversystem/miisM2003/evaluation/requirements/default
.mspx
Microsoft Identity Integration Server 2003 Frequently Asked Questions:
http://www.microsoft.com/windowsserversystem/miis2003/evaluation/faqs/default.mspx
FAQ MIIS
http://www.microsoft.com/france/miis/decouvrez/faq.asp
Overview documentation:
[projectDirectory]/MIIS/MIIS_SP1.doc
Password management:
[projectDirectory]/MIIS/MIIS_2003_Password_Management.doc
Centrify DirectControl
Centrify et Microsoft ont collaboré pour donner naissance au produit DirectControl qui
permet notamment d’étendre l’ADFS à des applications Web tournant sur des plateformes
Microsoft ou non-Microsoft (Unix, Linux, Mac). Avec cette solution, Microsoft ADFS peut
être utilisé pour fournir le Web SSO pour des applications Web hébergé sur Apache et
différents serveurs J2EE tels qu’IBM WebSphere, BEA WebLogic, JBoss, et Tomcat.
Les rôles et droits d’accès sont gérés dans l’Active Directory. Les systèmes Linux et Unix
sont intégrés à l’Active Directory pour gérer les comptes de manière centralisée.
21
Le logiciel DirectControl suit les mêmes mécanismes que l’ADFS, c’est-à-dire qu’il va
fournir des Web Agents qui seront chargés d’intercepter les claims, de les valider et de les
transférer à l’application.
Il suffit d’installer le Web Agent de DirectControl sur le serveur Web qui héberge
l’application.
Composants DirectControl
Les composants suivants peuvent être téléchargés dans le « Download Center » de Centrify :
-
Windows Management Tools : permet de mapper les utilisateurs des environnements
Unix ou Linux dans l’Active Directory
System Agents : agents systèmes pour les systèmes d’exploitation suivants :
22
-
Les agents web pour les plateformes web suivantes :
Téléchargement de Centrify DirectControl
Le premier objectif de l’utilisation de Centrify DirectControl était d’étendre l’ADFS à une
plateforme Web Apache pour l’utilisation d’applications java. Comme Centrify ne propose
pas de modules d’application pour Apache sur Windows, j’ai choisi de tester avec Tomcat.
A noter que l’outil Windows Management Tool et que les agents systèmes ne sont utiles que
si l’on veut intégrer des utilisateurs Unix ou autres à l’Active Directory.
Pour tester l’ADFS avec une application Java, il suffit de télécharger le module d’application
Apache Tomcat on Microsoft Windows.
Le dossier dézippé contient :
- la doc « Web_Java.pdf »
- le fichier d’installation « install.pl » sous le répertoire « \centrifydc-web\java\ »
- les exemples d’applications sous le répertoire « \centrifydcweb\java\sampleapps\tomcat\tomcat5 ». Les fichiers « adfs-claims-aware.war » et
« adfs-ordering.war » sont les plus intéressants pour nous.
23
Installation du module
Dans l’idéal et selon Centrify, il suffit de lancer l’application « install.pl » qui va se charger
de configurer Tomcat et mettre en place les exemples d’application (Télécharger Perl pour
pouvoir exécuter le fichier). Après avoir choisi Tomcat, les options suivantes se présentent :
Configuration de Tomcat pour l’authentification avec Centrify DC
Des trois options proposées, seule la première option [1] fonctionne correctement. Elle copie
les librairies Centrify au bon endroit dans l’environnement Tomcat.
Installation de l’exemple « ADFS-claims-aware »
L’option [2] ne fonctionne pas : le programme n’arrive pas à mettre à jour le fichier .war.
Deux solutions : soit modifier les fichiers Perl, soit effectuer l’installation manuellement.
Pour faire fonctionner l’option, il suffit de mettre en commentaire la ligne 235 du fichier
« FsCommon.pm » du répertoire
« C:\temp\centrify_tomcat\centrifydc-web\java\scripts\perl\CentrifyFs »
Tel que
# return (-4, "Failed to update $tmp_dir/$app_name.war with $CENTRIFYDC_FS_CONFIG_FILE");
C’est mieux de vérifier manuellement que les changements ont bien été faits dans les fichiers
de configuration de Tomcat. On effectue la vérification pour l’exemple « adfs-claimsaware » :
Attention : le guide « web_java.pdf », utile pour la modification manuelle des fichiers de
config, contient des erreurs de frappe, caractères non UTF et erreurs de case-sensitive. Un
copier-coller du code peut entraîner des erreurs de serveur Tomcat.
1. Dans le fichier « server.xml » sous le répertoire
“C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf”:
<Context path="/centrifydc-samples" docBase="adfs-main"/>
<Context path="/centrifydc-samples/adfs-claims-aware" docBase="adfs-claims-aware"/>
Ces deux lignes correspondent plus ou moins aux «Virtual Path » de IIS. Elles mettent en lien
l’adresse URL de la page Web avec le chemin physique qui contient cette page.
2. Dans le fichier “centrifydc_fs.xml” sous le repertoire
« C:\Program Files\Apache Software Foundation\Tomcat 5.5\webapps\adfs-claimsaware\WEB-INF », vérifier les lignes suivantes :
24
<federationServerUrl>https://adfsresource.treyresearch.net/adfs/fs/federationserverservice.asmx</fede
rationServerUrl>
<entryUrl>https://adfsresource.treyresearch.net:8443/centrifydc-samples/adfs-claimsaware/entry.jsp</entryUrl>
Ces deux lignes sont les mêmes qui se trouvent dans le fichier « web.config » des applications
.Net et qui font le lien avec le serveur ADFS.
Configuration du server d’application pour SSL
L’option [3] ne fonctionne pas du tout. Il faut faire la configuration manuellement.
1. Dans le fichier « server.xml » sous le répertoire
“C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf”, enlever les
commentaires à la balise suivante.
<Connector port="8443" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" keystoreFile="\conf\keystore.jks" sslProtocol="TLS" />
2. Générer un certificat pour ce serveur avec l’outil keytool et qui sera stocké dans le fichier
« \conf\keystore.jks » :
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA -keystore C:\Program
Files\Apache Software Foundation\Tomcat 5.5\conf\keystore.jks
3. Importer le certificat du serveur host du serveur de fédération resource (certificat autosigné généré par selfSSL ; exportation dans un fichier .cer depuis le site Web par défaut
sous IIS) :
Déclaration de l’application au niveau du serveur ADFS
Dans le snap-in «Active Directory Federation Services » du serveur de fédération resource,
créer une nouvelle application « claims-aware ».
Ajouter à cette application des « organizations claims » déjà existants ou nouveau (voir le
chapitre consacré au lab du scénario B2B sous ADFS).
L’Application URL doit correspondre à la balise <entryUrl> du fichier « centrifydc_fs.xml »
de l’application claims-aware :
https://adfsresource.treyresearch.net:8443/centrifydc-samples/adfs-claims-aware/entry.jsp
25
Tester l’application
L’Url du site est le suivant :
http://adfsresource.treyresearch.net:8080/centrifydc-samples/adfs-claims-aware/
Après SSO, l’application aboutit avec succès :
Développez l’application claims-aware
La bibliothèque « centrifydc_fs_taglib.jar » de Centrify fournit les tags SAML qui permettent
de récupérer les informations concernant les assertions SAML et les claims.
Il n’est pas possible (en tout cas pas fait pour) d’appliquer AzMan avec une application Java.
Par contre, il est possible d’imiter l’application .net basée sur les rôles ASPNET.
Rôles Tomcat
Pour mapper des utilisateurs ou des groupes (group claims) à un rôle Tomcat, modifiez dans
le fichier centrifydc_fs.xml de l’application la balise <RoleMapping> :
<RoleMapping separator=";">
<Role name="Role1" group=”Adatum ClaimApp Claim” user="[email protected]"/>
<Role name="admin" group="Adatum ClaimApp Admin"/>
<Role name="manager" user="[email protected]"/>
</RoleMapping>
IfUserInRole tag
Ce tag permet de tester si un utilisateur appartient à un rôle (=group) ou non. On peut ainsi
afficher en fonction du group claim de l’utilisateur les éléments de la page qui lui sont visibles
ou non.
<saml:ifUserInRole role="Adatum ClaimApp Admin" var="isAdmin" />
<c:when test="${isAdmin}"> <a href=http://adfsweb.treyresearch.net:8080/claimapp>.Net Claims-Aware
Application
ASPNET Role-based Manager</a> </c:when>
Source
Plus d’informations sur le guide [projectDirectory]/Centrify/Web_java.pdf
26
Problème de certificats
Lors du lancement de Tomcat, l’erreur suivante est générée :
GRAVE: RMI error encountered while getting federation service trust info
java.rmi.RemoteException: Erreur de transport HTTP : javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested
target; nested exception is:
Erreur de transport HTTP : javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested
target
Cette erreur entraine l’erreur suivante lors du lancement de l’application web : le serveur de
fédération ne peut pas être contacté.
Cette erreur est due au fait que le certificat du serveur hébergeant le serveur de fédération
ressource qui a été importé n’est pas reconnu comme Certification d’Autorité valide par Sun.
Or ce certificat n’a pas de CA, puisqu’il est auto-signé.
Il y a trois outils et trois fichiers importants pour résoudre ce problème.
Les outils :
- selfSSL : outil de Microsoft qui permet de générer des certificats auto-signés. Le
certificat du serveur resource a été généré par cet outil.
- keytool : outil de Sun qui permet notamment de générer et d’importer des certificats
(génération de certificats auto-signés) dans des keystores au format JKS ou PKCS12
utilisés par java et Tomcat
- install.pl : ce petit programme en Perl de Centrify utilise l’outil keytool pour
l’importation de certificat
Les fichiers ou keystores:
- C:\Sun\AppServer\jdk\jre\lib\security\cacerts : contient les CA reconnus par Sun.
- C:\Documents and Settings\Administrator.ADFSRESOURCE\.keystore: keystore par
défaut de l’outil keytool ; lorsqu’aucun keystore n’est précisé dans la ligne de
commande.
- C:\Program Files\Apache Software Foundation\Tomcat 5.5\conf\keystore.jks: keystore
par défaut de Tomcat. Après avoir configuré Tomcat avec SSL, celui-ci va lire les
certificats dans ce keystore.
Résolution du problème
1. Si ce n’est pas déjà fait, exporter le certificat du serveur Host du serveur de fédération
resource dans un fichier .cer
2. Ne pas utiliser l’outil Centrify, qui ne fonctionne pas.
3. Généré un certificat auto-signé avec keytool dans le keystore par défaut de Tomcat :
%JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA -keystore C:\Program
Files\Apache Software Foundation\Tomcat 5.5\conf\keystore.jks
27
4. Importer le certificat du serveur resource dans le fichier cacerts des CA trusted par
Sun.
Source
Centrify et ADFS
http://www.centrify.com/directcontrol/adfs.asp
Centrify et Tomcat
[projectDirectory]/Centrify/Web_Java.pdf
Tomcat et SSL
http://tomcat.apache.org/tomcat-5.5-doc/ssl-howto.html
Perl
http://www.activestate.com/.
Liberty Alliance
Liberty Alliance, aussi connu sous le nom de Project Liberty, est un projet qui réunit des
acteurs des mondes industriel, informatique, bancaire et gouvernemental sous la forme d'un
consortium. L'objectif est de définir des ensembles de spécifications de protocoles de
fédération d'identité et de communication entre services web.
Dans le contexte de Liberty Alliance, l'authentification unique correspond à la possibilité pour
l'utilisateur d'accéder, après s'être identifié à l'aide d'un compte unique, à des services
proposés par différents fournisseurs appartenant à un même "cercle de confiance" ("Circle of
Trust"). Ces spécifications techniques et fonctionnelles décrivent donc les mécanismes qui
devraient d'une part simplifier l'usage d'Internet (mise en œuvre du principe de signature
unique) et d'autre part permettre à un individu de maîtriser la diffusion de ses données
personnelles (nom, prénom, adresse électronique, etc., qui définissent en réalité son identité
numérique dès lors qu'il fait usage d'Internet) en décidant lesquelles il désire partager.
Une caractéristique spécifique de Liberty Alliance est la notion de fédération. Au lieu que ce
soit un fournisseur de service qui décide si un utilisateur a le droit d'accéder à son service sans
se ré-identifier, c'est l'utilisateur qui décide s'il veut accéder à ce service sans se ré-identifier.
Cette possibilité ne peut être laissée à l'utilisateur que s'il doit au préalable s'identifier auprès
d'un fournisseur d'identité reconnu par le fournisseur du service demandé.
28
Concepts clés
[projectDirectory]/Liberty Alliance/LibertyTechnologyTutorial[1].pdf
Dans le chapitre sur PingFederate, ces concepts sont repris plus précisément.
Fédération – SSO initiation
[projectDirectory]/Liberty Alliance/LibertyTechnologyTutorial[1].pdf
Dans le chapitre sur PingFederate, les concepts d’IdP-Initiated SSO et SP-initiated SSO sont
repris en détails.
29
Implémentations libres
-
SourceID: http://www.sourceid.org/
“SourceID is the #1 open source project for federated identity”
-
Lasso: http://lasso.entrouvert.org/
o Fournit une librairie c++
o Interopérable avec SourceID toolkit for Java ID-FF 1.2
o Langages de développement conseillé : c++, c (pas terrible pour le Web SSO)
o Langages possibles : php, java, c#
-
FederID: le projet FederID est le résultat de l’intégration des logiciels libres suivants :
o Lasso : une implémentation libre des standards Liberty Alliance.
o InterLDAP : un gestionnaire d'annuaire LDAP avancé.
o LemonDAP : un mandataire inverse (reverse proxy) SSO.
Plus de détails à l’adresse:
http://federid.objectweb.org/xwiki/bin/view/Main/WebHome
Le projet est en cours et n’offre donc pas de solutions pour l’instant.
Membres actuels
http://www.projectliberty.org/membership/current_members.php
Liberty Alliance Interoperability
PingFederate
PingFederate n’apparaît pas sur cette liste, bien qu’il intègre le protocole standard SAML 2.0
qui appartient également aux protocoles Liberty Alliance (pas exclusivement). En fait, le
serveur PingFederate semble ne pas être interopérable avec le protocole ID-WSF (1.1) pour
les web services interopérable avec le protocole SAML 2.0. Et ceci est une des conditions
pour être reconnu LA Interoperable.
(http://www.projectliberty.org/press/details.php?item_id=134).
Tiré du document « PingFederate3_overview » :
Pour l’instant PingFederate n’intègre pas les protocoles ID-WSF de Liberty Alliance pour les
services web.
30
SymLabs
SymLabs est une entreprise qui a créé un produit « SymLabs Federated Identity Access
Manager » et qui a le même objectif que PingFederate, en ce sens qu’il est technologiquement
neutre. Mais, en plus des protocoles SAML 2.0 et WS-Federation (gérés par PingFederate), il
propose des protocoles spécifique à Liberty Alliance tels que ID-FF 1.2 et ID-WSF 1.1. Il
mérite donc d’être cité. Il est donc encore plus « Liberty Alliance Interoperable » que
PingFederate.
Ce logiciel n’est toutefois pas supporté par les plateformes Windows. Plateformes
supportées :
• Linux (any major distribution on x86 architecture, other architectures on request)
• Solaris 2.6 - 10 on UltraSparc architecture
• Solaris for Intel 8 - 10
• HP-UX (any architecture on request)
• AIX on request
• Mac OS X on request
• BSD family operating systems, any architecture, on request
• Any modern UNIX operating system on any architecture on request
• Embedded or blade operating systems on request
URL : http://www.symlabs.com/Products/SFIAM.html
Sun
Le produit Sun Java System Federation Manager possède entre autre les fonctions de SSO.
Il n’est pas encore disponible sur Windows.
Il n’intègre pas le protocole WS-Federation à sa solution.
URL : http://www.sun.com/software/products/federation_mgr/index.xml
IBM
Produit Tivoli Federated Identity Manager.
“Allow collaboration with a wide variety of partner organizations, through concurrent support
for all leading Federated Single Sign-On protocols”
“Align with open standards and specifications including Liberty, SAML, WS-Federation,
WS-Security and WS-Trust.”
URL : http://www-306.ibm.com/software/tivoli/products/federated-identity-mgr/
31
Oracle
Le produit Oracle Identity management contient notamment la solution de SSO (web y.c.)
Oracle Identity Federation qui supporte les protocoles SAML, Liberty et WS-Federation.
Supported Platforms and Components
Supported Platforms
Microsoft Windows 2000
Microsoft Windows 2003
Red Hat Linux
Supported Directory Servers and
Databases
Oracle Database
Microsoft SQL Server
Microsoft Active Directory
Oracle Internet Directory
Sun Java System Directory Server
Supported Identity & Access Management
Systems
Oracle Access Manager
Oracle Single Sign-On
Oracle COREid Access & Identity
CA SiteMinder
Supported Protocols
SAML 2.0
SAML 1.1
SAML 1.0
Liberty ID-FF 1.2
Liberty ID-FF 1.1
WS-Federation Passive Requestor Profile
URL:
http://www.oracle.com/technology/products/id_mgmt/coreid_fed/htdocs/fov_identity_federati
on_10gr3.html
Novell
Le produit Novell Identity Manager traite du SSO, mais pas du Web SSO, donc sans rapport
avec Liberty Alliance.
URL : http://www.novell.com/products/identitymanager/
Le produit Novell agréé par Liberty Alliance et appelé Novell Access Manager ou Odyssey,
ne semble pas encore disponible sur le commerce (rien trouvé sur le site). Il ne semble pas
non plus inclure le protocole WS-Federation.
URL : http://www.novell.com/news/press/archive/2004/07/pr04048.html
Liste complète
http://projectliberty.org/activities/conformant_products.php
Sources
Définition
http://fr.wikipedia.org/wiki/Liberty_Alliance
Site officiel
http://projectliberty.org/
32
PingFederate
Overview
Nature du produit
L’entreprise Ping Identity, qui soutient également le projet sourceID, a mis au point un
serveur de fédération PingFederate, qui intègre les protocoles SAML 1.1, 2.0 et WSFederation. PingFederate ne peut pas être considérée comme une application issue du projet
Liberty Alliance. En fait, elle est technologiquement neutre. Elle est tout aussi bien
interopérable avec ADFS (WS-Federation) qu’avec Liberty Alliance ou Shibboleth (SAML
2.0).
Description du produit
Le produit PingFederate est un serveur de fédération d’identité qui permet le Web SSO pour
des scénarios de B2B, B2C et en interne pour les employés. Il supporte également le protocole
WS-Federation, ce qui lui permet de se connecter à l’Active Directory et de dialoguer avec
l’Adfs.
http://www.pingfederate.com/products/pingfederate
PingFederate permet aux utilisateurs internes de se connecter SSO entre les domaines de
sécurité, mais aussi auprès des applications partenaires. Les utilisateurs partenaires peuvent
aussi se connecter SSO auprès des applications internes.
33
[projectDirectory]\PingIdentity\PingFederate\PingFederate_Datasheet.pdf
Un seul serveur PingFederate permet de fédérer des applications provenant de multiples
domaines de sécurité. Ce serveur fait office de fournisseur de service, alors que chaque
domaine de sécurité joue le rôle de fournisseurs d’identité. Chaque IdP peut gérer de manière
différente son contexte de sécurité.
[projectDirectory]\PingIdentity\PingFederate\PingFederate_Admin_Manual.pdfs
34
Concepts clés
Les derniers standards SAML 2.0 et WS-Federation définissent deux rôles dans un partenariat
de fédération d’identité : un fournisseur d’identité (Identity Provider or IdP) et un fournisseur
de service (Service Provider or SP).
IdP : c’est une entité système qui authentifie un utilisateur et transmet l’information de
référence de l’identité de cet utilisateur basé sur cette authentification.
SP : c’est le consommateur de l’information d’identité fournit par les IdPs. Les applications
SP déterminent la façon d’utiliser l’information contenue dans une assertion SAML.
Assertions : ce sont des documents XML envoyés depuis un IdP vers un SP et qui
contiennent les informations sur un utilisateur qui a initié un SSO.
Authentification context : Le contexte d’authentification est un supplément d’information
sur un utilisateur par rapport à une assertion requis par un SP pour permettre l’accès à une
ressource. Ces contextes d’authentification peuvent être fournis par des kits d’intégration.
IdP-initiated SSO : dans ce scénario, un utilisateur est logué auprès de l’IdP et tente
d’accéder à une ressource sur un serveur SP distant. L’utilisateur n’est pas logué sur le site
SP.
[projectDirectory]\PingIdentity\PingFederate\PingFederate_Admin_Manual.pdfs
35
SP-initiated SSO : dans ce scénario, un utilisateur essaie d’accéder à une ressource protégée
directement sur le site SP sans y être logué. L’utilisateur n’a pas de compte sur le site SP,
mais il a un compte fédéré auprès d’un IdP tiers.
[projectDirectory]\PingIdentity\PingFederate\PingFederate_Admin_Manual.pdfs
Account linking : cette méthode fournit un moyen pour un utilisateur de se loguer sur
différents sites avec seulement une authentification dans les cas où l’utilisateur possède des
comptes ou des credentials sur chaque site.
[projectDirectory]\PingIdentity\PingFederate\PingFederate_Admin_Manual.pdfs
1. David Smith se logue avec son compte davidsmith sur le site A et décide de se loguer sur le
site B via le site A.
3. PingFederate crée un pseudonyme sur le site A et le fait passer sur le site B
4. PingFederate sur le site B retrouve le compte existant sur le site grâce aux informations
passées avec le pseudonyme.
36
Adapters et Agent toolkit
Un des avantages de PingFederate, qui lui permet d’intégrer les différentes plateformes Web
et selon les protocoles, est qu’il constitué d’un noyau central sur lequel viennent se greffer des
Adapters qui ont comme but de se connecter avec ces plateformes. Des agents sont placés du
côté des plateformes Web pour dialoguer avec ces Adapters.
Les Adapters pour les protocoles SAML et WS-Federation sont délivrés par défaut avec le
serveur PingFederate.
Les Agent Toolkits pour les applications Java et .Net peuvent être téléchargés sur le site de
SourceID. Ils sont déjà présents avec les exemples d’application.
Voici un schéma qui illustre cela dans un scénario de SSO IdP-initiated.
[projectDirectory]\PingIdentity\PingFederate\PingFederate_Admin_Manual.pdfs
1. Login SSO
2. Application IdP insère les attributs de l’utilisateur dans un PFTOKEN (Token
PingFederate) via l’agent toolkit (pour .Net) dans notre scénario.
3. PFTOKEN est redirigé vers l’IdP serveur de PingFederate
4. A partir du PFTOKEN, génération d’une assertion SAML
5. Envoi de l’assertion SAML au serveur SP
6. A partir du SAML, génération du PFTOKEN
7. PFTOKEN redirigé vers l’application
8. L’agent toolkit lit le TOKEN et rend les attributs valables pour l’application
Interopérabilités
37
Installation du serveur
Etapes (tirées des docs « PingFederate_Admin_Manual.pdf » et « Quick_start_guide.pdf »)
1. Téléchargement du server PingFederate 4.0
2. Téléchargement et installation du Framework jdk 1.5
3. Demande pour obtenir pour une licence pour le serveur, puis installation de la licence dans
le répertoire <pingfederate_directory>/server/default/conf.
Attention ce n’est pas un fichier txt. Ne pas le sauvegarder comme un fichier txt.
4. Set java_home
5. Installation de PingFederate
a. Dezipping
b. Démarrage : Run.bat sous le répertoire <pingfederate_directory>/bin
c. Console d’administration : http://<server_full_name (hevsidf2.fedserver.idf)>:9030/pingfederate
d. New Password Liberty06 (user Administrator, init pwd 2Federate)
6. Téléchargement et installation de Java Cryptography Extension (JCE) dans le répertoire
/lib/security du répertoire JAVA_HOME
http://java.sun.com/products/jce/javase.html#UnlimitedDownload
Déploiement des scénarios (SAML 2.0)
Le but est de tester les différents scénarios (IdP-initiated et SP-initiated) avec l’exemple
d’application .Net.
En premier lieu, je monte un serveur unique Pingfederate qui officiera comme serveur IdP et
serveur SP.
Pour l’installation de pingfederate, voir les guides « PingFederate_Admin_Manual.pdf » et
« Quick_Start_Guide.pdf ».
38
Paramètres locaux
Attention, le port n’est pas 8090, mais 8070.
39
Configuration de l’IDAdapter
40
Configuration du SP Adapter
41
Connexion au SP
42
43
Connexion à l’IdP
44
Test du scénario IdP-Initiated
Lancez l’application idp et connectez-vous en local avec joe :
http://192.168.73.143:8070/idp/login.aspx
Le résultat donne cette page :
Maintenant que Joe est authentifié auprès du serveur IdP, il peut initier un SSO en se
connectant au serveur SP. Résultat :
45
Test du scénario SP-Initiated
Lancer l’application SP: deux solutions s’offrent à vous. La première est de se connecter en
local à l’application, puis d’initier le SSO (avec authentification auprès du server IdP) :
L’autre solution consiste à se connecter au server IdP qui effectue ensuite un SSO (type IdP
initiated).
46
Le SSO effectué donne la page suivante :
Cette page est la même que la page finale du SSO IdP-initiated, sauf que pingfederate a entre
temps été configuré pour l’initialisation SP SSO, ce qui a simplement rajouté la colonne de
gauche « IdP Connection » à la page.
Personnalisation de l’application en fonction de l’utilisateur
Le but est de développer un peu l’application, afin de donner des droits ou des restrictions
d’accès aux utilisateurs.
Les exemples d’applications stockent les utilisateurs dans des fichiers XML. On peut les
stocker dans une base de données pour plus de sécurité. Pour l’exemple, on va laisser les
informations utilisateurs dans un fichier xml.
Ces utilisateurs ne sont pas liés à un data store (base de donnée) qui contiendrait des
informations supplémentaires sur les utilisateurs et qui pourraient être utilisées pour
personnaliser l’application.
Ajout d’un attribut
Le fichier XML « \IdpSample\config\pingfederate-idp-demo-users.xml » contient les infos
utilisateurs. Par défaut, il contient l’identifiant utilisateur et le mot de passe. On peut rajouter
des attributs dans ce fichier. Voyons ce qui ce passe si on rajoute un attribut « group » :
a. si on lance l’application IdP et que l’on se connecte en locale, l’attribut group viendra
s’ajouter aux autres attributs. Ensuite, lors de l’initialisation SSO, la page est redirigée
vers l’application SP, mais l’attribut group n’est pas transmis.
b. Si l’on rajoute l’attribut group dans le fichier de conf de l’application SP, l’attribut
apparaîtra également après une connexion locale, mais pas après la connexion SSO.
47
Pour comprendre le fonctionnement, suivons étape par étape le mécanisme de SSO (SPinitiated):
1. Lancement de l’application SP
2. Login local : l’attribut group apparaît s’il a été ajouté au fichier
« \SpSample\config\pingfederate-idp-demo-users.xm »
3. Login SSO (redirection vers la page de login IdP + login) : tout d’abord, si l’attribut
group a été ajouté au fichier « \IdpSample\config\pingfederate-idp-demo-users.xml »,
il sera chargé dans le PFToken lors de sa création par l’application et envoyé au
serveur IdP. Ensuite le serveur IdP va générer une assertion SAML à partir de ce
PFToken et l’envoyer au serveur SP qui va reconstituer le PFToken et le renvoyer à
l’application resource qui va pouvoir le lire. Si l’on suit toute cette dernière étape sur
la console du serveur PingFederate qui tourne, on peut remarquer que l’attribut group
n’est pas inscrit dans l’insertion SAML et qu’il n’est donc pas transmis plus loin.
De cela, on peut déduire qu’il faut, premièrement, configurer l’IdPAdapter et la connexion SP
afin de permettre la retranscription de l’attribut du PFToken dans l’assertion SAML (IdP
serveur reçoit le PFToken de l’application IdP, génère l’assertion SAML et l’envoie au
serveur SP), puis deuxièmement, de configurer le SPAdapter et la connexion IdP afin de
retranscrire l’attribut de l’assertion SAML dans le PFToken (SP serveur reçoit l’assertion du
serveur IdP, génère le PFToken et l’envoie à l’application SP).
Configuration du SpAdapter pour l’ajout d’un attribut
Dans les paramètres de configuration du SpAdapter, sous la rubrique Extended Adapter
Contract, rajoutez l’attribut group (le nom doit correspondre exactement à la balise afficher
dans le fichier XML).
48
Dans les paramètres de configuration de la connexion IdP, sous la rubrique Attribute Contract,
rajoutez l’attribut group :
Puis, sous la rubrique Adapter Mapping & User Lookup, dans la sous-rubrique Adapter
Contract Fullfillment, mappez l’attribut group à l’attribut group provenant de l’assertion
SAML.
Un attribut peut provenir d’une Assertion (ce qui est le cas dans notre exemple, étant donné
que les attributs ajoutés dans le fichier XML de l’application IdP sont enregistrés dans le
fichier PFToken, qui sert de base à la création de l’assertion SAML dont on a configuré la
génération dans l’IdPAdapter en précisant qu’il fallait retranscrire l’attribut group), d’un
champ text (dont la valeur est écrite à la main dans le champ value), et finalement d’un data
store (une base de données ou un annuaire active directory).
Configuration de l’IdPAdapter pour l’ajout d’un attribut
Même mécanisme que pour le SpAdapter.
Modification de l’application
J’ai rajouté une rubrique à l’application SP qui contient les liens vers lesquels l’utilisateur
peut accéder (avec les droits d’accès correspondants) selon son groupe.
49
Problème : l’application est en .Net 1.1 et le code behind est compilé dans une dll. Je ne peux
donc pas modifier le code source directement et je ne peux pas le compiler non plus avec
Visual studio (.Net 2.0 et pingfederate non accessible pour les assemblies).
Il n’y a de toute manière aucun code spécial à rajouter. Il suffit de récupérer le groupe, puis
d’afficher ou non les liens en fonction du groupe et de transférer le nom d’utilisateur et le
groupe à l’application dont l’accès aux fonctionnalités va dépendre de ces paramètres.
Intégration avec l’ADFS (SP connexion)
Dans cette rubrique, on va voir comment réaliser l’interopérabilité entre l’ADFS et la solution
Liberty Alliance de SourceID.
L’objectif est de permettre à un utilisateur enregistré auprès d’un serveur IdP PingFederate
d’accéder à une application ressource par le truchement du serveur de fédération resource
ADFS (L’inverse est aussi possible, c’est-à-dire qu’un utilisateur de l’ADFS puisse accéder à
une application d’un SP configuré sous PingFederate).
Si on suit la logique ADFS, il faut créer un partenaire account qui se connecte à un
IdPAdapter de PingFederate. L’IdPAdapter doit stocker les informations utilisateurs dans un
data store (LDAP data store est le mieux indiqué pour cette opération). Ceci correspond à une
connexion IdP.
Du côté PingFederate, il faut créer une connexion SP avec le serveur ADFS.
En première instance, je vais configurer une connexion de type WS-Federation avec un
IdPAdapter de type LDAP. Ensuite, je vais tenter de créer une connexion avec un IdPAdaper
de type SAML (Remarque : les tokens ou assertions dans l’ADFS sont en format SAML 1.1).
LDAP IdPAdapter Configuration
50
LDAP Data Store Configuration
L’utilisateur administrator possède les droits d’accéder aux utilisateurs de l’Active Directory.
ADFS account partner
Au niveau du serveur de fédération resource :
L’url endpoint doit correspondre à l’IdPAdapter de type LDAP.
Incoming claim de type UPN.
51
ADFS SP Connexion
L’Adapter ci-dessus est de type standard, alors que l’adapter ci-dessous est de type LDAP.
52
Test de l’application
1. Lancez l’application http://adfsweb.treyresearch.net:8080/claimapp/
2. Choisir le royaume PingFederate
53
3. Choisir l’IdP Provider auprès duquel l’utilisateur doit s’identifier
4. a. Adapter Standard : Se connecter
Le login ID doit contenir un nom de domaine (adatum.com, treyresearch.net dans ce cas).
54
5. b. LDAP Adapter. Se connecter
6. Accès à l’application
55
Erreur
L’erreur suivante apparaît :
Cette erreur apparaît lorsque le filtre de recherche donne un résultat toujours vrai. On peut
ainsi se loguer avec n’importe quel nom. Le token ne sera pas créé pour autant, car le login ne
correspond à rien. Il faut donc trouver un critère de filtrage qui fonctionne (LDAP query).
Mais aussi, il faut que le login utilisateur comprenne un nom de domaine, car du côté ADFS,
seuls les utilisateurs avec le suffixe de nom de domaine adatum.com et treyresearch.net (que
j’ai défini moi) sont acceptés.
Intégration avec l’ADFS (IdP connexion)
Dans ce cas de figure, c’est un utilisateur
de l’ADFS qui doit pouvoir accéder à
une application ressource d’un SP géré
par PingFederate.
On va développer le cas de figure où un
utilisateur du domaine adatum.com (adfs
account federation server) désire accéder
à l’application sampleSP.
Ceci nécessite de créer une connexion
IdP côté PingFederate entre le
SPAdapter déjà existant et le serveur de
federation account de l’ADFS. Et du
côté du serveur account de l’ADFS, il
faut créer un partenaire resource.
ADFS resource partner
Au niveau du serveur de fédération
account :
Outgoing claim type : UPN (tous les
suffixes sont remplacés par le suffixe
adatum.com)
56
ADFS IdP Connexion
La connexion est mappée au SP standard.
Le groupe ne peut pas être récupéré depuis l’assertion, car le mécanisme de « outgoing claim
mapp » de l’ADFS n’est pas compatible avec PingFederate. J’ai mis du texte à la place. Pour
déterminer un groupe à un utilisateur, il faudrait créer un data store qui stocke les
informations sur les utilisateurs provenant de l’ADFS et qui indique le groupe auquel
appartiendraient ces utilisateurs.
57
Test de l’application
1. Lancez l’application SP http://adfsweb.treyresearch.net:8070/sp/
2. Connectez-vous en local avec un utilisateur de votre choix
3. Initialisez le SSO (SP-initiated mode)
58
4. Identifiez-vous auprès du fournisseur d’identité (account serveur de l’ADFS)
5. SSO successful
Erreur
L’erreur suivante apparaît :
59
Pour permettre le SSO, il est nécessaire que le login local de l’application SP soit lié au login
du fournisseur d’identité.
Exemple : Utilisateur Adam Carter :
- AD IdP login : adamcar (Liberty06)
- Application SP login : adam (test)
L’application doit savoir que l’identité loguée en tant que adamcar correspond au login local
adam. Si ce n’est pas le cas, le message d’erreur ci-dessus apparaît.
Si l’on tente un IdP-initiated SSO au premier login et que les deux logins de l’utilisateur
diffèrent, alors l’application ne peut pas associer les deux logins à un utilisateur. Pour
remédier à ce problème, il faut effectuer un SP-initiated SSO, c’est-à-dire se loguer d’abord
en local auprès de l’application, puis effectuer l’identification auprès de l’IdP, ainsi
l’application pourra désormais lier les deux logins.
L’erreur suivante apparaît :
Le serveur PingFederate ne peut pas accéder à un fichier qui se trouve dans le répertoire data.
Il semblerait que se soie soit un bug de l’application, soit un bug du serveur. Pour y remédier,
remplacez dans l’URL la page affichée par la page default.aspx.
Sources
Site officiel
http://www.sourceid.org/projects
Overview
[projectDirectory]/PingFederate_Datasheet.pdf
Interopérabilité
http://www.networkworld.com/news/2005/0315saml2.html?nl
http://discuss.andredurand.com/newsItems/departments/pingid
Administrator guide
[projectDirectory]/PingFederate_Admin_Manual.pdf
Déploiement des exemples
[projectDirectory]/ Quick_Start_Guide.pdf
60
SourceID
SourceID fournit gratuitement des frameworks permettant la gestion d’identité fédérée
utilisant les spécificités Liberty Alliance. J’ai choisi comme premier essai de télécharger le
framework utilisant le protocole Liberty ID-FF 1.1 pour les applications .Net.
Installation du framework et des exemples
Se référer au document « [projectDirectory]/sourceID/ ID-FF 1.1 .Net Toolkit 1.1\ID-FF 1.1
Toolkit\Documentation\index.html »
Test de l’application
1. Lancer l’application http://adfsweb.treyresearch.net:8050/sp/
2. Se connecter en local (SP-Initiated SSO)
3. Initier le SSO en s’authentifiant auprès de l’IdP
61
4. S’authentifier auprès de l’IdP
5. SSO Successful
62
Interopérabilité
Cet exemple qui utilise le Framework Liberty ID-FF 1.1 ne fonctionne qu’avec des
applications intégrant également ce protocole. Autrement dit, il est impossible de se connecter
directement à un serveur ADFS (évident), mais aussi à un serveur PingFederate. Celui-ci
n’inclut pas le protocole ID-FF 1.1, qui bien qu’il soit un ancêtre du protocole SAML 2.0
(intégré par PingFederate) n’en est pas moins incompatible avec ce dernier.
Dans les toolkits sourceID, seuls ceux avec le Framework SAML 1.1 sont interopérables avec
PingFederate, mais ce n’est pas un protocole Liberty.
Quant à un éventuel toolkit pour le Framework SAML 2.0, il serait probablement similaire à
l’exemple inclut avec PingFederate.
Erreurs
Org.Mentalis.Security
Si l’application signale que la bibliothèque Org.Mentalis.Security ne peut pas être trouvée,
alors copiez là depuis le répertoire de téléchargement du framework « ID-FF 1.1 .Net Toolkit
1.1\ID-FF 1.1 Toolkit\lib » dans le répertoire bin du site SP ou IDP.
System.Security.dll
Si vous avez une erreur du type :
System.ArgumentNullException: Value cannot be null.
Parameter name: elem
at System.Security.Cryptography.Xml.SignedXml.GetPropagatedAttributes(XmlElement elem)
at System.Security.Cryptography.Xml.Reference.CalculateHashValue(XmlDocument document,
CanonicalXmlNodeList refList)
at System.Security.Cryptography.Xml.SignedXml.BuildDigestedReferences()
at System.Security.Cryptography.Xml.SignedXml.ComputeSignature()
La dll System.Security.dll pour ASPNET 1.1 contient un bug. Indiquez dans IIS que le site
doit tourner avec ASP 2.0 et tout fonctionnera.
Autres projets d’identité fédérée
Shibboleth
Shibboleth est un middleware open-source (Java) basé sur les spécifications OASIS SAML
(comme Liberty Alliance) et qui fournit le WEB SSO. Peut-être installé sur les plateformes
Windows ou autres. Il possède une extension lui permettant de s’intégrer avec un service
ADFS. Il existe des implémentations de Shibboleth (essentiellement réalisées par des
universités – très utilisé dans les milieux universitaires, alors que Liberty Alliance est plutôt
utilisé en production).
C’est donc une alternative au projet Liberty Alliance (mêmes principes Identity Provider et
Service Provider).
Source
WebSite : http://shibboleth.internet2.edu/
Fédération d’identités avec Shibboleth
[projectDirectory]/others/Shibboleth - JRES2005.ppt
63
Liberty Alliance, Shibboleth et Lemonldap
La différence entre ces trois projets est caractérisée par son approche. Lemonldap (Logiciel
libre) dispose d’une base de données globale et centralisée de tous les utilisateurs. Cette
approche est principalement destinée à des services dépendant tous d'une même entité, par
exemple à l'intérieur d'une société.
Dans l’approche de Liberty Alliance, chaque service gère une partie des données d'un
utilisateur (l'utilisateur peut donc disposer de plusieurs comptes), mais partage les
informations dont il dispose sur l'utilisateur avec les services partenaires.
Cette approche a été développée pour répondre à un besoin de gestion décentralisée des
utilisateurs, où chaque service partenaire désire conserver la maîtrise de sa propre politique de
sécurité, comme par exemple un ensemble de sites marchands indépendants d'un point de vue
commercial et organisationnel.
Dans l’approche de Shibboleth, chaque utilisateur dépend d'une des entités partenaires. Ainsi,
lorsqu'il cherche à accéder à un service du réseau, l'utilisateur est authentifié par le partenaire
dont il dépend. Comme dans l'approche fédérative, cependant, chaque service du réseau gère
indépendamment sa propre politique de sécurité.
Cette approche répond notamment aux besoins de structures institutionnelles dans lesquelles
les utilisateurs sont dépendants d'une entité, comme par exemple les universités, les
laboratoires de recherche, les administrations, etc.
Source
http://fr.wikipedia.org/wiki/Authentification_unique
Microsoft Passport
Tout comme le projet Liberty Alliance, Passport est un système standardisé permettant de
partager les informations d’identification utilisateurs. Il fédère les identités sur le réseau
Passport (MSN, Hotmail,…) de Microsoft.
Il ne présente aucun intérêt dans le cadre de ce projet, car il n’est pas possible d’implémenter
son propre réseau Passport. Ce réseau est administré par Microsoft et n’est accessible par un
tiers qu’en tant qu’utilisateur.
Standards identités fédérées
Tableau des principaux projets d’identités fédérées
[projectDirectory]/ Shibboleth/Shibboleth - JRES2005.ppt
PingFederate ne figure pas sur ce tableau car il est neutre. Il est interopérable avec tous les
projets ci-dessus (A vérifier pour Oblix).
64
Evolution des standards
[projectDirectory]\ADFS\ITPRO_Microsofts_Identity_and_Access_Management_Strategy_S
teven_Adler.ppt
Tableau de comparaison .Net Passport, Ping ID et Shibboleth
.NET/Passport • .NET Passport is a service; Liberty is
not a service rather Liberty defines a set
of specifications.
• Passport will use Kerberos for its
authentication token format; Liberty
uses SAML
• Passport defines a single mechanism
for authentication token exchange
between sites (through Kerberos);
Liberty defines multiple mechanisms by
which the authentication token can be
exchanged between sites
• Identity Provider exists in both
communities and maps between
different token formats
• Service Provider exists in both
communities and chooses
appropriate Authentication
Authority on a per transaction
basis
• Security Token Exchange
65
Ping ID
• Ping-ID focuses on the nature of the
business agreements and policies
between sites; Liberty provides a
technical framework
• If both are Ping-ID members,
Liberty Identity and Service
Providers can base their business
trust with respect to each other
on that membership
• Liberty Authentication Context
statement can be extended to
include PingID PICA score
Shibboleth
• Shibboleth users not required to have
account at Resource site
• Shibboleth sites exchange attribute
information to enable authorization
decisions; Liberty sites exchange opaque
identifier for principal
• Concept of end-user
controlling their privacy
preferences is fundamental to
both Liberty and Shibboleth
• Liberty Circle of Trust (COT)
and Shibboleth ‘club’ are similar
policy domains
• Liberty common-domain
discovery mechanism and
Shibboleth WAYF
interchangeable
Pour plus de détails, se référer au document :
[projectDirectory]/Liberty Alliance/Liberty And 3rd Party Identity Systems White Paper.pdf
FAQ
Existe-il un méta-annuaire unique pour une fédération ?
Non, une fédération ADFS se base sur les Active Directory des « claims » entrant (provenant
de domaines partenaires).
L’approche fédérative, tel que représentée par Liberty Alliance, répond à un besoin de gestion
décentralisée des utilisateurs.
[projectDirectory]/Liberty Alliance/LibertyTechnologyTutorial.pdf
66
L’interopérabilité entre les protocoles Liberty Alliance et ADFS est-elle possible ?
Non, pour se connecter à l’ADFS, il faut nécessairement utiliser le protocole WS-Federation
de Microsoft. Il n’y a aucun moyen de se connecter à l’ADFS avec un protocole SAML ou
Liberty Alliance.
Par contre, l’utilisation de serveurs de fédération multi protocoles tels que le serveur
PingFederate de Ping Identity ou SLIM de Symlabs règle le problème en intégrant à sa
solution les principaux protocoles (SAML, WS-Federation, Liberty ID-FF, Liberty-IDWSF).
Il permet ainsi de mettre en relation des utilisateurs et des ressources appartenant à des
réseaux ADFS et Liberty Alliance (et d’autres…)
Les assertions échangées entre les serveurs sont par contre toutes en format SAML.
En résumé, il est possible grâce à une application multi protocoles de résoudre le problème
d’interopérabilité.
Toutefois, il n’est pas possible de se connecter à l’ADFS avec un protocole basé SAML, de
même que l’ADFS ne permet en aucun cas de se connecter à un partenaire par un autre
protocole que le sien (WS-Federation).
ADFS ou Liberty Alliance ?
ADFS est un produit fini alors que Liberty Alliance est un projet. Parmi les implémentations
de Liberty Alliance on retrouve des vendeurs comme Sun, Novell, IBM et Oracle. Le choix
d’un produit plutôt qu’un autre va dépendre de la structure informatique de l’entreprise et des
objectifs qu’elle cherche à atteindre.
Cependant, rien n’empêche non plus de combiner les différents produits, ce qui est d’ailleurs
un objectif de Liberty Alliance et ce qui en fait son principal intérêt. En effet, pour fédérer des
entités provenant de systèmes différents, il faut que ces systèmes aient un protocole commun.
Actuellement, la plupart des produits proposés par les principaux vendeurs intègrent les
protocoles Microsoft et Liberty Alliance, permettant ainsi de connecter les deux réseaux.
Sources
Liberty Alliance, le nouveau Big Brother ?
http://www.sam-mag.com/P53,53,5,78,,,default.aspx
Liberty Alliance, les premiers projets voient le jour
http://solutions.journaldunet.com/0311/031114_liberty.shtml
Liberty Alliance, Wikipedia
http://fr.wikipedia.org/wiki/Liberty_Alliance
SAML et WS-Security
http://www.idevnews.com/CaseStudies.asp?ID=36
Pingfederate, sourceID et ADFS
http://www.genioprotocol.org/news/show/116
Standards protocols
http://arch.doit.wisc.edu/wiki/index.php/FIAM_White_Paper#OASIS_SAML
67