כדי לאפשר הפעלת סשנים של משתמשים בצורה חלקה (למשל, גישה להטבות של מועדון לקוחות, הצעות מותאמות אישית) וביצוע תשלומים מאומתים, צריך להטמיע את היכולת של קישור זהויות באמצעות OAuth 2.0. אם לא מטמיעים קישור זהויות, צריך לתמוך בתשלום ללא התחברות.
כדאי להתייעץ עם הצוות המשפטי שלכם לגבי שאלות שקשורות לתקנות בנושא פרטיות ולנהלים בנושא הסכמה.
דרישות ליבה
- פרוטוקול: הטמעה של תהליך קוד ההרשאה של OAuth 2.0 (RFC 6749 2.3.1).
- אימות לקוח: חובה לתמוך באימות בסיסי של HTTP (
client_secret_basic) בנקודת הקצה של האסימון. - היקפים: אתם צריכים לתמוך בהיקפים הרגילים של UCP שמוגדרים בקטע הזה.
- גילוי: אתם צריכים לארח קובץ מטא-נתונים בכתובת
/.well-known/oauth-authorization-server(RFC 8414) כדי שהפלטפורמה תוכל לגלות את נקודות הקצה שלכם.
טווחים
אתם צריכים להטמיע את היקף ההרשאות הבא, שמעניק הרשאה לכל הפעולות במחזור החיים של תהליך התשלום (קבלת נתונים, יצירה, עדכון, מחיקה, ביטול והשלמה).
- שם ההיקף:
ucp:scopes:checkout_session
חוויית משתמש: היקפי ההרשאות המבוקשים צריכים להיות מוצגים במסך הסכמה אחד ומאוחד (למשל, 'מתן הרשאה ל-Google לנהל את סשני התשלום שלך') במקום מתגים טכניים מפורטים.
קישור פשוט של Google
קישור חשבונות פשוט של Google הוא תוסף אופציונלי ל-OAuth 2.0 רגיל. הוא משתמש בהצהרות JWT כדי לשלב בדיקות כוונות והחלפת טוקנים בנקודת הקצה של טוקן OAuth 2.0 (כוונות check, create ו-get).
מומלץ להשתמש בקישור פשוט של Google כדי לספק חוויית משתמש חלקה. היא מאפשרת למשתמשים לקשר חשבונות או ליצור חשבונות חדשים באמצעות פרופיל Google שלהם, בלי לצאת מהממשק של Google. מכיוון שהתהליך מתבצע כולו בממשק המשתמש של Google, לא נדרש קישור של חזית האתר. כך אפשר לצמצם את עלויות הפיתוח, לבטל הפניות אוטומטיות בדפדפן ולשפר את שיעורי ההמרה.
- מפרט: ההטמעה צריכה לעמוד בדרישות לקישור פשוט.
- תקנים: הפרוטוקול מבוסס על מושגים מ-RFC 7523, אבל הוא שונה ממנו כדי לשפר את האבטחה.
מטא-נתונים של שרת הרשאות (דוגמה ל-JSON)
צריך לפרסם את אובייקט ה-JSON הזה בכתובת https://[your-domain]/.well-known/oauth-authorization-server
דוגמה:
{
"issuer": "https://merchant.example.com",
"authorization_endpoint": "https://merchant.example.com/oauth2/authorize",
"token_endpoint": "https://merchant.example.com/oauth2/token",
"revocation_endpoint": "https://merchant.example.com/oauth2/revoke",
"scopes_supported": [
"ucp:scopes:checkout_session"
],
"response_types_supported": [
"code"
],
"grant_types_supported": [
"authorization_code",
"refresh_token"
],
"token_endpoint_auth_methods_supported": [
"client_secret_basic"
],
"service_documentation": "https://merchant.example.com/docs/oauth2"
}