用于提供 IAM 凭证的选项
要为 JDBC 或 ODBC 连接提供 IAM 凭证,请选择以下选项之一。
-
Amazon 配置文件
作为以 JDBC 或 ODBC 设置形式提供凭证值的替代方案,您可在命名配置文件中放置这些值。有关更多信息,请参阅使用配置文件。
-
IAM 凭证
以 JDBC 或 ODBC 设置形式提供 AccessKeyID、SecretAccessKey 和 (可选) SessionToken 的值。SessionToken 仅对于具有临时凭证的 IAM 角色是必填的。有关更多信息,请参阅用于提供 IAM 凭证的 JDBC 和 ODBC 选项。
-
身份提供者联合
在使用身份提供者联合以允许身份提供者中的用户在 Amazon Redshift 中进行身份验证时,请指定凭证提供商插件的名称。有关更多信息,请参阅使用凭证提供商插件。
Amazon Redshift JDBC 和 ODBC 驱动程序包括以下基于 SAML 的联合身份验证凭证提供商的插件:
-
Microsoft Active Directory 联合身份验证服务 (AD FS)
-
PingOne
-
Okta
-
Microsoft Azure Active Directory (Azure AD)
您可以 JDBC 或 ODBC 设置格式提供或使用配置文件提供插件名称和相关值。有关更多信息,请参阅 JDBC 驱动程序版本 2.1 配置的选项 和 配置 ODBC 驱动程序选项:
-
有关更多信息,请参阅配置 JDBC 或 ODBC 连接以使用 IAM 凭证。
使用配置文件
您可提供 IAM 凭证选项和 GetClusterCredentials
选项作为 Amazon 配置文件中的命名配置文件的设置。要提供配置文件名称,请使用配置文件 JDBC 选项。该配置存储在名为 config
的文件或位于主目录下面的名为 credentials
的文件夹中的名为 .aws
的文件中。
对于 Amazon Redshift JDBC 或 ODBC 驱动程序附带的基于 SAML 的凭证提供商插件,您可以使用 使用凭证提供商插件 中前面所述的设置。如果未使用 plugin_name
,则忽略其他选项。
下例所示为一个有两个配置文件的 ~/.aws/credentials 文件。
[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY [user2] aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY session_token=AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGd QrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU 9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz +scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==
要使用 user2
示例的凭证,请在 JDBC URL 中指定 Profile=user2
。
有关使用配置文件的更多信息,请参阅《Amazon Command Line Interface 用户指南》中的配置和凭证文件设置。
有关为 JDBC 驱动程序使用配置文件的更多信息,请参阅指定配置文件。
有关为 ODBC 驱动程序使用配置文件的更多信息,请参阅配置身份验证。
用于提供 IAM 凭证的 JDBC 和 ODBC 选项
下表列出了用于提供 IAM 凭证的 JDBC 和 ODBC 选项。
选项 |
描述 |
---|---|
|
仅用于 ODBC 连接字符串。设置为 1 可使用 IAM 身份验证。 |
|
为 IAM 数据库身份验证配置的 IAM 角色或用户的访问密钥 ID 和秘密访问密钥。SessionToken 仅对具有临时凭证的 IAM 角色是必需的。SessionToken 不用于用户。有关更多信息,请参阅临时安全凭证。 |
plugin_name |
实施凭证提供商的类的完全限定名称。Amazon Redshift JDBC 驱动程序包括基于 SAML 的凭证提供商插件。如果提供 plugin_name ,您还可以提供其他相关选项。有关更多信息,请参阅使用凭证提供商插件。 |
|
Amazon 凭证中配置文件的名称或包含 JDBC 连接选项值的 config 文件的名称。有关更多信息,请参阅使用配置文件。 |
使用凭证提供商插件
Amazon Redshift 使用凭证提供商插件进行单点登录身份验证。
为了支持单点登录身份验证,Amazon Redshift 提供了适用于 Microsoft Azure Active Directory 的 Azure AD 插件。有关如何配置该插件的信息,请参阅在 Microsoft Azure AD 中设置 JDBC 或 ODBC 单点登录身份验证。
设置 Multi-Factor Authentication
为了支持多重身份验证(MFA),Amazon Redshift 提供了基于浏览器的插件。请使用适用于 Okta、PingOne 的的浏览器 SAML 插件,以及适用于 Microsoft Azure Active Directory 的浏览器 Azure AD 插件。
在使用浏览器 SAML 插件时,SAML 身份验证流程如下所示:

-
用户尝试登录。
-
该插件启动本地服务器以侦听 localhost 上的传入连接。
-
该插件启动 Web 浏览器,以通过 HTTPS 从指定的单点登录 URL 联合身份提供者端点请求 SAML 响应。
-
Web 浏览器访问该链接,并提示用户输入凭证。
-
在用户进行身份验证并获得允许后,联合身份提供者端点通过 HTTPS 向
redirect_uri
指示的 URI 返回 SAML 响应。 -
Web 浏览器将包含 SAML 响应的响应消息传送到指示的
redirect_uri
。 -
本地服务器接受传入连接,该插件检索 SAML 响应并将其传送到 Amazon Redshift。
在使用浏览器 Azure AD 插件时,SAML 身份验证流程如下所示:

用户尝试登录。
该插件启动本地服务器以侦听 localhost 上的传入连接。
该插件启动 Web 浏览器,以从 Azure AD
oauth2/authorize
端点请求授权代码。Web 浏览器通过 HTTPS 访问生成的链接,并提示用户输入凭证。该链接是使用配置属性(例如 tenant 和 client_id)生成的。
在用户进行身份验证并获得允许后,Azure AD
oauth2/authorize
端点通过 HTTPS 返回包含授权代码的响应并将其发送到指示的redirect_uri
。Web 浏览器将包含 SAML 响应的响应消息传送到指示的
redirect_uri
。本地服务器接受传入连接,该插件请求和检索授权代码,并将 POST 请求发送到 Azure AD
oauth2/token
端点。Azure AD
oauth2/token
端点将包含访问令牌的响应返回到指示的redirect_uri
。该插件检索 SAML 响应并将其传送到 Amazon Redshift。
参阅以下部分:
-
Active Directory 联合身份验证服务 (AD FS)
有关更多信息,请参阅在 AD FS 中设置 JDBC 或 ODBC 单点登录身份验证。
-
PingOne (Ping)
只有使用 Forms 身份验证预先确定的 PingOne IdP 适配器支持 Ping。
有关更多信息,请参阅在 Ping Identity 中设置 JDBC 或 ODBC 单点登录身份验证。
-
Okta
仅与 Amazon Web Services Management Console 一起使用的 Okta 提供的应用程序支持 Okta。
有关更多信息,请参阅在 Okta 中设置 JDBC 或 ODBC 单点登录身份验证。
-
Microsoft Azure Active Directory
配置插件选项
要使用基于 SAML 的凭证提供商插件,请使用 JBDC 或 ODBC 选项,或在命名配置文件中指定以下选项。如果未指定 plugin_name
,则忽略其他选项。
选项 |
描述 |
---|---|
plugin_name |
对于 JDBC,为实施凭证提供商的类名称。指定下列项之一:
对于 ODBC,指定下列项之一:
|
idp_host
|
企业身份提供者主机的名称。此名称不应包含任何斜线 (“/”)。对于 Okta 身份提供者,idp_host 的值应以 .okta.com 结尾。 |
|
身份提供者使用的端口。默认值为 443。Okta 将忽略该端口。 |
|
SAML 断言中的 AttributeValue 属性的 Role 元素中的角色 Amazon Resource Name (ARN)。请与 IdP 管理员一起查找适合首选角色的值。有关更多信息,请参阅为 IdP 配置 SAML 断言。 |
|
企业用户名,包括域 (如果适用)。例如,对于 Active Directory,域名的格式需为 domain\username。 |
密码
|
企业用户的密码。我们建议不使用此选项,而是使用您的 SQL 客户端提供密码。 |
|
Okta 应用程序的 ID。仅用于 Okta。app_id 的值位于 Okta 应用程序嵌入链接中的 amazon_aws 后面。与 IdP 管理员一起获取该值。以下是应用程序嵌入链接的示例:https://example.okta.com/home/amazon_aws/0oa2hylwrpM8UGehd1t7/272 |
|
用于 Azure AD 的租户。仅与 Azure 一起使用。 |
|
Azure AD 中的 Amazon Redshift 企业应用程序的客户端 ID。仅与 Azure 一起使用。 |
在 Microsoft Azure AD 中设置 JDBC 或 ODBC 单点登录身份验证
您可以使用 Microsoft Azure AD 作为身份提供者 (IdP) 来访问 Amazon Redshift 集群。下面,您可以找到描述如何为此目的设置信任关系的过程。有关配置 Amazon 作为 IdP 的服务提供商的更多信息,请参阅 IAM 用户指南中的通过信赖方信任和添加陈述来配置 SAML 2.0 IdP。
注意
要将 Azure AD 与 JDBC 一起使用,Amazon Redshift JDBC 驱动程序必须是版本 1.2.37.1061 或更高版本。要将 Azure AD 与 ODBC 一起使用,Amazon Redshift ODBC 驱动程序必须是版本 1.4.10.1000 或更高版本。
要了解如何通过 Microsoft Azure AD 单点登录进行联合 Amazon Redshift 访问,请观看以下视频。
将 Azure AD 和您的 Amazon 账户设置为彼此信任
创建或使用现有的 Amazon Redshift 集群,以使 Azure AD 用户连接到该集群。要配置连接,需要此集群的某些属性,例如集群标识符。有关更多信息,请参阅创建集群。
在 Microsoft Azure 门户上设置用于 Amazon 的 Azure Active Directory、组、用户。
在 Microsoft Azure 门户上添加 Amazon Redshift 以作为企业应用程序,以用于 Amazon 控制台单点登录和 Amazon Redshift 联合登录。选择 Enterprise application (企业应用程序 )。
选择 + New application (+ 新建应用程序)。将显示 Add an application (添加应用程序) 页面。
在搜索字段中搜索
AWS
。选择 Amazon Web Services (Amazon),然后选择 Add(添加)。将会创建 Amazon 应用程序。
在 Manage(管理)下面,选择 Single sign-on(单点登录)。
选择 SAML。将显示 Amazon Web Services (Amazon) | SAML-based Sign-on(基于 SAML 的登录)页面。
选择 Yes(是)以转到 Set up Single Sign-On with SAML(为 SAML 设置单点登录)页面。该页面显示预配置的单点登录相关属性的列表。
对于 Basic SAML Configuration (基本 SAML 配置),请选择编辑图标,然后选择 Save (保存)。
在配置多个应用程序时,请提供一个标识符值。例如,输入
。请注意,从第二个应用程序开始,将该格式与 # 符号一起使用以指定唯一的 SPN 值。https://signin.aws.amazon.com/saml#2
在 User Attributes and Claims (用户属性和声明) 部分中,选择编辑图标。
默认情况下,预配置了唯一用户标识符 (UID)、角色、RoleSessionName 和 SessionDuration 声明。
选择 + Add new claim (+ 添加新的声明),以便为数据库用户添加声明。
对于 Name (名称),请输入
DbUser
。对于 Namespace (命名空间),请输入
https://redshift.amazon.com/SAML/Attributes
。对于 Source (源),请选择 Attribute (属性)。
对于 Source attribute (源属性),请选择 user.userprincipalname。然后,选择 Save (保存)。
选择 + Add new claim (+ 添加新的声明),以便为 AutoCreate 添加声明。
对于 Name (名称),请输入
AutoCreate
。对于 Namespace (命名空间),请输入
https://redshift.amazon.com/SAML/Attributes
。对于 Source (源),请选择 Attribute (属性)。
对于 Source attribute (源属性),请选择 "true"。然后,选择 Save (保存)。
此处,
是您 Amazon 账户,123456789012
是您创建的 IAM 角色,AzureSSO
是 IAM 提供商。AzureADProvider
声明名称 值 唯一用户标识符(名称 ID)
user.userprincipalname
https://aws.amazon.com/SAML/Attributes/SessionDuration
"900"
https://aws.amazon.com/SAML/Attributes/Role
arn:aws:iam::
123456789012
:role/AzureSSO
,arn:aws:iam::123456789012
:saml-provider/AzureADProvider
https://aws.amazon.com/SAML/Attributes/RoleSessionName
user.userprincipalname
https://redshift.amazon.com/SAML/Attributes/AutoCreate
"true"
https://redshift.amazon.com/SAML/Attributes/DbGroups
user.assignedroles
https://redshift.amazon.com/SAML/Attributes/DbUser
user.userprincipalname
-
在 App Registration (应用程序注册) >
> Authentication (身份验证) 下,添加 Mobile And Desktop Application (移动和桌面应用程序)。将 URL 指定为 http://localhost/redshift/。your-application-name
在 SAML Signing Certificate (SAML 签名证书) 部分中,选择 Download (下载) 以下载并保存联合元数据 XML 文件,以便在创建 IAM SAML 身份提供者时使用。该文件用于创建单点登录联合身份。
在 IAM 控制台上创建 IAM SAML 身份提供者。您提供的元数据文档是您在设置 Azure 企业应用程序时保存的联合元数据 XML 文件。有关详细步骤,请参阅 IAM 用户指南中的创建和管理 IAM 身份提供者(控制台)。
在 IAM 控制台上为 SAML 2.0 联合身份创建 IAM 角色。有关详细步骤,请参阅 IAM 用户指南中的创建用于 SAML 的角色。
创建一个 IAM 策略,您可以将其附加到您在 IAM 控制台上为 SAML 2.0 联合身份验证创建的 IAM 角色。有关详细步骤,请参阅 IAM 用户指南中的创建 IAM 策略(控制台)。
为您的环境修改以下策略(JSON 格式):
将集群的 Amazon 区域替换为
。us-west-1
将您的 Amazon 账户替换为
。123456789012
将您的集群标识符(或对于所有集群,则为
*
)替换为
。cluster-identifier
将您的数据库(或对于所有集群,则为
*
)替换为
。dev
将 IAM 角色的唯一标识符替换为
。AROAJ2UCCR6DPCEXAMPLE
将您的租户或公司电子邮件域替换为
。example.com
将您计划为其分配用户的数据库组替换为
。my_dbgroup
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "redshift:GetClusterCredentials", "Resource": [ "arn:aws:redshift:
us-west-1
:123456789012
:dbname:cluster-identifier
/dev
", "arn:aws:redshift:us-west-1
:123456789012
:dbuser:cluster-identifier
/${redshift:DbUser}", "arn:aws:redshift:us-west-1
:123456789012
:cluster:cluster-identifier
" ], "Condition": { "StringEquals": { "aws:userid": "AROAJ2UCCR6DPCEXAMPLE
:${redshift:DbUser}@example.com
" } } }, { "Effect": "Allow", "Action": "redshift:CreateClusterUser", "Resource": "arn:aws:redshift:us-west-1
:123456789012
:dbuser:cluster-identifier
/${redshift:DbUser}" }, { "Effect": "Allow", "Action": "redshift:JoinGroup", "Resource": "arn:aws:redshift:us-west-1
:123456789012
:dbgroup:cluster-identifier
/my_dbgroup
" }, { "Effect": "Allow", "Action": [ "redshift:DescribeClusters", "iam:ListRoles" ], "Resource": "*" } ] }此策略授予权限,如下所示:
第一部分授予执行
GetClusterCredentials
API 操作的权限,以获取指定集群的临时凭证。在此示例中,资源是
,所在的数据库为cluster-identifier
,所在的账户为dev
,所在的 Amazon 区域为123456789012
。us-west-1
${redshift:DbUser}
子句仅允许与在 Azure AD 中指定的DbUser
值匹配的用户进行连接。条件子句会强制只有特定用户能够获得临时凭证。这些用户是由角色唯一 ID
指定的角色下的用户,该 ID 位于您公司的电子邮件域中的电子邮件地址所标识的 IAM 账户中。有关唯一 ID 的更多信息,请参阅 IAM 用户指南中的唯一 ID。AROAJ2UCCR6DPCEXAMPLE
您使用 IdP(在本例中为 Azure AD)进行的设置决定了条件子句的写入方式。如果员工的电子邮件是
johndoe@example.com
,请首先将${redshift:DbUser}
设置为与员工用户名johndoe
匹配的超级用户字段。然后,要使该条件有效,请将 Amazon SAMLRoleSessionName
字段设置为与员工电子邮件johndoe@example.com
匹配的超级用户字段。使用这种方法时,请考虑以下几点:如果您将
${redshift:DbUser}
设置为员工的电子邮件,则删除示例 JSON 中的@example.com
以匹配RoleSessionName
。如果您只是将
RoleSessionId
设置为员工的用户名,则删除示例中的@example.com
以匹配RoleSessionName
。在示例 JSON 中,
${redshift:DbUser}
和RoleSessionName
都已设置为员工电子邮件。此示例 JSON 使用 Amazon Redshift 数据库用户名以及@example.com
让用户登录以访问集群。
第二部分授予在指定集群中创建
dbuser
名称的权限。在此示例 JSON 中,它将创建限制为${redshift:DbUser}
。第三部分授予指定用户可以加入
dbgroup
的权限。在此示例 JSON 中,用户可以加入指定集群中的my_dbgroup
组。第四部分授予用户可以对所有资源执行的操作的权限。在此示例 JSON 中,它允许用户调用
redshift:DescribeClusters
以获取集群信息,例如集群端点、Amazon 区域和端口。它还允许用户调用iam:ListRoles
以检查用户可以代入哪些角色。
设置 JDBC 以在 Microsoft Azure AD 中进行身份验证
将数据库客户端配置为通过 JDBC 连接(使用 Azure AD 单点登录)到集群。
您可以使用任何采用 JDBC 驱动程序的客户端通过 Azure AD 单点登录进行连接,也可以使用像 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。在 Select Connection Profile(选择连接配置文件)页面上,添加一个称为
AzureAuth
的 Profile Group(配置文件组)。 -
对于 Connection Profile (连接配置文件),请输入
Azure
。 -
选择 Manage Drivers (管理驱动程序),然后选择 Amazon Redshift。选择库旁边的打开文件夹图标,然后选择适当的 JDBC .jar 文件。
-
在 Select Connection Profile (选择连接配置文件) 页面上,向连接配置文件添加信息,如下所示:
对于 User (用户),请输入 Microsoft Azure 用户名。这是您用于单点登录的 Microsoft Azure 账户的用户名,该账户有权限访问您在尝试进行身份验证时使用的集群。
对于 Password (密码),请输入您的 Microsoft Azure 密码。
对于 Drivers (驱动程序),请选择 Amazon Redshift (com.amazon.redshift.jdbc.Driver)。
对于 URL,请输入
jdbc:redshift:iam://
。your-cluster-identifier
:your-cluster-region
/your-database-name
-
选择 Extended Properties (扩展属性) 以在连接属性中添加其他信息,如下所述。
对于 Azure AD 单点登录配置,请添加附加信息,如下所示:
对于 plugin_name,请输入
com.amazon.redshift.plugin.AzureCredentialsProvider
。该值指定驱动程序将 Azure AD 单点登录作为身份验证方法。对于 idp_tenant,请输入
。仅用于 Microsoft Azure AD。这是在 Azure AD 上为您的公司配置的租户名称。此值可以是租户名或带连字符的租户唯一 ID。your-idp-tenant
对于 client_secret,请输入
。仅用于 Microsoft Azure AD。这是您在设置 Azure 单点登录配置时创建的 Amazon Redshift 应用程序的客户端密钥。这仅适用于 com.amazon.redshift.plugin.AzureCredentialsProvider 插件。your-azure-redshift-application-client-secret
对于 client_id,请输入
。仅用于 Microsoft Azure AD。这是您在设置 Azure 单点登录配置时创建的 Amazon Redshift 应用程序的客户端 ID(带连字符)。your-azure-redshift-application-client-id
对于具有 MFA 的 Azure AD 单点登录配置,请在连接属性中添加附加信息,如下所示:
对于 plugin_name,请输入
com.amazon.redshift.plugin.BrowserAzureCredentialsProvider
。此值指定驱动程序将具有 MFA 的 Azure 单点登录作为身份验证方法。对于 idp_tenant,请输入
。仅用于 Microsoft Azure AD。这是在 Azure AD 上为您的公司配置的租户名称。此值可以是租户名或带连字符的租户唯一 ID。your-idp-tenant
对于 client_id,请输入
。此选项仅用于 Microsoft Azure AD。这是您在设置具有 MFA 的 Azure AD 单点登录配置时创建的 Amazon Redshift 应用程序的客户端 ID(带连字符)。your-azure-redshift-application-client-id
对于 listen_port (侦听端口),请输入
。这是本地服务器正在侦听的端口。默认值为 7890。your-listen-port
对于 idp_response_timeout,请输入
。这是 IdP 服务器发回响应时超时之前等待的秒数。最小秒数必须为 10。如果建立连接的用时长于此阈值,则连接将被中止。the-number-of-seconds
-
设置 ODBC 以在 Microsoft Azure AD 中进行身份验证
将数据库客户端配置为通过 ODBC 连接(使用 Azure AD 单点登录)到集群。
Amazon Redshift 提供了适用于 Linux、Windows 和 macOS 操作系统的 ODBC 驱动程序。在安装 ODBC 驱动程序之前,请确定您的 SQL 客户端工具是 32 位还是 64 位。安装符合 SQL 客户端工具要求的 ODBC 驱动程序。
此外,为您的操作系统安装和配置最新的 Amazon Redshift OBDC 驱动程序,如下所示:
对于 Windows,请参阅在 Microsoft Windows 上安装和配置 Amazon Redshift ODBC 驱动程序。
对于 macOS,请参阅 在 macOS X 上安装 Amazon Redshift ODBC 驱动程序。
对于 Linux,请参阅在 Linux 上安装 Amazon Redshift ODBC 驱动程序。
在 Windows 上的 Amazon Redshift ODBC Driver DSN Setup (Amazon Redshift ODBC 驱动程序 DSN 安装) 页的 Connection Settings (连接设置) 下,输入以下信息:
对于 Data Source Name (数据源名称),输入
。这将指定用作 ODBC 配置文件名称的数据源名称。your-DSN
对于 Azure AD 单点登录配置的 Auth type(身份验证类型),请选择
Identity Provider: Azure AD
。这是 ODBC 驱动程序在通过 Azure 单点登录进行身份验证时使用的验证方法。对于具有 MMFA 的 Azure AD 单点登录配置的 Auth type(身份验证类型),请选择
Identity Provider: Browser Azure AD
。这是 ODBC 驱动程序在通过 Azure 单点登录(采用 MFA)进行身份验证时使用的验证方法。对于 Cluster ID (集群 ID),请输入
。your-cluster-identifier
对于 Region (区域),请输入
。your-cluster-region
对于 Database (数据库),请输入
。your-database-name
对于 User (用户),请输入
。这是您用于单点登录的 Microsoft Azure 账户的用户名,该账户有权限访问您在尝试进行身份验证时使用的集群。请仅将其用于 Auth Type (身份验证类型) 为 Identity Provider: Azure AD (身份提供者: Azure AD) 的情况。your-azure-username
对于 Password (密码),请输入
。请仅将其用于 Auth Type (身份验证类型) 为 Identity Provider: Azure AD (身份提供者: Azure AD) 的情况。your-azure-password
对于 IdP Tenant (IdP 租户),请输入
。这是在 IdP (Azure) 上配置的公司的租户名称。此值可以是租户名或带连字符的租户唯一 ID。your-idp-tenant
对于 Azure Client Secret (Azure 客户端密钥),请输入
。这是您在设置 Azure 单点登录配置时创建的 Amazon Redshift 应用程序的客户端密钥。your-azure-redshift-application-client-secret
对于 Azure Client ID (Azure 客户端 ID),请输入
。这是您在设置 Azure 单点登录配置时创建的 Amazon Redshift 应用程序的客户端 ID(带连字符)。your-azure-redshift-application-client-id
对于 Listen Port (侦听端口),请输入
。这是本地服务器正在侦听的默认侦听端口。默认值为 7890。这仅适用于浏览器 Azure AD 插件。your-listen-port
对于 Response Timeout (响应超时),请输入
。这是 IdP 服务器发回响应时超时之前等待的秒数。最小秒数必须为 10。如果建立连接的用时长于此阈值,则连接将被中止。该选项仅适用于浏览器 Azure AD 插件。the-number-of-seconds
在 macOS 和 Linux 上,按如下方式编辑
odbc.ini
文件:注意
所有条目不区分大小写。
对于 clusterid,请输入
。这是已创建的 Amazon Redshift 集群的名称。your-cluster-identifier
对于 region (区域),请输入
。这是已创建的 Amazon Redshift 集群的 Amazon 区域。your-cluster-region
对于 database (数据库),请输入
。这是您尝试在 Amazon Redshift 集群上访问的数据库的名称。your-database-name
对于 locale (区域设置),请输入
en-us
。这是显示错误消息的语言。对于 iam,请输入
1
。此值指定要使用 IAM 凭证进行身份验证的驱动程序。对于 Azure AD 单点登录配置的 plugin_name(插件名称),请输入
AzureAD
。这指定驱动程序使用 Azure 单点登录作为身份验证方法。对于具有 MFA 的 Azure AD 单点登录配置的 plugin_name(插件名称),请输入
BrowserAzureAD
。这指定驱动程序将 Azure 单点登录(采用 MFA)作为身份验证方法。对于 uid,请输入
。这是您用于单点登录的 Microsoft Azure 账户的用户名,该账户有权限访问您在尝试进行身份验证时使用的集群。请仅将其用于 plugin_name 为 AzureAD 的情况。your-azure-username
对于 pwd (密码),请输入
。请仅将其用于 plugin_name 为 AzureAD 的情况。your-azure-password
对于 idp_tenant,请输入
。这是在 IdP (Azure) 上配置的公司的租户名称。此值可以是租户名或带连字符的租户唯一 ID。your-idp-tenant
对于 client_secret,请输入
。这是您在设置 Azure 单点登录配置时创建的 Amazon Redshift 应用程序的客户端密钥。your-azure-redshift-application-client-secret
对于 client_id,请输入
。这是您在设置 Azure 单点登录配置时创建的 Amazon Redshift 应用程序的客户端 ID(带连字符)。your-azure-redshift-application-client-id
对于 listen_port (侦听端口),请输入
。这是本地服务器正在侦听的端口。默认值为 7890。这适用于浏览器 Azure AD 插件。your-listen-port
对于 idp_response_timeout,请输入
。这是等待 Azure 响应的指定时间段(以秒为单位)。此选项适用于浏览器 Azure AD 插件。the-number-of-seconds
在 macOS 和 Linux 上,还要编辑配置文件设置以添加以下导出。
export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
解决浏览器 Azure AD 插件的问题
要使用浏览器 Azure AD 插件,在请求中指定的回复 URL 必须与为应用程序配置的回复 URL 一致。
导航到 Microsoft Azure 门户上的 Set up Single Sign-On with SAML (使用 SAML 设置单点登录) 页面。然后检查 Reply URL (回复 URL) 是否已设置为 http://localhost/redshift/。
如果收到 IdP 租户错误,请验证 IdP Tenan (IdP 租户) 名称是否与最初在 Microsoft Azure 中设置 Active Directory 时所用的域名匹配。
在 Windows 上,导航到 Amazon Redshift ODBC DSN Setup(Amazon Redshift ODBC DSN 设置)页面的 Connection Settings(连接设置)部分。然后检查在 IdP (Azure) 上配置的公司租户名称是否与最初在 Microsoft Azure 中设置 Active Directory 时所用的域名匹配。
在 macOS 和 Linux 上,找到 odbc.ini 文件。然后检查在 IdP (Azure) 上配置的公司租户名称是否与最初在 Microsoft Azure 中设置 Active Directory 时所用的域名匹配。
如果收到请求中指定的回复 URL 与为应用程序配置的回复 URL 不一致的错误,请验证 Redirect URIs (重定向 URI) 是否与回复 URL 相同。
在 Microsoft Azure 门户上,导航到您的应用程序的 App registration (应用程序注册) 页面。然后检查重定向 URI 是否与回复 URL 一致。
如果收到“未经授权错误”意外响应,请验证是否已完成 Mobile and desktop applications (移动和桌面应用程序) 配置。
在 Microsoft Azure 门户上,导航到您的应用程序的 App registration (应用程序注册) 页面。然后导航到 Authentication (身份验证),检查是否已将 Mobile and desktop applications (移动和桌面应用程序) 配置为使用 http://localhost/redshift/ 作为重定向 URI。
在 AD FS 中设置 JDBC 或 ODBC 单点登录身份验证
您可以将 AD FS 作为身份提供者 (IdP) 以访问 Amazon Redshift 集群。下面,您可以找到描述如何为此目的设置信任关系的过程。有关配置 Amazon 作为 AD FS 的服务提供商的更多信息,请参阅 IAM 用户指南中的通过信赖方信任和添加陈述来配置 SAML 2.0 IdP。
将 AD FS 和您的 Amazon 账户设置为相互信任
创建或使用现有的 Amazon Redshift 集群,以使 AD FS 用户连接到该集群。要配置连接,需要此集群的某些属性,例如集群标识符。有关更多信息,请参阅创建集群。
-
在 Microsoft 管理控制台上设置 AD FS 以控制 Amazon Redshift 访问:
-
选择 ADFS 2.0,然后选择添加信赖方信任。在添加信赖方信任向导页面上,选择开始。
-
在选择数据源页面上,选择导入有关在线或在本地网络上发布的信赖方的数据。
-
对于联合元数据地址 (主机名或 URL),请输入
https://signin.aws.amazon.com/saml-metadata.xml
。元数据 XML 文件是将 Amazon 描述为信赖方的标准 SAML 元数据文档。 -
在指定显示名称页面上,输入显示名称的值。
-
在选择颁发授权规则页面上,选择一个颁发授权规则以允许或拒绝所有用户访问该信赖方。
-
在准备好添加信任页面上,查看您的设置。
-
在完成页面上,选择向导关闭时打开此信赖方信任的“编辑声明规则”对话框。
-
在上下文(右键单击)菜单上,选择信赖方信任。
-
对于您的信赖方,打开上下文(右键单击)菜单,然后选择编辑声明规则。在编辑声明规则页面上,选择添加规则。
-
对于声明规则模板,请选择转换传入声明,然后在编辑规则 - NameId 页面上执行以下操作:
对于声明规则名称,请输入 NameId。
对于传入声明名称,请选择 Windows 账户名。
对于传出声明名称,请选择名称 ID。
对于传出名称 ID 格式,请选择持久性标识符。
选择传递所有声明值。
-
在编辑声明规则页面上,选择添加规则。在选择规则模板页面上,对于声明规则模板,请选择以声明方式发送 LDAP 特性。
-
在配置规则页面上,执行以下操作:
对于声明规则名称,请输入 RoleSessionName。
对于特性存储,请选择 Active Directory。
对于 LDAP 特性,请选择电子邮件地址。
对于 Outgoing Claim Type(传出陈述名称),选择 https://aws.amazon.com/SAML/Attributes/RoleSessionName。
-
在编辑声明规则页面上,选择添加规则。在选择规则模板页面上,对于声明规则模板,请选择使用自定义规则发送声明。
-
在编辑规则 - 获取 AD 组页面上,对于声明规则名称,请输入获取 AD 组。
-
对于自定义规则,请输入以下内容。
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);
-
在编辑声明规则页面上,选择添加规则。在选择规则模板页面上,对于声明规则模板,请选择使用自定义规则发送声明。
-
在编辑规则 - 角色页面上,对于声明规则名称,请键入角色。
-
对于自定义规则,请输入以下内容。
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-"));
请注意 SAML 提供商的 ARN 和要担任的角色。在该示例中,
arn:aws:iam:123456789012:saml-provider/ADFS
是 SAML 提供商的 ARN,arn:aws:iam:123456789012:role/ADFS-
是角色的 ARN。
-
确保您已下载
federationmetadata.xml
文件。检查以确认文档内容不包含无效的字符。这是在配置与 Amazon 的信任关系时使用的元数据文件。在 IAM 控制台上创建 IAM SAML 身份提供者。您提供的元数据文档是您在设置 Azure 企业应用程序时保存的联合元数据 XML 文件。有关详细步骤,请参阅 IAM 用户指南中的创建和管理 IAM 身份提供者(控制台)。
在 IAM 控制台上为 SAML 2.0 联合身份创建 IAM 角色。有关详细步骤,请参阅 IAM 用户指南中的创建用于 SAML 的角色。
创建一个 IAM 策略,您可以将其附加到您在 IAM 控制台上为 SAML 2.0 联合身份验证创建的 IAM 角色。有关详细步骤,请参阅 IAM 用户指南中的创建 IAM 策略(控制台)。有关 Azure AD 示例,请参阅在 Microsoft Azure AD 中设置 JDBC 或 ODBC 单点登录身份验证。
设置 JDBC 以在 AD FS 中进行身份验证
将数据库客户端配置为通过 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 作为客户端,请执行以下步骤:
-
启动 SQL Workbench/J。在 Select Connection Profile(选择连接配置文件)页面中,添加一个 Profile Group(配置文件组),例如,
ADFS
。 -
对于 Connection Profile (连接配置文件),请输入您的连接配置文件名称,例如
ADFS
。 -
选择 Manage Drivers (管理驱动程序),然后选择 Amazon Redshift。选择库旁边的打开文件夹图标,然后选择适当的 JDBC .jar 文件。
-
在 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
-
选择 Extended Properties(扩展属性)。对于 plugin_name,请输入
com.amazon.redshift.plugin.AdfsCredentialsProvider
。该值指定驱动程序将 AD FS 单点登录作为身份验证方法。
-
设置 ODBC 以在 AD FS 中进行身份验证
将数据库客户端配置为通过 ODBC 并使用 AD FS 单点登录连接到集群。
Amazon Redshift 提供了适用于 Linux、Windows 和 macOS 操作系统的 ODBC 驱动程序。在安装 ODBC 驱动程序之前,请确定您的 SQL 客户端工具是 32 位还是 64 位。安装符合 SQL 客户端工具要求的 ODBC 驱动程序。
此外,为您的操作系统安装和配置最新的 Amazon Redshift OBDC 驱动程序,如下所示:
对于 Windows,请参阅在 Microsoft Windows 上安装和配置 Amazon Redshift ODBC 驱动程序。
对于 macOS,请参阅 在 macOS X 上安装 Amazon Redshift ODBC 驱动程序。
对于 Linux,请参阅在 Linux 上安装 Amazon Redshift ODBC 驱动程序。
在 Windows 上的 Amazon Redshift ODBC Driver DSN Setup (Amazon Redshift ODBC 驱动程序 DSN 安装) 页的 Connection Settings (连接设置) 下,输入以下信息:
对于 Data Source Name (数据源名称),输入
。这将指定用作 ODBC 配置文件名称的数据源名称。your-DSN
对于 Auth type(身份验证类型),选择 Identity Provider: SAML(身份提供者:SAML)。这是 ODBC 驱动程序在通过 AD FS 单点登录进行身份验证时使用的身份验证方法。
对于 Cluster ID (集群 ID),请输入
。your-cluster-identifier
对于 Region (区域),请输入
。your-cluster-region
对于 Database (数据库),请输入
。your-database-name
对于 User (用户),请输入
。这是您用于单点登录的 AD FS 账户的用户名,该账户有权访问您在尝试进行身份验证时使用的集群。请仅将其用于 Auth type (身份验证类型) 为 Identity Provider: SAML (身份提供者: SAML) 的情况。your-adfs-username
对于 Password (密码),请输入
。请仅将其用于 Auth type (身份验证类型) 为 Identity Provider: SAML (身份提供者: SAML) 的情况。your-adfs-password
在 macOS 和 Linux 上,按如下方式编辑
odbc.ini
文件:注意
所有条目不区分大小写。
对于 clusterid,请输入
。这是已创建的 Amazon Redshift 集群的名称。your-cluster-identifier
对于 region (区域),请输入
。这是已创建的 Amazon Redshift 集群的 Amazon 区域。your-cluster-region
对于 database (数据库),请输入
。这是您尝试在 Amazon Redshift 集群上访问的数据库的名称。your-database-name
对于 locale (区域设置),请输入
en-us
。这是显示错误消息的语言。对于 iam,请输入
1
。此值指定要使用 IAM 凭证进行身份验证的驱动程序。对于 plugin_name,请执行以下操作之一:
-
对于具有 MFA 的 AD FS 单点登录配置,请输入
BrowserSAML
。这是 ODBC 驱动程序在 AD FS 中进行身份验证时使用的身份验证方法。 对于 AD FS 单点登录配置,请输入
ADFS
。这是 ODBC 驱动程序在通过 Azure AD 单点登录进行身份验证时使用的身份验证方法。
-
对于 uid,请输入
。这是您用于单点登录的 Microsoft Azure 账户的用户名,该账户有权限访问您在尝试进行身份验证时使用的集群。请仅将其用于 plugin_name 为 ADFS 的情况。your-adfs-username
对于 pwd (密码),请输入
。请仅将其用于 plugin_name 为 ADFS 的情况。your-adfs-password
在 macOS 和 Linux 上,还要编辑配置文件设置以添加以下导出。
export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
在 Ping Identity 中设置 JDBC 或 ODBC 单点登录身份验证
您可以将 Ping Identity 作为身份提供者 (IdP) 以访问 Amazon Redshift 集群。下面,您可以找到描述如何使用 PingOne 门户为此目的设置信任关系的过程。有关配置 Amazon 作为 Ping 身份的服务提供商的更多信息,请参阅 IAM 用户指南中的通过信赖方信任和添加陈述来配置 SAML 2.0 IdP。
将 Ping 身份和您的 Amazon 账户设置为相互信任
创建或使用现有的 Amazon Redshift 集群,以使 Ping 身份用户连接到该集群。要配置连接,需要此集群的某些属性,例如集群标识符。有关更多信息,请参阅创建集群。
在 PingOne 门户上添加 Amazon Redshift 以作为新的 SAML 应用程序。有关详细步骤,请参阅 Ping Identity 文档
。 转到 My Applications (我的应用程序)。
在 (Add Application添加应用程序) 下面,选择 New SAML Application (新建 SAML 应用程序)。
对于 Application Name (应用程序名称),请输入
Amazon Redshift
。对于 Protocol Version (协议版本),请选择 SAML v2.0。
对于 Category (类别),请选择
。your-application-category
对于 Assertion Consumer Service (ACS) (断言使用者服务 (ACS)),请键入
。这是 SAML 断言重定向到的本地主机和端口。your-redshift-local-host-url
对于 Entity ID (实体 ID),请输入
urn:amazon:webservices
。对于 Signing (签名),请选择 Sign Assertion (签名断言)。
在 SSO Attribute Mapping (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 前缀。若要删除此项,请在 Identity bridge(身份关联)中,输入 memberOf。在 Function(函数)中,选择 ExtractByRegularExpression。在 Expression(表达式)中,输入 (.*)[\@](?:.*)。
对于 Group Access (组访问权限),请设置以下组访问权限(如果需要):
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
查看设置,并在必要时进行更改。
将 Initiate Single Sign-On (SSO) URL(启动单点登录 URL)作为浏览器 SAML 插件的登录 URL。
在 IAM 控制台上创建 IAM SAML 身份提供者。您提供的元数据文档是您在设置 Ping Identity 时保存的联合元数据 XML 文件。有关详细步骤,请参阅 IAM 用户指南中的创建和管理 IAM 身份提供者(控制台)。
在 IAM 控制台上为 SAML 2.0 联合身份创建 IAM 角色。有关详细步骤,请参阅 IAM 用户指南中的创建用于 SAML 的角色。
创建一个 IAM 策略,您可以将其附加到您在 IAM 控制台上为 SAML 2.0 联合身份验证创建的 IAM 角色。有关详细步骤,请参阅 IAM 用户指南中的创建 IAM 策略(控制台)。有关 Azure AD 示例,请参阅在 Microsoft Azure AD 中设置 JDBC 或 ODBC 单点登录身份验证。
设置 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 作为客户端,请执行以下步骤:
-
启动 SQL Workbench/J。在 Select Connection Profile(选择连接配置文件)页面中,添加一个 Profile Group(配置文件组),例如,
Ping
。 -
对于 Connection Profile (连接配置文件),请输入
,例如,your-connection-profile-name
Ping
。 -
选择 Manage Drivers (管理驱动程序),然后选择 Amazon Redshift。选择库旁边的打开文件夹图标,然后选择适当的 JDBC .jar 文件。
-
在 Select Connection Profile (选择连接配置文件) 页面上,向连接配置文件添加信息,如下所示:
对于 User (用户),请输入您的 PingOne 用户名。这是您用于单点登录的 PingOne 账户的用户名,该账户有权限访问您在尝试进行身份验证时使用的集群。
对于 Password (密码),请输入您的 PingOne 密码。
对于 Drivers (驱动程序),请选择 Amazon Redshift (com.amazon.redshift.jdbc.Driver)。
对于 URL,请输入
jdbc:redshift:iam://
。your-cluster-identifier
:your-cluster-region
/your-database-name
-
选择 Extended Properties (扩展属性) 并执行以下操作之一:
对于 login_url,请输入
。该值指定 URL 将单点登录用作登录时的身份验证方法。your-ping-sso-login-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 以在 Ping Identity 中进行身份验证
配置数据库客户端以使用 Ping Identity PingOne 单点登录通过 ODBC 连接到集群。
Amazon Redshift 提供了适用于 Linux、Windows 和 macOS 操作系统的 ODBC 驱动程序。在安装 ODBC 驱动程序之前,请确定您的 SQL 客户端工具是 32 位还是 64 位。安装符合 SQL 客户端工具要求的 ODBC 驱动程序。
此外,为您的操作系统安装和配置最新的 Amazon Redshift OBDC 驱动程序,如下所示:
对于 Windows,请参阅在 Microsoft Windows 上安装和配置 Amazon Redshift ODBC 驱动程序。
对于 macOS,请参阅 在 macOS X 上安装 Amazon Redshift ODBC 驱动程序。
对于 Linux,请参阅在 Linux 上安装 Amazon Redshift ODBC 驱动程序。
在 Windows 上的 Amazon Redshift ODBC Driver DSN Setup (Amazon Redshift ODBC 驱动程序 DSN 安装) 页的 Connection Settings (连接设置) 下,输入以下信息:
对于 Data Source Name (数据源名称),输入
。这将指定用作 ODBC 配置文件名称的数据源名称。your-DSN
对于 Auth type (身份验证类型),请执行以下操作之一:
对于 Ping Identity 配置,请选择身份提供者:Ping Federate。这是 ODBC 驱动程序在通过 Ping Identity 单点登录进行身份验证时使用的身份验证方法。
对于具有单点登录的 Ping Identity 配置,请选择 Identity Provider: Browser SAML(身份提供者:浏览器 SAML)。这是 ODBC 驱动程序在使用具有单点登录的 Ping Identity 进行身份验证时使用的身份验证方法。
对于 Cluster ID (集群 ID),请输入
。your-cluster-identifier
对于 Region (区域),请输入
。your-cluster-region
对于 Database (数据库),请输入
。your-database-name
对于 User (用户),请输入
。这是您用于单点登录的 PingOne 账户的用户名,该账户有权访问您在尝试进行身份验证时使用的集群。请仅将其用于 Auth type (身份验证类型) 为 Identity Provider: PingFederate (身份提供者: PingFederate) 的情况。your-ping-username
对于 Password (密码),请输入
。请仅将其用于 Auth type (身份验证类型) 为 Identity Provider: PingFederate (身份提供者: PingFederate) 的情况。your-ping-password
对于 Listen Port (侦听端口),请输入
。这是本地服务器正在侦听的端口。默认值为 7890。这仅适用于浏览器 SAML 插件。your-listen-port
对于 Response Timeout (响应超时),请输入
。这是 IdP 服务器发回响应时超时之前等待的秒数。最小秒数必须为 10。如果建立连接的用时长于此阈值,则连接将被中止。这仅适用于浏览器 SAML 插件。the-number-of-seconds
对于 Login URL (登录 URL),请输入
。这仅适用于浏览器 SAML 插件。your-login-url
在 macOS 和 Linux 上,按如下方式编辑
odbc.ini
文件:注意
所有条目不区分大小写。
对于 clusterid,请输入
。这是已创建的 Amazon Redshift 集群的名称。your-cluster-identifier
对于 region (区域),请输入
。这是已创建的 Amazon Redshift 集群的 Amazon 区域。your-cluster-region
对于 database (数据库),请输入
。这是您尝试在 Amazon Redshift 集群上访问的数据库的名称。your-database-name
对于 locale (区域设置),请输入
en-us
。这是显示错误消息的语言。对于 iam,请输入
1
。此值指定要使用 IAM 凭证进行身份验证的驱动程序。对于 plugin_name,请执行以下操作之一:
-
对于 Ping Identity 配置,请输入
BrowserSAML
。这是 ODBC 驱动程序在使用 Ping Identity 进行身份验证时所采用的身份验证方法。 对于具有单点登录的 Ping Identity 配置,请输入
Ping
。这是 ODBC 驱动程序在使用具有单点登录的 Ping Identity 进行身份验证时使用的身份验证方法。
-
对于 uid,请输入
。这是您用于单点登录的 Microsoft Azure 账户的用户名,该账户有权限访问您在尝试进行身份验证时使用的集群。请仅将其用于 plugin_name 为 Ping 的情况。your-ping-username
对于 pwd (密码),请输入
。请仅将其用于 plugin_name 为 Ping 的情况。your-ping-password
对于 login_url,请输入
。这是返回 SAML 响应的启动单点登录 URL。这仅适用于浏览器 SAML 插件。your-login-url
对于 idp_response_timeout,请输入
。这是等待 PingOne Identity 响应的指定时间段(以秒为单位)。这仅适用于浏览器 SAML 插件。the-number-of-seconds
对于 listen_port (侦听端口),请输入
。这是本地服务器正在侦听的端口。默认值为 7890。这仅适用于浏览器 SAML 插件。your-listen-port
在 macOS 和 Linux 上,还要编辑配置文件设置以添加以下导出。
export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini
在 Okta 中设置 JDBC 或 ODBC 单点登录身份验证
您可以将 Okta 作为身份提供者 (IdP) 以访问 Amazon Redshift 集群。下面,您可以找到描述如何为此目的设置信任关系的过程。有关配置 Amazon 作为 Okta 的服务提供商的更多信息,请参阅 IAM 用户指南中的通过信赖方信任和添加陈述来配置 SAML 2.0 IdP。
将 Okta 和您的 Amazon 账户设置为相互信任
创建或使用现有的 Amazon Redshift 集群,以使 Okta 用户连接到该集群。要配置连接,需要此集群的某些属性,例如集群标识符。有关更多信息,请参阅创建集群。
在 Okta 门户上添加 Amazon Redshift 以作为新应用程序。有关详细步骤,请参阅 Okta 文档
。 选择 Add Application (添加应用程序)。
在 Add Application (添加应用程序) 下面,选择 Create New App (创建新的应用程序)。
在 Create a New Add Application Integration (创建新添加应用程序集成) 页面上,为 Platform (平台) 选择 Web。
对于 Sign on method (登录方法),请选择 SAML v2.0。
在 General Settings (常规设置) 页面上,为 App name (应用程序名称) 输入
。这是您的应用程序的名称。your-redshift-saml-sso-name
在 SAML Settings(SAML 设置)页面上,为 Single sign on URL(单点登录 URL)输入
。这是 SAML 断言重定向到的本地主机和端口,例如your-redshift-local-host-url
http://localhost:7890/redshift/
。
将 Single sign on URL(单点登录 URL)作为 Recipient URL(收件人 URL)和 Destination URL(目标 URL)。
对于 Signing (签名),请选择 Sign Assertion (签名断言)。
对于 Audience URI (SP Entity ID)(受众 URI (SP 实体 ID),为声明输入
urn:amazon:webservices
,如下表中所示。在 Advanced Settings(高级设置)部分中,为 SAML Issuer ID(SAML 发布者 ID)输入
;您可以在 View Setup Instructions(查看设置说明)部分中找到该 ID。your-Identity-Provider-Issuer-ID
在 Attribute Statements (属性语句) 部分中,创建声明,如下表中所示。
声明名称 值 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
在 App Embed Link (应用程序嵌入式链接) 部分中,找到可用作浏览器 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 示例,请参阅在 Microsoft Azure AD 中设置 JDBC 或 ODBC 单点登录身份验证。
设置 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。在 Select Connection Profile(选择连接配置文件)页面中,添加一个 Profile Group(配置文件组),例如,
Okta
。 -
对于 Connection Profile (连接配置文件),请输入
,例如,your-connection-profile-name
Okta
。 -
选择 Manage Drivers (管理驱动程序),然后选择 Amazon Redshift。选择库旁边的打开文件夹图标,然后选择适当的 JDBC .jar 文件。
-
在 Select Connection Profile (选择连接配置文件) 页面上,向连接配置文件添加信息,如下所示:
对于 User (用户),请输入您的 Okta 用户名。这是您用于单点登录的 Okta 账户的用户名,该账户有权限访问您在尝试进行身份验证时使用的集群。
对于 Password (密码),请输入您的 Okta 密码。
对于 Drivers (驱动程序),请选择 Amazon Redshift (com.amazon.redshift.jdbc.Driver)。
对于 URL,请输入
jdbc:redshift:iam://
。your-cluster-identifier
:your-cluster-region
/your-database-name
-
选择 Extended Properties (扩展属性) 并执行以下操作之一:
对于 login_url,请输入
。该值指定 URL 将单点登录作为身份验证方法以登录到 Okta。your-okta-sso-login-url
对于 Okta 单点登录,请为 plugin_name(插件名称)输入
com.amazon.redshift.plugin.OktaCredentialsProvider
。此值指定驱动程序使用 Okta 单点登录作为身份验证方法。对于具有 MFA 的 Okta 单点登录,请为 plugin_name(插件名称)输入
com.amazon.redshift.plugin.BrowserSamlCredentialsProvider
。此值指定驱动程序将具有 MFA 的 Okta 单点登录作为身份验证方法。
-
设置 ODBC 以在 Okta 中进行身份验证
将数据库客户端配置为通过 ODBC 并使用 Okta 单点登录连接到集群。
Amazon Redshift 提供了适用于 Linux、Windows 和 macOS 操作系统的 ODBC 驱动程序。在安装 ODBC 驱动程序之前,请确定您的 SQL 客户端工具是 32 位还是 64 位。安装符合 SQL 客户端工具要求的 ODBC 驱动程序。
此外,为您的操作系统安装和配置最新的 Amazon Redshift OBDC 驱动程序,如下所示:
对于 Windows,请参阅在 Microsoft Windows 上安装和配置 Amazon Redshift ODBC 驱动程序。
对于 macOS,请参阅 在 macOS X 上安装 Amazon Redshift ODBC 驱动程序。
对于 Linux,请参阅在 Linux 上安装 Amazon Redshift ODBC 驱动程序。
在 Windows 上的 Amazon Redshift ODBC Driver DSN Setup (Amazon Redshift ODBC 驱动程序 DSN 安装) 页的 Connection Settings (连接设置) 下,输入以下信息:
对于 Data Source Name (数据源名称),输入
。这将指定用作 ODBC 配置文件名称的数据源名称。your-DSN
对于 Auth type (身份验证类型),请执行以下操作之一:
对于 Okta 单点登录配置,请选择
Identity Provider: Okta
。这是 ODBC 驱动程序在通过 Okta 单点登录进行身份验证时使用的身份验证方法。对于具有 MFA 的 Okta 单点登录配置,请选择
Identity Provider: Browser SAML
。这是 ODBC 驱动程序在通过具有 MFMFA 的 Okta 单点登录进行身份验证时使用的身份验证方法。
对于 Cluster ID (集群 ID),请输入
。your-cluster-identifier
对于 Region (区域),请输入
。your-cluster-region
对于 Database (数据库),请输入
。your-database-name
对于 User (用户),请输入
。这是您用于单点登录的 Okta 账户的用户名,该账户有权访问您在尝试进行身份验证时使用的集群。请仅将其用于 Auth type (身份验证类型) 为 Identity Provider: Okta (身份提供者: Okta) 的情况。your-okta-username
对于 Password (密码),请输入
。请仅将其用于 Auth type (身份验证类型) 为 Identity Provider: Okta (身份提供者: Okta) 的情况。your-okta-password
在 macOS 和 Linux 上,按如下方式编辑
odbc.ini
文件:注意
所有条目不区分大小写。
对于 clusterid,请输入
。这是已创建的 Amazon Redshift 集群的名称。your-cluster-identifier
对于 region (区域),请输入
。这是已创建的 Amazon Redshift 集群的 Amazon 区域。your-cluster-region
对于 database (数据库),请输入
。这是您尝试在 Amazon Redshift 集群上访问的数据库的名称。your-database-name
对于 locale (区域设置),请输入
en-us
。这是显示错误消息的语言。对于 iam,请输入
1
。此值指定要使用 IAM 凭证进行身份验证的驱动程序。对于 plugin_name,请执行以下操作之一:
-
对于具有 MFA 的 Okta 单点登录配置,请输入
BrowserSAML
。这是 ODBC 驱动程序在通过具有 MFMFA 的 Okta 单点登录进行身份验证时使用的身份验证方法。 对于 Okta 单点登录配置,请输入
Okta
。这是 ODBC 驱动程序在通过 Okta 单点登录进行身份验证时使用的身份验证方法。
-
对于 uid,请输入
。这是您用于单点登录的 Okta 账户的用户名,该账户有权访问您在尝试进行身份验证时使用的集群。请仅将其用于 plugin_name 为 Okta 的情况。your-okta-username
对于 pwd (密码),请输入
。请仅将其用于 plugin_name 为 Okta 的情况。your-okta-password
对于 login_url,请输入
。这是返回 SAML 响应的启动单点登录 URL。这仅适用于浏览器 SAML 插件。your-login-url
对于 idp_response_timeout,请输入
。这是等待 PingOne 响应的指定时间段(以秒为单位)。这仅适用于浏览器 SAML 插件。the-number-of-seconds
对于 listen_port (侦听端口),请输入
。这是本地服务器正在侦听的端口。默认值为 7890。这仅适用于浏览器 SAML 插件。your-listen-port
在 macOS 和 Linux 上,还要编辑配置文件设置以添加以下导出。
export ODBCINI=/opt/amazon/redshift/Setup/odbc.ini
export ODBCINSTINI=/opt/amazon/redshift/Setup/odbcinst.ini