ภาพรวมของขั้นตอนการยืนยันตัวตนใน Spotnana
สารบัญ
Spotnana มีวิธีการยืนยันตัวตนหลายรูปแบบ เพื่อให้พันธมิตรสามารถเชื่อมต่อระบบของตนกับแพลตฟอร์มของเราได้อย่างปลอดภัย เอกสารฉบับนี้จะอธิบายภาพรวมของแต่ละวิธีที่ Spotnana รองรับ พร้อมทั้งอธิบายขั้นตอนการทำงานในแต่ละแบบโดยละเอียด ตัวอย่างขั้นตอนเหล่านี้จะช่วยให้เห็นภาพว่าระบบของ Spotnana ตรวจสอบและอนุญาตให้ผู้ใช้เข้าถึงทรัพยากรขององค์กร (เช่น ข้อมูลหรือบริการที่เป็นของบริษัทผู้ใช้บนแพลตฟอร์ม Spotnana) ได้อย่างไร
องค์ประกอบสำคัญ
ก่อนเริ่มต้นใช้งาน กรุณาศึกษาคำอธิบายขององค์ประกอบหลักในระบบที่ถูกกล่าวถึงในเอกสารนี้
- Spotnana UI(ส่วนติดต่อผู้ใช้ของ Spotnana) หมายถึงแอปพลิเคชันหน้าเว็บของ Spotnana (หรือที่เรียกว่า Online Booking Tool) หรือแอปพลิเคชันบนมือถือของ Spotnana โดยเฉพาะหน้าล็อกอิน ซึ่งเป็นจุดเริ่มต้นของกระบวนการยืนยันตัวตนเมื่อผู้ใช้เข้าสู่ระบบหรือสมัครสมาชิกใหม่
- Spotnana server หมายถึงเซิร์ฟเวอร์ส่วนหลังของ Spotnana ที่ใช้สำหรับการยืนยันตัวตน เช่น การอนุญาตให้ผู้ใช้เข้าถึงข้อมูล หรือจัดเก็บและประมวลผลข้อมูลผู้ใช้อย่างปลอดภัย
- Partner UI (ส่วนติดต่อผู้ใช้ของพันธมิตร) ส่วนติดต่อผู้ใช้ (เช่น แอปพลิเคชันหน้าเว็บ) ที่พันธมิตรใช้ในการเข้าถึงแพลตฟอร์ม Spotnana ตัวอย่างเช่น ในกรณีที่ใช้การยืนยันตัวตนแบบ iFrame ระบบ Spotnana จะถูกฝังอยู่ในหน้าของพันธมิตร และผู้ใช้จะเข้าถึง Spotnana ผ่าน Partner UI
- Partner server หมายถึงเซิร์ฟเวอร์ส่วนหลังของพันธมิตรที่ใช้เชื่อมต่อกับ Spotnana อาจมีมากกว่าหนึ่งเครื่อง
- Spotnana IdP (ผู้ให้บริการยืนยันตัวตนของ Spotnana) หมายถึงบริการภายในของ Spotnana ที่ใช้จัดการข้อมูลตัวตนและการอนุญาตของผู้ใช้
- Partner IdP ผู้ให้บริการยืนยันตัวตนภายนอกที่พันธมิตรเลือกใช้ เช่น Google หรือ Azure
- OBT Online Booking Tool (OBT) ของ Spotnana ซึ่งสามารถเข้าใช้งานได้ที่ https://app.spotnana.com/
- Subject token สำหรับการยืนยันตัวตนแบบ iFrame (หรือ token exchange) subject token คือโทเคนที่แสดงตัวตนของผู้ใช้ โทเคนนี้จะถูกใช้เพื่อดึงข้อมูลและอนุญาตให้เข้าถึงแพลตฟอร์ม Spotnana
- Access token ข้อมูลรับรอง (OAuth) ที่แอปพลิเคชันของพันธมิตรใช้ในการเข้าถึงทรัพยากรที่ถูกป้องกันแทนผู้ใช้ เป็นรหัสชั่วคราวที่ช่วยให้แอปพลิเคชันสามารถเรียกใช้งาน API ได้โดยไม่ต้องเปิดเผยข้อมูลเข้าสู่ระบบของผู้ใช้
- Refresh token ข้อมูลรับรองที่มีอายุการใช้งานยาวนาน ใช้สำหรับขอ access token ใหม่โดยไม่ต้องให้ผู้ใช้เข้าสู่ระบบซ้ำ โดยปกติจะออกให้พร้อมกับ access token ในการเข้าสู่ระบบครั้งแรก
- Client credentials ข้อมูลที่ออกให้กับผู้ใช้ที่เชื่อมต่อกับ Spotnana API โดยตรง (เช่น
clientId
และclientSecret
) - PID (Personal identifier) รหัสประจำตัวที่สร้างขึ้นสำหรับผู้ใช้แต่ละคน PID นี้ใช้สำหรับดึงข้อมูลผู้ใช้จากเซิร์ฟเวอร์ Spotnana
orgId
รหัสเฉพาะที่ Spotnana กำหนดให้กับองค์กรของผู้ใช้tmcId
รหัสเฉพาะที่ Spotnana กำหนดให้กับบริษัทตัวแทนท่องเที่ยว (TMC)
วิธีการยืนยันตัวตนที่รองรับ
Spotnana รองรับวิธีการยืนยันตัวตนดังต่อไปนี้
- การยืนยันตัวตนด้วยรหัสผ่าน
- การยืนยันตัวตนผ่าน IdP
- การยืนยันตัวตนผ่าน API
- การยืนยันตัวตนแบบ iFrame
- การยืนยันตัวตนด้วยรหัสยืนยัน (Auth code)
- การยืนยันตัวตนระหว่างเครื่อง (M2M)
การยืนยันตัวตนด้วยรหัสผ่าน
สำหรับการยืนยันตัวตนด้วยรหัสผ่าน Spotnana UI (เช่น หน้าเข้าสู่ระบบหรือสมัครสมาชิกใน OBT) จะเป็นผู้เริ่มต้นและจัดการกระบวนการยืนยันตัวตนกับเซิร์ฟเวอร์ส่วนหลังของ Spotnana ซึ่งจะมีขั้นตอนแตกต่างกันไปขึ้นอยู่กับว่าผู้ใช้มีบัญชีอยู่แล้วหรือกำลังสมัครใหม่ รายละเอียดแต่ละขั้นตอนจะอธิบายพร้อมแผนภาพลำดับในหัวข้อถัดไป
ผู้ใช้เดิม
แผนภาพลำดับและขั้นตอนด้านล่างนี้จะแสดงให้เห็นว่า Spotnana UI ทำงานร่วมกับบริการส่วนหลังอย่างไรในการยืนยันตัวตนของผู้ใช้เดิม
ภาพ: แผนภาพลำดับขั้นตอนการยืนยันตัวตนด้วยรหัสผ่านสำหรับผู้ใช้เดิม
ขั้นตอน | ลำดับ |
---|---|
ผู้ใช้เดิมเข้าสู่ระบบผ่าน OBT หรือแอปมือถือ Spotnana โดยใช้ email ของตนเอง | |
1 |
|
2 |
|
3 |
|
ผู้ใช้ใหม่
แผนภาพลำดับและขั้นตอนด้านล่างนี้จะแสดงให้เห็นว่า Spotnana UI ทำงานร่วมกับบริการส่วนหลังอย่างไรในการยืนยันตัวตนของผู้ใช้ใหม่ (หรือผู้ใช้เดิมที่ต้องการรีเซ็ตรหัสผ่าน)
ภาพ: แผนภาพลำดับขั้นตอนการยืนยันตัวตนด้วยรหัสผ่านสำหรับผู้ใช้ใหม่
ขั้นตอน | ลำดับ |
---|---|
ผู้ใช้ใหม่กรอก email ในหน้าเข้าสู่ระบบ OBT ของ Spotnana แล้วคลิก Next. | |
1 |
|
1 a | ผู้ใช้กรอกรหัสผ่านใหม่แล้วคลิก Next. |
2 |
|
3 |
|
4 |
|
การยืนยันตัวตนผ่าน IdP
Spotnana รองรับการยืนยันตัวตนผ่าน IdP เช่น Google, Azure หรือ IdP อื่น ๆ ที่รองรับ OpenID Connect และ SAML ขั้นตอนและแผนภาพลำดับด้านล่างนี้จะแสดงวิธีการยืนยันตัวตนผ่าน IdP
ภาพ: แผนภาพลำดับขั้นตอนการยืนยันตัวตนผ่าน IdP
ขั้นตอน | ลำดับ |
---|---|
ผู้ใช้เข้าสู่ระบบผ่าน OBT หรือแอปมือถือ Spotnana โดยใช้ email ของตนเอง | |
1 |
|
2 | Spotnana UI จะเปลี่ยนเส้นทางคำขอไปที่ Spotnana IdP |
3 | Spotnana IdP จะเปลี่ยนเส้นทางคำขอไปที่ IdP ของพันธมิตร เพื่อเริ่มกระบวนการยืนยันตัวตนผ่าน IdP หมายเหตุ: ทุกครั้งที่มีการเปลี่ยนเส้นทาง จะมีรหัสสถานะ 302 เพื่อแจ้งว่าเปลี่ยน URL แล้ว |
4 | Spotnana IdP จะเชื่อมต่อกับ IdP ของพันธมิตร เพื่อยืนยันตัวตนของผู้ใช้ หมายเหตุ: ระหว่างการเชื่อมต่อ Spotnana IdP จะส่ง |
5 | Partner IdP ตรวจสอบและยืนยันตัวตนของผู้ใช้สำเร็จ หมายเหตุ: หลังจากขั้นตอนนี้ โปรไฟล์ผู้ใช้จะต้องผ่านการตรวจสอบ bearer token อีกครั้ง |
5 a | เมื่อยืนยันตัวตนสำเร็จ Partner IdP จะส่งข้อมูลกลับไปที่ Spotnana IdP |
5 b | Spotnana IdP สร้างรหัสเฉพาะให้กับโปรไฟล์ผู้ใช้ และส่งรหัสดังกล่าวไปยัง Spotnana UI |
6 |
หมายเหตุ: การสร้าง bearer token สำเร็จ หมายถึงผู้ใช้ได้รับอนุญาตให้เข้าใช้งาน Spotnana แล้ว |
7 |
|
การยืนยันตัวตนผ่าน API
สำหรับพันธมิตรที่เชื่อมต่อกับแพลตฟอร์ม Spotnana ผ่าน API สามารถใช้ endpoint สำหรับยืนยันตัวตนเพื่อขอ bearer token ให้กับผู้ใช้ได้ แผนภาพลำดับด้านล่างนี้จะแสดงขั้นตอนการยืนยันตัวตนผ่าน API
ภาพ: แผนภาพลำดับขั้นตอนการยืนยันตัวตนผ่าน API
ขั้นตอน | ลำดับ |
---|---|
1 | ผู้ใช้ API เรียกใช้คำสั่ง POST ไปที่ ตัวอย่างคำสั่ง cURL สำหรับเรียกใช้งาน endpoint curl -i -X POST \ https://api.spotnana.com/get-auth-token \ -H 'Content-Type: application/json' \ -d '{ "clientId": "sample-apiuser@tmcorg.com", "clientSecret": "<password>" }' หมายเหตุ: โปรดแทนที่ค่า |
2 |
|
หลังจากได้รับ bearer token แล้ว ทุกคำขอ API ที่จะเรียกใช้ Spotnana APIs (เช่น Trip APIs) จะต้องแนบ bearer token ใน header เพื่อยืนยันสิทธิ์
หมายเหตุ: endpoint get-auth-token(clientId, clientSecret)
มีการจำกัดไม่เกิน 100 ครั้งต่อ 5 นาที
การยืนยันตัวตนแบบ iFrame
การฝัง Spotnana UI ลงใน Partner UI (iFrame หรือ embedded solution) คือการที่ผู้ใช้เข้าถึง Spotnana ผ่านหน้าของพันธมิตร ในกรณีนี้ การยืนยันตัวตนจะอาศัยการแลกเปลี่ยนโทเคนระหว่างระบบของพันธมิตรกับ Spotnana
หมายเหตุ: สำหรับการยืนยันตัวตนแบบ iFrame ผู้ที่เข้าสู่ระบบจะถูกเรียกว่า callerเพื่อรองรับกรณีที่มี API/Machine user เข้าสู่ระบบและขอ access token ให้กับผู้ใช้อื่น โดย API/Machine user อาจใช้บัญชีแอดมิน TMC เชื่อมต่อกับ Spotnana server โดยตรง ดังนั้นจะใช้คำว่า caller เป็นคำกลาง หมายถึงทั้งผู้ใช้ที่เข้าสู่ระบบของตนเอง หรือ API/Machine user ที่ขอ access token ให้ผู้อื่น
แผนภาพลำดับด้านล่างนี้จะแสดงขั้นตอนการแลกเปลี่ยนโทเคนระหว่าง Spotnana กับเซิร์ฟเวอร์พันธมิตร
ภาพ: แผนภาพลำดับขั้นตอนการยืนยันตัวตนแบบ iFrame ด้วยการแลกเปลี่ยนโทเคน
ขั้นตอน | ลำดับ |
---|---|
caller เข้าสู่ระบบผ่าน Partner UI | |
1 | Partner UI แสดง Spotnana UI ผ่าน iFrame |
2 | Spotnana UI ส่งคำขอไปยัง Partner UI ผ่าน post message เพื่อขอโทเคน โดยมี type=TOKEN_EXCHANGE_REQUEST แนบไปด้วย |
3 | Partner UI ส่งคำขอ API ไปยัง partner server เพื่อขอ OAuth token และเริ่มกระบวนการยืนยันตัวตนในขั้นตอนถัดไป |
3 a | partner server เรียก Spotnana server โดยใช้ข้อมูลเข้าสู่ระบบและ subject token เป็นพารามิเตอร์ Spotnana server จะตรวจสอบว่าคำขอที่เข้ามาเป็นของ API/Machine user หรือไม่ |
3 b |
|
3 c |
|
4 | Partner UI ส่งโทเคนไปยัง Spotnana UI ผ่าน post message โดยแนบ |
5 |
หมายเหตุ: การสร้าง bearer token สำเร็จ หมายถึงผู้ใช้ได้รับอนุญาตให้เข้าใช้งาน Spotnana แล้ว |
6 |
|
การยืนยันตัวตนด้วยรหัสยืนยัน (Auth code)
แผนภาพลำดับด้านล่างนี้จะแสดงวิธีการยืนยันตัวตนโดยใช้รหัสยืนยัน (authorization code)
ภาพ: แผนภาพลำดับขั้นตอนการยืนยันตัวตนด้วย auth code
ขั้นตอน | ลำดับ |
---|---|
1 | Partner UI เรียก partner server เพื่อขอ auth code สำหรับ caller ที่กำลังเข้าสู่ระบบ และส่ง auth code กลับไปที่ Partner UI |
2 | Partner UI ส่งคำขอไปยัง Spotnana UI โดยใช้ custom redirect URL ที่มี |
3 | Spotnana UI เรียก API แบบ POST ไปยัง Spotnana server โดยใช้ |
3 a |
|
Spotnana server จะสร้าง access token และ refresh token แล้วส่งกลับไปยัง Spotnana UI | 4 |
Spotnana UI ส่งคำขอไปยัง Spotnana server โดยใช้ access token และ refresh token เพื่อขอ bearer token สำหรับเข้าใช้งาน |
การสร้าง bearer token สำเร็จ หมายถึงผู้ใช้ได้รับอนุญาตให้เข้าใช้งาน Spotnana แล้ว 5 |
หลังจากยืนยันตัวตนในขั้นตอนที่ 4 แล้ว คำขอ API ทั้งหมดที่ตามมาจะต้องแนบ bearer token, |
|
การยืนยันตัวตนด้วยวิธีนี้จะไม่สามารถใช้ได้ในกรณีที่แอดมิน TMC อนุญาตให้ผู้ใช้หลายคนใช้ email เดียวกันในการเข้าสู่ระบบ การยืนยันตัวตนระหว่างเครื่อง (M2M)
วิธีการยืนยันตัวตนแบบ M2M เหมาะสำหรับกรณีที่แอปพลิเคชันฝั่งลูกค้าต้องเข้าถึง callback URL ของบุคคลที่สามเพื่อสร้าง
accessToken ให้กับผู้ใช้ แผนภาพลำดับด้านล่างนี้จะแสดงขั้นตอนการยืนยันตัวตนแบบ M2M
ภาพ:
แผนภาพลำดับขั้นตอนการยืนยันตัวตนแบบ M2M ขั้นตอน
ลำดับ | public key ของแอปพลิเคชันทั้งหมดที่ใช้ในกระบวนการยืนยันตัวตนจะถูกซิงค์ระหว่าง Spotnana server และ Spotnana IdP เพื่อใช้ตรวจสอบ access token ในขั้นตอนถัดไป |
---|---|
1 | |
partner server ส่งคำขอ API ไปที่ | /oauth2/token(clientId,clientSecret) |
partner server ส่งคำขอ API ไปยัง callback URL ของบุคคลที่สามเพื่อสร้าง access token ให้กับผู้ใช้ |
|
Spotnana server จะตรวจสอบลายเซ็นของ access token โดยใช้ public key ที่ซิงค์ไว้ก่อนหน้า และตรวจสอบ |
|
บทความนี้มีประโยชน์หรือไม่?
เยี่ยมเลย!
ขอบคุณสำหรับความคิดเห็นของคุณ
ขออภัยที่เราช่วยเหลือไม่ได้!
ขอบคุณสำหรับความคิดเห็นของคุณ
ส่งข้อเสนอแนะแล้ว
เราขอขอบคุณในความพยายามของคุณ และจะพยายามแก้ไขบทความดังกล่าว