---
schema_version: "1"
id: 9f718f342612b27ef37b81ee5820061d47ce2c38632ca21540fb0d99d19e98bd
title: "กำหนดค่า OAuth ภายนอกสำหรับ Snowflake: โฟลว์ข้อมูลเข้าสู่ระบบไคลเอ็นต์"
collection: tableau
version: next
locale: th-th
portal_url: https://docs.salesforce.com/tableau/next/th-th/pro/desktop/config_oauth_snowflake_client_creds.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/th-th/config_oauth_snowflake_client_creds.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 46cc8c25ee8a1c5ef6cffedf003412ea411894afeb1c21f1df42934e105065a2
description: Configure Azure AD OAuth and modern authentication for Azure and Microsoft connectors in Tableau Server.
---
[ข้ามไปยังเนื้อหาหลัก](#main-content)

# กำหนดค่า OAuth ภายนอกสำหรับ Snowflake: โฟลว์ข้อมูลเข้าสู่ระบบไคลเอ็นต์

การตรวจสอบสิทธิ์ของข้อมูลเข้าสู่ระบบไคลเอ็นต์ OAuth จะเปิดใช้งานการเชื่อมต่อระหว่างเครื่องกับ Snowflake

โดยไม่มีการโต้ตอบกับผู้ใช้ วิธีนี้เหมาะสำหรับ:

- บัญชีบริการสำหรับการรีเฟรชข้อมูลอัตโนมัติ
- งานการแยกข้อมูลที่มีการกำหนดเวลา
- ไปป์ไลน์ CI/CD
- แหล่งข้อมูลที่เผยแพร่ซึ่งต้องใช้ข้อมูลเข้าสู่ระบบแบบฝัง

โฟลว์นี้ต่างจาก OAuth มาตรฐาน (ซึ่งใช้โฟลว์รหัสการให้สิทธิ์) โฟลว์ข้อมูลเข้าสู่ระบบไคลเอ็นต์จะไม่

แจ้งให้ผู้ใช้เข้าสู่ระบบ แต่ Tableau จะตรวจสอบสิทธิ์โดยตรงกับผู้ให้บริการข้อมูลประจำตัวของคุณโดยใช้

ID ไคลเอ็นต์และข้อมูลลับ

**หมายเหตุ:** โฟลว์ข้อมูลเข้าสู่ระบบไคลเอ็นต์ต้องใช้ฟีเจอร์ OAuth ภายนอกของ Snowflake กับผู้ให้บริการข้อมูลประจำตัวที่รองรับ ซึ่งแตกต่างจาก OAuth แบบเนทีฟของ Snowflake

## ก่อนที่คุณจะเริ่มต้น

หากต้องการใช้ข้อมูลเข้าสู่ระบบไคลเอ็นต์ OAuth กับ Snowflake คุณต้องมี:

| ข้อกำหนด | คำอธิบาย |
| --- | --- |
| ผู้ให้บริการข้อมูลประจำตัว | Okta, Azure AD หรือ Ping Federate ที่กำหนดค่าไว้สำหรับการให้สิทธิ์ข้อมูลเข้าสู่ระบบไคลเอ็นต์ |
| บัญชี Snowflake | รุ่น Enterprise หรือสูงกว่าที่มีสิทธิ์เข้าถึง ACCOUNTADMIN |
| แอปพลิเคชัน OAuth | บริการ API (Okta), การลงทะเบียนแอป (Azure AD) หรือเทียบเท่า |
| ขอบเขตที่กำหนดเอง | ขอบเขตสำหรับการกำหนดบทบาท Snowflake (เช่น “session:role:SYSADMIN”) |

## กำหนดค่าผู้ให้บริการข้อมูลประจำตัวของคุณ

ขั้นตอนต่อไปนี้ใช้ Okta เป็นตัวอย่าง สำหรับผู้ให้บริการรายอื่น โปรดดูเอกสารประกอบสำหรับการกำหนดค่าข้อมูลเข้าสู่ระบบไคลเอ็นต์

### ขั้นตอนที่ 1: สร้างแอปพลิเคชันบริการ API

1. เข้าสู่ระบบคอนโซลผู้ดูแล Okta ของคุณ
2. ไปที่ \*\***แอปพลิเคชัน** > **แอปพลิเคชัน**
3. เลือก \*\***สร้างการผสานรวมแอป**
4. เลือก \*\***บริการ API**\*\* และเลือก \*\***ถัดไป**
5. ป้อนชื่อแอปพลิเคชัน (เช่น `snowflake-tableau-service`)
6. เลือก**บันทึก**
7. คัดลอก **ID ไคลเอ็นต์** และ**ข้อมูลลับของไคลเอ็นต์** คุณจะต้องใช้ค่าเหล่านี้ในภายหลัง

### ขั้นตอนที่ 2: ปิดใช้งาน DPoP (หากเปิดใช้งาน)

ต้องปิดใช้งานการแสดงหลักฐานการครอบครอง (DPoP) สำหรับโฟลว์ข้อมูลเข้าสู่ระบบไคลเอ็นต์

1. ในการตั้งค่าแอปพลิเคชันของคุณ ให้ไปที่**ทั่วไป** \> **ข้อมูลเข้าสู่ระบบของไคลเอ็นต์**
2. ล้างช่องทำเครื่องหมาย**ต้องมีส่วนหัวการแสดงหลักฐานการครอบครอง (DPoP) ในคำขอโทเค็น**
3. เลือก**บันทึก**

### ขั้นตอนที่ 3 เพิ่มขอบเขตที่กำหนดเอง

Snowflake ต้องใช้ขอบเขตที่กำหนดเองเพื่อกำหนดบทบาทให้กับเซสชันที่ตรวจสอบสิทธิ์แล้ว

1. ไปที่**ความปลอดภัย** > **API** \> **เซิร์ฟเวอร์การให้สิทธิ์**
2. เลือกเซิร์ฟเวอร์การให้สิทธิ์**เริ่มต้น** (หรือเซิร์ฟเวอร์ที่กำหนดเองของคุณ)
3. เลือกแท็บ**ขอบเขต** ตามด้วย**เพิ่มขอบเขต**
4. เพิ่มขอบเขตเหล่านี้:
    
    | ชื่อขอบเขต | คำอธิบาย |
    | --- | --- |
    | snowflake | ขอบเขตการเข้าถึงทั่วไปสำหรับ Snowflake |
    | session:role:SYSADMIN | กำหนดบทบาท SYSADMIN (ปรับสำหรับบทบาทของคุณ) |
    
    **หมายเหตุ:** สร้างขอบเขตเพิ่มเติมสำหรับบทบาทอื่นๆ ที่บัญชีบริการของคุณต้องใช้

### ขั้นตอนที่ 4: กำหนดค่านโยบายการเข้าถึง

1. เลือกแท็บ**นโยบายการเข้าถึง**
2. เลือกนโยบายที่มีอยู่หรือสร้างนโยบายใหม่
3. เพิ่มกฎที่มีการตั้งค่าเหล่านี้
    
    - **ประเภทการให้สิทธิ์:** ข้อมูลเข้าสู่ระบบไคลเอ็นต์
    - **ขอบเขต:** ขอบเขตใดๆ (หรือเลือกขอบเขตเฉพาะ)
4. เลือก**สร้างกฎ**หรือ**บันทึก**

## กำหนดค่า Snowflake

เรียกใช้คำสั่ง SQL ต่อไปนี้ใน Snowflake ในฐานะ ACCOUNTADMIN แทนที่ค่าตัวยึดตำแหน่งด้วยการกำหนดค่าของคุณ

### ขั้นตอนที่ 1: สร้างการผสานรวม OAuth ภายนอก

USE ROLE ACCOUNTADMIN;

CREATE OR REPLACE SECURITY INTEGRATION okta\_oauth\_integration
  TYPE = EXTERNAL\_OAUTH
  ENABLED = TRUE
  EXTERNAL\_OAUTH\_TYPE = OKTA
  EXTERNAL\_OAUTH\_ISSUER = 'https://<your-okta-domain>.okta.com/oauth2/default'
  EXTERNAL\_OAUTH\_JWS\_KEYS\_URL = 'https://<your-okta-domain>.okta.com/oauth2/
default/v1/keys'
  EXTERNAL\_OAUTH\_TOKEN\_USER\_MAPPING\_CLAIM = 'sub'
  EXTERNAL\_OAUTH\_SNOWFLAKE\_USER\_MAPPING\_ATTRIBUTE = 'login\_name'
  EXTERNAL\_OAUTH\_AUDIENCE\_LIST = ('api://default', 'snowflake')
EXTERNAL\_OAUTH\_ANY\_ROLE\_MODE = 'ENABLE';

| พารามิเตอร์ | คำอธิบาย |
| --- | --- |
| `EXTERNAL_OAUTH_TYPE` | ผู้ให้บริการข้อมูลประจำตัวของคุณ: `OKTA` , `AZURE` หรือ `PING_FEDERATE` |
| `EXTERNAL_OAUTH_ISSUER` | URL ผู้ออกจากเซิร์ฟเวอร์การให้สิทธิ์ของคุณ |
| `EXTERNAL_OAUTH_JWS_KEYS_URL` | ปลายทาง JWKS สำหรับการตรวจสอบโทเค็น |
| `EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLA IM` | การอ้างสิทธิ์ JWT ที่ระบุผู้ใช้ ใช้ `sub` สำหรับ Okta |
| `EXTERNAL_OAUTH_ANY_ROLE_MODE` | ตั้งค่าเป็น `ENABLE` เพื่ออนุญาตการกำหนดบทบาทผ่านขอบเขต |

### ขั้นตอนที่ 2: สร้างผู้ใช้บริการ

สร้างผู้ใช้ Snowflake ด้วย `LOGIN_NAME` ที่ตรงกับ ID ไคลเอ็นต์ OAuth

CREATE USER IF NOT EXISTS service\_account\_user  
  LOGIN\_NAME = '<your-okta-client-id>'  
  DISPLAY\_NAME = 'OAuth Service Account'  
  MUST\_CHANGE\_PASSWORD = FALSE  
  DISABLED = FALSE;
  
\-- Grant role to the service user  
GRANT ROLE SYSADMIN TO USER service\_account\_user;
  
\-- Set the default role  
ALTER USER service\_account\_user SET DEFAULT\_ROLE = 'SYSADMIN';
  
\-- Grant warehouse access  
GRANT USAGE ON WAREHOUSE <your-warehouse> TO USER service\_account\_user;
  
\-- Grant database and schema access  
GRANT USAGE ON DATABASE <your-database> TO USER service\_account\_user;  
GRANT USAGE ON SCHEMA <your-database>.<your-schema> TO USER  
service\_account\_user;  
GRANT SELECT ON ALL TABLES IN SCHEMA <your-database>.<your-schema> TO USER  
service\_account\_user;

**สำคัญ:** `LOGIN_NAME` ต้องตรงกับทุกประการกับการอ้างสิทธิ์ `sub` ในโทเค็น OAuth สำหรับแอปพลิเคชันบริการ Okta API นี่คือ ID ไคลเอ็นต์

## เชื่อมต่อจาก Tableau Desktop

1. ใน Tableau Desktop เลือก**เชื่อมต่อ** > **Snowflake**
2. ป้อนรายละเอียดการเชื่อมต่อของคุณ:
    
    | ฟิลด์ | ค่า |
    | --- | --- |
    | เซิร์ฟเวอร์ | URL บัญชี Snowflake ของคุณ (เช่น `account.snowflakecomputing.com`) |
    | บทบาท | บทบาทที่จะใช้ (เช่น `SYSADMIN`) |
    | คลัง | คลัง Snowflake ของคุณ |
    | การตรวจสอบสิทธิ์ | ข้อมูลเข้าสู่ระบบไคลเอ็นต์ OAuth |
3. ป้อนการกำหนดค่า OAuth:
    
    | ฟิลด์ | ค่า |
    | --- | --- |
    | URL คำขอโทเค็น OAuth | `https://<your-okta-domain>.okta.com/oauth2/default/ v1/token` |
    | ชื่อผู้ใช้ | ID ไคลเอ็นต์ Oauth ของคุณ |
    | รหัสผ่าน | ข้อมูลลับไคลเอ็นต์ OAuth ของคุณ |
    | ขอบเขต OAuth | `snowflake session:role:SYSADMIN` |
    
    **หมายเหตุ:** ขอบเขต OAuth ต้องมีขอบเขตที่กำหนดเองที่คุณกำหนดค่าไว้สำหรับการกำหนดบทบาท
4. เลือก**เข้าสู่ระบบ**

## เผยแพร่ไปยัง Tableau Cloud หรือ Tableau Server

เมื่อเผยแพร่เวิร์กบุ๊กหรือแหล่งข้อมูลที่ใช้ข้อมูลเข้าสู่ระบบไคลเอ็นต์ OAuth:

1. ในกล่องโต้ตอบ**เผยแพร่** ให้เลือก**แก้ไข**ถัดจาก**แหล่งข้อมูล**
2. สำหรับ**การตรวจสอบสิทธิ์** ให้เลือก**รหัสผ่านแบบฝัง**
3. ข้อมูลเข้าสู่ระบบไคลเอ็นต์จะฝังอยู่ในเนื้อหาที่เผยแพร่

**สำคัญ:** ข้อมูลเข้าสู่ระบบไคลเอ็นต์ถือเป็นรหัสผ่านแบบฝัง ซึ่งต่างจาก OAuth มาตรฐาน ผู้ใช้ที่เข้าถึงเนื้อหาที่เผยแพร่จะใช้ข้อมูลเข้าสู่ระบบของบัญชีบริการ ไม่ใช่ข้อมูลประจำตัว

### การหมุนเวียนข้อมูลเข้าสู่ระบบ

เมื่อข้อมูลลับของไคลเอ็นต์ OAuth มีการหมุนเวียน ให้อัปเดตข้อมูลเข้าสู่ระบบแบบฝังบน Tableau Cloud:

1. เข้าสู่ระบบ Tableau Cloud
2. ไปยังแหล่งข้อมูลที่เผยแพร่
3. เลือก**การเชื่อมต่อ**
4. อัปเดตการเชื่อมต่อด้วยข้อมูลลับของไคลเอ็นต์ใหม่

สำหรับการหมุนเวียนอัตโนมัติ ให้ใช้ Tableau REST API เพื่ออัปเดตข้อมูลเข้าสู่ระบบการเชื่อมต่อในโปรแกรม

## คำถามที่พบบ่อย

### ฉันควรใช้ข้อมูลเข้าสู่ระบบไคลเอ็นต์ OAuth แทน OAuth มาตรฐานเมื่อใด

ใช้ข้อมูลเข้าสู่ระบบไคลเอ็นต์เมื่อคุณต้องการการตรวจสอบสิทธิ์ระหว่างเครื่องโดยไม่ต้องควบคุม มาตรฐาน

OAuth กำหนดให้มีการโต้ตอบของผู้ใช้สำหรับการเข้าสู่ระบบครั้งแรกและการตรวจสอบสิทธิ์ซ้ำเป็นระยะ ข้อมูลเข้าสู่ระบบไคลเอ็นต์

ใช้ข้อมูลประจำตัวของบัญชีบริการและไม่ต้องมีการโต้ตอบกับผู้ใช้

### ฉันสามารถใช้ข้อมูลเข้าสู่ระบบไคลเอ็นต์กับ OAuth แบบเนทีฟของ Snowflake ได้หรือไม่

ไม่ได้ OAuth แบบเนทีฟของ Snowflake รองรับเฉพาะโฟลว์รหัสการให้สิทธิ์เท่านั้น ข้อมูลเข้าสู่ระบบไคลเอ็นต์ต้องใช้ OAuth ภายนอกกับผู้ให้บริการข้อมูลประจำตัวที่รองรับ (Okta, Azure AD หรือ Ping Federate)

### ฉันจะจัดการกับการหมุนเวียนข้อมูลลับสำหรับเนื้อหาที่เผยแพร่ได้อย่างไร

เมื่อข้อมูลลับของไคลเอ็นต์ OAuth มีการหมุนเวียน คุณต้องอัปเดตข้อมูลเข้าสู่ระบบแบบฝังใน Tableau Cloud คุณสามารถดำเนินการนี้ได้ด้วยตนเองผ่าน Tableau Cloud UI หรือในโปรแกรมโดยใช้ Tableau REST API พิจารณาทำให้กระบวนการนี้เป็นอัตโนมัติในเวิร์กโฟลว์การหมุนเวียนข้อมูลลับของคุณ

### เหตุใดการเชื่อมต่อของฉันจึงล้มเหลวโดยมีข้อผิดพลาดของบทบาท แม้ว่าจะเปิดใช้งาน EXTERNAL\_OAUTH\_ANY\_ROLE\_MODE แล้ว

Snowflake ต้องใช้ข้อมูลบทบาทในโทเค็น OAuth เพิ่มขอบเขตที่กำหนดเอง (เช่น `session:role:SYSADMIN`) ไปยังเซิร์ฟเวอร์การให้สิทธิ์ของคุณและรวมไว้ในฟิลด์ขอบเขต OAuth เมื่อเชื่อมต่อจาก Tableau

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

| ข้อความแสดงข้อผิดพลาด | สาเหตุ | โซลูชัน |
| --- | --- | --- |
| “ผู้ใช้ไม่มีอยู่หรือไม่ได้รับอนุญาต” | ผู้ใช้ Snowflake `LOGIN_NAME` ไม่ตรงกับ ID ไคลเอ็นต์ OAuth | ตั้งค่า `LOGIN_NAME` ของผู้ใช้ให้ตรงกับการอ้างสิทธิ์ `sub` (ID ไคลเอ็นต์สำหรับ Okta) |
| “บทบาทที่ร้องขอไม่อยู่ในโทเค็นการเข้าถึง” | ไม่มีขอบเขตบทบาทในโทเค็น | เพิ่มขอบเขต `session:role:<ROLE>` ไปยังเซิร์ฟเวอร์การให้สิทธิ์ของคุณและรวมไว้ในขอบเขต OAuth |
| “หลักฐาน DPoP ไม่ถูกต้อง” | DPoP เปิดใช้งานใน Okta | ปิดใช้งาน “ต้องมีการแสดงหลักฐานการครอบครอง (DPoP)” ในแอป Okta ของคุณ |
| “ขอบเขตไม่ถูกต้อง” | ไม่ได้กำหนดค่าขอบเขตที่กำหนดเอง | เพิ่มขอบเขตที่จำเป็นไปยังเซิร์ฟเวอร์การให้สิทธิ์ของคุณ โดยไม่รวม `openid` |
| การตรวจสอบโทเค็นล้มเหลว | URL หรือผู้ออก JWKS ไม่ถูกต้อง | ยืนยันว่า `EXTERNAL_OAUTH_JWS_KEYS _URL` และ `EXTERNAL_OAUTH_ISSUER` ตรงกับเซิร์ฟเวอร์การให้สิทธิ์ของคุณ |

## ดูเพิ่มเติม

- [กำหนดค่า OAuth สำหรับการเชื่อมต่อ Snowflake บน Tableau Server](https://help.tableau.com/current/server/th-th/config_oauth_snowflake.htm) - เรียนรู้เกี่ยวกับการตรวจสอบสิทธิ์ OAuth มาตรฐานด้วย Snowflake
- [การผสานรวมการรักษาความปลอดภัย OAuth ภายนอก](https://docs.snowflake.com/th/user-guide/oauth-external-overview) - เอกสารประกอบของ Snowflake สำหรับการกำหนดค่าผู้ให้บริการ OAuth ภายนอก
- [โฟลว์ข้อมูลเข้าสู่ระบบไคลเอ็นต์ Okta](https://developer.okta.com/docs/guides/implement-grant-type/clientcreds/main/) - เอกสารประกอบของ Okta สำหรับการแรับใช้ข้อมูลเข้าสู่ระบบไคลเอ็นต์
- [อัปเดตการเชื่อมต่อแหล่งข้อมูล](https://help.tableau.com/current/api/rest_api/th-th/REST/rest_api_ref_data_sources.htm#update_data_source_connection) - ข้อมูลอ้างอิง Tableau REST API สำหรับการอัปเดตข้อมูลเข้าสู่ระบบ