

# 使用 ODBC、SAML 2.0 和 Okta 身份提供商配置单点登录
<a name="okta-saml-sso"></a>

要连接到数据源，您可以将 Amazon Athena 与 PingOne、Okta、OneLogin 等身份提供商 (IdP) 一起使用。从 Athena ODBC 驱动程序版本 1.1.13 和 Athena JDBC 驱动程序版本 2.0.25 开始，驱动程序中都包括一个 SAML 浏览器插件，您可以配置此插件以与任何 SAML 2.0 提供商一起使用。本主题向您展示如何配置 Amazon Athena ODBC 驱动程序和基于浏览器的 SAML 插件，从而使用 Okta 身份提供商添加单点登录（SSO）功能。

## 先决条件
<a name="okta-saml-sso-prerequisites"></a>

要完成本教程中的步骤，需要以下内容：
+ Athena ODBC 驱动程序版本 1.1.13 或更高版本。支持浏览器 SAML 的1.1.13 及更高版本。有关下载链接，请参阅[使用 ODBC 连接到 Amazon Athena](https://docs.aws.amazon.com/athena/latest/ug/connect-with-odbc.html)。
+ 要与 SAML 一起使用的 IAM 角色。有关更多信息，请参阅《*IAM 用户指南*》中的[创建用于 SAML 2.0 联合身份验证的角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html)。
+ Okta 账户。有关信息，请访问 [okta.com](https://www.okta.com/)。

## 在 Okta 中创建应用程序集成
<a name="okta-saml-sso-creating-an-app-integration-in-okta"></a>

首先，使用 Okta 控制面板创建和配置 SAML 2.0 应用程序以单点登录 Athena。

**使用 Okta 控制面板设置 Athena 的单点登录**

1. 在 `okta.com` 上登录到 Okta 管理员页面。

1. 在导航窗格中，选择 **Application**（应用程序），**Application**（应用程序）。

1. 在 **Applications**（应用程序）页面上，选择 **Create App Integration**（创建应用程序集成）。  
![\[选择 Create App Integration（创建应用程序集成）。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-1.png)

1. 在 **Create a new app integration**（创建新应用程序集成）对话框中，找到 **Sign-in method**（登录方法），选择 **SAML 2.0**，然后选择 **Next**（下一步）。  
![\[选择 SAML 2.0\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-2.png)

1. 在 **Create SAML Integration**（创建 SAML 集成）页面的 **General Settings**（常规设置）部分中，输入应用程序的名称。本教程使用名称 **SSO Athena**。  
![\[输入 Oktak 应用程序的名称。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-3.png)

1. 选择**下一步**。

1. 在 **Configure SAML**（配置 SAML）页面的 **SAML Settings**（SAML 设置）部分，输入以下值：
   + 在 **Single sign on URL**（单点登录 URL）中，输入 **http://localhost:7890/athena**
   + 在 **Audience URI**（受众 URI）中，输入 **urn:amazon:webservices**  
![\[输入 SAML 设置。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-4.png)

1. 对于 **Attribute Statements (optional)**（属性语句（可选）），输入以下两个名称/值对。这些是必填的映射属性。
   + 在 **Name**（名称）中，输入以下 URL：

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

     在 **Value**（值）中，输入 IAM 角色的名称。有关 IAM 角色格式的信息，请参阅《*IAM 用户指南*》中的[为身份验证响应配置 SAML 断言](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html)。
   + 在 **Name**（名称）中，输入以下 URL：

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

     对于**值**，请输入 **user.email**。  
![\[输入 Athena 的 SAML 属性。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-5.png)

1. 选择**下一步**，然后选择**完成**。

   当 Okta 创建应用程序时，它还会创建您的登录 URL，接下来您将检索该 URL。

## 从 Okta 控制面板获取登录 URL
<a name="okta-saml-sso-getting-the-login-url-from-the-okta-dashboard"></a>

现在您的应用程序已经创建完毕，您可以从 Okta 控制面板获取其登录 URL 和其他元数据。

**从 Okta 控制面板获取登录 URL**

1. 在 Okta 导航窗格中，选择 **Application**（应用程序），**Application**（应用程序）。

1. 选择要查找登录 URL 的应用程序（例如，**AthenNasso**)。

1. 在应用程序页面上，选择 **Sign On**（登录）。  
![\[选择 Sign On（登录）。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-6.png)

1. 选择 **View Setup Instructions**（查看设置说明）。  
![\[选择 View Setup Instructions（查看设置说明）。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-7.png)

1. 在 **How to Configure SAML 2.0 for Athena SSO**（如何为 Athena SSO 配置 SAML 2.0）页面中，找到 **Identity Provider Issuer**（身份提供商发布者）的 URL。Okta 控制面板中的某些地方会将此 URL 称为 **SAML 发布者 ID**。  
![\[Identity Provider Issuer（身份提供商发布者）的值。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-8.png)

1. 复制或存储 **Identity Provider Single Sign-On URL**（身份提供商单点登录 URL）的值。

   在下一节中，配置 ODBC 连接时，您将提供此值作为 SAML 浏览器插件的**登录 URL** 连接参数。

## 配置浏览器 SAML ODBC 与 Athena 的连接
<a name="okta-saml-sso-configuring-the-browser-saml-odbc-connection-to-athena"></a>

现在，您可以在 Windows 中使用 ODBC 数据源程序配置浏览器 SAML 到 Athena 的连接。

**配置浏览器 SAML ODBC 到 Athena 的连接**

1. 在 Windows 中，启动 **ODBC 数据源**程序。

1. 在 **ODBC 数据源管理器**程序中，选择 **Add**（添加）。  
![\[选择添加。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-9.png)

1. 选择 **Simba Athena ODBC 驱动程序**，然后选择 **Finish**（完成）。  
![\[选择 Simba Athena 驱动程序\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-10.png)

1. 在 **SIMBA Athena ODBC 驱动程序 DSN 设置**对话框中，输入描述的值。  
![\[输入 DSN 设置值。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-11.png)
   + 在 **Data Source Name**（数据源名称）中，输入数据源的名称（例如，**64 Athena ODBC**）。
   + 在 **Description**（说明）中，为数据源输入说明。
   + 在 **AWS 区域** 中，输入您正在使用的 AWS 区域（例如 **us-west-1**）。
   + 在 **S3 Output Location**（S3 输出位置）中，输入要存储输出的 Amazon S3 路径。

1. 选择 **Authentication Options**（身份验证选项）。

1. 在 **Authentication Options**（身份验证选项）对话框中，选择或输入以下值。  
![\[输入身份验证选项。\]](http://docs.aws.amazon.com/zh_cn/athena/latest/ug/images/okta-saml-sso-12.png)
   + 在 **Authentication Type**（身份验证类型）中，选择 **BrowserSAML**。
   + 在 **Login URL**（登录 URL）中，输入您从 Okta 控制面板中获得的 **Identity Provider Single Sign-On URL**（身份提供商单点登录 URL）。
   + 对于 **Listen Port**（侦听端口），请输入 **7890**。
   + 对于 **Timeout (sec)**（超时（秒）），请输入连接超时的秒数。

1. 选择 **OK**（确定）以关闭 **Authentication Options**（身份验证选项）。

1. 选择 **Test**（测试）以测试连接，或者 **OK**（确定）以完成。