Détermination de la valeur IdP à utiliser pour l'accès avec connexion unique (SSO) Federation

En tant que fournisseur de services, lors du déclenchement d'une opération SSO de fédération, la principale difficulté consiste parfois à déterminer quel élément IdP doit être sélectionné pour le flux SSO, dans les cas où le fournisseur de services dispose d'accords de confiance avec plusieurs éléments IdPs.

OAM/SP dispose d'un mécanisme différent permettant de sélectionner IdP pour l'opération SSO de fédération, notamment :

La section suivante présente chaque mécanisme en détail.

Système de fédération OAM

OAM fournit des outils d'administration permettant de créer un modèle d'authentification OAM qui sera :

Lorsqu'une ressource est protégée avec ce type de modèle d'authentification et qu'un utilisateur non authentifié demande l'accès, un flux SSO de fédération est déclenché avec le partenaire IdP auquel le modèle est lié.

La création de tels schémas permet à un administrateur de disposer de ressources spécifiques qui aboutissent à un SSO de fédération avec des partenaires IdP spécifiques.

Remarque : si l'utilisateur est déjà authentifié avec une session valide dont le niveau est suffisamment élevé, l'accès aux ressources protégées par d'autres modèles de fédération risque de ne pas générer de nouveau SSO de fédération.

Console d'administration OAM

Pour créer un modèle d'authentification OAM pour un partenaire IdP spécifique, procédez comme suit :

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

  2. Accédez à Fédération d'identités, Administration des fournisseurs de services.

  3. Ouvrez le partenaire IdP pour lequel vous souhaitez créer le schéma.

  4. Cliquez sur le bouton Créer un modèle et un module d'authentification.

Description de l'image OAM_Admin_Console.jpg

La console d'administration OAM crée les éléments suivants :

Description de l'image OAM_Admin_Console_with_message.jpg

Commande WLST

Pour créer un modèle d'authentification OAM pour un partenaire IdP spécifique à l'aide de la commande OAM WLST createAuthnSchemeAndModule(), procédez comme suit :

  1. Entrez dans l'environnement WLST en exécutant : $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connectez-vous au serveur d'administration WLS : connect().

  3. Accédez au branchement d'exécution de domaine : domainRuntime().

  4. Exécutez la commande createAuthnSchemeAndModule() : indiquez le nom du partenaire IdP. Exemple : createAuthnSchemeAndModule("AcmeIdP").

  5. Quittez l'environnement WLST : exit().

Remarque : pour supprimer ce modèle/module de fédération, exécutez la commande OAM WLST deleteAuthnSchemeAndModule().

Protection d'une ressource

Pour protéger une ressource avec un <PARTNER_NAME>FederationScheme qui déclenche SSO de fédération avec ce partenaire IdP spécifique, exécutez la procédure suivante :

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

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

  3. Cliquez sur Rechercher et ouvrez le domaine d'application contenant les ressources à protéger avec le nouvel élément FederationScheme.

  4. Cliquez sur l'onglet Stratégies d'authentification.

  5. Créez une nouvelle stratégie d'authentification ou modifiez une stratégie existante.

  6. Sélectionnez le nouveau FederationScheme.

  7. Cliquez sur Appliquer.

Description de l'image Authentication_Policies.jpg

Après avoir effectué cette modification, chaque fois qu'un utilisateur demande des ressources protégées par cette stratégie d'authentification et que l'utilisateur doit être authentifié, une authentification unique de fédération est exécutée avec le partenaire IdP spécifique (AcmeIdP dans cet exemple).

Module d'extension d'authentification OAM personnalisé

Présentation

Voici un module d'authentification OAM :

Le module d'authentification de fédération OOTB, appelé FederationPlugin, est composé de deux modules d'extension :

L'orchestration peut être vue par :

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

  2. Accédez à Gestionnaire d'accès, Modules d'authentification.

  3. Ouvrez FederationScheme.

  4. Cliquez sur l'onglet des étapes pour voir les modules d'extension.

  5. Cliquez sur l'onglet Orchestration des étapes pour voir l'orchestration entre les différents modules d'extension et le module d'extension utilisé pour démarrer l'opération.

Description de l'image Steps_Orchestration.jpg

Implémentation d'un module d'extension personnalisé

Un module d'extension personnalisé peut être implémenté en fonction de la structure de module d'extension d'authentification personnalisée OAM qui détermine le fichier IdP à utiliser pour une opération SSO de fédération spécifique :

Le code permettant d'enregistrer le nom du partenaire IdP dans AuthenticationContext se présente comme suit :

 public ExecutionStatus
 process(AuthenticationContext context)
 {
    ...
    CredentialParam param = new CredentialParam();
    param.setName("KEY_FEDIDP");
    param.setType("string");
    param.setValue(IDP_PARTNER_NAME);

 context.getCredential().addCredentialParam("KEY_FEDIDP", param);
    ...
    return ExecutionStatus.SUCCESS;
 }

Une fois le plug-in implémenté :

Enfin, vous pouvez protéger les ressources à l'aide du nouveau modèle OAM, qui utilise les modules d'authentification personnalisés pour effectuer l'opération SSO de fédération.

Remarque : pour plus d'informations sur les modules d'extension personnalisés, reportez-vous au guide du développeur OAM.

IdP Service de repérage

Présentation

La spécification SAML 2.0 "Identity Provider Discovery Service Protocol and Profile" permet aux SP SAML 2.0 de déléguer la sélection IdP à un service distant.

Le flux est décrit dans la spécification SAML 2.0 et comprend les étapes suivantes :

Configuration d'OAM/SP

Vous pouvez configurer OAM/SP pour qu'il utilise n'importe quel service de repérage IdP distant. OAM inclut un service de repérage IdP simple qui est utilisé et permet à l'utilisateur de choisir le IdP avec lequel effectuer l'authentification unique de fédération. Pour configurer OAM/SP afin qu'il utilise un service de repérage IdP, procédez comme suit :

  1. Entrez dans l'environnement WLST en exécutant : $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connectez-vous au serveur d'administration WLS : connect().

  3. Accédez au branchement d'exécution de domaine : domainRuntime().

  4. Activez/désactivez OAM/SP pour utiliser un service de repérage IdP : putBooleanProperty("/spglobal /idpdiscoveryserviceenabled", "true/false").

    1. Pour activer : putBooleanProperty("/spglobal /idpdiscoveryserviceenabled", "true")

    2. Pour désactiver putBooleanProperty("/spglobal /idpdiscoveryserviceenabled", "false")

  5. Définissez l'emplacement du service de repérage IdP distant : putStringProperty("/spglobal /idpdiscoveryserviceurl", "URL").

  6. Remplacer l'URL par l'emplacement du service.

    1. Pour le service de repérage IdP simple intégré, remplacez l'URL par /oamfed/discovery.jsp (il s'agit de la valeur OOTB pour cette propriété) : putStringProperty("/spglobal /idpdiscoveryserviceurl", "/oamfed/discovery.jsp").

    2. Pour un service distant, par exemple : putStringProperty("/spglobal /idpdiscoveryserviceurl", "http://sp.com/discovery").

  7. Quittez l'environnement WLST : exit().

Pour utiliser le service de repérage IdP simple intégré, procédez comme suit :

  1. Entrez dans l'environnement WLST en exécutant : $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connectez-vous au serveur d'administration WLS : connect().

  3. Accédez au branchement d'exécution de domaine : domainRuntime().

  4. Activez/désactivez le service de repérage IdP intégré : putBooleanProperty("/spglobal /idpdiscoveryservicepageenabled", "true/false").

    1. Pour l'activer : putBooleanProperty("/spglobal /idpdiscoveryservicepageenabled", "true").

    2. Pour désactiver putBooleanProperty("/spglobal /idpdiscoveryservicepageenabled", "false").

  5. Quittez l'environnement WLST : exit().

Tester

Dans mon environnement de test, j'ai trois fichiers IdPs :

OAM/SP est configuré pour :

Si l'utilisateur demande l'accès à une ressource protégée par l'option FederationScheme, le service de repérage IdP simple intégré invite l'utilisateur à sélectionner une option IdP pour effectuer l'accès SSO de fédération avec :

Description de l'image Access_Manager.jpg

Fournisseur d'identités SSO par défaut

Si aucune des méthodes précédentes n'est utilisée pour indiquer le IdP à utiliser pour l'accès avec connexion unique de fédération, OAM/SP utilise le partenaire IdP marqué comme fournisseur d'identités SSO par défaut.

Console d'administration OAM

Pour indiquer qu'un partenaire IdP spécifique doit être le fournisseur d'identités SSO par défaut via la console d'administration OAM, procédez comme suit :

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

  2. Accédez à Fédération d'identités, Administration des fournisseurs de services.

  3. Ouvrez le partenaire IdP.

  4. Cochez la case Partenaire de fournisseur d'identités par défaut.

  5. Cliquez sur Appliquer.

Description de l'image Default_Identity_Provider.jpg

Commande WLST

Pour indiquer qu'un partenaire IdP spécifique doit être le fournisseur d'identités SSO par défaut à l'aide de la commande OAM WLST setDefaultSSOIdPPartner(), procédez comme suit :

  1. Entrez dans l'environnement WLST en exécutant : $IAM_ORACLE_HOME/common/bin/wlst.sh.

  2. Connectez-vous au serveur d'administration WLS : connect().

  3. Accédez au branchement d'exécution de domaine : domainRuntime().

  4. Exécutez la commande setDefaultSSOIdPPartner().

  5. Indiquez le nom du partenaire IdP. Exemple : setDefaultSSOIdPPartner("AcmeIdP").

  6. Quittez l'environnement WLST : exit().

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.