如何使用 Amazon Cognito 使用者集區將 OneLogin 設定為 SAML 身分提供者 (IdP)?

3 分的閱讀內容
0

我想使用 Amazon Cognito 使用者集區,將 OneLogin 設定為安全性聲明標記語言 2.0 (SAML 2.0) 身分提供者 (IdP)。

簡短說明

Amazon Cognito 使用者集區允許透過第三方 (聯合) 登入。這包括透過 SAML IdP (例如 OneLogin) 登入。如需詳細資訊,請參閱透過第三方新增使用者集區登入將 SAML 身分提供者新增至使用者集區。若要將 OneLogin 設定為 SAML IdP,您需要一個 Amazon Cognito 使用者集區,以及一個帶有應用程式的 OneLogin 帳戶。

解決方法

使用應用程式用戶端和網域名稱建立 Amazon Cognito 使用者集區

如需詳細資訊,請參閱下列內容:

注意:建立使用者集區時,依預設會選取標準屬性電子郵件。如需詳細資訊,請參閱使用者集區屬性

建立 OneLogin 帳戶

  1. 開啟 OneLogin 網站,然後選擇 Free trial (免費試用)。
  2. 在帳戶建立頁面的 Your OneLogin Domain (您的 OneLogin 網域) 下,記下 OneLogin 提供的網域。

建立 OneLogin 應用程式

  1. 在 OneLogin 入口網站頁面 (https://your-new-domain.onelogin.com/portal/) 上,選擇 Administration (管理)。
  2. 在「管理」頁面上,將滑鼠游標移至 Apps (應用程式) 上,然後選擇 Add apps (新增應用程式)。
  3. Find Applications (尋找應用程式) 下的搜尋列中,輸入 saml,然後選擇 SAML Test Connector (IdP) (SAML 測試連接器 (IdP))。Add SAML Test Connector (IdP) (新增 SAML 測試連接器 (IdP)) 頁面。
  4. (選用) 在 Add SAML Test Connector (IdP) (新增 SAML 測試連接器 (IdP)) 頁面上,完成下列任意步驟:
    對於 Display Name (顯示名稱),輸入名稱和說明。例如,Cognito 設定 (IdP)
    對於 Rectangular Icon (矩形圖示) 和 Square Icon (方形圖示),請按照頁面上的規格上傳縮圖圖示。
    對於 Description (描述),請輸入簡短的摘要說明。例如,For Amazon Cognito user pool (對於 Amazon Cognito 使用者集區)。
  5. 選擇 Save (儲存)。

編輯您的 OneLogin 應用程式組態

  1. 在 OneLogin 入口網站頁面 (https://your-new-domain.onelogin.com/portal/) 上,選擇 Configuration (組態)。
  2. Configuration (組態) 頁面上,完成以下步驟:
    對於 RelayState,請輸入有效的網址,例如 https://www.example.com
    對於 Audience (對象),請輸入 urn:amazon:cognito:sp:yourUserPoolId
    對於 Recipient (收件者),請輸入 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse
    對於 ACS (Consumer) URL Validator (ACS (取用者) 網址驗證器),請輸入 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse
    對於** ACS (Consumer) URL** (ACS (取用者) 網址),請輸入 https://yourDomainPrefix.auth.region.amazoncognito.com/saml2/idpresponse
    對於 Single Logout URL (單點登出網址),請將欄位留空。
    **注意:**對於 Audience (對象),請將 yourUserPoolId 替換為您的 Amazon Cognito 使用者集區 ID。在 Amazon Cognito console (Amazon Cognito 主控台) 中,請在使用者集區管理頁面的 General settings (一般設定) 索引標籤上找到該 ID。
    對於 ACS (Consumer) URL Validator (ACS (取用者) 網址驗證器) 和 ACS (Consumer) URL (ACS (取用者) 網址),請將 yourDomainPrefixregion 替換為您使用者集區的值。在 Amazon Cognito 主控台中,在使用者集區管理頁面的 Domain name (網域名稱) 索引標籤上找到這些值。

編輯 OneLogin 應用程式的參數

  1. 在 OneLogin 入口網站頁面 (https://your-new-domain.onelogin.com/portal/) 上,選擇 Parameters (參數)。
    **注意:**Parameters (參數) 頁面預設會列出參數 NameID (fka Email)
  2. 若要建立新的自訂參數,請選擇 Add parameter (新增參數)。
  3. New Field (新欄位) 對話方塊中,對於 Field name (欄位名稱),請輸入 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier
  4. 對於 Flags (標幟),請選取 Include in SAML assertion (包含在 SAML 判斷提示中) 核取方塊。
  5. 選擇 Save (儲存)。
  6. 對於 Value (值),從清單中選擇 Email (電子郵件)。
  7. 選擇 Save (儲存)。

複製 OneLogin 應用程式的 IdP 中繼資料

  1. 在 OneLogin 入口網站頁面 (https://your-new-domain.onelogin.com/portal/) 上,選擇 SSO
  2. Issuer URL (發行者網址) 下,複製網址。
  3. 選擇 Save (儲存)。

在 Amazon Cognito 中將 OneLogin 設定為 SAML IdP

若要在 Amazon Cognito 中將 OneLogin 設定為 SAML IdP,請參閱為使用者集區建立和管理 SAML 身分提供者 (AWS 管理主控台)。請依照在使用者集區中設定 SAML 2.0 身分提供者下的說明進行操作。建立 SAML IdP 時,對於 Metadata documen (中繼資料文件),請輸入您複製的 Issuer URL (發行者網址)。

將電子郵件地址從 IdP 屬性對應到使用者集區屬性

若要將電子郵件地址從 IdP 屬性對應到使用者集區屬性,請參閱為使用者集區指定身分提供者屬性對應。依照指定 SAML 提供者屬性對應下的說明進行操作。在 Attribute mappin (屬性對應) 下新增 SAML 屬性時,對於 SAML Attribute (SAML 屬性),請輸入 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier。對於 User pool attribute (使用者集區屬性),從清單中選擇 Email (電子郵件)。

在 Amazon Cognito 中變更應用程式用戶端設定

注意:這是用於測試目的的設定範例。對於生產設定,最佳做法是使用授權碼授與 OAuth 流程作為應用程式用戶端設定。當您使用流程時,您會在驗證後收到一個授權碼,並將其包含在您的重新導向網址中。您必須向權杖端點發出請求,以將授權碼交換為 JSON Web 權杖 (JWT)。

  1. Amazon Cognito console (Amazon Cognito 主控台) 中的 App integration (應用程式整合) 下,選擇 App client settings (應用程式用戶端設定)。然後,完成下列步驟:
    Enabled identity providers (啟用身分提供者) 下,選取 Select all (全選) 核取方塊。
    對於 Callback URL(s) (回呼網址),請輸入使用者登入後要重新導向的網址。若要進行測試,請輸入任何有效的網址,例如 https://www.example.com
    對於 Sign out URL(s) (登出網址),請輸入使用者登出後要重新導向的網址。若要進行測試,請輸入任何有效的網址,例如 https://www.example.com
    Allowed OAuth Flows (允許的 OAuth 流程) 項下,請至少選取 Implicit grant (隱含授與) 核取方塊。
    允許的 OAuth 範圍項下,至少選取電子郵件openid 核取方塊。
  2. 選擇 Save changes (儲存變更)。如需詳細資訊,請參閱更新使用者集區應用程式用戶端 (AWS CLI 和 AWS API)

測試登入端點

  1. 在您的瀏覽器中,輸入 https://yourDomainPrefix.auth.region.amazoncognito.com/login?response_type=token&client_id=yourClientId&redirect_uri=redirectUrl
    **注意:**將 yourDomainPrefixregion 替換為您使用者集區的值。在 Amazon Cognito console (Amazon Cognito 主控台) 中,在使用者集區管理頁面的 Domain name (網域名稱) 索引標籤上找到它們。將 yourClientId 替換為您的應用程式用戶端 ID,將 redirectUrl 替換為您的應用程式用戶端回呼網址。在 Amazon Cognito 主控台中,在使用者集區管理頁面的 App client settings (應用程式用戶端設定) 索引標籤上找到它們。如需詳細資訊,請參閱登入端點
  2. 選擇 OneLogin
    **注意:**如果您重新導向至應用程式用戶端的回呼網址,則表示您已在瀏覽器中登入 OneLogin 帳戶。一切都設定正確。
  3. 在 OneLogin 頁面上,對於 Username,輸入您的 OneLogin 帳戶使用者名稱。
  4. 選擇 Continue (繼續)。
  5. 對於 Password (密碼),請輸入您的 OneLogin 帳戶密碼。
  6. 選擇 Continue (繼續)。

相關資訊

將第三方 SAML 身分提供者與 Amazon Cognito 使用者集區整合

SAML 使用者集區 IdP 驗證流程