Utiliser des attributs fédéraux : Autorisation OAM et en-têtes HTTP
Cet article explique comment les attributs reçus dans les messages SSO SAML/OpenID peuvent être utilisés dans les stratégies d'autorisation OAM et comment ils peuvent être fournis aux applications Web protégées.
Lors de l'exécution, lorsqu'OAM/SP traite avec succès un message de réponse SSO SAML / OpenID, le serveur enregistre une partie des informations de la réponse dans la session OAM en tant qu'attributs pouvant être utilisés dans les stratégies d'autorisation OAM
-
Dans les conditions des règles d'autorisation
-
Dans les réponses pour fournir les attributs SAML/OpenID aux applications Web protégées
Les informations de réponse SSO SAML/OpenID sont enregistrées dans la session OAM en tant qu'attributs référencés par les identificateurs suivants :
-
Nom de partenaire IdP, référencé par
$session.attr.fed.partner -
Valeur NameID provenant de la réponse SSO, référencée par
$session.attr.fed.nameidvalue -
Format NameID de la réponse SSO, pour les protocoles SAML, référencé par
$session.attr.fed.nameidformat -
Attributs contenus dans le fichier
AttributeStatementde l'assertion SAML ou dans la réponse SSO OpenID, référencés par $session.attr.fed.attr.ATTR_NAME, avec ATTR_NAME -
Nom de l'attribut de session locale, si un mapping de profil d'attribut IdP a été appliqué
-
Ou le nom d'attribut de la réponse SSO, si aucune correspondance de profil d'attribut IdP n'a été appliquée pour cet attribut
Présentation
Un environnement OAM standard comprend les éléments suivants :
-
Annuaire LDAP
-
Serveur d'administration OAM, avec le serveur d'exécution OAM de la console d'administration OAM
-
Applications Web
-
Agents WebGate protégeant l'application Web sur les serveurs HTTP (OHS, IIS...)
Lorsqu'un utilisateur authentifié demande l'accès à une ressource protégée :
-
WebGate intercepte l'appel et s'assure que l'utilisateur est authentifié
-
L'utilisateur est autorisé à accéder à la ressource en évaluant les stratégies d'autorisation pour cette ressource
-
WebGate injecte des données, en tant que cookies ou en-têtes HTTP, dans la demande HTTP qui sera transmise à la ressource protégée
Stratégies d'autorisation OAM utilisées pour évaluer si un utilisateur peut accéder à une ressource ou non en fonction de différentes conditions :
-
Identité : condition basée sur l'identité ou les groupes d'utilisateurs auxquels l'utilisateur appartient
-
Adresse IP : condition basée sur l'adresse IP de l'utilisateur
-
Temporel : condition basée sur l'heure
-
Attributs : condition basée sur les attributs (LDAP, demande HTTP ou attributs de session).
Un administrateur peut utiliser les données de fédération reçues dans le message SSO SAML/OpenID dans une règle d'autorisation, à l'aide d'une condition d'attribut qui évalue les attributs de fédération.
Les réponses d'autorisation OAM utilisées pour injecter des données dans la demande HTTP afin de les rendre disponibles pour les applications Web protégées sont basées sur
-
Attributs utilisateur LDAP
-
Données de demande HTTP
-
Chaîne statique
-
Attributs de session OAM
Comme pour les stratégies d'autorisation OAM, un administrateur peut injecter des données de fédération dans la demande HTTP via l'utilisation d'attributs de session OAM référençant les entrées de fédération ($session.attr.fed.partner, $session.attr.fed.attr.ATTR_NAME…)
Configuration SSO de fédération
Utilisez la même configuration de fédération SAML 2.0 que celle configurée précédemment, où :
-
OAM agit en tant que fournisseur de services
-
IdP (
AcmeIdP) envoie une assertion SAML avec-
NameID défini sur
userID -
Attributs envoyés
-
emaildéfini sur l'adresse électronique de l'utilisateur -
fnamedéfini sur le prénom de l'utilisateur -
surnamedéfini sur le nom de l'utilisateur -
titledéfini sur la dernière fonction de l'utilisateur
-
-
OAM/SP configuré avec un profil d'attribut IdP sur
-
Mettre en correspondance
fnameavec le prénom -
Mettre en correspondance
surnameavec le nom -
Laisser le courriel tel quel
-
Deux utilisateurs seront utilisés :
Alice :
-
userID : alice
-
email :
<alice@oracle.com> -
prénom : Alice
-
nom : Appleton
-
title : manager
Bob:
-
userID : bob
-
email :
<bob@oracle.com> -
first name : Bobby
-
nom : Smith
-
title : engineering
La réponse SAML XML avec l'assertion renvoyée par IdP est la suivante :
<samlp:Response ..>
<saml:Issuer ...>http://acme.com
/idp</saml:Issuer>
<samlp:Status>
<samlp:StatusCode
Value="urn:oasis:names:tc:SAML:2.0:status:Success"/>
</samlp:Status>
<saml:Assertion ...>
<saml:Issuer ...>http://acme.com /idp</saml:Issuer>
<dsig:Signature ...>
...
</dsig:Signature>
<saml:Subject>
<saml:NameID ...>alice</saml:NameID>
...
</saml:Subject> <saml:Conditions ...>
...
</saml:Conditions> <saml:AuthnStatement ...>
...
</saml:AuthnStatement>
<saml:AttributeStatement ...>
<saml:Attribute Name="email" ...>
<saml:AttributeValue
...>alice@oracle.com</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="title" ...>
<saml:AttributeValue
...>manager</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="surname" ...>
<saml:AttributeValue
...>Appleton</saml:AttributeValue>
</saml:Attribute>
<saml:Attribute Name="fname" ...>
<saml:AttributeValue
...>Alice</saml:AttributeValue>
</saml:Attribute>
</saml:AttributeStatement>
</saml:Assertion>
</samlp:Response>
La page Tester le fournisseur de services affiche différents résultats, car OAM/SP a traité les attributs en fonction des règles dans lesquelles :
-
l'adresse électronique n'a pas été modifiée
-
le titre n'a pas été modifié
-
fname a été mis en correspondance avec le prénom
-
le nom de famille a été mappé avec le nom de famille

Description de l'image Test_Federation_SSO.jpg
Application Web protégée
Dans cet exemple, utilisez les composants suivants :
-
OHS est installé
-
Un agent WebGate a été configuré pour cette instance OHS
-
Un domaine d'application OAM a été créé pour ce fichier WebGate, qui protège toutes les ressources sur le serveur OHS
-
Stratégie d'authentification :
-
Nom : stratégie de ressource protégée
-
Modèle d'authentification : FederationScheme
-
-
Stratégie d'autorisation :
-
Nom : stratégie de ressource protégée
-
Ressources
-
/** et /.../*
-
Lié à la stratégie de ressource protégée
-
-
Stratégie d'authentification et stratégie d'autorisation "Stratégie de ressource protégée"
-
La ressource
/cgi-bin/printenvsur OHS imprime les données lors du traitement de la demande HTTP envoyée par le navigateur -
En-têtes HTTP
-
Données de la requête (chemin, chaîne de requête...)
-
Données du serveur (adresse IP, port...)
Voici un exemple de navigateur qui accède à la ressource sans être protégé par OAM/WebGate (dans le test, l'application Web est protégée comme indiqué ci-dessus) :

Description de l'image Protected_web_Application.jpg
Conditions d'autorisation
L'exemple suivant montre comment construire une stratégie d'autorisation à l'aide d'attributs Federation stockés dans la session OAM pour une ressource avec les contraintes suivantes :
-
Les utilisateurs sont authentifiés via SSO de fédération (la ressource est donc protégée via une stratégie d'authentification FederationScheme)
-
L'élément IdPs fournit l'intitulé de l'emploi de l'utilisateur. Il est appelé localement en tant que titre (si l'élément IdP envoie l'intitulé de l'emploi via un nom différent du titre, un profil d'attribut IdP doit être utilisé pour le mettre en correspondance avec le nom de titre local)
-
Seuls les utilisateurs ayant le titre Responsable doivent avoir accès à la ressource
Pour créer une telle stratégie d'autorisation, procédez comme suit :
-
Accédez à la console d'administration OAM :
http(s)://oam-admin-host:oam-adminport/oamconsole -
Accédez à Access Manager, Domaines d'application.
-
Recherchez le domaine d'application de la ressource et cliquez dessus.
-
Cliquez sur Stratégies d'autorisation.
-
Ouvrez la stratégie d'autorisation protégeant la ressource (Stratégie de ressource protégée dans cet exemple).
-
Cliquez sur l'onglet Conditions.
-
Cliquez sur Ajouter pour définir une nouvelle condition :
-
Nom :
TitleCondition -
Type :
Attribute
-
-
Cliquez sur Ajouter la sélection
-
Sélectionner la condition créée
-
Dans la fenêtre Détails de la condition, cliquez sur Ajouter :
-
Espace de noms :
Session -
Nom d'attribut :
Other -
Entrez le nom de l'attribut :
fed.title -
Opérateur :
Equals -
Valeur d'attribut :
manager
-
-
Cliquez sur OK.
-
Cliquez sur l'onglet Règles.
-
Enlevez la condition TRUE si elle est présente dans la règle d'autorisation et les conditions sélectionnées
-
Ajoutez le fichier TitleCondition à la règle d'autorisation, conditions sélectionnées
-
Cliquez sur Appliquer

Description de l'image Add_Condition.jpg

Description de l'image Add_Attr_Condition.jpg

Description de l'image Authorization_Policy.jpg
Pour effectuer un test, dans un nouveau navigateur, accédez à la ressource protégée. Vous allez être redirigé vers IdP.
Si vous effectuez une authentification au niveau de IdP avec Alice, le navigateur affiche les éléments suivants à la fin du moment, en affichant l'en-tête HTTP de l'utilisateur distant défini sur Alice (car IdP a fourni l'attribut de titre défini sur Manager et OAM n'autorise l'accès qu'aux utilisateurs dont l'attribut de session OAM fed.title est défini sur Manager) :

Description de l'image Document_root.jpg
Si vous effectuez l'authentification sur IdP à l'aide de bob, le navigateur affiche les éléments suivants à la fin du processus, en affichant une erreur (car l'attribut de titre fourni par IdP est défini sur ingénierie et OAM n'autorise l'accès qu'aux utilisateurs dont l'attribut de session OAM fed.title est défini sur manager) :

Description de l'image OAM_Operation_error.jpg
Injection d'attributs fédéraux
L'exemple suivant montre comment injecter les attributs SAML / OpenID collectés à partir de la réponse SSO en tant qu'en-têtes HTTP pour le Web protégé avec les contraintes suivantes :
-
Les utilisateurs sont authentifiés via SSO de fédération (la ressource est donc protégée via une stratégie d'authentification FederationScheme)
-
L'élément IdPs fournit l'intitulé de l'emploi de l'utilisateur. Il est appelé localement en tant que titre (si l'élément IdP envoie l'intitulé de l'emploi via un nom différent du titre, un profil d'attribut IdP doit être utilisé pour le mettre en correspondance avec le nom de titre local)
-
OAM/WebGate est configuré pour l'injection :
-
Adresse électronique en tant qu'adresse électronique
-
Prénom comme prénom
-
Nom de famille
-
La configuration s'effectue via l'utilisation d'objets de réponse d'autorisation dans une définition de stratégie d'autorisation.
Pour configurer une telle stratégie d'autorisation, procédez comme suit :
-
Accédez à la console d'administration OAM :
http(s)://oam-admin-host:oam-adminport/oamconsole -
Accédez à Access Manager, Domaines d'application.
-
Recherchez le domaine d'application de la ressource et cliquez dessus.
-
Cliquez sur Stratégies d'autorisation.
-
Ouvrez la stratégie d'autorisation protégeant la ressource (Stratégie de ressource protégée dans cet exemple).
-
Cliquez sur l'onglet Réponses
-
Cliquez sur Ajouter pour créer l'entrée correspondant à l'adresse e-mail :
-
Type :
Header -
Nom :
emailaddress -
Valeur :
$session.attr.fed.attr.email
-
-
Cliquez sur Ajouter.

-
Cliquez sur Add pour créer l'entrée correspondant au prénom :
-
Type :
Header -
Nom :
firstname -
Valeur :
$session.attr.fed.attr.firstname
-
-
Cliquez sur Ajouter.
-
Cliquez sur Add pour créer l'entrée correspondant au nom :
-
Type :
Header -
Nom :
lastname -
Valeur :
$session.attr.fed.attr.lastname
-
-
Cliquez sur Ajouter.
-
Cliquez sur Appliquer

Description de l'image ACS_Authorization_Policy.jpg
Pour effectuer un test, dans un nouveau navigateur, accédez à la ressource protégée. Vous allez être redirigé vers IdP où l'authentification a lieu.
OAM/WebGate injecte ensuite les éléments Réponse d'autorisation en fonction des attributs de session OAM (reçus à partir de IdP) et l'application Web protégée les affiche (mon page de test affiche un en-tête HTTP sous la forme HTTP_NAME, NAME étant le nom de l'en-tête HTTP).

Description de l'image Authorization_Response.jpg
Ressources de formation supplémentaires
Parcourez d'autres ateliers sur docs.oracle.com/learn ou accédez à d'autres contenus de formation gratuite sur le canal Oracle Learning YouTube. En outre, visitez le site education.oracle.com/learning-explorer pour devenir un explorateur Oracle Learning.
Pour consulter la documentation du produit, visitez le site Oracle Help Center.
Using Fed Attributes- OAM Authorization and HTTP Headers
F61887-01
September 2022
Copyright © 2022, Oracle and/or its affiliates.