Tous les produits
Search
Centre de documentation

CloudSSO:Exemple : Authentification unique entre Shibboleth et CloudSSO

Dernière mise à jour :Aug 11, 2026

Cette rubrique présente un exemple de configuration de l'authentification unique (SSO) de Shibboleth vers CloudSSO.

Prérequis

Installez Shibboleth, Tomcat et un serveur LDAP.

Remarque

Les configurations Shibboleth décrites dans cette rubrique sont fournies uniquement pour vous aider à comprendre le processus de configuration de bout en bout. Alibaba Cloud ne fournit pas de services de conseil pour la configuration de Shibboleth.

Étape 1 : Obtenir les métadonnées SAML SP depuis Alibaba Cloud

  1. Connectez-vous à la console CloudSSO.

  2. Dans le volet de navigation de gauche, cliquez sur Settings.

  3. Dans la section SSO Logon, téléchargez le fichier de métadonnées du fournisseur de service (SP) et enregistrez-le dans /opt/shibboleth-idp/metadata/aliyun-cloudsso-metadata.xml.

    Notez l'Entity ID du SP pour une utilisation ultérieure.

Étape 2 : Enregistrer Alibaba Cloud auprès de Shibboleth

Modifiez le fichier /opt/shibboleth-idp/conf/metadata-providers.xml afin qu'il pointe vers le fichier de métadonnées obtenu lors de l'Étape 1 : Obtenir les métadonnées SAML SP depuis Alibaba Cloud, puis enregistrez Alibaba Cloud comme fournisseur de service approuvé dans Shibboleth.

<!--
    <MetadataProvider id="LocalMetadata"  xsi:type="FilesystemMetadataProvider" metadataFile="PATH_TO_YOUR_METADATA"/>
-->
<!-- Replace the preceding commented code with the following code. -->
<MetadataProvider id="AliyunMetadata"  xsi:type="FilesystemMetadataProvider" metadataFile="%{idp.home}/metadata/aliyun-cloudsso-metadata.xml"/>

Étape 3 : Configurer les attributs utilisateur depuis Shibboleth

  1. Modifiez le fichier /opt/shibboleth/conf/services.xml.

    Le fichier attribute-resolver.xml par défaut ne contient pas toutes les définitions d'attributs requises. Remplacez-le par attribute-resolver-full.xml pour activer la configuration complète.

    <value>%{idp.home}/conf/attribute-resolver.xml</value>
    <!-- Replace the preceding code with the following code. -->
    <value>%{idp.home}/conf/attribute-resolver-full.xml</value>
  2. Modifiez le fichier /opt/shibboleth/conf/attribute-resolver-full.xml.

    1. Configurez les attributs à retourner avec les informations utilisateur. Dans cet exemple, l'attribut mail est retourné.

      <!-- ========================================== -->
      <!--      Attribute Definitions                 -->
      <!-- ========================================== -->
      <!-- Schema: Core schema attributes-->
      <!-- Add the following code after the preceding comments. -->
      <AttributeDefinition xsi:type="Simple" id="mail">
          <InputDataConnector ref="myLDAP" attributeNames="mail" />
          <AttributeEncoder xsi:type="SAML1String" name="urn:mace:dir:attribute-def:mail" encodeType="false" />
          <AttributeEncoder xsi:type="SAML2String" name="urn:oid:0.9.2342.19200300.100.1.3" friendlyName="mail" encodeType="false" />
      </AttributeDefinition>
    2. Configurez le connecteur de données LDAP en lisant les paramètres depuis /opt/shibboleth/conf/ldap.properties.

      <!-- Example LDAP Connector -->
      <!--
      	<DataConnector id="myLDAP" xsi:type="LDAPDirectory"
      		ldapURL="%{idp.attribute.resolver.LDAP.ldapURL}"
      		baseDN="%{idp.attribute.resolver.LDAP.baseDN}"
      		principal="%{idp.attribute.resolver.LDAP.bindDN}"
      		principalCredential="%{idp.attribute.resolver.LDAP.bindDNCredential}"
      		useStartTLS="%{idp.attribute.resolver.LDAP.useStartTLS:true}"
      		...
      	</DataConnector>
      -->
      <!-- Replace the preceding example code with the following code. -->
      <DataConnector id="myLDAP" xsi:type="LDAPDirectory"
      			   ldapURL="%{idp.attribute.resolver.LDAP.ldapURL}"
      			   baseDN="%{idp.attribute.resolver.LDAP.baseDN}"
      			   principal="%{idp.attribute.resolver.LDAP.bindDN}"
      			   principalCredential="%{idp.attribute.resolver.LDAP.bindDNCredential}"
      			   useStartTLS="%{idp.attribute.resolver.LDAP.useStartTLS}"
      			   connectTimeout="%{idp.attribute.resolver.LDAP.connectTimeout}"
      			   responseTimeout="%{idp.attribute.resolver.LDAP.responseTimeout}">
      	<FilterTemplate>
      		<![CDATA[
      				%{idp.attribute.resolver.LDAP.searchFilter}
      			]]>
      	</FilterTemplate>
      </DataConnector>
  3. Modifiez le fichier /opt/shibboleth/conf/attribute-filter.xml pour ajouter un filtre d'attributs.

    Dans la balise PolicyRequirementRule, remplacez l'attribut value par l'entityID Alibaba Cloud obtenu lors de l'Étape 1 : Obtenir les métadonnées SAML SP depuis Alibaba Cloud.

    <AttributeFilterPolicyGroup id="ShibbolethFilterPolicy"
    							xmlns="urn:mace:shibboleth:2.0:afp"
    							xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    							xsi:schemaLocation="urn:mace:shibboleth:2.0:afp http://shibboleth.net/schema/idp/shibboleth-afp.xsd">
    <!-- Add the following code after the preceding code. -->
    <AttributeFilterPolicy id="aliyun">
    	<PolicyRequirementRule xsi:type="Requester" value="[entityID]" />
    	<AttributeRule attributeID="mail">
    		<PermitValueRule xsi:type="ANY" />
    	</AttributeRule>
    </AttributeFilterPolicy>

Étape 4 : Configurer le NameID SAML

  1. Modifiez le fichier /opt/shibboleth/conf/relying-party.xml pour configurer le NameID pour Alibaba Cloud.

    Dans la balise bean, remplacez l'attribut relyingPartyIds par l'entityID Alibaba Cloud obtenu lors de l'Étape 1 : Obtenir les métadonnées SAML SP depuis Alibaba Cloud.

    <!--
    	Override example that identifies a single RP by name and configures it
    	for SAML 2 SSO without encryption. This is a common "vendor" scenario.
    -->
    <!--
    <bean parent="RelyingPartyByName" c:relyingPartyIds="https://sp.example.org">
    	<property name="profileConfigurations">
    		<list>
    			<bean parent="SAML2.SSO" p:encryptAssertions="false" />
    		</list>
    	</property>
    </bean>
    -->
    <!-- Replace the preceding commented code with the following code. -->
    <bean parent="RelyingPartyByName" c:relyingPartyIds="[entityID]">
        <property name="profileConfigurations">
            <list>
                <bean parent="SAML2.SSO" p:encryptAssertions="false" p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" />
            </list>
        </property>
    </bean>
  2. Modifiez le fichier /opt/shibboleth/conf/saml-nameid.xml pour configurer la génération du NameID.

    <!-- Uncomment the following two beans to enable them. -->
    <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
        p:omitQualifiers="true"
        p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
        p:attributeSourceIds="#{ {'mail'} }" />
    <bean parent="shibboleth.SAML1AttributeSourcedGenerator"
        p:omitQualifiers="true"
        p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
        p:attributeSourceIds="#{ {'mail'} }" />
  3. Modifiez le fichier /opt/shibboleth/conf/saml-nameid.properties pour configurer les propriétés du NameID.

    idp.nameid.saml2.default = urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress
    idp.persistentId.useUnfilteredAttributes = true
    idp.persistentId.encoding = BASE32

Étape 5 : Obtenir les métadonnées SAML IdP depuis Shibboleth

  1. Redémarrez Tomcat pour appliquer vos modifications.

  2. Accédez à https://<your_server_address>/idp/shibboleth et enregistrez le fichier de métadonnées sur votre ordinateur local.

Étape 6 : Activer le SSO dans CloudSSO

  1. Dans le volet de navigation de gauche de la console CloudSSO, cliquez sur Settings.

  2. Dans la section SSO Logon, cliquez sur Configure IdP.

  3. Dans la boîte de dialogue Configure IdP, sélectionnez Upload Metadata File.

  4. Cliquez sur Upload File et chargez le fichier de métadonnées IdP obtenu lors de l'Étape 5 : Obtenir les métadonnées SAML IdP depuis Shibboleth.

  5. Activez le commutateur SSO pour activer l'authentification unique.

    Remarque

    L'activation de la connexion SSO désactive la connexion par nom d'utilisateur et mot de passe. Par conséquent, les utilisateurs CloudSSO ne peuvent plus se connecter avec leurs identifiants de plateforme. Une fois cette option activée, tous les utilisateurs doivent se connecter via votre fournisseur d'identité.

Étape 7 : Créer un utilisateur dans CloudSSO

Créez un utilisateur CloudSSO dont le nom d'utilisateur correspond à celui de l'utilisateur Shibboleth associé.

  1. Dans le volet de navigation de gauche de la console CloudSSO, choisissez User Management > User.

  2. Sur la page User, cliquez sur Create User.

  3. Dans le panneau Create User, saisissez un Username.

    Dans cet exemple, le nom d'utilisateur est testUser@testdomain.alicloud.com.

  4. Définissez le statut de l'utilisateur sur Enabled.

  5. Cliquez sur Close.

(Facultatif) Étape 8 : Attribuer des permissions à l'utilisateur

Pour permettre aux utilisateurs d'accéder aux ressources de comptes membres Resource Directory spécifiques après le SSO, créez un ensemble de permissions et accordez à l'utilisateur l'accès à ces comptes.

  1. Créez un ensemble de permissions dans CloudSSO pour définir les politiques.

    Pour plus d'informations, consultez Créer un ensemble de permissions.

  2. Accordez à l'utilisateur l'accès aux comptes membres.

    Pour plus d'informations, consultez Accorder l'accès à un compte membre.

Vérifier le résultat

Vous pouvez initier le SSO depuis Alibaba Cloud ou depuis Shibboleth.

  • Initier le SSO depuis Alibaba Cloud

    1. Sur la page Overview de la console CloudSSO, copiez l'URL de connexion utilisateur.

    2. Ouvrez l'URL dans un nouveau navigateur.

    3. Cliquez sur Go. Vous êtes redirigé vers la page de connexion Shibboleth. La page SSO Login s'affiche avec le champ Enterprise Account Login URL prérempli. Cliquez sur Go pour accéder à la page de connexion du fournisseur d'identité.

    4. Sur la page de connexion Shibboleth, saisissez le nom d'utilisateur (testUser) et le mot de passe, puis cliquez sur Log On.

      Après une authentification réussie, vous êtes redirigé vers le portail utilisateur CloudSSO.

    5. Accédez aux ressources des comptes membres pour lesquels vous disposez de permissions.

  • Initier le SSO depuis Shibboleth

    1. Accédez à https://<your_server_address>/idp/profile/SAML2/Unsolicited/SSO?providerId=<entityID>.

      Remplacez <entityID> dans l'URL par l'entityID Alibaba Cloud obtenu lors de l'Étape 1 : Obtenir les métadonnées SAML SP depuis Alibaba Cloud.

    2. Sur la page de connexion Shibboleth, saisissez le nom d'utilisateur (testUser) et le mot de passe, puis cliquez sur Log On.

      Après une authentification réussie, vous êtes redirigé vers le portail utilisateur CloudSSO.

    3. Accédez aux ressources des comptes membres pour lesquels vous disposez de permissions.

FAQ

Si vous rencontrez des problèmes lors de la vérification, consultez le fichier /opt/shibboleth-idp/logs/idp-process.log. Voici les problèmes courants et leurs solutions :

Erreur après une connexion Shibboleth réussie

Vérifiez le message d'erreur dans /opt/shibboleth-idp/logs/idp-process.log. Si l'erreur concerne ValidateUsernamePassword, vérifiez vos paramètres de connexion LDAP et votre déploiement. Assurez-vous d'avoir décommenté les sections requises et qu'il n'y a pas d'espaces superflus.

Échec de la connexion avec l'erreur « unable to connect to the ldap »

Vérifiez les paramètres de connexion LDAP dans les fichiers ldap.properties et attribute-resolver-full.xml.

Erreur de redirection : « The NameID is missing »

Vérifiez que vous avez correctement mappé l'attribut mail depuis les informations utilisateur lors de l'Étape 3 : Configurer les attributs utilisateur depuis Shibboleth. Vérifiez également que le NameID est correctement configuré lors de l'Étape 4 : Configurer le NameID SAML.

Erreur d'accès : « Unsupported Request » sur https://<your_server_address>/idp/profile/SAML2/Unsolicited/SSO?providerId=<entityID>

Assurez-vous que l'entityId est cohérent aux trois emplacements suivants : le fichier de métadonnées dans le dossier metadata, le fichier attribute-filter.xml et le fichier relying-party.xml.

Erreur de redirection : « The response signature is invalid »

Chargez à nouveau le fichier de métadonnées Shibboleth dans Alibaba Cloud.