‫Digital Credentials API להנפקת אישורים

Natalia Markoborodova
Natalia Markoborodova

תאריך פרסום: 26 בנובמבר 2025

אתם יכולים להצטרף לגרסת המקור לניסיון של Digital Credentials API החל מ-Chrome 143. ה-API החדש הזה מאפשר לאתרים לספק בקלות אישורים דיגיטליים לארנק המועדף של המשתמש.

הרקע

במערכת האקולוגית של זהויות דיגיטליות שכוללת שלושה צדדים – מנפיקים, מאמתים (צדדים מסתמכים) ובעלים (ארנקים) – נפוץ שהמשתמש מקצה תעודה מזהה דיגיטלית לארנק שלו באמצעות הקצאה בדחיפה. במהלך התהליך, המשתמש מתחיל את תהליך הנפקת התעודה המזהה ישירות מהאתר או מהאפליקציה של המנפיק. לדוגמה, משתמש שנכנס לאתר של משרד הרישוי (המנפיק) במדינה מסוימת יכול להתחיל את התהליך לשמירת הרישיון הדיגיטלי באפליקציית הארנק המועדפת (המחזיק) במכשיר שלו.

כדי שהמודל הזה יצליח, הגורם המנפיק צריך דרך מאובטחת ואמינה להתחבר לאפליקציית Wallet כדי להנפיק את תעודת הזהות. התהליך הזה היה מפוצל, כי כל גורם מנפיק היה צריך ליצור חיבורים משלו לכל אפליקציית ארנק שהוא עובד איתה בשותפות, בדרך כלל באמצעות סכימות URI בהתאמה אישית. הגישה הזו יצרה חיכוך משמעותי בהטמעה, ואילצה את המנפיקים לבנות ולתחזק תמיכה במערכת אקולוגית מפוצלת של שילובי ארנקים שונים.

הנפקת Digital Credentials API

כדי לייעל את התהליך הזה, Google מרחיבה את התמיכה ב-W3C Digital Credentials API, בנוסף ליכולות ההצגה שנוספו לאחרונה. השיטה navigator.credentials.create() מאפשרת לאתרים של מנפיקים להפעיל באופן מאובטח אפליקציות ארנק לצורך הנפקת אישורים. כשאתר של מנפיק קורא ל-navigator.credentials.create() עם חבר digital, הדפדפן מעביר את התהליך לפלטפורמה, שמוגבלת ל-Android, החל מ-Chrome 143. בפלטפורמה מוצגת רשימה של ארנקים תואמים שמותקנים במכשיר. אחר כך המשתמש יכול לבחור ארנק ולהביע הסכמה להוספת פרטי הכניסה.

הנפקת אישורים דיגיטליים באמצעות ה-API פועלת גם בתרחישים של אותו מכשיר (בנייד) וגם בתרחישים של מכשירים שונים (הנפקה במחשב). בתרחיש של שימוש בכמה מכשירים, בדפדפן במחשב מוצג קוד QR. אם שני המכשירים קרובים זה לזה, כשמשתמש סורק את הקוד במכשיר הנייד שלו, יתחיל תהליך שמועבר דרך הפלטפורמה.

איך משתמשים ב-API?

ה-API לא תלוי בפרוטוקול והוא מיועד לעבודה עם סטנדרטים פתוחים, למשל הסטנדרט OpenID for Verifiable Credential Issuance (OpenID4VCI).

כדי להתחיל בתהליך ההנפקה, האתר של הגורם המנפיק צריך לקרוא ל-navigator.credentials.create() ולהעביר את בקשות ההנפקה בתוך אובייקט digital, לדוגמה:

// Check if the browser supports Digital Credentials issuance and the protocol.
if (window.DigitalCredential && DigitalCredential.userAgentAllowsProtocol('openid4vci-v1')) {

  // Construct a credential offer according to the OpenID4VCI specification.
  // Note: The API is in an active development stage. Always consult the
  // specification and documentation for the most recent implementation details
  const credentialOffer = {
    credential_issuer: 'https://digital-credentials.dev',
    credential_configuration_ids: [
      'org.iso.18013.5.1.mDL'
    ],
    authorization_server_metadata: {
      issuer: 'https://digital-credentials.dev',
      token_endpoint: 'https://digital-credentials.dev/openid4vci/token',
      authorization_endpoint: 'https://digital-credentials.dev/openid4vci/auth',
      grant_types_supported: [
        'authorization_code',
        'urn:ietf:params:oauth:grant-type:pre-authorized_code'
      ],
      response_types_supported: ['code','token']
    },
    // Metadata details to help the wallet display the credential correctly.
    credential_issuer_metadata: {
      credential_endpoint: 'https://digital-credentials.dev/openid4vci/credential',
      credential_configurations_supported: {
        'org.iso.18013.5.1.mDL': {
          format: 'mso_mdoc',
          display: [{
            name: 'Driving License',
            locale: 'en-US',
            description: 'Mobile Driving License'
          }],
          // The claims that this document contains.
          // For a full list of standard mDL claims, see the ISO/IEC 18013-5 specification.
          claims: [{
            path: ['org.iso.18013.5.1', 'family_name'],
            display: [{ name: 'Family Name', locale: 'en-US' }]
          }
          // ... Add any other claims for your document here.
          ]
        }
      }
    }
  };

  // This call is made from the issuer's frontend, likely inside a button's click handler.
  try {
    await navigator.credentials.create({
      digital: {
        requests: [{
          // The protocol identifier for this version of OpenID4VCI.
          protocol: 'openid4vci-v1',
          data: credentialOffer
          }
        }]
      }
    });
    console.log('Credential issuance handoff to OS was successful.');
  } catch (e) {
    console.error('Error starting the credential issuance flow:', e);
  }

} else {
  // The API is not supported. Provide an alternative issuance method.
  console.log('Digital Credential Issuance API is not supported in this browser.');
}

רוצה לנסות?

לפני שבודקים את Digital Credentials API בדפדפן ובמכשיר Android:

  • צריך לעדכן לגרסה 143 של Chrome ואילך במחשב, ולגרסה 24.0 של Google Play Services ואילך במכשיר Android.
  • מפעילים את הדגל בכתובת chrome://flags/#web-identity-digital-credentials-creation בדפדפן.
  • מתקינים במכשיר Android אפליקציית ארנק נתמכת, למשל הדמו CMWallet.

כדי לבדוק את התהליך במכשירים שונים להנפקת פרטי כניסה דיגיטליים:

  1. במחשב, עוברים לכתובת https://digital-credentials.dev/dmv
  2. לוחצים על הלחצן הוספה כדי להתחיל בתהליך ההנפקה.
  3. סורקים את קוד ה-QR באמצעות מכשיר Android ופועלים לפי ההנחיות.

אחרי שמבצעים את השלבים האלה, נוצר אישור חדש בארנק במכשיר Android.

כדי להפעיל את התכונה הזו באתר שלכם עבור משתמשים, צריך להצטרף לתקופת הניסיון של Digital Credentials API להנפקת אישורים. מידע נוסף זמין במאמר איך מתחילים להשתמש בגרסאות מקור לניסיון.

שיתוף משוב

המשוב שלכם חשוב לנו מאוד, כי הוא עוזר לנו לפתח את הפלטפורמה. אפשר לדווח על באגים או לשלוח בקשות להוספת תכונות במעקב אחר באגים ב-Chromium.