หน้านี้อธิบายการติดตั้งใช้งานของ 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 |