เอกสารอ้างอิง Google OpenID Connect API

หน้านี้อธิบายการติดตั้งใช้งานของ Google ในฐานะผู้ให้บริการ OpenID Connect และ ให้ข้อมูลอ้างอิงทางเทคนิคสำหรับปลายทาง OIDC ของ Google ข้อกำหนดOpenID Connect (OIDC) Core 1.0 กำหนดโปรโตคอลสำหรับ การตรวจสอบสิทธิ์ผู้ใช้และการรับข้อมูลประจำตัว

การอ้างอิงนี้ไม่ได้มีวัตถุประสงค์เพื่อให้คำแนะนำแบบทีละขั้นตอนเกี่ยวกับวิธี ติดตั้งใช้งาน OIDC โปรดดูรายละเอียดการติดตั้งใช้งานในคู่มือ OpenID Connect

เอกสารการค้นพบ

เอกสารการค้นหามีข้อมูลเมตาเกี่ยวกับการกำหนดค่า OpenID Connect ของ Google ตามที่กำหนดไว้ในข้อกำหนดการค้นหา OpenID Connect 1.0

URL: https://accounts.google.com/.well-known/openid-configuration

วิธีการส่งคำขอที่รองรับ: GET

เนื้อหาการตอบกลับ

ระบบจะแสดงผลช่องการตอบกลับในออบเจ็กต์ JSON ในเนื้อหาของการตอบกลับ HTTP ต่อคำขอ GET ของผู้ขอไปยัง https://accounts.google.com/.well-known/openid-configuration

ช่อง ประเภท คำอธิบาย
issuer string ตัวระบุผู้ออก URL ที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่โดยใช้รูปแบบ https ค่าที่ทันสมัยคือ https://accounts.google.com แต่ระบบจะแสดงผล accounts.google.com สำหรับการติดตั้งใช้งานเดิมด้วย
authorization_endpoint string URL ของปลายทางการให้สิทธิ์
device_authorization_endpoint string URL ของปลายทางการให้สิทธิ์อุปกรณ์
token_endpoint string URL ของปลายทางของโทเค็น
userinfo_endpoint string URL ของปลายทาง UserInfo
revocation_endpoint string URL ของปลายทางการเพิกถอน
jwks_uri string URL ของเอกสารชุดคีย์เว็บ JSON (JWKS)
response_types_supported array รายการค่า response_type ที่รองรับ
response_modes_supported array รายการค่า response_mode ที่รองรับ
authorization_response_iss_parameter_supported boolean บูลีนที่ระบุการรองรับ RFC 9207
subject_types_supported array รายการประเภทตัวระบุเรื่องที่รองรับ
id_token_signing_alg_values_supported array รายการอัลกอริทึมที่รองรับสำหรับการลงนามโทเค็นรหัส
scopes_supported array รายการค่าขอบเขตที่รองรับ
claims_supported array รายการการอ้างสิทธิ์ที่รองรับ
token_endpoint_auth_methods_supported array รายการวิธีการตรวจสอบสิทธิ์ที่รองรับสำหรับปลายทางโทเค็น
code_challenge_methods_supported array รายการวิธีการท้าทายรหัสที่รองรับสำหรับ PKCE
grant_types_supported array รายการประเภทการให้สิทธิ์ OAuth 2.0 ที่รองรับ

โทเค็นรหัส (การอ้างสิทธิ์)

id_token ค่าที่ส่งคืนในการตอบกลับคือโทเค็นเว็บ JSON (JWT) ที่ลงชื่อแล้ว ซึ่ง ต้องได้รับการยืนยันโดยใช้วัสดุการสร้างคีย์ที่ได้จาก jwks_uri ที่อยู่ใน เอกสารการค้นพบ ตารางต่อไปนี้อธิบายเนื้อหาของเพย์โหลดโทเค็นรหัสที่ ถอดรหัสแล้ว

อ้างสิทธิ์ ประเภท คำอธิบาย
iss string ต้องระบุ ตัวระบุผู้ออกบัตรสำหรับผู้ออกบัตรของคำตอบ โดยปกติคือ https://accounts.google.com แต่จะแสดง accounts.google.com สำหรับการติดตั้งใช้งานเดิมด้วย
sub string ต้องระบุ ตัวระบุสำหรับผู้ใช้ที่ไม่ซ้ำกันในบัญชี Google ทั้งหมดและจะไม่มีการนำกลับมาใช้ซ้ำ บัญชี Google มีอีเมลได้หลายรายการในแต่ละช่วงเวลา แต่ระบบจะไม่เปลี่ยนแปลงค่า sub ใช้ sub ภายในแอปพลิเคชันเป็นคีย์ตัวระบุที่ไม่ซ้ำสำหรับผู้ใช้ ความยาวสูงสุด 255 อักขระ ASCII ที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
azp string ตัวระบุไคลเอ็นต์ของผู้นำเสนอที่ได้รับอนุญาต ซึ่งได้จากคอนโซล Google Cloud การอ้างสิทธิ์นี้จำเป็นก็ต่อเมื่อบุคคลที่ขอโทเค็นรหัสไม่ใช่กลุ่มเป้าหมายของโทเค็นรหัส
aud string ต้องระบุ กลุ่มเป้าหมายที่โทเค็นรหัสมีไว้สำหรับ นี่คือตัวระบุไคลเอ็นต์ของแอปพลิเคชันที่ได้จาก คอนโซล Google Cloud
iat integer ต้องระบุ เวลาที่ออกโทเค็นรหัส แสดงในเวลา Unix Epoch (วินาทีจำนวนเต็ม)
exp integer ต้องระบุ เวลาหมดอายุที่ต้องไม่ยอมรับโทเค็นรหัส แสดงในเวลา Unix Epoch (วินาทีจำนวนเต็ม)
nonce string ค่าของ nonce ที่แอปของคุณระบุในคำขอการตรวจสอบสิทธิ์ คุณควรป้องกันการโจมตีแบบเล่นซ้ำโดยแสดงค่านี้เพียงครั้งเดียว
auth_time integer เวลาที่การตรวจสอบสิทธิ์ผู้ใช้เกิดขึ้น ซึ่งเป็นตัวเลข JSON ที่แสดงจำนวนวินาทีที่ผ่านไปตั้งแต่เวลา Epoch ของ Unix (1 มกราคม 1970, 00:00:00 UTC) ระบุเมื่อพารามิเตอร์คำขอการตรวจสอบสิทธิ์มีauth_timeอ้างสิทธิ์claims
at_hash string แฮชโทเค็นเพื่อการเข้าถึง ให้การตรวจสอบว่าโทเค็นเพื่อการเข้าถึงเชื่อมโยงกับโทเค็นรหัส หากออกโทเค็นรหัสที่มีค่า access_token ในโฟลว์ของเซิร์ฟเวอร์ ระบบจะรวมการอ้างสิทธิ์นี้เสมอ
email string อีเมลของผู้ใช้ ระบุเฉพาะในกรณีที่คุณรวมขอบเขต email ไว้ในคำขอ ค่าของการอ้างสิทธิ์นี้อาจไม่ซ้ำกันสำหรับบัญชีนี้และอาจเปลี่ยนแปลงไปตามกาลเวลา ดังนั้นคุณจึงไม่ควรใช้ค่านี้เป็นตัวระบุหลักเพื่อลิงก์กับบันทึกผู้ใช้ นอกจากนี้ คุณยังไม่สามารถใช้โดเมนของemailอ้างสิทธิ์เพื่อระบุผู้ใช้ Google Workspace หรือองค์กร Cloud ได้ ให้ใช้hdอ้างสิทธิ์แทน

คำเตือน: อย่าใช้อีเมลเป็นตัวระบุ เนื่องจากบัญชี Google สามารถมีอีเมลหลายรายการในเวลาที่ต่างกัน ใช้ช่อง sub เป็นตัวระบุสำหรับผู้ใช้เสมอ
email_verified boolean จริง หากยืนยันอีเมลของผู้ใช้แล้ว หรือเป็นเท็จ
name string ชื่อและนามสกุลของผู้ใช้ในรูปแบบที่แสดงได้ อาจระบุเมื่อขอบเขตคำขอมีสตริง profile หรือเมื่อระบบส่งคืนโทเค็นรหัสจากการรีเฟรชโทเค็น
picture string URL ของรูปโปรไฟล์ของผู้ใช้ อาจระบุเมื่อขอบเขตคำขอมีสตริง profile หรือเมื่อระบบส่งคืนโทเค็นรหัสจากการรีเฟรชโทเค็น
given_name string ชื่อต้นของผู้ใช้ อาจระบุเมื่อมีการอ้างสิทธิ์ name
family_name string นามสกุลของผู้ใช้ อาจระบุเมื่อมีการอ้างสิทธิ์ name
hd string โดเมนที่เชื่อมโยงกับองค์กร Google Workspace หรือ Cloud ของผู้ใช้ ระบุเฉพาะในกรณีที่ผู้ใช้เป็นสมาชิกขององค์กร Google Cloud คุณต้องตรวจสอบการอ้างสิทธิ์นี้เมื่อจำกัดการเข้าถึงทรัพยากรไว้เฉพาะสมาชิกของโดเมนบางโดเมน การไม่มีการอ้างสิทธิ์นี้แสดงว่าบัญชีไม่ได้เป็นของโดเมนที่ฝากบริการของ Google

ปลายทางการให้สิทธิ์

ระบบจะใช้ปลายทางการให้สิทธิ์เพื่อตรวจสอบสิทธิ์ผู้ใช้และรับรหัสการให้สิทธิ์หรือโทเค็น

URL: https://accounts.google.com/o/oauth2/v2/auth

เมธอดคำขอที่รองรับ: GET, POST

พารามิเตอร์คำขอ

พารามิเตอร์ ประเภท ต้องระบุ คำอธิบาย
client_id string ต้องระบุ สตริงตัวระบุไคลเอ็นต์ที่คุณได้รับจาก คอนโซล Google Cloud
nonce string ไม่บังคับ ค่าแบบสุ่มที่แอปสร้างขึ้นซึ่งช่วยให้การป้องกันการเล่นซ้ำ ต้องระบุเมื่อขอโทเค็นรหัสเท่านั้น (เมื่อ response_type มี id_token)
response_type string ต้องระบุ กำหนดโฟลว์ที่จะใช้ หากค่าเป็น code จะเปิดใช้ขั้นตอนรหัสการให้สิทธิ์ ซึ่งต้องใช้ POST ไปยังปลายทางโทเค็นเพื่อรับโทเค็น หากค่าเป็น token, id_token, token id_token หรือ id_token token จะเปิดตัวขั้นตอนการให้สิทธิ์โดยนัย ซึ่งกำหนดให้ใช้ JavaScript ที่ URI การเปลี่ยนเส้นทางเพื่อดึงโทเค็นจากส่วน URI เราไม่แนะนำให้ใช้ token ในรูปแบบใดๆ เนื่องจากจะเปิดเผยโทเค็นเพื่อการเข้าถึงใน URL และค่านี้ไม่อนุญาตใน OAuth 2.1
response_mode string ไม่บังคับ ระบุวิธีส่งการตอบกลับการให้สิทธิ์ หาก response_type เป็น code ค่าเริ่มต้นจะเป็น query สำหรับคำตอบประเภทอื่นๆ ค่าเริ่มต้นคือ fragment ค่าที่รองรับ: query, fragment, form_post
redirect_uri string ต้องระบุ กำหนดตำแหน่งที่จะส่งคำตอบ ค่าของพารามิเตอร์นี้ต้องตรงกับค่าการเปลี่ยนเส้นทางที่ได้รับอนุญาตค่าใดค่าหนึ่งที่คุณตั้งค่าไว้ใน คอนโซล Google Cloud ทุกประการ (รวมถึงรูปแบบ HTTP หรือ HTTPS, ตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ และ '/' ต่อท้าย หากมี) URI การเปลี่ยนเส้นทางและต้นทาง JavaScript ที่ได้รับอนุญาตต้องเป็นไปตามกฎการตรวจสอบที่ระบุไว้ในเอกสารประกอบการตรวจสอบ URI ของ OAuth 2.0
scope string ต้องระบุ รายการขอบเขตที่คั่นด้วยช่องว่างและไม่มีการเรียงลำดับ รายการต้องมีค่า openid แล้วจึงมีค่า profile ค่า email หรือทั้ง 2 ค่า นอกจากนี้ คุณยังรวมขอบเขตที่ไม่ใช่ OIDC ได้ด้วย หากมีค่าขอบเขต profile โทเค็นรหัสอาจมี (แต่ไม่รับประกันว่าจะมี) การอ้างสิทธิ์ profile เริ่มต้นของผู้ใช้ หากมีค่าขอบเขต email โทเค็นรหัสจะมีเคลม email และ email_verified ดูข้อมูลเพิ่มเติมได้ที่ขอบเขต OAuth 2.0
state string แนะนำ สตริงทึบแสงที่ส่งกลับในโปรโตคอล กล่าวคือ ระบบจะส่งกลับเป็นพารามิเตอร์ URI ในขั้นตอนรหัสการให้สิทธิ์ และในส่วน URI ในขั้นตอนการให้สิทธิ์โดยนัย state อาจมีประโยชน์ในการเชื่อมโยงคำขอและการตอบกลับ เนื่องจากredirect_uriอาจถูกคาดเดาได้ การใช้ค่า state จะช่วยเพิ่มความมั่นใจได้ว่าการเชื่อมต่อขาเข้าเป็นผลมาจากคำขอการตรวจสอบสิทธิ์ที่แอปของคุณเริ่ม ซึ่งจะช่วยป้องกันการโจมตี เช่น การปลอมแปลงคำขอแบบข้ามเว็บไซต์
access_type string ไม่บังคับ ค่าที่อนุญาตคือ offline และ online หากแอปพลิเคชันของคุณต้องรีเฟรชโทเค็นเพื่อการเข้าถึงเมื่อผู้ใช้ไม่ได้อยู่ที่เบราว์เซอร์ ให้ใช้ offline คุณต้องระบุค่านี้เพื่อให้ระบบแสดงผลโทเค็นการรีเฟรช
hd string ไม่บังคับ เพิ่มประสิทธิภาพกระบวนการเข้าสู่ระบบสำหรับบัญชีที่เป็นขององค์กร Google Cloud การระบุโดเมนขององค์กร Google Cloud (เช่น mycollege.edu) จะช่วยให้คุณระบุได้ว่าควรเพิ่มประสิทธิภาพ UI การเลือกบัญชีสำหรับบัญชีในโดเมนนั้น หากต้องการเพิ่มประสิทธิภาพสำหรับบัญชีองค์กร Google Cloud โดยทั่วไปแทนที่จะเป็นโดเมนองค์กร Google Cloud เพียงโดเมนเดียว ให้ตั้งค่าเป็นเครื่องหมายดอกจัน (*): hd=*
login_hint string ไม่บังคับ เมื่อแอปทราบว่าผู้ใช้รายใดที่พยายามตรวจสอบสิทธิ์ แอปจะระบุพารามิเตอร์นี้เป็นคำแนะนำไปยังเซิร์ฟเวอร์การตรวจสอบสิทธิ์ได้ การส่งคำใบ้นี้จะระงับตัวเลือกบัญชีและจะกรอกข้อมูลล่วงหน้าในช่องอีเมลในแบบฟอร์มลงชื่อเข้าใช้ หรือเลือกเซสชันที่เหมาะสม ซึ่งจะช่วยให้คุณหลีกเลี่ยงปัญหาที่อาจเกิดขึ้นหากแอปของคุณเข้าสู่ระบบบัญชีผู้ใช้ที่ไม่ถูกต้อง ค่าอาจเป็นอีเมลหรือสตริง sub ซึ่งเทียบเท่ากับรหัส Google ของผู้ใช้
prompt string ไม่บังคับ รายการค่าสตริงที่คั่นด้วยช่องว่างซึ่งระบุว่าเซิร์ฟเวอร์การให้สิทธิ์จะแจ้งให้ผู้ใช้ตรวจสอบสิทธิ์และให้ความยินยอมอีกครั้งหรือไม่ ค่าที่เป็นไปได้: none (ไม่มี UI), consent (แจ้งให้ขอความยินยอม), select_account (แจ้งให้เลือกบัญชี)
hl string ไม่บังคับ แท็กภาษา BCP 47 ที่ใช้เพื่อระบุภาษาที่แสดงสำหรับหน้าจอลงชื่อเข้าใช้ ตัวเลือกบัญชี และหน้าจอความยินยอม เราไม่แนะนำให้ใช้พารามิเตอร์นี้ เนื่องจากโดยปกติแล้วการตั้งค่าเบราว์เซอร์และค่ากำหนดของบัญชี Google จะเป็นตัวบ่งชี้ค่ากำหนดภาษาของผู้ใช้ได้ดีกว่า
include_granted_scopes boolean ไม่บังคับ หากระบุพารามิเตอร์นี้ด้วยค่า true และคำขอให้สิทธิ์ได้รับอนุมัติ การให้สิทธิ์จะรวมการให้สิทธิ์ก่อนหน้านี้ทั้งหมดที่ให้แก่ชุดค่าผสมผู้ใช้/แอปพลิเคชันนี้สำหรับขอบเขตอื่นๆ ดูการให้สิทธิ์แบบเพิ่มทีละรายการ
claims object ไม่บังคับ พารามิเตอร์การอ้างสิทธิ์ใช้เพื่อระบุฟิลด์ที่ไม่บังคับอย่างน้อย 1 รายการที่จะรวมไว้ในการตอบกลับ UserInfo หรือโทเค็นรหัส หากต้องการขอauth_timeการอ้างสิทธิ์claims={\"id_token\":{\"auth_time\":{\"essential\":true}}} ให้ใช้

พารามิเตอร์การตอบกลับ

ระบบจะส่งการตอบกลับการให้สิทธิ์ไปยัง URI การเปลี่ยนเส้นทางของไคลเอ็นต์ (redirect_uri) โดยใช้การเปลี่ยนเส้นทาง HTTP GET ระบบจะเพิ่มพารามิเตอร์การตอบกลับต่อท้าย URI การเปลี่ยนเส้นทางในสตริงการค้นหาหรือส่วนย่อย URL โดยขึ้นอยู่กับ response_type และ response_mode

พารามิเตอร์ ประเภท คำอธิบาย
iss string ตัวระบุผู้ออก ตาม RFC 9207 ระบบจะแสดงพารามิเตอร์นี้เสมอและตั้งค่าเป็น https://accounts.google.com
code string รหัสการให้สิทธิ์ที่สามารถแลกเปลี่ยนเป็นโทเค็นเพื่อการเข้าถึงและโทเค็นรหัส
state string ค่าเดียวกับพารามิเตอร์ state จากคำขอ
id_token string โทเค็นเว็บ JSON (JWT) ที่มีข้อมูลระบุตัวตนเกี่ยวกับผู้ใช้
access_token string โทเค็นเพื่อการเข้าถึงที่ส่งไปยัง Google API ได้
token_type string ประเภทของโทเค็นที่แสดงผล เสมอ Bearer
expires_in integer อายุการใช้งานของโทเค็นเพื่อการเข้าถึงเป็นวินาที โดยอิงตามเวลาที่ออกโทเค็น
scope string ขอบเขตการเข้าถึงที่ code หรือ access_token ให้สิทธิ์ ซึ่งแสดงเป็นรายการสตริงที่เว้นวรรคและคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่
error string รหัสข้อผิดพลาดหากคำขอไม่สำเร็จ
error_description string คำอธิบายของข้อผิดพลาดหากคำขอไม่สำเร็จ

การตอบกลับข้อผิดพลาด

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

ข้อผิดพลาดที่เปลี่ยนเส้นทาง

ระบบอาจแสดงรหัสข้อผิดพลาดต่อไปนี้ใน redirect_uri

ข้อผิดพลาด คำอธิบาย
access_denied ผู้ใช้หรือเซิร์ฟเวอร์การให้สิทธิ์ปฏิเสธคำขอ
invalid_request คำขอไม่มีพารามิเตอร์ที่จำเป็น มีค่าพารามิเตอร์ที่ไม่ถูกต้อง มีพารามิเตอร์มากกว่า 1 ครั้ง หรือมีรูปแบบที่ไม่ถูกต้อง
unauthorized_client ไคลเอ็นต์ไม่ได้รับอนุญาตให้ขอรหัสการให้สิทธิ์โดยใช้วิธีนี้
unsupported_response_type เซิร์ฟเวอร์การให้สิทธิ์ไม่รองรับการขอรับรหัสการให้สิทธิ์โดยใช้วิธีนี้
invalid_scope ขอบเขตที่ขอไม่ถูกต้อง ไม่รู้จัก หรือมีรูปแบบไม่ถูกต้อง

ข้อผิดพลาดที่แสดงต่อผู้ใช้

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

ข้อผิดพลาด คำอธิบาย
admin_policy_enforced บัญชี Google ไม่สามารถให้สิทธิ์ขอบเขตอย่างน้อย 1 รายการที่ขอเนื่องจากนโยบายของผู้ดูแลระบบ Google Workspace ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีที่ผู้ดูแลระบบอาจจำกัดการเข้าถึงจนกว่าจะมีการให้สิทธิ์เข้าถึงตัวระบุไคลเอ็นต์ OAuth อย่างชัดแจ้งได้ที่บทความช่วยเหลือสำหรับผู้ดูแลระบบ Google Workspace
disallowed_useragent ปลายทางการให้สิทธิ์จะแสดงภายใน User-Agent แบบฝังที่นโยบาย OAuth 2.0 ของ Google ไม่อนุญาต
org_internal ตัวระบุไคลเอ็นต์ OAuth ในคำขอเป็นส่วนหนึ่งของโปรเจ็กต์ที่จำกัดการเข้าถึงบัญชี Google ในองค์กร Google Cloud ที่เฉพาะเจาะจง
deleted_client ไคลเอ็นต์ OAuth ที่ใช้สร้างคำขอถูกลบไปแล้ว การลบอาจเกิดขึ้นด้วยตนเองหรือโดยอัตโนมัติในกรณีของไคลเอ็นต์ที่ไม่ได้ใช้
invalid_grant พารามิเตอร์ code_challenge ไม่ถูกต้องหรือขาดหายไปเมื่อใช้ PKCE เมื่อรีเฟรชโทเค็นเพื่อเข้าถึงหรือใช้การให้สิทธิ์แบบเพิ่มทีละรายการ โทเค็นอาจหมดอายุ ไม่ถูกต้อง หรือบัญชีผู้ใช้อาจถูกลบหรือปิดใช้
redirect_uri_mismatch redirect_uri ที่ส่งในคำขอไม่ตรงกับ URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตสำหรับตัวระบุไคลเอ็นต์ ตรวจสอบ URI การเปลี่ยนเส้นทางที่ได้รับอนุญาตในคอนโซล Google Cloud ข้อผิดพลาดนี้อาจเกิดขึ้นหากคำขอใช้โฟลว์ OAuth นอกแบนด์ (OOB) ที่เลิกใช้งานแล้ว
invalid_client ต้นทางที่ส่งคำขอไม่ได้รับอนุญาตสำหรับไคลเอ็นต์นี้ การกำหนดค่าไคลเอ็นต์ไม่ถูกต้อง หรือรหัสลับไคลเอ็นต์ OAuth ไม่ถูกต้อง
origin_mismatch รูปแบบ โดเมน และ/หรือพอร์ตของ JavaScript ที่สร้างคำขอการให้สิทธิ์ไม่ตรงกับ URI ต้นทางของ JavaScript ที่ได้รับอนุญาตซึ่งลงทะเบียนไว้สำหรับตัวระบุไคลเอ็นต์ OAuth ตรวจสอบต้นทาง JavaScript ที่ได้รับอนุญาตในคอนโซล Google Cloud
invalid_request คำขอมีข้อผิดพลาด อาจเกิดจากคำขอที่มีรูปแบบไม่ถูกต้อง พารามิเตอร์ที่จำเป็นขาดหายไป หรือการใช้วิธีการให้สิทธิ์ที่ Google ไม่รองรับ

ปลายทางของโทเค็น

ระบบจะใช้ปลายทางของโทเค็นเพื่อแลกรหัสการให้สิทธิ์เป็นโทเค็นเพื่อการเข้าถึงและโทเค็นรหัส

URL: https://oauth2.googleapis.com/token

วิธีการส่งคำขอที่รองรับ: POST

พารามิเตอร์คำขอ (การให้สิทธิ์รหัสการให้สิทธิ์)

พารามิเตอร์ ประเภท ต้องระบุ คำอธิบาย
code string ต้องระบุ รหัสการให้สิทธิ์ที่ได้รับจากปลายทางการให้สิทธิ์
client_id string ต้องระบุ ตัวระบุไคลเอ็นต์สำหรับแอปพลิเคชันที่ได้จากคอนโซล Google Cloud
client_secret string ต้องระบุ รหัสลับไคลเอ็นต์สำหรับแอปพลิเคชันของคุณ ซึ่งได้จากคอนโซล Google Cloud
redirect_uri string ต้องระบุ URI การเปลี่ยนเส้นทางที่ใช้ในคำขอการให้สิทธิ์เริ่มต้น URI การเปลี่ยนเส้นทางและต้นทาง JavaScript ที่ได้รับอนุญาตต้องเป็นไปตามกฎการตรวจสอบที่ระบุไว้ในเอกสารประกอบการตรวจสอบ URI ของ OAuth 2.0
grant_type string ต้องระบุ ต้องตั้งค่าเป็น authorization_code

พารามิเตอร์คำขอ (โฟลว์ของอุปกรณ์)

พารามิเตอร์ ประเภท ต้องระบุ คำอธิบาย
client_id string ต้องระบุ ตัวระบุไคลเอ็นต์สำหรับแอปพลิเคชันที่ได้จากคอนโซล Google Cloud
client_secret string ต้องระบุ รหัสลับไคลเอ็นต์สำหรับแอปพลิเคชันของคุณ ซึ่งได้จากคอนโซล Google Cloud
device_code string ต้องระบุ device_code ที่ปลายทางการให้สิทธิ์อุปกรณ์แสดงผล
grant_type string ต้องระบุ ต้องตั้งค่าเป็น urn:ietf:params:oauth:grant-type:device_code

พารามิเตอร์คำขอ (การรีเฟรชโทเค็นเพื่อการเข้าถึง)

พารามิเตอร์ ประเภท ต้องระบุ คำอธิบาย
client_id string ต้องระบุ ตัวระบุไคลเอ็นต์สำหรับแอปพลิเคชันที่ได้จากคอนโซล Google Cloud
client_secret string ต้องระบุ รหัสลับไคลเอ็นต์สำหรับแอปพลิเคชันของคุณ ซึ่งได้จากคอนโซล Google Cloud
grant_type string ต้องระบุ ต้องตั้งค่าเป็น refresh_token ตามที่กำหนดไว้ในข้อกำหนดโทเค็นการรีเฟรช OpenID Connect
refresh_token string ต้องระบุ โทเค็นการรีเฟรชที่แสดงผลจากการแลกรหัสการให้สิทธิ์
scope string ไม่บังคับ รายการขอบเขตที่คั่นด้วยช่องว่างซึ่งขอสำหรับโทเค็นเพื่อการเข้าถึงใหม่ ขอบเขตที่ขอต้องเป็นชุดย่อยของขอบเขตที่ได้รับในการขอการให้สิทธิ์เดิม

เนื้อหาการตอบกลับ

ระบบจะแสดงผลช่องการตอบกลับในออบเจ็กต์ JSON ในเนื้อหาของการตอบกลับ HTTP ต่อคำขอ POST ของผู้ขอไปยัง https://oauth2.googleapis.com/token

ช่อง ประเภท คำอธิบาย
access_token string โทเค็นเพื่อการเข้าถึงที่ส่งไปยัง Google API ได้
expires_in integer อายุการใช้งานของโทเค็นเพื่อการเข้าถึงเป็นวินาที ซึ่งสัมพันธ์กับเวลาที่ออกโทเค็น
id_token string โทเค็นเว็บ JSON (JWT) ที่มีข้อมูลระบุตัวตนเกี่ยวกับผู้ใช้ ระบบจะแสดงโทเค็นนี้ในระหว่างการแลกรหัสการให้สิทธิ์ครั้งแรก และอาจแสดงในระหว่างคำขอโทเค็นการรีเฟรชด้วยหากได้รับขอบเขต openid
scope string ขอบเขตการเข้าถึงที่ access_token มอบให้จะแสดงเป็นรายการสตริงที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่โดยมีช่องว่างคั่น
token_type string ประเภทของโทเค็นที่แสดงผล เสมอ Bearer
refresh_token string (ไม่บังคับ) โทเค็นที่ใช้รับโทเค็นเพื่อการเข้าถึงใหม่ได้ ระบบจะแสดงช่องนี้ในการแลกเปลี่ยนรหัสการให้สิทธิ์ครั้งแรกเท่านั้น หากมีการขอ access_type=offline
refresh_token_expires_in integer (ไม่บังคับ) อายุการใช้งานที่เหลือของโทเค็นการรีเฟรชเป็นวินาที ค่านี้จะตั้งค่าก็ต่อเมื่อผู้ใช้ให้สิทธิ์เข้าถึงตามเวลา

การตอบกลับข้อผิดพลาด

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

ช่อง ประเภท คำอธิบาย
error string รหัสข้อผิดพลาด
error_description string คำอธิบายของข้อผิดพลาดหากคำขอไม่สำเร็จ

ตารางต่อไปนี้อธิบายรหัสข้อผิดพลาดที่อาจเกิดขึ้นและรหัสสถานะ HTTP ที่เกี่ยวข้อง

ข้อผิดพลาด รหัสสถานะ HTTP คำอธิบาย
invalid_request 400 คำขอไม่มีพารามิเตอร์ที่จำเป็น มีค่าพารามิเตอร์ที่ไม่ถูกต้อง หรือมีรูปแบบไม่ถูกต้อง
invalid_client 401 การตรวจสอบสิทธิ์ไคลเอ็นต์ไม่สำเร็จ เช่น client_id หรือ client_secret ไม่ถูกต้อง หรือประเภทไคลเอ็นต์ไม่ถูกต้อง
invalid_grant 400 รหัสการให้สิทธิ์ โทเค็นการรีเฟรช หรือรหัสอุปกรณ์ที่ระบุไม่ถูกต้อง หมดอายุ ถูกเพิกถอน หรือไม่ตรงกับ URI การเปลี่ยนเส้นทางที่ใช้ในคำขอการให้สิทธิ์
unauthorized_client 400 ไคลเอ็นต์ที่ตรวจสอบสิทธิ์แล้วไม่ได้รับอนุญาตให้ใช้ประเภทการให้สิทธิ์นี้
unsupported_grant_type 400 เซิร์ฟเวอร์การให้สิทธิ์ไม่รองรับประเภทการให้สิทธิ์
invalid_scope 400 ขอบเขตที่ขอไม่ถูกต้อง ไม่รู้จัก หรือมีรูปแบบไม่ถูกต้อง
authorization_pending 428 (โฟลว์อุปกรณ์) ผู้ใช้ยังไม่ได้ทำตามโฟลว์การให้สิทธิ์จนเสร็จสมบูรณ์
slow_down 429 (Device Flow) อุปกรณ์ส่งคำขอการสำรวจบ่อยเกินไป
access_denied 403 (Device Flow) ผู้ใช้ปฏิเสธที่จะให้สิทธิ์เข้าถึงอุปกรณ์
expired_token 400 (Device Flow) device_code หมดอายุแล้ว
admin_policy_enforced 400 ผู้ใช้ไม่สามารถให้สิทธิ์ขอบเขตที่ขอเนื่องจากนโยบายที่ผู้ดูแลระบบ Google Workspace บังคับใช้
org_internal 403 ตัวระบุไคลเอ็นต์เป็นส่วนหนึ่งของโปรเจ็กต์ที่จำกัดการเข้าถึงองค์กร Google Cloud ที่เฉพาะเจาะจง

ปลายทางการให้สิทธิ์อุปกรณ์

ปลายทางการให้สิทธิ์อุปกรณ์ใช้ในโฟลว์ของอุปกรณ์ OAuth 2.0 เพื่อรับรหัสผู้ใช้และ URL การยืนยันสำหรับอุปกรณ์ที่มีความสามารถในการป้อนข้อมูลจำกัด

URL: https://oauth2.googleapis.com/device/code

วิธีการส่งคำขอที่รองรับ: POST

พารามิเตอร์คำขอ

พารามิเตอร์ ประเภท ต้องระบุ คำอธิบาย
client_id string ต้องระบุ ตัวระบุไคลเอ็นต์สำหรับแอปพลิเคชันที่ได้จากคอนโซล Google Cloud
scope string ต้องระบุ รายการขอบเขตที่คั่นด้วยช่องว่างซึ่งระบุทรัพยากรที่แอปพลิเคชันของคุณเข้าถึงได้ในนามของผู้ใช้

เนื้อหาการตอบกลับ

การตอบกลับเป็นออบเจ็กต์ JSON ที่มีช่องต่อไปนี้

ช่อง ประเภท คำอธิบาย
device_code string ค่าที่ Google กําหนดให้โดยเฉพาะเพื่อระบุอุปกรณ์ที่เรียกใช้แอปที่ขอการให้สิทธิ์
user_code string ค่าที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ซึ่งระบุขอบเขตที่แอปพลิเคชันขอสิทธิ์เข้าถึงให้ Google อินเทอร์เฟซผู้ใช้จะสั่งให้ผู้ใช้ป้อนค่านี้ในอุปกรณ์อื่นที่มีความสามารถในการป้อนข้อมูลที่ดียิ่งขึ้น
verification_url string URL ที่ผู้ใช้ต้องไปยังในอุปกรณ์อื่นเพื่อป้อน user_code และให้สิทธิ์หรือปฏิเสธการเข้าถึงแอปพลิเคชันของคุณ
expires_in integer ระยะเวลาเป็นวินาทีที่ device_code และ user_code ใช้ได้
interval integer ระยะเวลาในหน่วยวินาทีที่อุปกรณ์ควรรอระหว่างคำขอการสำรวจ

ปลายทางการเพิกถอน

ปลายทางการเพิกถอนช่วยให้แอปพลิเคชันเพิกถอนโทเค็นเพื่อการเข้าถึงหรือโทเค็นการรีเฟรชได้

URL: https://oauth2.googleapis.com/revoke

วิธีการส่งคำขอที่รองรับ: POST

พารามิเตอร์คำขอ

พารามิเตอร์ ประเภท ต้องระบุ คำอธิบาย
token string ต้องระบุ โทเค็นเพื่อการเข้าถึงหรือโทเค็นการรีเฟรชที่ต้องการเพิกถอน

เนื้อหาการตอบกลับ

หากการเพิกถอนสำเร็จ การตอบกลับจะเป็น HTTP 200 OK ที่ว่างเปล่า หากการเพิกถอนล้มเหลว ระบบจะแสดงการตอบกลับข้อผิดพลาดในออบเจ็กต์ JSON

ช่อง ประเภท คำอธิบาย
error string รหัสข้อผิดพลาดหากคำขอไม่สำเร็จ
error_description string คำอธิบายของข้อผิดพลาดหากคำขอไม่สำเร็จ

ตารางต่อไปนี้จะอธิบายรหัสข้อผิดพลาดที่อาจเกิดขึ้น

ข้อผิดพลาด คำอธิบาย
invalid_token โทเค็นที่ระบุในคำขอหมดอายุหรือถูกเพิกถอนแล้ว
invalid_request คำขอไม่มีพารามิเตอร์ที่จำเป็น มีค่าพารามิเตอร์ที่ไม่ถูกต้อง หรือมีรูปแบบไม่ถูกต้อง

ปลายทาง UserInfo

ปลายทาง UserInfo จะแสดงข้อมูลโปรไฟล์เกี่ยวกับผู้ใช้ที่ได้รับการตรวจสอบสิทธิ์

URL: https://openidconnect.googleapis.com/v1/userinfo

เมธอดคำขอที่รองรับ: GET, POST

ส่วนหัวของคำขอ

ส่วนหัว คำอธิบาย
Authorization ต้องระบุ ต้องตั้งค่าเป็น Bearer: access_token

เนื้อหาการตอบกลับ

ระบบจะแสดงผลฟิลด์การตอบกลับในออบเจ็กต์ JSON ในเนื้อหาของการตอบกลับ HTTP ไปยังคำขอ GET หรือ POST ของผู้ขอไปยัง https://openidconnect.googleapis.com/v1/userinfo

ช่อง ประเภท คำอธิบาย
sub string ต้องระบุ ตัวระบุสำหรับผู้ใช้ที่ไม่ซ้ำกันในบัญชี Google ทั้งหมดและจะไม่มีการนำกลับมาใช้ซ้ำ สตริงที่คำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ซึ่งมีความยาวไม่เกิน 255 อักขระ
name string ชื่อและนามสกุลของผู้ใช้ในรูปแบบที่แสดงได้
given_name string ชื่อต้นของผู้ใช้
family_name string นามสกุลของผู้ใช้
picture string URL ของรูปโปรไฟล์ของผู้ใช้
email string อีเมลของผู้ใช้
email_verified boolean ระบุว่าอีเมลของผู้ใช้ได้รับการยืนยันแล้วหรือไม่
hd string โดเมนที่ฝากบริการซึ่งเชื่อมโยงกับองค์กร Google Workspace หรือ Cloud ของผู้ใช้

ปลายทาง Tokeninfo

tokeninfo อุปกรณ์ปลายทางคือการติดตั้งใช้งานเฉพาะของ Google ที่ใช้เพื่อตรวจสอบโทเค็น ID เพื่อวัตถุประสงค์ในการแก้ไขข้อบกพร่อง

URL: https://oauth2.googleapis.com/tokeninfo

เมธอดคำขอที่รองรับ: GET, POST

พารามิเตอร์คำขอ

พารามิเตอร์ ประเภท ต้องระบุ คำอธิบาย
id_token string ต้องระบุ โทเค็นรหัสที่จะตรวจสอบ

เนื้อหาการตอบกลับ

ระบบจะแสดงผลฟิลด์การตอบกลับในออบเจ็กต์ JSON ในเนื้อหาของการตอบกลับ HTTP ไปยังคำขอ GET หรือ POST ของผู้ขอไปยัง https://oauth2.googleapis.com/tokeninfo

ช่อง ประเภท คำอธิบาย
iss string ตัวระบุผู้ออก เสมอ https://accounts.google.com
sub string ตัวระบุสำหรับผู้ใช้ที่ไม่ซ้ำกันในบัญชี Google ทั้งหมดและจะไม่มีการนำกลับมาใช้ซ้ำ
aud string กลุ่มเป้าหมายที่โทเค็นรหัสมีไว้สำหรับ นี่คือตัวระบุไคลเอ็นต์ของแอปพลิเคชันที่ได้จาก คอนโซล Google Cloud
iat integer เวลาที่ออก JWT แสดงเป็นจำนวนวินาทีนับจาก 1970-01-01T0:0:0Z ตามที่วัดใน UTC
exp integer เวลาหมดอายุที่ต้องไม่ยอมรับโทเค็นรหัสสำหรับการประมวลผล แสดงเป็นจำนวนวินาทีนับจาก 1970-01-01T0:0:0Z ตามที่วัดใน UTC
email string อีเมลของผู้ใช้
email_verified string ระบุว่าอีเมลของผู้ใช้ได้รับการยืนยันแล้วหรือไม่ ค่าคือสตริง "true" หรือ "false"
access_type string ประเภทการเข้าถึงที่ขอในคำขอการให้สิทธิ์เดิม
azp string ตัวระบุไคลเอ็นต์ของผู้นำเสนอที่ได้รับอนุญาต ซึ่งได้จากคอนโซล Google Cloud
scope string รายการขอบเขตที่คั่นด้วยช่องว่างซึ่งมอบให้กับโทเค็น
alg string อัลกอริทึมที่ใช้ในการลงนามโทเค็นรหัส
kid string รหัสคีย์ที่ใช้เพื่อลงนามโทเค็นรหัส
typ string ประเภทของโทเค็น เสมอ JWT