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

Ping Identity

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

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

以下过程介绍如何使用 PingOne 门户建立信任关系。

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

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

    1. 转到我的应用程序

    2. 添加应用程序下面,选择新建 SAML 应用程序

    3. 对于应用程序名称,请输入 Amazon Redshift

    4. 对于协议版本,请选择 SAML v2.0

    5. 对于类别,请选择 your-application-category

    6. 对于断言消费者服务(ACS),请键入 your-redshift-local-host-url。这是 SAML 断言重定向到的本地主机和端口。

    7. 对于实体 ID,请输入 urn:amazon:webservices

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

    9. SSO 属性映射部分中,创建声明,如下表中所示。

      应用程序属性 文本值的身份关联属性

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

      arn:aws:iam::123456789012:role/Ping,arn:aws:iam::123456789012:saml-provider/PingProvider

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

      email

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

      "true"

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

      email

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

      “DbGroups”属性中的组包含 @directory 前缀。若要删除此项,请在身份关联中,输入 memberOf。在函数中,选择 ExtractByRegularExpression。在表达式中,输入 (.*)[\@](?:.*)

  3. 对于组访问权限,请设置以下组访问权限(如果需要):

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

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

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

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

  4. 查看设置,并在必要时进行更改。

  5. 启动单点登录(SSO) URL 作为浏览器 SAML 插件的登录 URL。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      • 对于 login_url,请输入 your-ping-sso-login-url。该值指定 URL 将单点登录用作登录时的身份验证方法。

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

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

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

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

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

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

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

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

      • 对于具有单点登录的 Ping Identity 配置,请选择身份提供者:浏览器 SAML。这是 ODBC 驱动程序在使用具有单点登录的 Ping Identity 进行身份验证时使用的身份验证方法。

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

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

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

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

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

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

    • 对于响应超时,请输入 the-number-of-seconds。这是 IdP 服务器发回响应时超时之前等待的秒数。最小秒数必须为 10。如果建立连接的用时长于此阈值,则连接将被中止。这仅适用于浏览器 SAML 插件。

    • 对于登录 URL,请输入 your-login-url。这仅适用于浏览器 SAML 插件。

    在 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,请执行以下操作之一:

      • 对于 Ping Identity 配置,请输入 BrowserSAML。这是 ODBC 驱动程序在使用 Ping Identity 进行身份验证时所采用的身份验证方法。

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

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

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

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

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

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

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

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