Tüm Ürünler
Search
Belge Merkezi

CloudSSO:Örnek: Shibboleth ve CloudSSO tek oturum açma

Son Güncelleme:Oct 07, 2026

Bu konuda, Shibboleth'ten CloudSSO'ya tek oturum açma (SSO) yapılandırmasına ilişkin bir örnek sunulmaktadır.

Başlamadan önce

Shibboleth, Tomcat ve bir LDAP sunucusu yükleyin.

Not

Bu konudaki Shibboleth yapılandırmaları yalnızca uçtan uca yapılandırma sürecini anlamanıza yardımcı olmak amacıyla sunulmuştur. Alibaba Cloud, Shibboleth yapılandırması için danışmanlık hizmeti vermemektedir.

1. Adım: Alibaba Cloud'dan SAML SP meta verilerini alma

  1. CloudSSO konsolu üzerinde oturum açın.

  2. Sol gezinme bölmesinde Settings öğesine tıklayın.

  3. SSO Logon bölümünde hizmet sağlayıcısı (SP) meta veri dosyasını indirin ve /opt/shibboleth-idp/metadata/aliyun-cloudsso-metadata.xml konumuna kaydedin.

    SP'nin Entity ID değerini daha sonra kullanmak üzere kaydedin.

2. Adım: Alibaba Cloud'u Shibboleth'e kaydetme

/opt/shibboleth-idp/conf/metadata-providers.xml dosyasını düzenleyerek 1. Adım: Alibaba Cloud'dan SAML SP meta verilerini alma bölümündeki meta veri dosyasına işaret edin ve Alibaba Cloud'u Shibboleth'te güvenilir bir hizmet sağlayıcı olarak kaydedin.

<!--
    <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"/>

3. Adım: Shibboleth kullanıcı niteliklerini yapılandırma

  1. /opt/shibboleth/conf/services.xml dosyasını değiştirin.

    Varsayılan attribute-resolver.xml dosyası gerekli tüm nitelik tanımlarını içermez. Tam yapılandırmayı etkinleştirmek için bu dosyayı attribute-resolver-full.xml ile değiştirin.

    <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. /opt/shibboleth/conf/attribute-resolver-full.xml dosyasını değiştirin.

    1. Kullanıcı bilgileriyle birlikte döndürülecek nitelikleri yapılandırın. Bu örnekte mail niteliği döndürülür.

      <!-- ========================================== -->
      <!--      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. /opt/shibboleth/conf/ldap.properties konumundan ayarları okuyarak LDAP veri bağlayıcısını yapılandırın.

      <!-- 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. Bir nitelik filtresi eklemek için /opt/shibboleth/conf/attribute-filter.xml dosyasını değiştirin.

    PolicyRequirementRule etiketinde value niteliğini 1. Adım: Alibaba Cloud'dan SAML SP meta verilerini alma bölümündeki Alibaba Cloud entityID değeriyle değiştirin.

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

4. Adım: SAML NameID yapılandırma

  1. Alibaba Cloud için NameID yapılandırmak üzere /opt/shibboleth/conf/relying-party.xml dosyasını değiştirin.

    bean etiketinde relyingPartyIds niteliğini 1. Adım: Alibaba Cloud'dan SAML SP meta verilerini alma bölümündeki Alibaba Cloud entityID değeriyle değiştirin.

    <!--
    	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. NameID oluşturmayı yapılandırmak için /opt/shibboleth/conf/saml-nameid.xml dosyasını değiştirin.

    <!-- 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. NameID özelliklerini yapılandırmak için /opt/shibboleth/conf/saml-nameid.properties dosyasını değiştirin.

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

5. Adım: Shibboleth'ten SAML IdP meta verilerini alma

  1. Değişikliklerinizi uygulamak için Tomcat'i yeniden başlatın.

  2. https://<your_server_address>/idp/shibboleth adresine erişin ve meta veri dosyasını yerel bilgisayarınıza kaydedin.

6. Adım: CloudSSO'da SSO'yu etkinleştirme

  1. CloudSSO konsolunun sol gezinme bölmesinde Settings öğesine tıklayın.

  2. SSO Logon bölümünde Configure IdP seçeneğine tıklayın.

  3. Configure IdP iletişim kutusunda Upload Metadata File seçeneğini belirleyin.

  4. Upload File seçeneğine tıklayın ve 5. Adım: Shibboleth'ten SAML IdP meta verilerini alma bölümündeki IdP meta veri dosyasını yükleyin.

  5. SSO'yu etkinleştirmek için SSO anahtarını açın.

    Not

    SSO oturum açmayı etkinleştirdiğinizde kullanıcı adı ve parola ile oturum açma devre dışı bırakılır. Bu durum, CloudSSO kullanıcılarının artık platform kimlik bilgileriyle oturum açamayacağı anlamına gelir. Etkinleştirildikten sonra tüm kullanıcılar kimlik sağlayıcınız üzerinden oturum açmalıdır.

7. Adım: CloudSSO'da kullanıcı oluşturma

Kullanıcı adı karşılık gelen Shibboleth kullanıcısıyla eşleşen bir CloudSSO kullanıcısı oluşturun.

  1. CloudSSO konsolunun sol gezinme bölmesinde User Management > User yolunu izleyin.

  2. User sayfasında Create User seçeneğine tıklayın.

  3. Create User panelinde bir Username girin.

    Bu örnekte kullanıcı adı testUser@testdomain.alicloud.com şeklindedir.

  4. Kullanıcı durumunu Etkin olarak ayarlayın.

  5. Close seçeneğine tıklayın.

(İsteğe bağlı) 8. Adım: Kullanıcıya izin atama

Kullanıcıların SSO sonrası belirli Resource Directory üye hesaplarında bulunan kaynaklara erişmesini sağlamak için bir izin kümesi oluşturun ve kullanıcıya bu hesaplara erişim izni verin.

  1. İlkeleri tanımlamak için CloudSSO'da bir izin kümesi oluşturun.

    Daha fazla bilgi için bkz. İzin kümesi oluşturma.

  2. Kullanıcıya üye hesaplara erişim izni verin.

    Daha fazla bilgi için bkz. Üye hesaba erişim izni verme.

Sonucu doğrulama

SSO işlemini Alibaba Cloud veya Shibboleth üzerinden başlatabilirsiniz.

  • SSO'yu Alibaba Cloud üzerinden başlatma

    1. CloudSSO konsolu'nin Overview sayfasında kullanıcı oturum açma URL'sini kopyalayın.

    2. URL'yi yeni bir tarayıcıda açın.

    3. Go seçeneğine tıklayın. Shibboleth oturum açma sayfasına yönlendirilirsiniz. Enterprise Account Login URL alanı önceden doldurulmuş olarak SSO Login sayfası görüntülenir. Kimlik sağlayıcı oturum açma sayfasına devam etmek için Go seçeneğine tıklayın.

    4. Shibboleth oturum açma sayfasında kullanıcı adını (testUser) ve parolayı girin, ardından Log On seçeneğine tıklayın.

      Kimlik doğrulama başarılı olduktan sonra CloudSSO kullanıcı portalına yönlendirilirsiniz.

    5. İzniniz olan üye hesaplarında bulunan kaynaklara erişin.

  • SSO'yu Shibboleth üzerinden başlatma

    1. https://<your_server_address>/idp/profile/SAML2/Unsolicited/SSO?providerId=<entityID> adresine erişin.

      URL'deki <entityID> değerini 1. Adım: Alibaba Cloud'dan SAML SP meta verilerini alma bölümündeki Alibaba Cloud entityID değeriyle değiştirin.

    2. Shibboleth oturum açma sayfasında kullanıcı adını (testUser) ve parolayı girin, ardından Log On seçeneğine tıklayın.

      Kimlik doğrulama başarılı olduktan sonra CloudSSO kullanıcı portalına yönlendirilirsiniz.

    3. İzniniz olan üye hesaplarında bulunan kaynaklara erişin.

SSS

Doğrulama sırasında sorunlarla karşılaşırsanız /opt/shibboleth-idp/logs/idp-process.log dosyasını kontrol edin. Aşağıda yaygın sorunlar ve çözümleri listelenmiştir:

Shibboleth oturum açma başarılı olduktan sonra hata oluşması

/opt/shibboleth-idp/logs/idp-process.log dosyasındaki hata iletisini kontrol edin. Hata ValidateUsernamePassword ile ilgiliyse LDAP bağlantı ayarlarınızı ve dağıtımınızı doğrulayın. Gerekli bölümlerin açıklamasını kaldırdığınızdan ve fazladan boşluk bırakmadığınızdan emin olun.

"unable to connect to the ldap" hatasıyla oturum açmanın başarısız olması

ldap.properties ve attribute-resolver-full.xml dosyalarındaki LDAP bağlantı ayarlarını kontrol edin.

Yönlendirme hatası: "The NameID is missing"

3. Adım: Shibboleth kullanıcı niteliklerini yapılandırma bölümünde kullanıcı bilgilerinden mail niteliğini doğru şekilde eşlediğinizden emin olun. Ayrıca 4. Adım: SAML NameID yapılandırma bölümünde NameID değerinin doğru şekilde yapılandırıldığını doğrulayın.

Erişim hatası: **https://<your_server_address>/idp/profile/SAML2/Unsolicited/SSO?providerId=<entityID> **adresinde "Unsupported Request" hatası

entityId değerinin metadata klasöründeki meta veri dosyası, attribute-filter.xml dosyası ve relying-party.xml dosyası olmak üzere üç konumda da tutarlı olduğundan emin olun.

Yönlendirme hatası: "The response signature is invalid"

Shibboleth meta veri dosyasını tekrar Alibaba Cloud'a yükleyin.