您可以將 VMware Integrated OpenStack 與使用安全性關聯標記語言 (SAML) 2.0 通訊協定的任何第三方身分識別提供者解決方案進行整合。VMware Integrated OpenStack 中的 Keystone 將用作此組態的服務提供者。

重要:
  • VMware 不支援第三方身分識別提供者。請連絡您的身分識別提供者管理員,以取得此程序所需的資訊。
  • 請勿將 VMware Integrated OpenStack 同時連線到具有相同 AD 後端的 LDAP 驗證和聯盟。

如果您想要透過使用 SAML 2.0 將 VMware Integrated OpenStackVMware Identity Manager 整合,請參閱設定 VMware Identity Manager 聯盟

必要條件

  • 確定身分識別提供者中繼資料檔案的位置以及檔案中的 entityID 屬性。
  • 確保 VMware Integrated OpenStack 部署可以存取身分識別提供者的 FQDN。
  • 對於 SAML2 屬性對應,Keystone 使用 Shibboleth 作為 SSO 元件。Shibboleth 會將 IdP 使用者屬性對應到 Keystone 所使用的本機屬性。若要瞭解使用者屬性,請連絡 IdP 管理員。
  • 對於 SAML2 規則對應,Keystone 需要將遠端使用者對應到本機網域、專案和群組的規則。如需詳細資訊,請參閱 OpenStack 說明文件中的〈對應組合〉,網址為:https://docs.openstack.org/keystone/train/admin/federation/mapping_combinations.html
  • 在身分識別提供者端,必須正確設定服務提供者。可以使用以下 URL 存取服務提供者中繼資料:https://<vio_public_endpoint>:5000/<your_idp_name>/Shibboleth.sso/Metadata

程序

  1. admin 使用者身分登入 Integrated OpenStack Manager Web 介面。
  2. OpenStack 部署中,按一下部署名稱,然後開啟管理索引標籤。
  3. Keystone 聯盟索引標籤上,按一下新增
  4. 聯盟類型下拉式功能表中,選取 Generic SAML2
  5. 輸入必要的參數。
    選項 說明
    名稱

    輸入身分識別提供者的名稱。VMware Integrated OpenStack 將此名稱用於建立 OpenStack 身分識別提供者。

    說明

    輸入身分識別提供者的說明。

    屬性對應

    以 JSON 格式輸入其他 SAML 屬性,或上傳包含所需屬性的 JSON 檔案。VMware Integrated OpenStack 將 JSON 資料用於設定 Shibboleth attribute-map.xml 檔案。

    Generic SAML2 不安全

    取消選取核取方塊,以便您可以驗證身分識別提供者的憑證。

    Generic SAML2 實體識別碼

    輸入您的身分識別提供者的 entityID 屬性。您可以在聯盟中繼資料檔案中找到此值。VMware Integrated OpenStack 將此值用於建立 OpenStack 身分識別提供者。

    SAML2 中繼資料 URL

    輸入身分識別提供者的聯盟中繼資料檔案的 URL。VIO Manager 可以存取此 URL 以下載中繼資料檔案。

    SAML2 對應

    以 JSON 格式輸入 SAML 對應,或上傳包含所需對應的 JSON 檔案。VMware Integrated OpenStack 將此值用於建立 OpenStack 對應,並將其設定為此身分識別提供者的聯盟通訊協定。

    屬性對應格式和範例:
    [
          {
            "name": "urn:oid:0.9.2342.19200300.100.1.1",
            "nameFormat": "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",
            "id": "username"
          },
          {
            "name": "urn:oid:0.9.2342.19200300.100.1.3",
            "nameFormat": "urn:oasis:names:tc:SAML:2.0:attrname-format:uri",
            "id": "email"
          }
        ]
    
    選項 說明

    name

    輸入屬性名稱。Keystone 至少需要一個可用作使用者唯一識別碼的屬性。例如,usernameemail 等。請連絡 IdP 管理員以確定屬性名稱,該名稱可能與 IdP 伺服器不同。

    nameFormat

    輸入屬性名稱格式。請連絡 IdP 管理員以確定格式值。此屬性為可選。
    id

    輸入此屬性的字串值。請勿在字串值中使用空格。例如,請勿使用「user name」,而是使用 "username"。此值可在對應規則中用作 remote:type

    SAML2 規則對應格式和範例:
    [
      {
        "local": [
          {
            "user": {
              "name": "{1}"
            },
            "group": {
              "name": "federated_users",
              "domain": {
                "name": "federated_domain"
              }
            }
          }
        ],
        "remote": [
          {
            "type": "username"
          },	
          {
            "type": "email"
          }
        ]
      }
    ]
    
    可以在 OpenStack 社群中的 對應組合下找到 Keystone 的規則對應定義。
    選項 說明

    local

    JSON 將定義 OpenStack 本機網域和專案。此屬性可用於從 IdP 對應的使用者。例如,在 SAML2 規則對應中,"name": "{1}" 與使用 "type": "email" 作為 Keystone 的登入名稱以及指定網域和專案的登入相同。

    remote

    此區段定義了對應遠端屬性的規則和條件。

  6. (選擇性) 選取進階設定核取方塊以設定網域、專案和群組參數。
    1. 一般進階設定下,輸入 federated_domain 作為 OpenStack 網域,輸入 federated_project 作為專案並輸入 federated_group 作為群組。
    2. OpenStack 網域、專案和群組名稱必須與規則對應 "local" JSON 中提供的資訊相符。
    3. VMware Integrated OpenStack 將為指定的聯盟使用者建立網域和專案。
      備註: 請勿輸入 federated 作為網域名稱,因為 Keystone 已使用此名稱。
  7. 按一下確定
    備註: 完成 SAML2 設定後,可以看到 Keystone 服務正在自動重新啟動。下載中繼資料之前,請執行 viocli get deployment 以確保部署狀態已變更為 正在執行
  8. 確保可以存取 https://<vio_public_endpoint>:5000/<your_idp_name>/Shibboleth.sso/Metadata,並設定 IdP 服務以信任 VMware Integrated OpenStack Keystone 作為服務提供者。

結果

VMware Integrated OpenStack 與您的身分識別提供者解決方案進行整合,且同盟使用者和群組將匯入到 OpenStack 中。存取 VMware Integrated OpenStack 儀表板時,您可以選取指定的身分識別提供者以同盟使用者身分登入。

備註: 使用身分識別聯盟時,您必須透過公用 OpenStack 端點存取 VMware Integrated OpenStack 儀表板。請勿使用私有 OpenStack 端點或控制器 IP 位址以同盟使用者身分登入。

範例: 將 VMware Integrated OpenStack 與 Active Directory 聯盟服務整合

下列程序會根據使用者主體名稱 (UPN) 在 VMware Integrated OpenStack 與 Active Directory 聯盟服務 (ADFS) 之間實作身分識別聯盟。ADFS 組態程序是供您參考的範例,實際的企業組態可能會有所不同。您必須變更相應的 VMware Integrated OpenStack SAML 組態。

在此範例中,VMware Integrated OpenStack 部署的公用虛擬 IP 位址是 192.0.2.160,ADFS 角色是位於 adfs.example.com 的 Windows Server 虛擬機器的一部分。VMware Integrated OpenStack 中的身分識別提供者名稱為 adfsvio

  1. 在 ADFS 中,為 VMware Integrated OpenStack 新增信賴方信任。
    1. ADFS 管理中,選取動作 > 新增信賴方信任...
    2. 按一下開始
    3. 選取手動輸入有關信賴方的資料,然後按下一步
    4. 輸入 OpenStack 做為顯示名稱,然後按下一步
    5. 選取 ADFS 設定檔,然後按下一步
    6. 下一步
    7. 選取啟用對 SAML 2.0 WebSSO 通訊協定的支援
    8. 輸入 https://192.0.2.160:5000/adfsvio/Shibboleth.sso/SAML2 做為信賴方 URL,然後按下一步
    9. 輸入 https://192.0.2.160:5000/adfsvio 作為信賴方信任識別碼依序按一下新增下一步
    10. 選取我不想設定多重要素驗證,然後按下一步
    11. 選取允許所有使用者存取此信賴方,然後按下一步
    12. 下一步,選取編輯宣告規則,然後按一下關閉
    13. 按一下新增規則...
    14. 選取傳遞或篩選傳入宣告,然後按下一步
    15. 輸入 UPN 傳遞做為規則名稱,然後選取 UPN 做為傳入宣告類型。
    16. 選取傳遞所有宣告值,然後按一下完成
  2. admin 使用者身分登入 Integrated OpenStack Manager Web 介面。
  3. OpenStack 部署中,按一下部署名稱,然後開啟管理索引標籤。
  4. 身分識別聯盟索引標籤上,按一下新增
  5. 聯盟類型下拉式功能表中,選取 Generic SAML2
  6. 輸入下列組態:
    選項 說明
    名稱 adfsvio
    說明 ADFS 身分識別提供者
    屬性對應
    [
        {
            "name": "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn",
            "id": "upn"
        }
    ]
    Generic SAML2 實體識別碼 http://adfs.example.com/adfs/services/trust
    SAML2 中繼資料 URL https://adfs.example.com/federationmetadata/2007-06/federationmetadata.xml
    SAML2 對應
    [
        {
            "local": [
                {
                    "user": {
                        "name": "{0}"
                    },
                    "group": {
                        "domain": {
                            "name": "adfs-users"
                        },
                        "name": "Federated Users"
                    }
                }
            ],
            "remote": [
                {
                    "type": "upn"
                }
            ]
        }
    ]
  7. 選取進階設定核取方塊。
  8. 選取一般進階設定,然後輸入下列組態。
    選項 說明
    網域 adfs-users
    專案

    將文字方塊保留空白。

    群組 Federated Users

完成組態驗證和更新後,開啟 VMware Integrated OpenStack 儀表板。現在,您可以選取 ADFS 身分識別提供者並以同盟使用者身分登入。

下一步

若要刪除已設定的身分識別提供者,請選取 Integrated OpenStack Manager Web 介面,然後按一下刪除。接著,登入 VMware Integrated OpenStack 儀表板,選取身分識別 > 聯盟 > 身分識別提供者,選取所需的提供者,然後按一下解除登錄身分識別提供者