本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
教程:Amazon QuickSight 和联合IAM身份验证
适用于:企业版和标准版 |
目标受众:亚马逊 QuickSight 管理员和亚马逊 QuickSight 开发者 |
注意
IAM联合身份验证不支持将身份提供商群组与 Amazon QuickSight 同步。
在以下教程中,您可以找到将 IdP Okta 设置为亚马逊联合身份验证服务的演练。 QuickSight尽管本教程展示了 AWS Identity and Access Management (IAM) 和 Okta 的集成,但您也可以使用您选择的 SAML 2.0 IdPs 来复制此解决方案。
在以下步骤中,您将使用 Okta IdP 的AWS “账户联合” 快捷方式在 Okta IdP 中创建应用程序。Okta 对这个集成应用程序的描述如下:
“通过将 Okta 与 Amazon Web Services (AWS) Identity and Access Management (IAM) 账户联合,最终用户可以使用他们的 Okta 凭证单点登录访问所有分配的 AWS 角色。在每个版本中 AWS 账户,管理员都设置联盟并配置 AWS 角色以信任 Okta。当用户登录时 AWS,他们将获得 Okta 单点登录体验,以查看分配给 AWS 他们的角色。然后,他们可以选择所需的角色,该角色定义了他们在进行身份验证会话期间的权限。拥有大量 AWS 账户的客户,可以选择使用 AWS 单点登录应用程序。” (https://www.okta.com/aws/)
使用 Okta 的 “AWS 账户联合” 应用程序快捷方式创建 Okta 应用程序
-
登录到您的 Okta 控制面板。如果你还没有,请使用这个 QuickSight
品牌创建一个免费的 Okta 开发者版账户。URL激活电子邮件后,登录 Okta。 -
在 Okta 网站上,选择左上角的 <> 开发人员控制台,然后选择经典 UI。
-
选择添加应用程序,然后选择添加应用程序。
-
在搜索中输入
aws
,然后从搜索结果中选择 AWS 账户联合身份验证。 -
选择添加,创建此应用程序的实例。
-
对于应用程序标签,请输入
AWS Account Federation - QuickSight
。 -
选择下一步。
-
对于 SAML2.0 “默认中继状态”,输入
https://quicksight.aws.amazon.com
。 -
打开身份提供者元数据的关联(右键单击)菜单,然后选择保存文件。将文件命名为
metadata.xml
。在下一个步骤中,您需要用到此文件。该文件的内容类似于以下内容。
<md:EntityDescriptor xmlns:md="urn:oasis:names:tc:SAML:2.0:metadata" entityID="http://www.okta.com/exkffz2hATwiVft645d5"> <md:IDPSSODescriptor WantAuthnRequestsSigned="false" protocolSupportEnumeration="urn:oasis:names:tc:SAML:2.0:protocol"> <md:KeyDescriptor use="signing"> <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:X509Data> <ds:X509Certificate> MIIDpjCCAo6gAwIBAgIGAXVjA82hMA0GCSqGSIb3DQEBCwUAMIGTMQswCQYDVQQGEwJVUzETMBEG . . (certificate content omitted) . QE/6cRdPQ6v/eaFpUL6Asd6q3sBeq+giRG4= </ds:X509Certificate> </ds:X509Data> </ds:KeyInfo> </md:KeyDescriptor> <md:NameIDFormat>urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress</md:NameIDFormat> <md:NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified</md:NameIDFormat> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="https://dev-1054988.okta.com/app/amazon_aws/exkffz2hATwiVft645d5/sso/saml"/> <md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://dev-1054988.okta.com/app/amazon_aws/exkffz2hATwiVft645d5/sso/saml"/> </md:IDPSSODescriptor> </md:EntityDescriptor>
-
保存XML文件后,滚动到 Okta 页面的底部,然后选择 “完成”。
-
如果可能,请保持此浏览器窗口处于打开状态。您将在本教程的后面需要用到它。
接下来,在 AWS 账户中创建身份提供者。
在 AWS Identity and Access Management (IAM) 中创建SAML提供者
-
登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
在导航窗格中,依次选择身份提供者、创建提供者。
-
输入以下设置:
-
提供者类型-SAML从列表中选择。
-
提供者名称 – 输入
Okta
。 -
元数据文档-上传上一个过程
manifest.xml
中的XML文件。
-
-
依次选择下一步、创建。
-
找到您创建的 IdP 并选择它以查看设置。请注意提供商ARN。要完成本教程,您需要用到它。
-
确认身份提供者是使用您的设置创建的。在中IAM,选择身份提供者、Okta(您添加的 IdP)、下载元数据。文件应该是您最新上传的文件。
接下来,您将创建一个IAM角色以使 SAML 2.0 联合体在中充当可信实体 AWS 账户。在此步骤中,您需要选择如何在 Amazon 中配置用户 QuickSight。您可以执行以下操作之一:
-
向该IAM角色授予权限,以便首次访问者自动成为 QuickSight用户。
-
使用提前配置 QuickSight 用户QuickSight API。选择此选项后,您可以同时预置用户并将它们添加到组中。有关更多信息,请参阅 在 Amazon 中创建和管理群组 QuickSight。
为 SAML 2.0 联合体创建IAM角色作为可信实体
-
登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
在导航窗格中,选择 角色 和 创建角色。
-
在 “选择可信实体类型” 中,选择标有 SAML2.0 联合身份验证的卡片。
-
例如,对于SAML提供者,选择您在上一个过程中创建的 IdP。
Okta
-
启用 “允许编程访问 AWS 和管理控制台” 选项。
-
选择下一步: 权限。
-
将下面的策略粘贴到编辑器中。
在政策编辑器中,JSON使用提供商的 Amazon 资源名称 (ARN) 更新。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "sts:AssumeRoleWithSAML", "Resource": "arn:aws:iam::
111111111111
:saml-provider/Okta
", "Condition": { "StringEquals": { "saml:aud": "https://signin.aws.amazon.com/saml" } } } ] } -
选择查看策略。
-
对于 Name (名称),输入
QuicksightOktaFederatedPolicy
,然后选择 Create policy (创建策略)。 -
再次选择创建策略。JSON
-
将下面的策略粘贴到编辑器中。
在策略编辑器中,JSON使用您的 AWS 账户 ID 更新。它应与您在提供商之前的政策中使用的账户 ID 相同ARN。
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "quicksight:CreateReader" ], "Effect": "Allow", "Resource": [ "arn:aws:quicksight::
111111111111
:user/${aws:userid}" ] } ] }您可以省略中的 AWS 区域 名称ARN,如下所示。
arn:aws:quicksight::
111111111111
:user/$${aws:userid} -
选择查看策略。
-
对于 Name (名称),输入
QuicksightCreateReader
,然后选择 Create policy (创建策略)。 -
通过选择右侧的刷新图标来刷新策略列表。
-
在搜索中,输入
QuicksightOktaFederatedPolicy
。选择要将其启用的策略( )。如果您不想使用自动预置,可以跳过以下步骤。
要添加 QuickSight 用户,请使用注册用户。要添加 QuickSight 群组,请使用创建群组。要将用户添加到 QuickSight 群组,请使用create-group-membership。
-
(可选)在搜索中,输入
QuicksightCreateReader
。选择要将其启用的策略( )。如果您想自动配置 QuickSight 用户,而不是使用,请执行此步骤 QuickSight API。
QuicksightCreateReader
策略通过允许使用quicksight:CreateReader
操作来激活自动预置。这样做会向首次使用的用户授予控制面板订阅用户(读者级别)的访问权限。 QuickSight管理员稍后可以从 QuickSight 配置文件菜单 “管理”、“管理 QuickSight用户” 中对其进行升级。 -
要继续附加一个或多个IAM策略,请选择下一步:标签。
-
选择下一步:审核。
-
对于角色名称,输入
QuicksightOktaFederatedRole
,然后选择创建角色。 -
执行以下步骤,验证您是否成功完成了此操作:
-
返回IAM控制台的主页,网址为https://console.aws.amazon.com/iam/
。您可以使用浏览器的返回按钮。 -
选择角色。
-
在搜索中,输入 Okta。QuicksightOktaFederatedRole从搜索结果中选择。
-
在策略的摘要页面上,查看权限选项卡。验证该角色是否具有您附加的一个或多个策略。它应该具有
QuicksightOktaFederatedPolicy
。如果您选择添加创建用户的功能,它还应具有QuicksightCreateReader
。 -
使用 图标打开每个策略。验证文本是否与此过程中显示的内容相匹配。仔细检查您是否添加了自己的 AWS 账户 号码来代替示例账号 111111111111。
-
在信任关系选项卡上,验证可信实体字段是否包含身份提供商的。ARN您可以通过打开身份提供商 Ok ta ARN 在IAM控制台中仔细检查。
-
创建 Okta 的访问密钥
-
登录 AWS Management Console 并打开IAM控制台,网址为https://console.aws.amazon.com/iam/
。 -
添加允许 Okta 向用户显示IAM角色列表的策略。为此,依次选择策略、创建策略。
-
选择 JSON,然后输入以下策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:ListRoles", "iam:ListAccountAliases" ], "Resource": "*" } ] }
-
选择 Review Policy (查看策略)。
-
对于 Name (名称),请输入
OktaListRolesPolicy
。然后选择创建策略。 -
添加用户,这样您就可以向 Okta 提供访问密钥。
在导航窗格中,依次选择用户、添加用户。
-
使用以下设置:
-
对于用户名,输入
OktaSSOUser
。 -
对于访问类型,启用编程访问。
-
-
选择 Next: Permissions(下一步:权限)。
-
选择直接附上现有策略。
-
在 “搜索” 中
OktaListRolesPolicy
,输入并OktaListRolesPolicy从搜索结果中进行选择。 -
依次选择 Next: Tags(下一步:标签)和 Next: Review(下一步:查看)。
-
选择 创建用户。现在您可以获取访问密钥了。
-
选择下载 .csv,下载密钥文件。该文件包含与此屏幕上显示的相同访问密钥 ID 和秘密访问密钥。但是,由于 AWS 不会再次显示此信息,因此请务必下载该文件。
-
通过执行以下操作来验证您是否正确完成了此步骤:
-
打开IAM控制台,然后选择 “用户”。搜索 O ktaSSOUser,然后从搜索结果中选择用户名将其打开。
-
在 “权限” 选项卡上,确认OktaListRolesPolicy已附加。
-
使用 图标打开策略。验证文本是否与此过程中显示的内容相匹配。
-
在安全凭证选项卡上,您可以检查访问密钥,尽管您已经下载了该访问密钥。当您需要新的访问密钥时,可以返回此选项卡来创建访问密钥。
-
在以下步骤中,您将返回 Okta 以提供访问密钥。访问密钥可与您的新安全设置配合使用,允许 AWS 与 Okta IdP 配合使用。
使用设置完成 Okta 应用程序的 AWS 配置
-
返回您的 Okta 控制面板。如果要求这样做,请登录。如果开发人员控制台无法再打开,请选择管理员将其重新打开。
-
如果您必须重新打开 Okta,可以按照以下步骤返回本部分:
-
登录 Okta。选择应用程序。
-
选择AWS 账户联合 QuickSight- 这是您在本教程开头创建的应用程序。
-
选择常规和移动之间的登录选项卡。
-
-
滚动到高级登录设置。
-
对于 “身份提供者”ARN(仅适用于SAMLIAM联合身份验证),请输入前一过程ARN中的提供者,例如:
arn:aws:iam::
111122223333
:saml-provider/Okta -
选择完成或保存。按钮的名称会有所不同,具体取决于您是在创建还是在编辑应用程序。
-
选择 “配置” 选项卡,然后在该选项卡的下半部分,选择 “配置API集成”。
-
打开 “启用API集成” 以显示设置。
-
对于访问密钥和私有密钥,请提供您之前下载到名为
OktaSSOUser
_credentials.csv
的文件中的访问密钥和私有密钥。 -
选择 “测试API凭证”。在 “启用API集成” 设置上方查看一条确认已成功验证AWS 账户联合身份验证的消息。
-
选择保存。
-
确保左侧突出显示到应用程序,然后在右侧选择编辑。
-
对于创建用户,开启启用选项。
-
选择保存。
-
在分配选项卡上的预置和导入旁边,选择分配。
-
执行以下一项或多项操作,启用联合访问:
-
要与个人用户合作,请选择分配给人员。
-
要使用IAM群组,请选择 “分配给群组”。您可以选择特定IAM群组或所有人(组织中的所有用户)。
-
-
对于每个IAM用户或组,请执行以下操作:
-
选择分配、角色。
-
QuicksightOktaFederatedRole从IAM角色列表中选择。
-
对于SAML用户角色,请启用QuicksightOktaFederatedRole。
-
-
选择保存并返回,然后选择完成。
-
通过选择左侧的人员或组筛选条件,选中您输入的用户或组,验证您是否正确完成了此步骤。如果由于您创建的角色未出现在列表中而无法完成此过程,请返回之前的过程来验证设置。
QuickSight 使用 Okta 登录(IdP 到服务提供商登录)
-
如果您使用的是 Okta 管理员账户,请切换到用户模式。
-
使用已被授予联合访问权限的用户登录您的 Okta 应用程序控制面板。您应该会看到带有您标签的新应用程序,例如AWS 账户联合- QuickSight。
-
选择应用程序图标以启动AWS 账户联合- QuickSight。
现在,您可以使用 Okta 管理身份,也可以通过 Amazon QuickSight 使用联合访问权限。
以下过程是本教程的可选部分。如果您按照其步骤操作,则表示您授权 QuickSight 代表您的用户向 IdP 转发授权请求。使用此方法,用户无需先 QuickSight 使用 IdP 页面登录即可登录。
(可选)设置 QuickSight 为向 Okta 发送身份验证请求
-
打开 QuickSight,然后 QuickSight从个人资料菜单中选择 “管理”。
-
从导航窗格中选择单点登录(IAM联合)。
-
在配置 I dP 中URL,输入您的 IdP 为对用户进行身份验证而提供的,例如 https://dev-URL
1-----0
.okta。 com/home/amazon_aws/0oabababababaGQei5d5/282
。 你可以在 Okta 应用程序页面的 “常规” 选项卡的 “嵌入链接” 中找到它。 -
对于 IdP URL,请输入。
RelayState
-
请执行以下操作之一:
-
要先使用您的身份提供商测试登录,请从您的 IdP 开始使用测试中URL提供的自定义设置。您应该到达起始页面 QuickSight,例如 st https://quicksight.aws.amazon.com/sn/ art。
-
要 QuickSight 先测试登录,请使用测试 end-to-end体验中URL提供的自定义设置。该
enable-sso
参数将附加到。URL如果是enable-sso=1
,IAM联合会尝试进行身份验证。如果enable-sso=0
, QuickSight 不会发送身份验证请求,而您则 QuickSight 像以前一样登录。
-
-
对于状态,请选择开启。
-
选择保存,保存您的设置。
您可以创建指向 QuickSight 仪表板的深层链接,以允许用户使用IAM联合功能直接连接到特定的仪表板。为此,您需要将中继状态标志和仪表板附加URL到 Okta 单点登录URL,如下所述。
为单点登录创建指向 QuickSight 仪表板的深度链接
-
在教程开头下载
metadata.xml
的文件URL中找到 Okta 应用程序的单点登录(IAM联合)。你可以在文件底部URL附近的名为的元素中找到md:SingleSignOnService
。此属性命名为Location
,值以/sso/saml
结尾,如以下示例所示。<md:SingleSignOnService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect" Location="https://dev-0000001.okta.com/app/amazon_aws/abcdef2hATwiVft645d5/sso/saml"/>
-
取IAM联盟的值,URL
?RelayState=
然后追加 QuickSight 仪表板URL的值。该RelayState
参数中继用户被重定向到身份验证时所处的状态URL。URL -
在添加了中继状态的新IAM联盟中,追加 QuickSight 仪表板URL的。结果URL应类似于以下内容。
https://dev-
1-----0
.okta.com/app/amazon_aws/abcdef2hATwiVft645d5
/sso/saml?RelayState=https://us-west-2.quicksight.aws.amazon.com/sn/analyses/12a12a2a-121a-212a-121a-abcd12abc1ab -
如果您创建的链接未打开,请检查您是否使用的是中的最新IAM联URL合
metadata.xml
。另请检查您用于登录的用户名是否未在多个IAM联邦 Okta 应用程序中分配。