Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅
中国的 Amazon Web Services 服务入门
(PDF)。
Okta
您可以将 Okta 作为身份提供者 (IdP) 以访问 Amazon Redshift 集群。本教程将向您展示如何将 Okta 用作身份提供者(IdP)来访问 Amazon Redshift 集群。
第 1 步:设置 Okta 和您的 Amazon 账户相互信任
以下过程介绍如何建立信任关系。
将 Okta 和您的 Amazon 账户设置为相互信任
-
创建或使用现有的 Amazon Redshift 集群,以使 Okta 用户连接到该集群。要配置连接,需要此集群的某些属性,例如集群标识符。有关更多信息,请参阅创建集群。
-
在 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/
。
-
将单点登录 URL 作为收件人 URL 和目标 URL。
-
对于签名,请选择签名断言。
-
对于受众 URI (SP 实体 ID),为声明输入 urn:amazon:webservices
,如下表中所示。
-
在高级设置部分中,为 SAML 发布者 ID输入 your-Identity-Provider-Issuer-ID
;您可以在查看设置说明部分中找到该 ID。
-
在属性语句部分中,创建声明,如下表中所示。
声明名称 |
值 |
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
|
-
在应用程序嵌入式链接部分中,找到可用作浏览器 SAML 插件登录 URL 的 URL。
-
在 IAM 控制台上创建 IAM SAML 身份提供者。您提供的元数据文档是您在设置 Okta 时保存的联合元数据 XML 文件。有关详细步骤,请参阅 IAM 用户指南中的创建和管理 IAM 身份提供者(控制台)。
-
在 IAM 控制台上为 SAML 2.0 联合身份创建 IAM 角色。有关详细步骤,请参阅 IAM 用户指南中的创建用于 SAML 的角色。
-
创建一个 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 作为客户端,请执行以下步骤:
-
启动 SQL Workbench/J。在选择连接配置文件页面中,添加一个配置文件组,例如,Okta
。
-
对于连接配置文件,请输入 your-connection-profile-name
,例如,Okta
。
-
选择管理驱动程序,然后选择 Amazon Redshift。选择库旁边的打开文件夹图标,然后选择适当的 JDBC .jar 文件。
-
在选择连接配置文件页面上,向连接配置文件添加信息,如下所示:
-
对于用户,请输入您的 Okta 用户名。这是您用于单点登录的 Okta 账户的用户名,该账户有权限访问您在尝试进行身份验证时使用的集群。
-
对于密码,请输入您的 Okta 密码。
-
对于驱动程序,请选择 Amazon Redshift (com.amazon.redshift.jdbc.Driver)。
-
对于 URL,请输入 jdbc:redshift:iam://your-cluster-identifier
:your-cluster-region
/your-database-name
。
-
选择扩展属性并执行以下操作之一:
-
对于 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 配置文件名称的数据源名称。
-
对于身份验证类型,请执行以下操作之一:
-
对于集群 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,请执行以下操作之一:
-
对于 uid,请输入 your-okta-username
。这是您用于单点登录的 Okta 账户的用户名,该账户有权访问您在尝试进行身份验证时使用的集群。请仅将其用于 plugin_name 为 Okta 的情况。
-
对于密码,请输入 your-okta-password
。请仅将其用于 plugin_name 为 Okta 的情况。
-
对于 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