Ping Identity - Amazon Redshift

Ping Identity

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

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

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

将 Ping 身份和您的 AWS 账户设置为相互信任
  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 集群的 AWS 区域。

    • 对于数据库,请输入 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