ตั้งค่า OAuth ของ Amazon RedShift IAM Identity Center
เริ่มตั้งแต่ Tableau 2023.3.2 เป็นต้นไป คุณสามารถใช้ OAuth 2.0/OIDC เพื่อรวบรวมข้อมูลประจำตัวจากผู้ให้บริการข้อมูลประจำตัวภายนอกไปยัง Amazon Redshift
คำแนะนำเหล่านี้มีไว้สำหรับบริการ AWS IAM IDC รุ่นใหม่ สำหรับการผสานรวม IAM ดั้งเดิม โปรดดูตั้งค่า Amazon RedShift IAM OAuth
มีขั้นตอนต่างๆ ที่จำเป็นในการกำหนดค่าการผสานรวม ทั้งนี้ขึ้นอยู่กับผู้ให้บริการข้อมูลประจำตัว นี่คือภาพรวมระดับสูง Tableau ไม่สามารถให้คำแนะนำโดยละเอียดเกี่ยวกับวิธีกำหนดค่า AWS หรือ IDP ได้ แต่นี่เป็นแนวทางทั่วไป
สำหรับตัวอย่างโดยละเอียดเกี่ยวกับการใช้งานการตรวจสอบสิทธิ์ด้วย Redshift โปรดดู “ผสานรวม Tableau และ Okta กับ Amazon Redshift โดยใช้ AWS IAM Identity Center(ลิงก์จะเปิดในหน้าต่างใหม่)” และ “ผสานรวม Tableau และ Microsoft Entra ID กับ Amazon Redshift โดยใช้ AWS IAM Identity Center(ลิงก์จะเปิดในหน้าต่างใหม่)”
หมายเหตุ: ไม่รองรับโทเค็นการรีเฟรชแบบใช้ครั้งเดียว (บางครั้งเรียกว่าโทเค็นการรีเฟรชแบบหมุนเวียนหรือการหมุนเวียนโทเค็นการรีเฟรช) สำหรับการเชื่อมต่อ OAuth กับ Tableau ในขณะนี้ มีการวางแผนที่จะรองรับโทเค็นเหล่านี้สำหรับการเปิดตัวในอนาคต
ขั้นตอนที่ 1: กำหนดค่า IDP
สร้างไคลเอ็นต์ OAuth บน IDP สำหรับ Tableau Desktop และ Tableau Server หรือ Tableau Cloud ไคลเอ็นต์ Desktop ควรเปิดใช้งาน
PKCE
และใช้การเปลี่ยนเส้นทางhttp://localhost
เพิ่มการอ้างสิทธิ์ที่กำหนดเองที่จำเป็นใดๆ เพื่อใช้สำหรับการให้สิทธิ์บทบาท
สร้างไฟล์การกำหนดค่า Tableau OAuth ดูเอกสารประกอบได้ที่ GitHub(ลิงก์จะเปิดในหน้าต่างใหม่) และตัวอย่าง(ลิงก์จะเปิดในหน้าต่างใหม่) เรายินดีรับตัวอย่างสำหรับ IDP อื่นๆ
อย่าลืมใส่ ID การกำหนดค่า Tableau OAuth นำหน้าด้วย “
custom_
”หาก IDP ของคุณรองรับพอร์ต localhost แบบไดนามิก ให้ปิดใช้งาน
OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL
หากไม่เป็นเช่นนั้น อย่าลืมเพิ่ม URL การเรียกกลับ localhost หลายรายการลงในรายการที่อนุญาตในไฟล์การกำหนดค่าและใน IDP
ติดตั้งไฟล์การกำหนดค่า Tableau OAuth ใหม่ในโฟลเดอร์
OAuthConfigs
ที่เชื่อมโยงกับแต่ละแอปพลิเคชันบนโฮสต์เดสก์ท็อป (Tableau Desktop, Tableau Prep Builder, Tableau Bridge) และบน Tableau Server และไซต์ Tableau Cloud แต่ละไซต์ที่จะใช้ OAuth
ขั้นตอนที่ 2: กำหนดค่า IDP และบทบาทบน AWS
ดูเอกสารประกอบ AWS ของคุณสำหรับข้อมูลเกี่ยวกับการดำเนินการนี้
ขั้นตอนที่ 3 - เชื่อมต่อ Redshift
เชื่อมต่อกับ Redshift
เลือก OAuth สำหรับการตรวจสอบสิทธิ์
เลือกศูนย์ข้อมูลประจำตัวสำหรับประเภทการรวมศูนย์
(ไม่บังคับ) ระบุเนมสเปซศูนย์ข้อมูลประจำตัวในกรณีที่จำเป็น
เมื่อกำหนดค่าไว้อย่างถูกต้อง ระบบจะเปลี่ยนเส้นทางคุณไปยัง IDP เพื่อตรวจสอบสิทธิ์และให้สิทธิ์โทเค็นสำหรับ Tableau Tableau จะได้รับโทเค็นการเข้าถึงและโทเค็นการรีเฟรช ซึ่งจะส่งโทเค็นการเข้าถึงไปยังไดรเวอร์สำหรับการตรวจสอบสิทธิ์
โทเค็น
ตามค่าเริ่มต้น Redshift OAuth ไปยัง IAM IDC จะส่งโทเค็นการเข้าถึงไปยังไดรเวอร์ สำหรับลูกค้าในองค์กร รวมถึงลูกค้าที่ใช้ Tableau Bridge คุณสามารถใช้ไฟล์ TDC เพื่อส่ง ID โทเค็นแทนได้
<connection-customization class='redshift' enabled='true' version='10.0'> <vendor name='redshift' /> <driver name='redshift' /> <customizations> <customization name='CAP_OAUTH_FEDERATE_ID_TOKEN' value='yes'/> </customizations> </connection-customization>
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับการกำหนดค่าและการติดตั้งไฟล์ .tdc โปรดดูปรับแต่งและปรับตั้งการเชื่อมต่อ(ลิงก์จะเปิดในหน้าต่างใหม่)และการใช้ไฟล์ .tdc กับ Tableau Server(ลิงก์จะเปิดในหน้าต่างใหม่)
Okta
หากคุณใช้ Okta ควรใช้ “เซิร์ฟเวอร์การให้สิทธิ์ที่กำหนดเอง” แทน “เซิร์ฟเวอร์การให้สิทธิ์ขององค์กร” เซิร์ฟเวอร์การให้สิทธิ์ที่กำหนดเองมีความยืดหยุ่นมากกว่า เซิร์ฟเวอร์การให้สิทธิ์ที่กำหนดเองสร้างขึ้นตามค่าเริ่มต้นและเรียกว่า “ค่าเริ่มต้น” URL การให้สิทธิ์ควรมีลักษณะดังนี้
https://${yourOktaDomain}/oauth2/{authServerName}/v1/authorize
อัปเดตไดรเวอร์
สำหรับ Redshift OAuth ที่ใช้บริการ IAM IDC คุณต้องใช้ไดรเวอร์ ODBC เวอร์ชัน 2.x ขึ้นไป ดาวน์โหลดไดรเวอร์ Redshift ODBC เวอร์ชันล่าสุดใน https://github.com/aws/amazon-redshift-odbc-driver/tags(ลิงก์จะเปิดในหน้าต่างใหม่) โปรดทราบว่ายังไม่มีไดรเวอร์ v2 สำหรับ OSX
การแก้ปัญหา Oauth ของ Redshift IAM IDC
วิธีที่ดีที่สุดในการวินิจฉัยข้อผิดพลาดเหล่านี้คือการลบ Tableau ออกจากรูปภาพ คุณสามารถทดสอบโดยใช้ตัวจัดการไดรเวอร์หรือเครื่องมือที่คล้ายกันแทนได้ นี่เป็นเพียงเพื่อการแก้ปัญหา - คุณไม่ควรใช้ DSN หรือตัวเชื่อมต่อ “ODBC อื่น” สำหรับการใช้งานฟีเจอร์นี้ปกติ เพื่อช่วยให้แน่ใจว่าการทดสอบถูกต้อง พารามิเตอร์ควรจะเหมือนกับที่แสดงด้านล่าง ยกเว้นข้อมูลคลัสเตอร์ ฐานข้อมูล โทเค็น และเนมสเปซ
หากคุณเห็นข้อความแสดงข้อผิดพลาดเกี่ยวกับโทเค็นที่ไม่ถูกต้อง/หมดอายุจากไดรเวอร์ในการเชื่อมต่อครั้งแรก (จะมีรหัสข้อผิดพลาด 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 ได้ สำหรับ Linux คุณสามารถใช้เครื่องมือบรรทัดคำสั่ง isql ที่มาพร้อมกับ Tableau Server ในโฟลเดอร์ customer-bin ได้
Tableau ขอแนะนำไม่ใช้ปลั๊กอินอื่นในการทดสอบ เนื่องจากปลั๊กอินเหล่านั้นอาจไม่ทำงานในสภาพแวดล้อมเซิร์ฟเวอร์ ซึ่งใช้โปรไฟล์ AWS แบบคงที่หรือต้องมีการเข้าถึงเบราว์เซอร์โดยตรง
ด้านล่างนี้เป็นตัวอย่างการใช้ตัวจัดการไดรเวอร์ ODBC บน Windows