概觀

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

其中一種 IdP 便是 Shibboleth。若要使用 Shibboleth,伺服器應設定為可從網際網路存取,且可以在企業網路中存取目錄服務。本文件旨在說明設定 Admin Console 和 Shibboleth 伺服器的流程,以便登入 Adobe Creative Cloud 應用程式和單一登入適用的相關網站。

一般而言,系統會利用不同的網路存取 IdP,這類網路設有特定規則,目的是為了只允許伺服器與內部和外部網路間的特定通訊類型,稱為 DMZ (邊界網路)。此伺服器的作業系統設定以及該網路的拓撲已超出本文件的範圍。

先決條件

在使用 Shibboleth IDP 設定單一登入的網域前,您必須符合下列要求:

  • 已安裝並設定最新版本的 Shibboleth。
  • 所有與 Creative Cloud 企業帳戶相關聯的 Active Directory 帳戶都必須有 Active Directory 內所列的電子郵件地址。

註解:

本文件對於利用 Adobe SSO 設定 Shibboleth IDP 的步驟已經過第 3 版的測試。

使用 Shibboleth 設定單一登入

若要為針對網域設定單一登入,請執行以下操作:

  1. 登入 Admin Console,先建立一個 Federated ID 目錄,並選取「其他 SAML 提供者」作為身分提供者。從「新增 SAML 描述檔」畫面複製 ACS URL實體 ID 的值。
  2. 設定 Shibboleth 並指定 ACS URL實體 ID,再下載 Shibboleth 中繼資料檔案。
  3. 返回 Adobe Admin Console,並在「新增 SAML 描述檔」畫面中上傳 Shibboleth 中繼資料檔案,然後按一下「完成」

設定 Shibboleth

在您從 Adobe Admin Console 下載 SAML XML 中繼資料檔案後,請遵循下列步驟以更新 Shibboleth 設定檔案。

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

    %{idp.home}/metadata/

  2. 更新檔案,確實將正確資訊傳回給 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">

  3. 編輯 attribute-filter.xml 檔案。

    Adobe 服務提供者要求在 SAML 回應中輸入使用者的名字姓氏電子郵件

    編輯 %{idp.home}/conf/attribute-filter.xml 檔案,插入 AttributeFilterPolicy 節點以包含 FirstName、LastName 及 Email 屬性,如下所示 (第 17 至 31 行):

    <?xml version="1.0" encoding="UTF-8"?>
    <!--
        This file is an EXAMPLE policy file.  While the policy presented in this
        example file is illustrative of some simple cases, it relies on the names of
        non-existent example services and the example attributes demonstrated in the
        default attribute-resolver.xml file.
         
        Deployers should refer to the documentation for a complete list of components
        and their options.
    -->
    <AttributeFilterPolicyGroup>
    	<AttributeFilterPolicy>
    		<PolicyRequirementRule xsi:type="Requester" value="https://www.okta.com/saml2/service-provider/spiml66pl3iZi7tuI0x7" />
    		<AttributeRule attributeID="NameID">
    			<PermitValueRule xsi:type="ANY" />
    		</AttributeRule>
    		<AttributeRule attributeID="FirstName">
    			<PermitValueRule xsi:type="ANY" />
    		</AttributeRule>
    		<AttributeRule attributeID="LastName">
    			<PermitValueRule xsi:type="ANY" />
    		</AttributeRule>
    		<AttributeRule attributeID="Email">
    			<PermitValueRule xsi:type="ANY" />
    		</AttributeRule>
    	</AttributeFilterPolicy>
    </AttributeFilterPolicyGroup>
  4. 編輯 metadata-providers.xml 檔案。

    %{idp.home}/conf/metadata-providers.xml 更新為您在上方第 1 步建立的 adobe-sp-metadata.xml metadata 檔案的位置 (下方第 29 行)。

        <!--
        <MetadataProvider id="HTTPMetadata"
                          xsi:type="FileBackedHTTPMetadataProvider"
                          backingFile="%{idp.home}/metadata/localCopyFromXYZHTTP.xml"
                          metadataURL="http://WHATEVER"> 
            
            <MetadataFilter xsi:type="SignatureValidation" requireSignedRoot="true">
                <PublicKey>
                    MIIBI.....
                </PublicKey>
            </MetadataFilter>
            <MetadataFilter xsi:type="RequiredValidUntil" maxValidityInterval="P30D"/>
            <MetadataFilter xsi:type="EntityRoleWhiteList">
                <RetainedRole>md:SPSSODescriptor</RetainedRole>
            </MetadataFilter>
        </MetadataProvider>
        -->   
    
        <!--
        Example file metadata provider.  Use this if you want to load metadata
        from a local file.  You might use this if you have some local SPs
        which are not "federated" but you wish to offer a service to.
        
        If you do not provide a SignatureValidation filter, then you have the responsibility to
        ensure that the contents are trustworthy.
        -->
        
        
        <MetadataProvider id="LocalMetadata"  xsi:type="FilesystemMetadataProvider" metadataFile="%{idp.home}/metadata/adobe-sp-metadata.xml"/>

疑難排解 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="ad:Simple" id="NameID" sourceAttributeID="mail">
      <resolver:Dependency ref="myLDAP" />
      <resolver:AttributeEncoder xsi:type="SAML2StringNameID"
       xmlns="urn:mace:shibboleth:2.0:attribute:encoder"
        nameFormat="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" />
      </resolver:AttributeDefinition>
      <resolver:AttributeDefinition xsi:type="ad:Simple" id="Email"
        sourceAttributeID="mail">
        <resolver:Dependency ref="myLDAP" />
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="Email" />
      </resolver:AttributeDefinition>
      <resolver:AttributeDefinition xsi:type="ad:Simple" id="FirstName"
        sourceAttributeID="givenName">
        <resolver:Dependency ref="myLDAP" />
        <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="FirstName" />
     </resolver:AttributeDefinition>
     <resolver:AttributeDefinition xsi:type="ad:Simple" id="LastName"
        sourceAttributeID="sn">
     <resolver:Dependency ref="myLDAP" />
    <resolver:AttributeEncoder xsi:type="enc:SAML2String" name="LastName" /></resolver:AttributeDefinition>

2. relying-party.xml

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

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

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

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

此外,若要關閉判斷提示的加密功能,請於每個 SAML2 類型的 DefaultRelyingParty 區段中:

將:

encryptAssertions="conditional"

改成:

encryptAssertions=”never"

3. saml-nameid.xml

在以下位置更新 saml-nameid.xml

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

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

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

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

若要更新 Shibboleth 中繼資料檔案:

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

    設定 Shibboleth 後,您即可在 Shibboleth 伺服器上的以下位置找到中繼資料檔案 (idp-metadata.xml):

    <shibboleth>/metadata

  2. 按一下「完成」

如需詳細資訊,請參閱如何在 Admin Console 中建立目錄

測試單一登入

登入 Adobe 網站或 Creative Cloud 桌面應用程式,針對您已在專屬身分管理系統及 Adobe Admin Console 中定義的使用者,檢查其使用者存取權限。

如果發生問題,請參閱我們的疑難排解文件

若仍需要單一登入設定的相關協助,請導覽至 Adobe Admin Console「支援」,並開啟提問工單。