---
schema_version: "1"
id: 1b84e8656e06d07dfd2161c9030c76a2fc0d8c2da2bd3dc083704dfd9903e13d
title: ตั้งค่า Amazon RedShift IAM OAuth
collection: tableau
version: next
locale: th-th
portal_url: https://docs.salesforce.com/tableau/next/th-th/online/config_oauth_redshift_iam.md
canonical_url: https://help.tableau.com/v0.0/online/th-th/config_oauth_redshift_iam.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 741fec1690150962297a802ce0d10298e68e4d8358ebee56ba0fe76a53c8a159
description: Set up Amazon Redshift IAM OAuth identity federation from an external IdP for Tableau.
---
[ข้ามไปยังเนื้อหาหลัก](#main-content)

# ตั้งค่า Amazon RedShift IAM OAuth

คำแนะนำเหล่านี้มีไว้สำหรับบริการ AWS IAM รุ่นเก่า สำหรับการผสานรวม IAM IDC โปรดดู[ตั้งค่า OAuth ของ Amazon RedShift IAM Identity Center](https://help.tableau.com/v0.0/online/th-th/config_oauth_redshift_iam_idc.htm)

มีขั้นตอนต่างๆ ที่จำเป็นในการกำหนดค่าการผสานรวม ทั้งนี้ขึ้นอยู่กับผู้ให้บริการข้อมูลประจำตัว นี่คือภาพรวมระดับสูง Tableau ไม่สามารถให้คำแนะนำโดยละเอียดเกี่ยวกับวิธีกำหนดค่า AWS หรือ IDP ได้ แต่วิธีการทั่วไปจะอธิบายไว้ด้านล่างนี้

**หมายเหตุ**: ไม่รองรับโทเค็นการรีเฟรชแบบใช้ครั้งเดียว (บางครั้งเรียกว่าโทเค็นการรีเฟรชแบบหมุนเวียนหรือการหมุนเวียนโทเค็นการรีเฟรช) สำหรับการเชื่อมต่อ OAuth โดยใช้ Tableau Bridge ไปยัง Tableau Cloud มีการวางแผนที่จะรองรับโทเค็นเหล่านี้สำหรับการเปิดตัวในอนาคต

## ขั้นตอนที่ 1: กำหนดค่า IDP

1. สร้างไคลเอ็นต์ OAuth บน IDP สำหรับ Tableau Desktop และ Tableau Server หรือ Tableau Cloud ไคลเอ็นต์ Desktop ควรเปิดใช้งาน `PKCE` และใช้การเปลี่ยนเส้นทาง `http://localhost`
2. เพิ่มการอ้างสิทธิ์ที่กำหนดเองเพื่อใช้การให้สิทธิ์บทบาท โดยเฉพาะอย่างยิ่ง หากคุณใช้ IAM ดั้งเดิม คุณอาจต้องเพิ่มการอ้างสิทธิ์สำหรับ `DbUser` และ `DbGroups` สิ่งเหล่านี้สามารถนำมาใช้ในนโยบาย IAM ของคุณในภายหลังได้
3. สร้างไฟล์การกำหนดค่า Tableau OAuth ดูเอกสารประกอบได้ที่ [GitHub](https://tableau.github.io/connector-plugin-sdk/docs/oauth "เอกสาร OAuth บน GitHub") และตัวอย่าง[ที่นี่](https://github.com/tableau/connector-plugin-sdk/tree/master/samples/components/oauth "ตัวอย่าง OAuth บน GitHub") เรายินดีรับตัวอย่างสำหรับ IDP อื่นๆ
    
    1. อย่าลืมใส่ ID การกำหนดค่า Tableau OAuth นำหน้าด้วย “`custom_`”
        
        **หมายเหตุ:** ID การกำหนดค่า OAuth มีขีดจำกัดอักขระสูงสุด 36 ตัว ID ที่ยาวกว่านี้อาจไม่สร้างข้อผิดพลาด แต่จะใช้งานไม่ได้
    2. หาก IDP ของคุณรองรับพอร์ต localhost แบบไดนามิก ให้ปิดใช้งาน `OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL` หาก IDP ของคุณไม่รองรับสิ่งนี้ ตรวจสอบว่าได้เพิ่ม URL การเรียกกลับ localhost หลายรายการในรายการที่อนุญาตในไฟล์การกำหนดค่าและบน IDP
4. ติดตั้งไฟล์การกำหนดค่า Tableau OAuth ใหม่ในโฟลเดอร์ `OAuthConfigs` ที่เชื่อมโยงกับแต่ละแอปพลิเคชันบนโฮสต์เดสก์ท็อป (Tableau Desktop, Tableau Prep Builder, Tableau Bridge) และบน Tableau Server และไซต์ Tableau Cloud แต่ละไซต์ที่จะใช้ OAuth

## กำหนดค่า IDP บน AWS

1\. สร้างโมเดล IDP บน AWS ดูเอกสารของ Amazon หัวข้อ[การรวมศูนย์ข้อมูลประจำตัวของเว็บ](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc.html "เอกสาร AWS เกี่ยวกับการรวมศูนย์ข้อมูลประจำตัวของเว็บ")และ[สร้างผู้ให้บริการข้อมูลประจำตัว OIDC](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_oidc.html "เอกสาร AWS เกี่ยวกับการสร้างผู้ให้บริการข้อมูลประจำตัว OIDC")

2\. สร้างบทบาทและนโยบายสำหรับ IDP โดยเฉพาะ ดู[สร้างบทบาทสำหรับ OIDC](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_oidc.html "เอกสาร AWS สำหรับการสร้างบทบาทสำหรับ OIDC") บนเอกสาร AWS

## กำหนดค่าบทบาทสำหรับผู้ใช้ RedShift

แนบนโยบายที่จำเป็นสำหรับ Redshift คุณสามารถใช้การอ้างสิทธิ์ที่กำหนดเองจากโทเค็นเพื่อให้สิทธิ์บทบาทได้ มีตัวอย่าง SAML อยู่หลายตัวอย่างใน[เอกสารประกอบของ AWS](https://docs.aws.amazon.com/redshift/latest/mgmt/options-for-providing-iam-credentials.html "เอกสาร AWS สำหรับการจัดสรรข้อมูลประจำตัว IAM") โดยสามารถปรับให้เข้ากับ OAuth ได้อย่างง่ายดาย ในกรณีของ OAuth การอ้างสิทธิ์เป็นเพียง “`DbUser`”, “`DbGroups`” เป็นต้น

ต่อไปนี้คือตัวอย่างนโยบายจากเอกสาร AWS:

{  
"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:12345:dbuser:cluster-identifier/${redshift:DbUser}"  
    },  
    {  
        "Effect": "Allow",  
        "Action": "redshift:JoinGroup",  
        "Resource": "arn:aws:redshift:us-west-1:12345:dbgroup:cluster-identifier/my\_dbgroup"  
    },  
    {  
        "Effect": "Allow",  
        "Action": \[  
            "redshift:DescribeClusters",  
            "iam:ListRoles"  
        \],  
        "Resource": "\*"  
    }  
\]  
}

## เชื่อมต่อกับ Redshift

ผู้ใช้ต้องระบุบทบาท ARN ที่จะรับและเลือกการกำหนดค่า OAuth ที่ติดตั้งไว้ก่อนหน้านี้

![](/tableau/next/th-th/online/th-th/Img/redshift_oauth__iam_connect.png)

เมื่อกำหนดค่าไว้อย่างถูกต้อง ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปยัง IDP เพื่อตรวจสอบสิทธิ์และให้สิทธิ์โทเค็นสำหรับ Tableau Tableau จะได้รับโทเค็น openid และการรีเฟรช AWS สามารถตรวจสอบโทเค็นและลายเซ็นจาก IDP, แยกข้อมูลการอ้างสิทธิ์จากโทเค็น, ค้นหาการแมปของการอ้างสิทธิ์กับบทบาท IAM และอนุญาตหรือบล็อก Tableau จากการรับบทบาทในนามของผู้ใช้ (กล่าวอีกนัยหนึ่งคือ[AssumeRoleWithWebIdentity](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html "เอกสาร AWS สำหรับ AssumeRoleWithWebIdentity"))

## โทเค็น

ตามค่าเริ่มต้น Redshift OAuth IAM จะส่งโทเค็น ID ไปยังไดรเวอร์ สำหรับลูกค้าในองค์กร รวมถึงลูกค้าที่ใช้ Tableau Bridge คุณสามารถใช้ไฟล์ TDC เพื่อส่งโทเค็นการเข้าถึงแทนได้

<connection-customization class='redshift' enabled='true' version='10.0'>
	<vendor name='redshift' />
	<driver name='redshift' />
	<customizations>
		<customization name='CAP\_OAUTH\_FEDERATE\_ACCESS\_TOKEN' value='yes'/>
	</customizations>
</connection-customization>
		

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าและการติดตั้งไฟล์ .tdc โปรดดู[ปรับแต่งและปรับตั้งการเชื่อมต่อ](https://help.tableau.com/current/pro/desktop/th-th/connect_customize.htm)และ[การใช้ไฟล์ .tdc กับ Tableau Server](https://help.salesforce.com/s/articleView?id=001458291&type=1)

## เกี่ยวกับการรวมศูนย์กลุ่ม

เมื่อใช้การตรวจสอบสิทธิ์ OAuth กับบทบาท IAM คุณสามารถเลือกได้ว่าจะใช้การรวมศูนย์กลุ่มหรือไม่ การเปลี่ยนแปลงนี้จะทำให้ตัวเชื่อมต่อโต้ตอบกับ API การตรวจสอบสิทธิ์เพื่อเชื่อมต่อกับ Redshift:

- เมื่อเลือกช่อง “การรวมศูนย์กลุ่ม” (พร้อมใช้งานในเวอร์ชัน 2025.1 ขึ้นไป) ขณะเชื่อมต่อ ไดรเวอร์ Redshift จะใช้ API สำหรับ[`getClusterCredentialsWithIAM`](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentialsWithIAM.html) เพื่อรับข้อมูลเข้าสู่ระบบในคลัสเตอร์ที่จัดสรรไว้
- เมื่อไม่ได้เลือกช่อง “การรวมศูนย์กลุ่ม” จะใช้ API สำหรับ [`getClusterCredentials`](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html) แทน

API ทั้งสองนี้จะส่งคืนโทเค็น IAM ที่มีพร็อพเพอร์ตี้ที่แตกต่างกันเล็กน้อย หากต้องการข้อมูลเพิ่มเติม โปรดดูเอกสาร AWS API ที่เชื่อมโยงด้านบนและ[ตัวเลือกไดรเวอร์ ODBC](https://docs.aws.amazon.com/redshift/latest/mgmt/odbc20-configuration-options.html "ข้อมูลเกี่ยวกับการกำหนดค่า ODBC 2.0 ด้วย AWS")

#### หมายเหตุการใช้งาน

- สำหรับ Tableau Desktop และ Tableau Prep Builder ก่อนเวอร์ชัน 2024.3 สามารถตั้งค่าได้ในฟิลด์การกำหนดค่าไดรเวอร์ขั้นสูงโดยใช้ 'group\_federation=1' นอกจากนี้ยังสามารถกำหนดค่าได้โดยใช้ไฟล์ TDC เพื่อกำหนดพร็อพเพอร์ตี้การเชื่อมต่อที่กำหนดเอง หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการใช้ TDC โปรดดู[ปรับแต่งและปรับตั้งการเชื่อมต่อ](https://help.tableau.com/current/pro/desktop/th-th/connect_customize.htm)
- ตั้งแต่เวอร์ชัน 2024.3 เป็นต้นไป จะมีฟิลด์ group\_federation ในกล่องโต้ตอบการเชื่อมต่อสำหรับภายในองค์กร (Tableau Desktop, Tableau Prep Builder และ Tableau Server) ฟีเจอร์นี้จะพร้อมใช้งานใน Tableau Cloud ตั้งแต่ 2025.1 เป็นต้นไป (พร้อมใช้งานในเดือนกุมภาพันธ์ 2025)
- หากต้องการใช้การรวมศูนย์กลุ่มกับ Tableau Server จะต้องเพิ่ม group\_federation ลงในรายการอนุญาตพิเศษ ODBC หากต้องการข้อมูลเพิ่มเติม โปรดดู[ปรับแต่งสตริงการเชื่อมต่อสำหรับตัวเชื่อมต่อเนทีฟ](https://help.tableau.com/current/pro/desktop/th-th/connect_string_custom.htm)

## Okta

หากใช้ Okta ควรใช้ “เซิร์ฟเวอร์การให้สิทธิ์ที่กำหนดเอง” แทนที่จะเป็น “เซิร์ฟเวอร์การให้สิทธิ์ขององค์กร” เซิร์ฟเวอร์การให้สิทธิ์ที่กำหนดเองมีความยืดหยุ่นมากกว่า มีเซิร์ฟเวอร์การให้สิทธิ์ที่กำหนดเองที่สร้างขึ้นตามค่าเริ่มต้น ซึ่งเรียกว่า “ค่าเริ่มต้น” URL การให้สิทธิ์ควรมีลักษณะดังนี้

https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize

![](/tableau/next/th-th/online/th-th/Img/redshift_oauth_iam_okta_800x332.png)

## อัปเดตไดรเวอร์

สำหรับ Redshift OAuth ที่ใช้บริการ IAM ดั้งเดิม คุณสามารถใช้อย่างใดอย่างหนึ่งต่อไปนี้

- ไดรเวอร์ Redshift ODBC v1 ตั้งแต่เวอร์ชัน 1.59 เป็นต้นไป ซึ่งสามารถดาวน์โหลดได้จาก [https://docs.aws.amazon.com/redshift/latest/mgmt/configure-odbc-connection.html](https://docs.aws.amazon.com/redshift/latest/mgmt/configure-odbc-connection.html "ดาวน์โหลดไดรเวอร์ Redshift ODBC V1 จาก Amazon")
- ไดรเวอร์ Redshift ODBC v2 ตั้งแต่เวอร์ชัน 2.0.1.0 เป็นต้นไป ซึ่งสามารถดาวน์โหลดได้จาก [https://github.com/aws/amazon-redshift-odbc-driver/tags](https://github.com/aws/amazon-redshift-odbc-driver/tags "ดาวน์โหลดไดรเวอร์ Redshift ODBC V2 จาก Amazon") โปรดทราบว่าไม่มีไดรเวอร์ v2 สำหรับ OSX

## การแก้ปัญหา

วิธีที่ดีที่สุดในการวินิจฉัยข้อผิดพลาดเหล่านี้คือการลบ Tableau ออกจากรูปภาพ คุณสามารถทดสอบโดยใช้ตัวจัดการไดรเวอร์หรือเครื่องมือที่คล้ายกันแทนได้ นี่เป็นเพียงเพื่อการแก้ปัญหา - คุณไม่ควรใช้ DSN หรือตัวเชื่อมต่อ “ODBC อื่น” สำหรับการใช้งานฟีเจอร์นี้ปกติ เพื่อช่วยให้แน่ใจว่าการทดสอบถูกต้อง พารามิเตอร์ควรจะเหมือนกับที่แสดงด้านล่าง ยกเว้นข้อมูลคลัสเตอร์ ฐานข้อมูล โทเค็น และเนมสเปซ

**หมายเหตุ:** อย่าระบุ DbUser หรือ DbGroups ในสตริงการเชื่อมต่อของ DSN ขณะทําการทดสอบ เนื่องจาก Tableau ไม่มีสิทธิ์เข้าถึงสตริงเหล่านี้และไม่สามารถรวมไว้ในสตริงการเชื่อมต่อได้ คุณสามารถรวมไว้ในการอ้างสิทธิ์โทเค็นได้

หากคุณเห็นข้อความแสดงข้อผิดพลาดเกี่ยวกับโทเค็นที่ไม่ถูกต้อง/หมดอายุจากไดรเวอร์ในการเชื่อมต่อครั้งแรก (จะมีรหัสข้อผิดพลาด SQLState เช่น \[28000\] หรือ \[08001\] ในข้อความแสดงข้อผิดพลาด) แสดงว่า Tableau ได้ดำเนินการโฟลว์ OAuth เสร็จสมบูรณ์แล้ว และล้มเหลวในไดรเวอร์ ซึ่งหมายความว่ามีการกำหนดค่าที่ไม่ถูกต้องทั้งในฝั่ง AWS หรือฝั่ง IDP อาจมีข้อผิดพลาดการอนุญาตหรือการให้สิทธิ์ที่แสดงจากไดรเวอร์ ซึ่งอยู่นอกเหนือการควบคุมของ Tableau เช่นกัน

ก่อนที่จะเริ่มทดสอบ คุณต้องได้รับโทเค็นการเข้าถึง (ค่าเริ่มต้นสำหรับ IAM IDC) หรือโทเค็นรีเฟรช (หากกำหนดเอง) เพื่อส่งไปยังไดรเวอร์

ต่อไปนี้คือตัวอย่างกับ Okta IDP เกือบทั้งหมดมีวิธีดำเนินการเช่นนี้ซึ่งค่อนข้างคล้ายกัน โปรดทราบว่าในการใช้โฟลว์นี้ คุณต้องเปิดใช้งานประเภทการให้สิทธิ์รหัสผ่านสำหรับเจ้าของแหล่งข้อมูล แทนที่ IDP URL, ข้อมูลลับไคลเอ็นต์, ID ไคลเอ็นต์, ชื่อผู้ใช้ และรหัสผ่าน

curl -X POST "https://OKTA\_URL/v1/token" \\  
\-H 'accept: application/json' \\  
\-H "Authorization: Basic $(echo -n 'CLIENTID:CLIENTSECRET' | base64)" \\  
\-H "Content-Type: application/x-www-form-urlencoded" \\  
\-d "grant\_type=password&username=USER&password=PASSWORD&scope=openid"

เมื่อคุณมีโทเค็นแล้ว คุณสามารถใช้ DSN เพื่อทดสอบได้ สำหรับ Windows คุณสามารถใช้ UI ตัวจัดการไดรเวอร์ iODBC ได้ สำหรับ Mac คุณสามารถใช้ UI ตัวจัดการไดรเวอร์ iODBC ได้ สำหรับ Linux คุณสามารถใช้เครื่องมือบรรทัดคำสั่ง isql ที่มาพร้อมกับ Tableau Server ในโฟลเดอร์ customer-bin ได้

ปลั๊กอินที่ใช้โปรไฟล์ AWS แบบคงที่จะไม่ทํางานเว้นแต่คุณต้องการใช้โปรไฟล์เดียวกันสําหรับผู้ใช้ทั้งหมดสําหรับการเชื่อมต่อนั้น ปลั๊กอิน OAuth อื่นๆ กำหนดให้มีสิทธิ์เข้าถึงโดยตรงไปยังเบราว์เซอร์ระบบ ซึ่งไม่ทํางานบนฝั่งเซิร์ฟเวอร์

ด้านล่างนี้เป็นตัวอย่างการใช้ตัวจัดการไดรเวอร์ ODBC บน Windows

![](/tableau/next/th-th/online/th-th/Img/redshift_oauth_iam_troubleshoot.jpg)