

# Okta プラグインと Okta ID プロバイダを使用して ODBC 用 の SSO を設定する
<a name="odbc-okta-plugin"></a>

このページでは、Amazon Athena ODBC ドライバーと Okta プラグインを設定し、Okta の ID プロバイダを使用して Single Sign-On (SSO) 機能を追加する方法について説明します。

## 前提条件
<a name="odbc-okta-plugin-prerequisites"></a>

このチュートリアルのステップを完了するには、以下が必要です。
+ Amazon Athena ODBC ドライバー ダウンロードリンクについては、「[ODBC で Amazon Athena に接続する](connect-with-odbc.md)」(ODBC を使用して Amazon Athena に接続する) を参照してください。
+ 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="odbc-okta-plugin-creating-an-app-integration-in-okta"></a>

まず、Okta ダッシュボードを使用して、Athena へのシングルサインオン用の SAML 2.0 アプリケーションを作成して設定します。Okta で既存の Redshift アプリケーションを使用して、Athena へのアクセスを設定できます。

**Okta でアプリケーション統合を作成するには**

1. [Okta.com](https://www.okta.com/) で、アカウントの管理ページにログインします。

1. ナビゲーションパネルで、**[Applications]** (アプリケーション) を選択した後、もう一度 **[Applications]** (アプリケーション) を選択します。

1. **[Applications]** (アプリケーション) ページで、**[Browse App Catalog]** (アプリケーションカタログを参照) を選択します。

1. **[Browse App Integration Catalog]** (アプリケーションの統合カタログを表示) ページの **[Use Case]** (ユースケース) セクションで、**[All Integrations]** (すべての統合) を選択します。

1. 検索ボックスに **Amazon Web Services Redshift** と入力してから、**[Amazon Web Services Redshift SAML]** (アマゾン ウェブ サービス Redshift SAML) を選択します。

1. **[Add integration]** (統合の追加) を選択します。  
![\[[Add integration] (統合の追加) を選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-1.png)

1. **[General Settings Required]** (必要な一般設定) セクションの **[Application label]** (アプリケーションラベル) に、アプリケーションの名前を入力します。このチュートリアルでは、**Athena-ODBC-Okta** という名前を使用します。  
![\[Okta アプリケーションの名前を入力します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-2.png)

1. **[Done]** (完了) をクリックします。

1. Okta アプリケーションのページ (たとえば、**[Athena-ODBC-Okta]**) で、**[Sign On]** (サインオン) を選択します。  
![\[[Sign On] (サインオン) タブを選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-3.png)

1. **[Settings]** (設定) セクションで、**[Edit]** (編集) を選択します。  
![\[[編集] を選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-4.png)

1. **[Advanced Sign-on Settings]** (詳細なサインオン設定) セクションで、以下の値を設定します。
   + **[IdP ARN and Role ARN]** (IdP ARN とロール ARN) に、AWS IDP ARN とロール ARN をカンマ区切り値で入力します。IAM ロール形式の詳細については、「IAM ユーザーガイド」の「[認証レスポンスの SAML アサーションを設定する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_assertions.html)」を参照してください。
   + **[Session Duration]** (セッション期間) に、900～43200 秒の値を入力します。このチュートリアルでは、デフォルトの 3600 (1 時間) を使用します。  
![\[サインオン設定の詳細を入力します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-5.png)

   Athena では、**[DbUser Format]** (DbUser 形式)、**[AutoCreate]**、**[Allowed DBGroups]** (許可された DBGroups) の設定は使用されません。ユーザーがこれらを設定する必要はありません。

1. **[保存]** を選択します。

## Okta から ODBC の設定情報を取得する
<a name="odbc-okta-plugin-retrieve-odbc-configuration-information-from-okta"></a>

Okta アプリケーションを作成し、アプリケーションの ID と IdP ホスト URL を取得する準備ができました。これらは、後で Athena への接続用に ODBC を設定するときに必要になります。

**Okta から ODBC の設定情報を取得するには**

1. Okta アプリケーションの **[General]** (一般) タブを選択してから、**[App Embed Link]** (アプリケーション埋め込みリンク) セクションまでスクロールダウンします。  
![\[Okta アプリケーションの埋め込みリンク URL です。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-6.png)

   **[Embed Link]** (埋め込みリンク) の URL の形式は以下のとおりです。

   ```
   https://trial-1234567.okta.com/home/amazon_aws_redshift/Abc1de2fghi3J45kL678/abc1defghij2klmNo3p4
   ```

1. **[Embed Link]** (埋め込みリンク) の URL から、次の部分を抽出して保存します。
   + `https://` に続く最初のセグメント、`okta.com` までです (たとえば、**trial-1234567.okta.com**)。これは IdP ホストです。
   + URL に含まれる最後の 2 つのセグメント、中央のスラッシュを含みます。これら 2 つのセグメントは、数字と大文字と小文字が混在する 20 文字の文字列 2 組です (たとえば、**Abc1de2fghi3J45kL678/abc1defghij2klmNo3p4**)。これはアプリケーション ID です。

## Okta アプリケーションにユーザーを追加します。
<a name="odbc-okta-plugin-add-a-user-to-the-okta-application"></a>

Okta アプリケーションにユーザーを追加する準備ができました。

**Okta アプリケーションにユーザーを追加するには**

1. 左側のナビゲーションペインで、[**ディレクトリ**] 、[**ピープル**] の順に選択します。

1. **[Add Person]** (ユーザーを追加) を選択します。  
![\[[Add Person] (ユーザーを追加) を選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-7.png)

1. **[Add Person]** (ユーザーを追加) ダイアログボックスで、以下の情報を入力します。
   + **[First name]** (名) と **[Last name]** (姓) に値を入力します。このチュートリアルでは、**test user** を使用します。
   + **[Username]** (ユーザー名) と **[Primary email]** (プライマリ E メール) に値を入力します。このチュートリアルでは、両方に **test@amazon.com** を使用します。パスワードのセキュリティ要件はユーザーによって異なる可能性があります。  
![\[ユーザー認証情報を入力します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-8.png)

1. **[保存]** を選択します。

作成したユーザーをアプリケーションに割り当てる準備ができました。

**アプリケーションにユーザーを割り当てるには**

1. ナビゲーションペインで、**[Applications]** (アプリケーション) を選択してから、もう一度 **[Applications]** (アプリケーション) を選択し、アプリケーションの名前を選択します (たとえば、**[Athena-ODBC-Okta]**)。

1. **[Assign]** (割り当て) を選択してから、**[Assign to People]** (ユーザーに割り当て) を選択します。  
![\[[Assign to People] (ユーザーに割り当て) を選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-9.png)

1. ユーザーの **[Assign]** (割り当て) オプションを選択し、**[Done]** (完了) を選択します。  
![\[[Assign] (割り当て) を選択し、[Done] (完了) を選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-10.png)

1. プロンプトで、**[Save and Go Back]** (保存して戻る) を選択します。ダイアログボックスで、ユーザーのステータスが **[Assigned]** (割り当て済み) と表示されます。

1. **[Done]** (完了) をクリックします。

1. **[Sign On]** (サインオン) タブを選択します。

1. **[SAML Signing Certificates]** (SAML 署名証明書) セクションまでスクロールダウンします。

1. **[アクション]** を選択します。

1. **[View IdP metadata]** (IdP メタデータを表示) コンテキストメニューを開き (右クリック)、ファイルを保存するためのブラウザオプションを選択します。

1. 拡張子 (`.xml`) を付けてファイルを保存します。  
![\[IdP メタデータを、ローカルの XML ファイルに保存します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-11.png)

## AWS SAML ID プロバイダとロールを作成する
<a name="odbc-okta-plugin-create-an-aws-saml-identity-provider-and-role"></a>

メタデータ XML ファイルを AWS の IAM コンソールにアップロードする準備ができました。このファイルを使用して、AWS SAML ID プロバイダとロールを作成します。これらの手順を実行するには、AWS のサービスの管理者アカウントを使用します。

**AWS で SAML ID プロバイダとロールを作成するには**

1. AWS マネジメントコンソール にサインインして、[https://console.aws.amazon.com/IAM/](https://console.aws.amazon.com/IAM/) で IAM コンソールを開きます。

1. ナビゲーションペインで、[**Identity providers**] (ID プロバイダ) を選択し、[**Add provider**] (プロバイダを追加) を選択します。  
![\[[プロバイダーを追加] をクリックします。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-12.png)

1. **[Add an Identity provider]** (ID プロバイダ) ページで、**[Configure provider]** (プロバイダの設定) に以下の情報を入力します。
   + [**プロバイダのタイプ**] では [**SAML**] を選択します。
   + **[Provider name]** (プロバイダ名) に、プロバイダの名前を入力します (例: ** AthenaODBCOkta**)。
   + [**メタデータドキュメント**] では、[**ファイルを選択**] オプションを使用して、ダウンロードした ID プロバイダ (IdP) メタデータ XML ファイルをアップロードします。  
![\[ID プロバイダの情報を入力します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-13.png)

1. **[プロバイダーを追加]** をクリックします。

### Athena および Amazon S3 にアクセスするための IAM ロールを作成する
<a name="odbc-okta-plugin-creating-an-iam-role-for-athena-and-amazon-s3-access"></a>

Athena および Amazon S3 にアクセスするための IAM ロールを作成する準備ができました。このロールをユーザーに割り当てます。これにより、ユーザーに Athena へのシングルサインオンアクセスを提供できます。

**ユーザー用の IAM ロールを作成するには**

1. IAM コンソールのナビゲーションペインで、[**Roles**] (ロール)、[**Create role**] (ロールの作成) の順にクリックします。  
![\[[ロールの作成] を選択してください。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-14.png)

1. **[Create role]** (ロールを作成) ページで、次のオプションを選択します。
   + **[Select type of trusted entity]** (信頼されたエンティティのタイプを選択) で、**[SAML 2.0 Federation]** (SAML 2.0 フェデレーション) を選択します。
   + **[SAML 2.0–based provider]** (SAML 2.0 ベースのプロバイダ) で、作成した SAML ID プロバイダを指定します (たとえば、**AthenaODBCOkta**)。
   + **[プログラムによるアクセスとコンソールによるアクセスを許可]** を選択します。  
![\[[Create role] (ロールの作成) ページで、オプションを選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-15.png)

1. [**次へ**] を選択します。

1. **[Add Permissions]** (許可を追加) ページの **[Filter policies]** (ポリシーをフィルタリング) に、**AthenaFull** と入力してから Enter キーを押します。

1. `AmazonAthenaFullAccess` 管理ポリシーを選択してから、**[Next]** (次へ) を選択します。  
![\[AmazonAthenaFullAccess 管理ポリシーを選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-16.png)

1. **[Name, review, and create]** (名前、確認、および作成) ページで、**[Role name]** (ロール名) にロールの名前 (たとえば、**Athena-ODBC-OktaRole**) を入力し、**[Create role]** (ロールを作成) を選択します。

## Athena への Okta ODBC 接続を設定する
<a name="odbc-okta-plugin-configuring-the-okta-odbc-connection-to-athena"></a>

Windows の ODBC データソースプログラムを使用して、Athena への Okta ODBC 接続を設定する準備ができました。

**Athena への Okta ODBC 接続を設定するには**

1. Windows で、**[ODBC Data Sources]** (ODBC データソース) プログラムを起動します。

1. **[ODBC Data Source Administrator]** (ODBC データソースの管理者) プログラムで、**[Add]** (追加) をクリックします。  
![\[[Add] (追加) を選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-17.png)

1. **[Simba Athena ODBC Driver]** (Simba Athena ODBC ドライバー) を選択し、**[Finish]** (完了) をクリックします。  
![\[Athena の ODBC ドライバーを選択します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-18.png)

1. 左**[Simba Athena ODBC Driver DSN Setup]** (Simba Athena ODBC ドライバーの DSN セットアップ) ダイアログで、以下に記述されている値を入力します。
   + **[Data Source Name]** (データソース名) に、使用するデータソースの名前 (例えば、**Athena ODBC 64**) を入力します。
   + **[Description]** (説明) に、データソースの説明を入力します。
   + **[AWS リージョン]** に、使用している AWS リージョン (たとえば、**us-west-1**) を入力します。
   + **[S3 Output Location]** (S3 出力場所) には、出力を保存する先の Amazon S3 パスを入力します。  
![\[データソース名の設定で、値を入力します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-19.png)

1. **[Authentication Options]** (認証オプション) をクリックします。

1. **[Authentication Options]** (認証オプション) ダイアログボックスで、以下の値を選択または入力します。
   + **[Authentication Type]** (認証タイプ) で、**[Okta]** を選択します。
   + **ユーザー**には、Okta ユーザー名を入力します。
   + **パスワード**には、Okta パスワードを入力します。
   + **[IdP Host]** (IdP ホスト) に、以前記録した値を入力します (たとえば、**trial-1234567.okta.com**)。
   + **[IdP Port]** (IdP ポート) に、**443** と入力します。
   + **[App ID]** (アプリケーション ID) に、以前記録した値 (Okta 埋め込みリンクに含まれる最後の 2 つのセグメント) を入力します。
   + **[Okta App Name]** (Okta アプリケーション名) に、**amazon\$1aws\$1redshift** と入力します。  
![\[認証オプションを入力します。\]](http://docs.aws.amazon.com/ja_jp/athena/latest/ug/images/odbc-okta-plugin-20.png)

1. [**OK**] を選択してください。

1. 接続をテストするには **[Test]** (テスト) を、終了するには **[OK]** を選択します。