設定 Shibboleth IdP 以搭配 Adobe SSO 使用

上次更新時間 2024年12月16日

概觀

Adobe Admin Console 可讓系統管理員設定用於透過 Federated ID 進行單一登入 (SSO) 的網域。 驗證網域後,包含該網域的目錄會設定為允許用戶登入 Creative Cloud。 用戶可以透過身分提供者 (IdP) 使用屬於該網域的電子郵件地址登入。 此程序的佈建形式若非軟體服務即是雲端服務,前者執行於公司網路,可從網際網路加以存取,而後者由協力廠商代管,允許透過採用 SAML 通訊協定的安全通訊來驗證用戶的登入詳細資料。

例如,Shibboleth 即是其中一種 IdP。 若要使用 Shibboleth,您需要一部可從網際網路存取而且可存取公司網路內部目錄服務的伺服器。 本文將說明如何設定 Admin Console 和 Shibboleth 伺服器,以便能夠登入 Adobe Creative Cloud 應用程式以及相關聯的網站進行單一登入。

IdP 的存取通常是使用以特定規則所設定的個別網路來達成,目的是僅允許伺服器與內部和外部網路進行特定類型的通訊,稱為 DMZ (非軍事緩衝區)。 此伺服器的作業系統以及這類網路的拓撲設定已超出本文的範圍。

先決條件

設定使用 Shibboleth IDP 進行單一登入的網域之前,必須先符合下列需求︰

  • 已安裝且設定最新版的 Shibboleth。
  • 所有要與適用於企業的 Creative Cloud 帳戶建立關聯的 Active Directory 帳戶都擁有列在 Active Directory 中的電子郵件地址。
備註

本文所描述的 Shibboleth IDP 與 Adobe SSO 設定步驟已經通過版本 3 的測試。

設定 Shibboleth

開始之前,建立 Federated ID 目錄,選取 Other SAML Providers 作為身分提供者。 從「新增 SAML 設定檔」畫面中,複製 ACS URL實體 ID 的值。

將已下載的中繼資料檔案複製到下列位置,並將檔案重新命名為 adobe-sp-metadata.xml

%{idp.home}/metadata/

更新檔案,以確定正確的資訊會傳回 Adobe。

將檔案中的以下行:

<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:persistent</md:NameIDFormat>

<md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</md:NameIDFormat>

替換為:

<md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat>

此外,也將:

<md:SPSSODescriptor AuthnRequestsSigned="true" WantAssertionsSigned="true" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">

替換為:

<md:SPSSODescriptor AuthnRequestsSigned="false" WantAssertionsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol">

編輯 metadata-providers.xml 檔案。

使用您在上面步驟 1 所建立的 adobe-sp-metadata.xml 中繼資料檔案的位置 (第 29 行以下) 更新 %{idp.home}/conf/metadata-providers.xml

    <!--
    <MetadataProvider id=&quot;HTTPMetadata&quot;
                      xsi:type=&quot;FileBackedHTTPMetadataProvider&quot;
                      backingFile=&quot;%{idp.home}/metadata/localCopyFromXYZHTTP.xml&quot;
                      metadataURL=&quot;http://WHATEVER&quot;> 
        
        <MetadataFilter xsi:type=&quot;SignatureValidation&quot; requireSignedRoot=&quot;true&quot;>
            <PublicKey>
                MIIBI.....
            </PublicKey>
        </MetadataFilter>
        <MetadataFilter xsi:type=&quot;RequiredValidUntil&quot; maxValidityInterval=&quot;P30D&quot;/>
        <MetadataFilter xsi:type=&quot;EntityRoleWhiteList&quot;>
            <RetainedRole>md:SPSSODescriptor</RetainedRole>
        </MetadataFilter>
    </MetadataProvider>
    -->   

    <!--
    範例檔案中繼資料提供者。  如果要從本機檔案載入中繼資料,
    請使用此選項。  如果您有一些非「聯合」的本機 SP,
    但是希望為其提供服務,則可以使用此選項。
    
    如果您未提供 SignatureValidation 篩選器,則您有責任
    確保內容值得信賴。
    -->
    
    
    <MetadataProvider id=&quot;LocalMetadata&quot;  xsi:type=&quot;FilesystemMetadataProvider&quot; metadataFile=&quot;%{idp.home}/metadata/adobe-sp-metadata.xml&quot;/>

Shibboleth 設定疑難排解

如果您無法順利登入 adobe.com,請檢查下列 Shibboleth 設定檔是否有任何可能的問題:

1. attribute-resolver.xml

您在設定 Shibboleth 時更新的屬性篩選檔案會定義您必須提供給 Adobe 服務提供者的屬性。 不過,您必須依照組織的 LDAP / Active Directory 所定義,將這些屬性對應至適當的屬性。

編輯位於下列位置的 attribute-resolver.xml 檔案:

%{idp.home}/conf/attribute-resolver.xml

針對下列每個屬性,依照組織的定義指定來源屬性 ID:

  • FirstName (第 1 行以下)
  • LastName (第 7 行以下)
  • Email (第 13 行以下)
<resolver:AttributeDefinition xsi:type=&quot;ad:Simple&quot; id=&quot;NameID&quot; sourceAttributeID=&quot;mail&quot;> 
      <resolver:Dependency ref=&quot;myLDAP&quot; /> 
      <resolver:AttributeEncoder xsi:type=&quot;SAML2StringNameID&quot; 
       xmlns=&quot;urn:mace:shibboleth:2.0:attribute:encoder&quot; 
        nameFormat=&quot;urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress&quot; /> 
      </resolver:AttributeDefinition> 
      <resolver:AttributeDefinition xsi:type=&quot;ad:Simple&quot; id=&quot;Email&quot; 
        sourceAttributeID=&quot;mail&quot;> 
        <resolver:Dependency ref=&quot;myLDAP&quot; /> 
        <resolver:AttributeEncoder xsi:type=&quot;enc:SAML2String&quot; name=&quot;Email&quot; /> 
      </resolver:AttributeDefinition> 
      <resolver:AttributeDefinition xsi:type=&quot;ad:Simple&quot; id=&quot;FirstName&quot; 
        sourceAttributeID=&quot;givenName&quot;> 
        <resolver:Dependency ref=&quot;myLDAP&quot; /> 
        <resolver:AttributeEncoder xsi:type=&quot;enc:SAML2String&quot; name=&quot;FirstName&quot; /> 
     </resolver:AttributeDefinition> 
     <resolver:AttributeDefinition xsi:type=&quot;ad:Simple&quot; id=&quot;LastName&quot; 
        sourceAttributeID=&quot;sn&quot;> 
     <resolver:Dependency ref=&quot;myLDAP&quot; /> 
    <resolver:AttributeEncoder xsi:type=&quot;enc:SAML2String&quot; name=&quot;LastName&quot; /></resolver:AttributeDefinition>

2. relying-party.xml

更新位於下列位置的 relying-party.xml 以支援 Adobe 服務提供者所需要的 saml-nameid 格式:

%{idp.home}/conf/relying-party.xml

更新 p:nameIDFormatPrecedence 屬性 (第 7 行以下) 以包含 emailAddress

<bean parent=&quot;RelyingPartyByName&quot; c:relyingPartyIds=&quot;[entityId&quot;> 
 <property name=&quot;profileConfigurations&quot;> 
  <list> 
   <bean parent=&quot;Shibboleth.SSO&quot; p:postAuthenticationFlows=&quot;attribute-release&quot; /> 
   <ref bean=&quot;SAML1.AttributeQuery&quot; /> 
   <ref bean=&quot;SAML1.ArtifactResolution&quot; /> 
   <bean parent=&quot;SAML2.SSO&quot; p:nameIDFormatPrecedence=&quot;urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress&quot; p:postAuthenticationFlows=&quot;attribute-release&quot; p:encryptAssertions=&quot;false&quot; /> 
   <ref bean=&quot;SAML2.ECP&quot; /> 
   <ref bean=&quot;SAML2.Logout&quot; /> 
   <ref bean=&quot;SAML2.AttributeQuery&quot; /> 
   <ref bean=&quot;SAML2.ArtifactResolution&quot; /> 
   <ref bean=&quot;Liberty.SSOS&quot; /> 
  </list> 
 </property> 
</bean>

此外,在 DefaultRelyingParty 區段中,針對每個 SAML2 類型關閉聲明的加密:

將以下內容:

encryptAssertions="conditional"

替換為:

encryptAssertions=”never"

3. saml-nameid.xml

更新位於下列位置的 saml-nameid.xml

%{idp.home}/conf/saml-nameid.xml

p:attributeSourceIds 屬性 (第 3 行以下) 更新為 "#{ {'Email'} }"

        <bean parent=&quot;shibboleth.SAML2AttributeSourcedGenerator&quot;
            p:format=&quot;urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress&quot;
            p:attributeSourceIds=&quot;#{ {'Email'} }&quot; />

將 IdP 中繼資料檔案上傳到 Adobe Admin Console

更新 Shibboleth 中繼資料檔案:

將 Shibboleth 中繼資料檔案上傳到「新增 SAML 設定檔」畫面。

在設定 Shibboleth 之後,就可以在 Shibboleth 伺服器上的以下位置使用中繼資料檔案 (idp-metadata.xml):

<shibboleth>/metadata

選取「完成」。

測試單一登入

查看您在自己的身分管理系統和 Adobe Admin Console 中定義之使用者的存取權,方法是登入 Adobe 網站或 Creative Cloud 桌面應用程式。

如果您遇到問題,請參閱我們的疑難排解文件

如果您需要單一登入設定協助,請瀏覽至 Adobe Admin Console > Support 以聯絡 Adobe 客戶服務。