關於為 Oracle E-Business Suite 設定 Azure AD 與 Oracle Access Manager 之間的 SSO

現在,您將完成在 Azure AD 中註冊新聯合服務提供者、在 Oracle Access Manager 中註冊新身分識別提供者 (E-Business Suite) 所需的步驟,並使用 Oracle Access Manager 進行必要的組態變更,以使用 Azure AD 和 E-Business Suite 完成聯合 SSO 認證。

瞭解 Azure AD 和 E-Business Suite 同盟流程

繼續組態之前,您應該先瞭解 Azure AD 和 E-Business Suite 同盟流程。

ebiz-federation 的描述 -flow.png 如下
ebiz-federation 圖解描述 -flow.png

在此情況下,使用者可以使用儲存在 Azure AD 中的憑證來存取 E-Business Suite。此存取權是透過使用 SAML 2.0 協定進行的聯合認證設定,其中 Azure AD 是身分識別提供者 (IDP),而 E-Business Suite 是服務提供者 (SP)。由於 Oracle Access Manager 是部署在 E-Business Suite for SSO 之前,因此它也是提供 E-Business Suite 聯合功能的元件。本節提供在 Azure AD 與 Oracle Access Manager 之間實行識別聯合所需的步驟。

請注意,我們大部分都對存取 E-Business Suite 保護端點時起始的同盟流程感興趣。在 SAML 協定術語中,這稱為服務提供者起始 (SP 起始) 流程,如圖 2 所示。在該流程中,Oracle Access Manager (OAM) Server 會偵測對受 E-Business Suite 保護資源的存取、建立認證要求 (SAMLRequest),並將瀏覽器重新導向至 Azure AD 進行認證。Azure AD 會挑戰使用者提供證明資料、驗證證明資料、建立 SAMLResponse 作為接收之認證要求的回應,並將其傳送至 Oracle Access Manager。接著,Oracle Access Manager 會驗證宣告,並插入宣告中內嵌的使用者識別資訊,授予受保護資源的存取權。

請注意,本節中顯示的組態也會說明由身分提供者起始 (IdP 啟動) 流程,其中一開始會向 Azure AD SAML 交點 URL 進行要求,然後再將未經請求的 SAMLResponse 傳送至 Oracle Access Manager Server。

所提供的組態也支援 SP 起始的單一登出 (登出流程由 E-Business Suite 起始的位置)。在初次發布這份報告時,不支援由 IDP 起始的單一登出 (Azure 入口網站啟動登出流程的位置)。如需詳細資訊,請參閱本文件結尾的「已知問題」小節。

將 Azure AD 設定為身分識別提供者

首先,您需要將 Azure AD 設定為身分識別提供者。

  1. 以網域管理員身分登入 Azure 入口網站
  2. 在最左側的導覽窗格中,按一下 Azure Active Directory
  3. 在 Azure Active Directory 窗格中,按一下企業應用程式
  4. 按一下新增應用程式
  5. 從圖庫新增區段的搜尋方塊中,輸入 Oracle Access Manager for EBS ,從產生的應用程式中選取 Oracle Access Manager for EBS ,然後按一下新增
  6. 若要設定 Oracle Access Manager 作為應用程式的服務提供者,請按一下單一登入
  7. 選取 SAML 作為單一登入方法。

    隨即顯示使用 SAML 設定單一登入頁面。在此,您將在下列步驟中輸入整合詳細資料。

    您需要輸入的部分值來自 Oracle Access Manager 的 SAML 描述資料。若要取得中繼資料,請前往 http(s)://<oam_hostname>:<port>/oamfed/sp/metadata。輸出為 XML 資料,這是後續步驟中需要的部分資料。

  8. 在「使用 SAML 設定單一登入」頁面的基本 SAML 組態區域中,提供識別碼 (實體 ID) 回覆 URL (宣告用戶服務 URL) 登出 URL 的值。
    • ID (實體 ID) 對應至 SAML 描述資料中 EntityDescriptor 元素的 entityID 屬性。在程式實際執行時,Azure AD 會將值新增至 SAML 宣告的「對象」元素,指出作為宣告之預期目的地的對象。在 Oracle Access Manager 描述資料中尋找下列值,然後輸入該值:
      <md:EntityDescriptor
      …
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       ID="id-4TfauRP-ZeWyweEXkrqcBA0w0nRhe64hOPfnY2YR"
       cacheDuration="P30DT0H0M0S"
       entityID="http://myoamserver.mycompany.com:14100/oam/fed"
       validUntil="2029-03-19T21:13:40Z">
      …
    • 回覆 URL (宣告用戶服務 URL) 會對應至 SAML 描述資料中 AssertionConsumerService 元素的 Location 屬性。請務必挑選相對於 HTTP_POST 連結的 Location 屬性,如以下範例所示。回覆 URL 是聯合夥伴中預期會處理宣告的 SAML 服務端點。
      <md:AssertionConsumerService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Location="https://myoamserver.mycompany.com/oam/server/fed/sp/sso"
      index="1"/>
    • 登出 URL 對應至 Oracle Access Manager 的 SAML logout 端點。該值對應至 Oracle Access Manager 之 SAML 描述資料中 SingleLogoutService 元素的 Location 屬性。此值專門用於 IdP 起始的登出流程。
      <md:SingleLogoutService
      Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Location="https://myoamserver.mycompany.com/oamfed/sp/samlv20"
      ResponseLocation="https://myoamserver.mycompany.com/oamfed/sp/samlv20"
      />
      

    注意:

    「登入 URL」與「轉送狀態」特性與此案例不相關,因此您可以略過它們。
  9. 使用者屬性與宣告區域中,設定將插入 SAML 宣告並傳送至 Oracle Access Manager 的使用者屬性。在此狀況下,它會遵循傳送某些形式的唯一使用者識別。
    將值保留為名稱識別碼 value: user.userprincipalname [nameid-format:emailAddress] 的預設值,因為 userprincipalname 是 Azure AD 內的唯一屬性。這類組態的意義是需要將 userprincipalname 值匯入 Oracle Access Manager 的識別存放區 (LDAP 伺服器存放區) 中的使用者項目中。
  10. .在 SAML 簽署憑證區域中,按一下「同盟描述資料 XML」旁的下載連結,然後將檔案儲存在您的電腦上。您稍後將會在設定 Oracle Access Manager 作為服務提供者時使用它。

將使用者指定給應用程式

接著,將使用者指派給應用程式。Azure AD 從應用程式收到認證要求之後,只有您指派給應用程式的使用者才能登入。

  1. 從您在上一個區段建立的 Azure AD 應用程式,按一下使用者和群組,然後按一下新增使用者
  2. 選取使用者和群組:未選取任何項目選項,然後執行下列步驟:
    1. 選取成員或邀請外部使用者搜尋方塊中,輸入使用者的名稱,然後按 Enter 鍵。
    2. 選取使用者,然後按一下選取以新增使用者。
    3. 按一下指定
    4. 若要新增其他使用者或群組,請重複這些步驟。
  3. 若要防止使用者檢視僅用於 SSO 組態的此企業應用程式,請按一下特性,將使用者可看見的值變更為,然後按一下儲存

為 Azure AD 建立新的身分識別提供者

接下來,請為 Azure AD 建立新的身分識別提供者。此步驟假設已啟用 Oracle Access Manager 同盟服務。

  1. 以管理員身分登入 Oracle Access Manager 主控台
  2. 按一下主控台上方的同盟頁籤。
  3. 啟動程式頁籤的同盟區域中,按一下服務提供者管理
  4. 服務提供者管理頁籤上,按一下建立身分識別提供者夥伴
  5. 一般區域中,輸入身分識別提供者夥伴的名稱,並同時選取啟用夥伴預設身分識別提供者夥伴。請先移至下一步再儲存。
  6. .在服務資訊區域中:
    1. 選取 SAML2.0 作為協定。
    2. 選取從提供者描述資料載入
    3. 按一下瀏覽 (Windows) 或選擇檔案 (Mac),然後選取先前儲存的 Azure AD SAML 描述資料檔案。
    4. 請先前往下一個步驟再儲存。
  7. 對應選項區域中:
    1. 選取將作為檢查 E-Business Suite 使用者之 Oracle Access Manager LDAP 識別存放區的使用者識別存放區選項。一般而言,這已經設定為 Oracle Access Manager 識別存放區。
    2. 使用者搜尋基準 DN 留白。搜尋庫會自動從識別存放區組態選取。
    3. 選取將宣告名稱 ID 對應至使用者 ID 存放區 屬性,然後在文字方塊中輸入郵件。

    注意:

    此組態定義 Azure AD 與 Oracle Access Manager 之間的使用者對應。Oracle Access Manager 將會使用內送 SAML 宣告中的 NameID 元素值,並嘗試根據已設定之識別存放區中所有使用者項目的郵件屬性查尋該值。因此,Azure AD 使用者主要項目名稱 (在先前顯示的 Azure AD 組態中) 必須與 Oracle Access Manager 識別存放區中的電子郵件屬性同步。
  8. 按一下儲存以儲存身分識別提供者夥伴。
  9. 儲存合作夥伴後,回到標籤底部的進階區域。確定選項設定如下:
    • 選取啟用全域登出
    • 選取 HTTP POST SSO 回應連結。
      這是 Oracle Access Manager 在認證要求中傳送的指示,告知 Azure AD 如何將 SAML 宣告傳回。如果檢查 Oracle Access Manager 傳送的認證要求,您會看到以下範例。請注意範例中 AuthnRequest 元素的粗體 ProtocolBinding 屬性。
      <?xml version="1.0"?>
      <samlp:AuthnRequest xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
      xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"
      xmlns:enc="http://www.w3.org/2001/04/xmlenc#"
      xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion"
      xmlns:x500="urn:oasis:names:tc:SAML:2.0:profiles:attribute:X500"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      Destination="https://login.microsoftonline.com/4e39517e-7ef9-45a7-
      9751-6ef6f2d43429/saml2" ID="id-y5nmx61xB8QWXtDmYWcH7rPYs5zXtV-fcKRyyM9" IssueInstant="2019-04-23T17:01:25Z"
      ProtocolBinding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST"
      Version="2.0">
      <saml:Issuer Format="urn:oasis:names:tc:SAML:2.0:nameidformat:entity">http://myoamserver.mycompany.com:14100/oam/fed</saml:Is
      suer>
      <dsig:Signature>
      <dsig:SignedInfo>
      <dsig:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xmlexc-c14n#"/>
      <dsig:SignatureMethod
      Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
      <dsig:Reference URI="#id-y5nmx61xB8QWXtDmYWcH7rPYs5zXtV-fcKRy-yM9">
      <dsig:Transforms>
      <dsig:Transform
      Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
      <dsig:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#"/>
      </dsig:Transforms>
      <dsig:DigestMethod
      Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
      <dsig:DigestValue>pa00UWdqfywm4Qb59HioA6BhD18=</dsig:DigestValue>
      </dsig:Reference>
      </dsig:SignedInfo>
      <dsig:SignatureValue>X4eZRyFD6sznA0g3BJebU2c6ftunG2UvwbMptO+10wFky0aAL
      nnr0Na+5fF83U4Ut99OvAIZ41K3YMNaR4A8zr37SSlBrb72X7CTtxjh2mAphWDRPmkJx4v
      S0HACzZh0MHimdwq+qVXuFRbSLBE+9XNSGWJzGAh//WqGBlNrKnw=</dsig:SignatureV
      alue>
      </dsig:Signature>
      </samlp:AuthnRequest>
    • 未選取「啟用 HTTP 基本認證 (SSO 使用者自建物件)」連結。

      此設定會要求 Azure AD 透過 HTTP POST 要求傳送宣告。收到如此類的要求時,身分識別提供者通常會建立一個 HTML 表單,其中宣告是自動張貼至服務提供者宣告用戶服務 (ACS) 的隱藏表單元素。

  10. 在「一般」區域中,按一下「建立認證配置與模組」按鈕。
    認證配置和模組是以夥伴名稱建立。唯一的組態是將認證配置附加至需要 Azure AD 認證進行認證的 E-Business Suite 資源,您會在下一節進行驗證。
  11. 您可以依照下列步驟檢查建立的認證模組:
    1. 按一下主控台上方的「應用程式安全」頁籤。
    2. 在 Plug-in 下,選取「認證模組」,按一下「搜尋」,然後尋找您的聯合模組。
    3. 選取模組,然後按一下「步驟」頁籤。
    4. 請注意,FedSSOIdP 特性中的值為身分識別提供者夥伴

建立 E-Business Suite 資源與認證配置的關聯

最終組態步驟是將 E-Business Suite 資源與認證配置建立關聯。以管理員身分登入 Oracle Access Manager 主控台時,請執行下列步驟

  1. 在主控台頂端,按一下應用程式安全性
  2. 存取管理程式底下,選取應用程式網域,按一下搜尋,然後選取執行 E-Business Suite 命令檔時所建立的應用程式網域,該整合會註冊 E-Business Suite WebGate。
  3. 按一下認證原則頁籤,然後按一下受保護的資源原則
    變更先前建立的認證配置與新的同盟認證配置,以變更認證配置。這是 Oracle Access Manager 如何將受保護的資源連結至身分識別提供者
  4. 按一下套用以儲存變更。