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

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 :

Présentation

Un environnement OAM standard comprend les éléments suivants :

Lorsqu'un utilisateur authentifié demande l'accès à une 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 :

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

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ù :

Deux utilisateurs seront utilisés :

Alice :

Bob:

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 :

Description de l'image Test_Federation_SSO.jpg

Application Web protégée

Dans cet exemple, utilisez les composants suivants :

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 :

Pour créer une telle stratégie d'autorisation, procédez comme suit :

  1. Accédez à la console d'administration OAM : http(s)://oam-admin-host:oam-adminport/oamconsole

  2. Accédez à Access Manager, Domaines d'application.

  3. Recherchez le domaine d'application de la ressource et cliquez dessus.

  4. Cliquez sur Stratégies d'autorisation.

  5. Ouvrez la stratégie d'autorisation protégeant la ressource (Stratégie de ressource protégée dans cet exemple).

  6. Cliquez sur l'onglet Conditions.

  7. Cliquez sur Ajouter pour définir une nouvelle condition :

    1. Nom : TitleCondition

    2. Type : Attribute

  8. Cliquez sur Ajouter la sélection

  9. Description de l'image Add_Condition.jpg

  10. Sélectionner la condition créée

  11. 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

  12. Cliquez sur OK.

  13. Description de l'image Add_Attr_Condition.jpg

  14. Cliquez sur l'onglet Règles.

  15. Enlevez la condition TRUE si elle est présente dans la règle d'autorisation et les conditions sélectionnées

  16. Ajoutez le fichier TitleCondition à la règle d'autorisation, conditions sélectionnées

  17. Cliquez sur Appliquer

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 :

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 :

  1. Accédez à la console d'administration OAM : http(s)://oam-admin-host:oam-adminport/oamconsole

  2. Accédez à Access Manager, Domaines d'application.

  3. Recherchez le domaine d'application de la ressource et cliquez dessus.

  4. Cliquez sur Stratégies d'autorisation.

  5. Ouvrez la stratégie d'autorisation protégeant la ressource (Stratégie de ressource protégée dans cet exemple).

  6. Cliquez sur l'onglet Réponses

  7. Cliquez sur Ajouter pour créer l'entrée correspondant à l'adresse e-mail :

    • Type : Header

    • Nom : emailaddress

    • Valeur : $session.attr.fed.attr.email

  8. Cliquez sur Ajouter.

    Description de l'image Add_Response.jpg

  9. Cliquez sur Add pour créer l'entrée correspondant au prénom :

    • Type : Header

    • Nom : firstname

    • Valeur : $session.attr.fed.attr.firstname

  10. Cliquez sur Ajouter.

  11. Cliquez sur Add pour créer l'entrée correspondant au nom :

    • Type : Header

    • Nom : lastname

    • Valeur : $session.attr.fed.attr.lastname

  12. Cliquez sur Ajouter.

  13. 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.