AD FS - Amazon Redshift

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

AD FS

本教學課程說明如何使用 AD FS 作為身分提供者 IdP ) 來存取 Amazon Redshift 叢集。

步驟 1:設定 AD FS 和您的 AWS 帳戶以彼此信任

下列程序說明如何設定信任關係。

  1. 建立或使用現有的 Amazon Redshift 叢集,以供 AD FS 使用者連線。若要設定連線,則需要此叢集的特定屬性,例如叢集識別碼。如需詳細資訊,請參閱建立叢集

  2. 設定 AD FS 以控制 Microsoft 管理主控台上的 Amazon Redshift 存取:

    1. 選擇 ADFS 2.0,然後選擇新增 Relying Party Trust。Add Relying Party Trust Wizard (新增信賴方信任精靈) 頁面上,選擇 Start (開始)

    2. Select Data Source (選取資料來源) 頁面上,選擇 Import data about the relying party published online or on a local network (匯入關於在線上或本機網路上發佈信賴方的資料)

    3. 對於聯合中繼資料地址 (主機名稱或 URL),輸入 https://signin.aws.amazon.com/saml-metadata.xml。中繼資料XML檔案是描述 AWS 為依賴方的標準SAML中繼資料文件。

    4. Specify Display Name (指定顯示名稱) 頁面上,輸入 Display name (顯示名稱) 的值。

    5. Choose Issuance Authorization Rules (選擇發行授權規則) 頁面上,選擇允許或拒絕所有使用者存取此信賴方的發行授權規則。

    6. Ready to Add Trust (準備新增信任) 頁面上檢閱您的設定。

    7. Finish (完成) 頁面上,選擇 Open the Edit Claim Rules dialog for this relying party trust when the wizard closes (當精靈關閉時,開啟此信賴方信任的「編輯宣告規則」對話方塊)

    8. 在內容 (按一下滑鼠右鍵) 功能表上,選擇 Relying Party Trusts (依賴方信任)

    9. 針對您的信賴方,開啟內容 (按一下滑鼠右鍵) 功能表,然後選擇 Edit Claim Rules (編輯宣告規則)。在 Edit Claim Rules (編輯宣告規則) 頁面上,選擇 Add Rule (新增規則)

    10. 針對宣告規則範本 ,選擇轉換傳入宣告 ,然後在編輯規則 - NameId 頁面上執行下列動作:

      • ForClaim 規則名稱 ,請輸入 NameId

      • 針對 Incoming claim name (傳入宣告名稱),選擇 Windows Account Name (Windows 帳戶名稱)

      • 針對 Outgoing claim name (傳出宣告名稱),選擇 Name ID (名稱 ID)

      • 針對 Outgoing name ID format (傳出名稱 ID 格式),選擇 Persistent Identifier (持久性標識符)

      • 選擇 Pass through all claim values (傳遞所有宣告值)

    11. Edit Claim Rules (編輯宣告規則) 頁面上,選擇 Add Rule (新增規則)。在選取規則範本頁面上,針對宣告規則範本 ,選擇將LDAP屬性作為宣告傳送。

    12. Configure Rule (設定規則) 頁面上,執行下列作業:

      • 針對 Claim rule name (宣告規則名稱),輸入 RoleSessionName

      • 針對 Attribute store (屬性存放區),選擇 Active Directory

      • 對於LDAP屬性 ,選擇電子郵件地址

      • 針對 傳出宣告類型,選擇 https://aws.amazon.com/SAML/Attributes/RoleSessionName

    13. Edit Claim Rules (編輯宣告規則) 頁面上,選擇 Add Rule (新增規則)。在 Select Rule Template (選取規則範本) 頁面上,針對 Claim rule template (宣告規則範本),選擇 Send Claims Using a Custom Rule (使用自訂規則傳送宣告)

    14. Edit Rule – Get AD Groups (編輯規則 – 取得 AD 群組) 頁面上,針對 Claim rule name (宣告規則名稱),輸入 Get AD Groups (取得 AD 群組)

    15. 針對 Custom rule (自訂規則),輸入下列內容。

      c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname", Issuer == "AD AUTHORITY"] => add(store = "Active Directory", types = ("http://temp/variable"), query = ";tokenGroups;{0}", param = c.Value);
    16. Edit Claim Rules (編輯宣告規則) 頁面上,選擇 Add Rule (新增規則)。在 Select Rule Template (選取規則範本) 頁面上,針對 Claim rule template (宣告規則範本),選擇 Send Claims Using a Custom Rule (使用自訂規則傳送宣告)

    17. Edit Rule – Roles (編輯規則 – 角色) 頁面上,針對 Claim rule name (宣告規則名稱),輸入 Roles (角色)

    18. 針對 Custom rule (自訂規則),輸入下列內容。

      c:[Type == "http://temp/variable", Value =~ "(?i)^AWS-"] => issue(Type = "https://aws.amazon.com/SAML/Attributes/Role", Value = RegExReplace(c.Value, "AWS-", "arn:aws:iam::123456789012:saml-provider/ADFS,arn:aws:iam::123456789012:role/ADFS-"));

      請注意要擔任ARNs的SAML提供者和角色的 。在此範例中, arn:aws:iam:123456789012:saml-provider/ADFS 是 SAML 提供者ARN的 , arn:aws:iam:123456789012:role/ADFS-是 角色ARN的 。

  3. 請確定您已下載 federationmetadata.xml 檔案。檢查文件內容沒有無效的字元。這是您在設定與 AWS的信任關係時,使用的中繼資料檔案。

  4. 在IAM主控台上建立IAMSAML身分提供者。您提供的中繼資料文件是您在設定 Azure Enterprise Application 時儲存的聯合中繼資料XML檔案。如需詳細步驟,請參閱 IAM 使用者指南 中的建立和管理IAM身分提供者 (主控台)

  5. 在IAM主控台上建立 SAML 2.0 聯合IAM的角色。如需詳細步驟,請參閱 IAM 使用者指南 中的為 建立角色SAML

  6. 建立IAM政策,您可以在IAM主控台上連接到您為 SAML 2.0 聯合建立IAM的角色。如需詳細步驟,請參閱 IAM 使用者指南 中的建立IAM政策 (主控台)。如需 Azure AD 範例,請參閱設定 JDBC 或ODBC單一登入身分驗證

步驟 2:設定 JDBC或 ODBC 以對 AD FS 進行身分驗證

JDBC

下列程序說明如何設定與 AD FS JDBC的關係。

  • 設定資料庫用戶端,透過JDBC使用 AD FS 單一登入連線至叢集。

    您可以使用任何使用JDBC驅動程式使用 AD FS 單一登入連線的用戶端,或使用 Java 等語言使用指令碼連線。如需安裝和組態資訊,請參閱 為 Amazon Redshift 設定JDBC驅動程式 2.1 版的連線

    例如,您可以使用 SQLWorkbench/J 作為用戶端。當您設定 SQLWorkbench/J 時,資料庫URL的 會使用下列格式。

    jdbc:redshift:iam://cluster-identifier:us-west-1/dev

    如果您使用 SQLWorkbench/J 作為用戶端,請執行下列步驟:

    1. 啟動 SQL Workbench/J。 在選取連線設定檔頁面中,新增設定檔群組 ,例如 ADFS

    2. 針對 Connection Profile (連線設定檔),輸入您的連線設定檔名稱,例如 ADFS

    3. 選擇 Manage Drivers (管理驅動程式),然後選擇 Amazon Redshift。選擇 Library 旁的開啟資料夾圖示,然後選擇適當的 JDBC .jar 檔案。

    4. Select Connection Profile (選取連線設定檔) 頁面上,將資訊新增至連線設定檔,如下所示:

      • 針對 User (使用者),輸入您的 AD FS 使用者名稱。這是您用於單一登入之 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。

      • 針對 Password (密碼),輸入您的 AD FS 密碼。

      • 針對 Drivers (驅動程式),選擇 Amazon Redshift (com.amazon.redshift.jdbc.Driver)

      • 對於 URL,輸入 jdbc:redshift:iam://your-cluster-identifier:your-cluster-region/your-database-name

    5. 選擇延伸屬性。針對 plugin_name,輸入 com.amazon.redshift.plugin.AdfsCredentialsProvider。此值會指定驅動程式使用 AD FS 單一登入做為身分驗證方法。

ODBC
設定 ODBC AD FS 身分驗證
  • 設定資料庫用戶端,透過ODBC使用 AD FS 單一登入連線至叢集。

    Amazon Redshift 提供 Linux、Windows 和 macOS 作業系統的ODBC驅動程式。安裝ODBC驅動程式之前,請先判斷您的SQL用戶端工具是 32 位元還是 64 位元。安裝符合您SQL用戶端工具需求的ODBC驅動程式。

    在 Windows 的 Amazon Redshift ODBC驅動程式DSN設定 頁面的連線設定 下,輸入下列資訊:

    • 針對 Data source name (資料來源名稱),輸入 your-DSN。這會指定用作ODBC設定檔名稱的資料來源名稱。

    • 對於身分驗證類型 ,選擇身分提供者:SAML。這是ODBC驅動程式用來使用 AD FS 單一登入進行身分驗證的身分驗證方法。

    • 針對 Cluster ID (叢集 ID),輸入 your-cluster-identifier

    • 針對 Region (區域),輸入 your-cluster-region

    • 針對 Database (資料庫),輸入 your-database-name

    • 針對 User (使用者),輸入 your-adfs-username。這是您用於單一登入之 AD FS 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。僅用於身分提供者的身分驗證類型:。 SAML

    • 針對 Password (密碼),輸入 your-adfs-password。僅用於身分提供者的身分驗證類型:。 SAML

    在 macOS 和 Linux 上,編輯 odbc.ini 檔案,如下所示:

    注意

    所有項目都不區分大小寫。

    • 針對 clusterid,輸入 your-cluster-identifier。這是所建立 Amazon Redshift 叢集的名稱。

    • 針對 region (區域),輸入 your-cluster-region。這是已建立 Amazon Redshift 叢集 AWS 的區域。

    • 針對 database (資料庫),輸入 your-database-name。這是您嘗試在 Amazon Redshift 叢集上存取的資料庫名稱。

    • 針對 locale,輸入 en-us。這是錯誤訊息的顯示語言。

    • 針對 iam,輸入 1。此值指定給驅動程式,以使用IAM憑證進行身分驗證。

    • 針對 plugin_name,執行下列其中一項作業:

      • 對於具有MFA組態的 AD FS 單一登入,請輸入 BrowserSAML。這是ODBC驅動程式用來向 AD FS 進行身分驗證的身分驗證方法。

      • 若為 AD FS 單一登入組態,請輸入 ADFS。這是ODBC驅動程式用來使用 Azure AD 單一登入進行身分驗證的身分驗證方法。

    • 針對 uid,輸入 your-adfs-username。這是您用於單一登入之 Microsoft Azure 帳戶的使用者名稱,該帳戶具有您嘗試驗證之叢集的許可。僅將此用於 plugin_nameADFS

    • 針對 pwd,輸入 your-adfs-password。僅將此項目用於 plugin_nameADFS

    在 macOS 和 Linux 上,同時編輯設定檔設定以新增下列匯出:

    export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
    export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini