Archive

Archive for the ‘IAM’ Category

Présentation (rapide) de SPML

August 11th, 2008 1 comment

Et oui, encore un sigle (barbare ?) en *ML. Pour commencer, sa définition : Simple Provisioning Markup Language, plus concrètement il s’agit d’un standard OASIS basé sur XML décrivant des opérations d’approvisionnement (provisionning) comme son nom l’indique. En pratique, il est surtout très utilisé pour la gestion des identités, entre différents produits plus ou moins pas ouvert. Même si ce standard n’est (malheureusement) pas trop utilisé, ou du moins ses utilisations restent discrètes, il reste un des rares (seul à ma connaissance) standards pouvant traduire le cycle de vie d’une identité (création, modification, suppression, et également recherche), et avec une grande souplesse. Pour commencer, attardons nous sur les différentes opérations décrites par le schéma SPML :

  • addRequest (création d’une entité)
  • lookupRequest (recherche d’une entité à partir de son identifiant unique)
  • modifyRequest (modification d’une entité)
  • deleteRequest (suppression d’une entité)
  • searchRequest (recherche d’une entité à partir d’un attribut)

Remarquer que je parle bien d’entité, en effet, SPML ne décris pas de manière forte le contenu des opérations, on peut donc l’utiliser par exemple pour des identités, mais tout autre chose.

L’ensemble des opérations peuvent être appelées aussi bien dans un mode synchrone qu’en mode asynchrone (chaque requête doit être alors identifiée de manière unique par le client). Bref, assez de blablah, voici un exemple très simple (le plus simple en fait) de requête SPML :

<lookupRequest requestID='125'>
<psoID ID='asyd' />
</lookupRequest>

Je crois que cela se passe de commentaire, je fais une recherche en utilisant l’identifiant unique (ici de mon compte asyd, sur un Sun Identity Manager). Si IDM est bien configuré pour accepter les requêtes SPML (je ferais un petit post dans un avenir proche à ce sujet), le retour aura la forme suivante :

pour des raisons de lisibilité (merci wordpress) la réponse se trouve en pièce jointe

Comme on le voit, les attributs réels de l’utilisateur sont fournis en contenu du tag data, et les connaisseurs aurons reconnus l’utilisation de l’espace de nommage DSML, qui – pour faire court – est une représentation XML d’une entrée LDAP. Bref, pour ceux qui n’auraient pas suivis (en même temps ce n’est pas évident), le schéma SPML ne s’occupe pas de la représentation de l’attribut SPML data, comme le montre le schéma core.

En fait, seul l’attribut psoID (où PSO signifie Provisioning Service Objects) est défini par le schéma SPML, le reste n’étant lié qu’à la définition des opérations. Il permet de déterminer de manière unique une entité (dans notre cas une identité, donc l’accountId au niveau d’IDM).

Pour résumer : SPML est un standard OASIS (sous forme d’un schéma XML) d’approvisionnement, surtout utilisé pour la gestion d’identité, afin de faire communiquer entre elle différentes couches logiciels (brique métier de gestion d’identité, une PKI, etc.). Tout ceci en décrivant des opérations, mais en laissant à chacun le soin de représenter ses données. Cela à l’avantage d’être très souple, mais il reste donc la problématique du contenu (charge utile) à traiter, sauf si on l’utilise un autre standard, comme le DSML, dans le cas d’une gestion d’identité.

Voilà, à plus tard pour des nouvelles aventures dans le monde merveilleux (ou pas) de SPML.

Categories: IAM Tags:

Création d’un formulaire IDM8

July 29th, 2008 No comments

Pff, après OpenSSO, j’ai enfin réussi à avancer sur IDM8 (décidément c’est une bonne période ;p), en effet j’ai réussi à créer et utiliser (surtout utiliser, en fait, sinon c’est moins intéressant) un formulaire de création d’utilisateur dans IDM8. Donc, comme d’habitude, quand on dispose de la procédure qui va bien, et d’un exemple, c’est tout de suite beaucoup plus simple : (la procédure nécessite néanmoins un IDM fonctionnel)

  • télécharger et installer Netbeans 6
  • télécharger et installer le plugin identity manager pour Netbeans 6
  • créer un nouveau projet IDM de type remote, puis remplir le formulaire
  • dans le répertoire Custom Identity Manager Objects, faire un click droit pour créer un nouveau fichier de type Form
  • utiliser le fichier attaché en tant qu’exemple, modifier la valeur du champ organisation (ou supprimer complètement ce champ)
  • click droit sur le nom du fichier, puis menu IDM pour finalement Upload object(s), cette opération va créer le formulaire dans le référentiel IDM
  • connecter vous en tant que configurator, puis créer un nouvel utilisateur disposant du droit create user
  • éditer cette utilisateur, puis dans l’onglet Security de cet utilisateur, assigner le nouveau formulaire (UserTemplateTab) pour le champ User Form
  • connecter vous en tant que cet administrateur, vous devriez normalement utiliser le formulaire pour créer votre utilisateur !
Quelques liens utiles :

Categories: IAM Tags:

OpenSSO: installation et configuration de l’agentsample

July 28th, 2008 3 comments

Pff, j’ai finalement réussi à installer l’application de démonstration de FAM8/opensso, et donc l’agent nécessaire à son bon fonctionnement, tout ceci avec le dernier build d’OpenSSO, à savoir le 4.5.

Quelques informations avant de commencer :

  • environnement de test : opensso servi par glassfish v2ur2 sur Mac OS X, agentsample servi par glassfish v2ur2 sur une debian
  • dc=opensso,dc=java,dc=net comme suffixe de configuration dans opensso (très important pour utiliser le build de l’application d’exemple, si vous utilisez un autre domaine, vous devrez recompiler l’application)

Rentrons dans le vif du sujet :

  • installer OpenSSO (attention aux limitations de conteneur, veillez à bien prendre en considération la Release notes)
  • se rendre sur http://hostname:8080/opensso, attention à bien utiliser un nom DNS, et pas localhost
  • choisir la configuration personnalisée, attention à bien spécifier le nom de domaine du cookie, dans mon cas .asyd.net, dans sa configuration standard, OpenSSO utilise un passage de cookie, les applications protégées doivent donc être obligatoirement dans le même domaine DNS, avec un domain cookie suffisamment large
  • encore une fois, vérifiez bien que l’URL d’opensso utilise bien le bon nom dns 
  • sur le serveur hébergeant l’application cliente, télécharger et installer glassfish v2ur2
  • télécharger l’agent approprié
  • utiliser la commande ./agentadmin install, une fois installé, se rendre dans le répertoire Agent_001/config, puis copier le fichier FAMAgentConfiguration.properties sur le serveur hébergeant opensso (la commande agentadmin vous demandera l’URL pour accéder à opensso, l’URL à protéger, un login et un mot de passe correspondant à un compte de type agent, celui-ci sera crée plus tard)
  • déployer les applications agentapp.war (disponible dans le répertoire etc de l’agent) et agentsample.ear (répertoire sampleapp/dist/ de l’agent) 
  • sur le serveur opensso, se rendre dans le répertoire opensso/tools, extraire l’archive famAdminTools.zip puis lancer le script setup, le répertoire attendu correspond à celui fourni lors de l’installation d’opensso, par défaut $HOME/opensso
  • rajouter une ligne userpassword=<password>, où password correspond au mot de passe fourni lors de l’installation de l’agent. Le mot de passe doit être en clair.
  • utiliser la commande famadmin pour créer l’agent (/bin/famadm create-agent -b agent1 -t J2EEAgent -u amadmin -f /tmp/password -D config/FAMAgentConfiguration.properties -e ‘/’), le fichier /tmp/password doit contenir le mot de passe du copte amadmin, sur une ligne, et le fichier avec les droits 400
  • vérifier que l’objet agent est bien crée, se connecter en tant qu’administrateur sur opensso, puis sur Contrôle d’accès, puis sur le domaine opensso, sur Agent, puis finalement J2EE, vous devriez trouver l’agent
  • Si vous essayer de vous connecter sur http://host2:8080/agentsample/ vous devriez être redirigé vers la page d’opensso, puis vers une page vous notifiant que vous accédez à une ressource protégée, la configuration n’est encore pas finie !
  • connecter vous en tant qu’administrateur sur l’opensso
  • créer un groupe manager puis un groupe employee
  • créer un utilisateur appartenant aux deux groupes sus cités
  • créer une nouvelle stratégie (p1), puis une nouvelle règle (s1), comme nom de ressource, spécifier la valeur http://<host2>:8080/agentsample/*, puis autoriser le GET et le POST
  • créer maintenant un nouvel objet, de type Objet d’identité Access Manager
  • rajouter un filtre sur le groupe employee
  • reconnecter vous (un redémarrage du serveur glassfish host2 peut être nécessaire) sur l’application agentsample, vous devriez pouvoir accéder maintenant à l’ensemble de l’application

Dès lors, tous les membres du groupe employee peuvent accéder à l’application. Vous pouvez vérifier si un utilisateur appartient au groupe manager en cliquant sur le lien J2EE Security API puis sur Invoke Security Aware Servlet, une ligne vous informera des groupes auxquels votre utilisateur appartient.

Voilà, enfin, j’y suis arrivé, pas très simple quand même 🙂 

Categories: IAM, SSO Tags:

Configuration du datawarehouse dans IDM8

July 22nd, 2008 No comments

Cette fonctionnalité permet de stocker l’ensemble des opérations effectuées sur les identités gérées par IDM, à des fins d’audit mais également pour du reporting. Pour le configurer dans IDM8 :

  • créer une base de données (vérifier la présence du driver jdbc)
  • initialiser le schéma depuis le fichier approprié dans $DEPLOYDIR/exporter/create_warehouse.<driver>
  • cliquer sur l’onglet Configure, puis sur le sous onglet Warehouse
  • créer une nouvelle connexion en cliquant sur le bouton “Add Connection”
  • cliquer sur le bouton Edit en dessous du label “Warehouse Configuration Information”
  • spécifier com.sun.idm.warehouse.base.Factory comme nom de classe (champ : “Warehouse Interface Code Factory Class Name”), sélectionner (si ce n’est pas le cas) la connexion crée à l’étape précédente
  • et voilà, cela active au passage la fonctionnalité d’audit forensic query, disponible dans le menu Compliance !

A plus tard pour la poursuite de mes tests avec IDM8 !

Categories: IAM Tags: