Okta - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

Okta

您可以将 Okta 作为身份提供者 (IdP) 以访问 Amazon Redshift 集群。本教程将向您展示如何将 Okta 用作身份提供者(IdP)来访问 Amazon Redshift 集群。

第 1 步:设置 Okta 和您的 Amazon 账户相互信任

以下过程介绍如何建立信任关系。

将 Okta 和您的 Amazon 账户设置为相互信任
  1. 创建或使用现有的 Amazon Redshift 集群,以使 Okta 用户连接到该集群。要配置连接,需要此集群的某些属性,例如集群标识符。有关更多信息,请参阅创建集群

  2. 在 Okta 门户上添加 Amazon Redshift 以作为新应用程序。有关详细步骤,请参阅 Okta 文档

    • 选择添加应用程序

    • 添加应用程序下面,选择创建新的应用程序

    • 创建新添加应用程序集成页面上,为平台 选择 Web

    • 对于登录方法,请选择 SAML v2.0

    • 常规设置页面上,为应用程序名称 输入 your-redshift-saml-sso-name。这是您的应用程序的名称。

    • SAML 设置页面上,为单点登录 URL 输入 your-redshift-local-host-url。这是 SAML 断言重定向到的本地主机和端口,例如 http://localhost:7890/redshift/

  3. 单点登录 URL 作为收件人 URL目标 URL

  4. 对于签名,请选择签名断言

  5. 对于受众 URI (SP 实体 ID),为声明输入 urn:amazon:webservices,如下表中所示。

  6. 高级设置部分中,为 SAML 发布者 ID输入 your-Identity-Provider-Issuer-ID;您可以在查看设置说明部分中找到该 ID。

  7. 属性语句部分中,创建声明,如下表中所示。

    声明名称

    https://aws.amazon.com/SAML/Attributes/Role

    arn:aws:iam::123456789012:role/Okta,arn:aws:iam::123456789012:saml-provider/Okta

    https://aws.amazon.com/SAML/Attributes/RoleSessionName

    user.email

    https://redshift.amazon.com/SAML/Attributes/AutoCreate

    "true"

    https://redshift.amazon.com/SAML/Attributes/DbUser

    user.email

  8. 应用程序嵌入式链接部分中,找到可用作浏览器 SAML 插件登录 URL 的 URL。

  9. 在 IAM 控制台上创建 IAM SAML 身份提供者。您提供的元数据文档是您在设置 Okta 时保存的联合元数据 XML 文件。有关详细步骤,请参阅 IAM 用户指南中的创建和管理 IAM 身份提供者(控制台)

  10. 在 IAM 控制台上为 SAML 2.0 联合身份创建 IAM 角色。有关详细步骤,请参阅 IAM 用户指南中的创建用于 SAML 的角色

  11. 创建一个 IAM 策略,您可以将其附加到您在 IAM 控制台上为 SAML 2.0 联合身份验证创建的 IAM 角色。有关详细步骤,请参阅《IAM 用户指南》中的创建 IAM 策略(控制台)。有关 Azure AD 示例,请参阅设置 JDBC 或 ODBC 单点登录身份验证

第 2 步:设置 JDBC 或 ODBC,以便向 Okta 进行身份验证

JDBC
设置 JDBC 以在 Okta 中进行身份验证
  • 将数据库客户端配置为通过 JDBC 并使用 Okta 单点登录连接到集群。

    您可以使用任何采用 JDBC 驱动程序的客户端通过 Okta 单点登录进行连接,也可以使用像 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。在选择连接配置文件页面中,添加一个配置文件组,例如,Okta

    2. 对于连接配置文件,请输入 your-connection-profile-name,例如,Okta

    3. 选择管理驱动程序,然后选择 Amazon Redshift。选择旁边的打开文件夹图标,然后选择适当的 JDBC .jar 文件。

    4. 选择连接配置文件页面上,向连接配置文件添加信息,如下所示:

      • 对于用户,请输入您的 Okta 用户名。这是您用于单点登录的 Okta 账户的用户名,该账户有权限访问您在尝试进行身份验证时使用的集群。

      • 对于密码,请输入您的 Okta 密码。

      • 对于驱动程序,请选择 Amazon Redshift (com.amazon.redshift.jdbc.Driver)

      • 对于 URL,请输入 jdbc:redshift:iam://your-cluster-identifier:your-cluster-region/your-database-name

    5. 选择扩展属性并执行以下操作之一:

      • 对于 login_url,请输入 your-okta-sso-login-url。该值指定 URL 将单点登录作为身份验证方法以登录到 Okta。

      • 对于 Okta 单点登录,请为 plugin_name 输入 com.amazon.redshift.plugin.OktaCredentialsProvider。此值指定驱动程序使用 Okta 单点登录作为身份验证方法。

      • 对于具有 MFA 的 Okta 单点登录,请为 plugin_name 输入 com.amazon.redshift.plugin.BrowserSamlCredentialsProvider。此值指定驱动程序将具有 MFA 的 Okta 单点登录作为身份验证方法。

ODBC
设置 ODBC 以在 Okta 中进行身份验证
  • 将数据库客户端配置为通过 ODBC 并使用 Okta 单点登录连接到集群。

    Amazon Redshift 提供了适用于 Linux、Windows 和 macOS 操作系统的 ODBC 驱动程序。在安装 ODBC 驱动程序之前,请确定您的 SQL 客户端工具是 32 位还是 64 位。安装符合 SQL 客户端工具要求的 ODBC 驱动程序。

    在 Windows 上的 Amazon Redshift ODBC 驱动程序 DSN 安装页的连接设置下,输入以下信息:

    • 对于数据源名称,输入 your-DSN。这将指定用作 ODBC 配置文件名称的数据源名称。

    • 对于身份验证类型,请执行以下操作之一:

      • 对于 Okta 单点登录配置,请选择 Identity Provider: Okta。这是 ODBC 驱动程序在通过 Okta 单点登录进行身份验证时使用的身份验证方法。

      • 对于具有 MFA 的 Okta 单点登录配置,请选择 Identity Provider: Browser SAML。这是 ODBC 驱动程序在通过具有 MFA 的 Okta 单点登录进行身份验证时使用的身份验证方法。

    • 对于集群 ID,请输入 your-cluster-identifier

    • 对于区域,请输入 your-cluster-region

    • 对于数据库,请输入 your-database-name

    • 对于用户,请输入 your-okta-username。这是您用于单点登录的 Okta 账户的用户名,该账户有权访问您在尝试进行身份验证时使用的集群。请仅将其用于身份验证类型身份提供者: Okta 的情况。

    • 对于密码,请输入 your-okta-password。请仅将其用于 Auth type (身份验证类型)Identity Provider: Okta (身份提供者: Okta) 的情况。

    在 macOS 和 Linux 上,按如下方式编辑 odbc.ini 文件:

    注意

    所有条目不区分大小写。

    • 对于 clusterid,请输入 your-cluster-identifier。这是已创建的 Amazon Redshift 集群的名称。

    • 对于区域,请输入 your-cluster-region。这是已创建的 Amazon Redshift 集群的 Amazon 区域。

    • 对于数据库,请输入 your-database-name。这是您尝试在 Amazon Redshift 集群上访问的数据库的名称。

    • 对于区域设置,请输入 en-us。这是显示错误消息的语言。

    • 对于 iam,请输入 1。此值指定要使用 IAM 凭证进行身份验证的驱动程序。

    • 对于 plugin_name,请执行以下操作之一:

      • 对于具有 MFA 的 Okta 单点登录配置,请输入 BrowserSAML。这是 ODBC 驱动程序在通过具有 MFA 的 Okta 单点登录进行身份验证时使用的身份验证方法。

      • 对于 Okta 单点登录配置,请输入 Okta。这是 ODBC 驱动程序在通过 Okta 单点登录进行身份验证时使用的身份验证方法。

    • 对于 uid,请输入 your-okta-username。这是您用于单点登录的 Okta 账户的用户名,该账户有权访问您在尝试进行身份验证时使用的集群。请仅将其用于 plugin_nameOkta 的情况。

    • 对于密码,请输入 your-okta-password。请仅将其用于 plugin_nameOkta 的情况。

    • 对于 login_url,请输入 your-login-url。这是返回 SAML 响应的启动单点登录 URL。这仅适用于浏览器 SAML 插件。

    • 对于 idp_response_timeout,请输入 the-number-of-seconds。这是等待 PingOne 响应的指定时间段(以秒为单位)。这仅适用于浏览器 SAML 插件。

    • 对于侦听端口,请输入 your-listen-port。这是本地服务器正在侦听的端口。默认值为 7890。这仅适用于浏览器 SAML 插件。

    在 macOS 和 Linux 上,还要编辑配置文件设置以添加以下导出。

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