ตั้งค่า OAuth ของ Amazon RedShift IAM Identity Center

สำคัญ: ไดรเวอร์ Redshift ODBC ที่ใช้งานกับ Tableau Cloud ในปัจจุบันไม่รองรับ OAuth ไดรเวอร์รุ่นถัดไปจาก Amazon ซึ่งจะรวมการแก้ไข มีกำหนดปล่อยในต้นเดือนเมษายน ซึ่งจะนำไปใช้กับ Tableau Cloud ในหลายสัปดาห์ให้หลัง

จนกว่าจะถึงตอนนั้น หากคุณต้องการใช้ IAM IDC OAuth สำหรับ Redshift บน Tableau Cloud คุณสามารถใช้ไดรเวอร์เวอร์ชัน 2.x ล่าสุดกับ Tableau Bridge ได้ โดยมีข้อจำกัดดังต่อไปนี้:

  • ไดรเวอร์รุ่นสำหรับ Linux จะรองรับเฉพาะอักขระ ASCII ในการค้นหา สคีมา และชื่อตาราง

  • ไดรเวอร์ 2.x ทั้งรุ่นสำหรับ Linux และ Windows จะไม่ทำงานร่วมกับพร็อกซี HTTP

  • ทั้งรุ่นสำหรับ Linux และ Windows จะมีปัญหาในการค้นหาค้นข้อมูลเชิงพื้นที่

ตั้งแต่ Tableau 2023.3.2 เป็นต้นไปสำหรับภายในองค์กร (Tableau Desktop, Tableau Server และ Tableau Prep) และเมษายน 2024 สำหรับ Tableau Cloud คุณสามารถใช้ OAuth 2.0/OIDC เพื่อรวมข้อมูลประจำตัวจากผู้ให้บริการข้อมูลประจำตัวภายนอกไปยัง Amazon Redshift ได้ Tableau Bridge สามารถใช้เป็นวิธีแก้ปัญหาบน Tableau Cloud ได้จนกว่าไดรเวอร์จะพร้อมใช้งาน หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ Bridge โปรดดูใช้ Bridge เพื่อรักษาข้อมูลให้เป็นปัจจุบันเสมอ

หมายเหตุ: ฟีเจอร์นี้ไม่พร้อมใช้งานสำหรับ OSX เนื่องจากข้อจำกัดของไดรเวอร์

คำแนะนำเหล่านี้มีไว้สำหรับบริการ AWS IAM IDC รุ่นใหม่ สำหรับการผสานรวม IAM ดั้งเดิม โปรดดูตั้งค่า Amazon RedShift IAM OAuth

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

กำหนดค่า IdP

  1. สร้างไคลเอ็นต์ OAuth บน IDP สำหรับ Tableau Desktop และ Tableau Server หรือ Tableau Cloud ไคลเอ็นต์ Desktop ควรเปิดใช้งาน PKCE และใช้การเปลี่ยนเส้นทาง http://localhost

  2. เพิ่มการอ้างสิทธิ์ที่กำหนดเองที่จำเป็นใดๆ เพื่อใช้สำหรับการให้สิทธิ์บทบาท

  3. สร้างไฟล์การกำหนดค่า Tableau OAuth ดูเอกสารประกอบได้ที่ GitHub(ลิงก์จะเปิดในหน้าต่างใหม่) และตัวอย่าง(ลิงก์จะเปิดในหน้าต่างใหม่) เรายินดีรับตัวอย่างสำหรับ IDP อื่นๆ

    1. อย่าลืมใส่ ID การกำหนดค่า Tableau OAuth นำหน้าด้วย “custom_

    2. หาก IDP ของคุณรองรับพอร์ต localhost แบบไดนามิก ให้ปิดใช้งาน OAUTH_CAP_FIXED_PORT_IN_CALLBACK_URL หากไม่เป็นเช่นนั้น อย่าลืมเพิ่ม URL การเรียกกลับ localhost หลายรายการลงในรายการที่อนุญาตในไฟล์การกำหนดค่าและใน IDP

  4. ติดตั้งไฟล์การกำหนดค่า Tableau OAuth บนเครื่องเดสก์ท็อปและไซต์ Tableau Server หรือ Tableau Cloud

ขั้นตอนที่ 2: กำหนดค่า IDP และบทบาทบน AWS

ดูเอกสารประกอบ AWS ของคุณสำหรับข้อมูลเกี่ยวกับการดำเนินการนี้

ขั้นตอนที่ 3 - เชื่อมต่อ Redshift

  1. เชื่อมต่อกับ Redshift

  2. เลือก OAuth สำหรับการตรวจสอบสิทธิ์

  3. เลือกศูนย์ข้อมูลประจำตัวสำหรับประเภทการรวมศูนย์

  4. (ไม่บังคับ) ระบุเนมสเปซศูนย์ข้อมูลประจำตัวในกรณีที่จำเป็น

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

Okta

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

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

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

สำหรับ Redshift OAuth ที่ใช้บริการ IAM IDC คุณต้องใช้ไดรเวอร์ Redshift ODBC ตั้งแต่เวอร์ชัน 2.0.1.0 เป็นต้นไป ซึ่งสามารถดาวน์โหลดได้จาก https://github.com/aws/amazon-redshift-odbc-driver/tags(ลิงก์จะเปิดในหน้าต่างใหม่) โปรดทราบว่าไม่มีไดรเวอร์ v2 สำหรับ OSX

การแก้ปัญหา Oauth ของ Redshift IAM IDC

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

วิธีที่ดีที่สุดในการวินิจฉัยข้อผิดพลาดเหล่านี้คือการลบ 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 เพื่อทดสอบได้ ด้านล่างนี้เป็นตัวอย่างการใช้ตัวจัดการไดรเวอร์ ODBC บน Windows สำหรับ Mac คุณสามารถใช้ UI ตัวจัดการไดรเวอร์ iODBC ได้ สำหรับ Linux คุณสามารถใช้เครื่องมือบรรทัดคำสั่ง isql ที่มาพร้อมกับ Tableau Server ในโฟลเดอร์ customer-bin ได้

ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ