browser.webAuthenticationProxy

ब्यौरा

chrome.webAuthenticationProxy एपीआई, रिमोट होस्ट पर चल रहे रिमोट डेस्कटॉप सॉफ़्टवेयर को वेब ऑथेंटिकेशन एपीआई (WebAuthn) के अनुरोधों को इंटरसेप्ट करने की अनुमति देता है, ताकि उन्हें लोकल क्लाइंट पर मैनेज किया जा सके.

अनुमतियां

webAuthenticationProxy

उपलब्धता

Chrome 115+ browser.* Chrome 148 से MV3+

टाइप

CreateRequest

प्रॉपर्टी

  • requestDetailsJson

    स्ट्रिंग

    navigator.credentials.create() को पास किया गया PublicKeyCredentialCreationOptions, JSON स्ट्रिंग के तौर पर सीरियलाइज़ किया गया. सीरियलाइज़ेशन फ़ॉर्मैट, PublicKeyCredential.parseCreationOptionsFromJSON() के साथ काम करता है.

  • requestId

    संख्या

    अनुरोध के लिए एक ओपेक आइडेंटिफ़ायर.

CreateResponseDetails

प्रॉपर्टी

  • गड़बड़ी

    DOMExceptionDetails ज़रूरी नहीं है

    रिमोट तरीके से किए गए अनुरोध से मिला DOMException, अगर कोई है.

  • requestId

    संख्या

    CreateRequest का requestId.

  • responseJson

    string ज़रूरी नहीं

    रिमोट अनुरोध से मिला PublicKeyCredential, अगर कोई है, तो href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson"> PublicKeyCredential.toJSON() को कॉल करके JSON स्ट्रिंग के तौर पर सीरियलाइज़ किया जाता है.

DOMExceptionDetails

प्रॉपर्टी

  • मैसेज

    स्ट्रिंग

  • नाम

    स्ट्रिंग

GetRequest

प्रॉपर्टी

  • requestDetailsJson

    स्ट्रिंग

    navigator.credentials.get() को पास किया गया PublicKeyCredentialRequestOptions, JSON स्ट्रिंग के तौर पर सीरियलाइज़ किया गया. सीरियलाइज़ेशन फ़ॉर्मैट, PublicKeyCredential.parseRequestOptionsFromJSON() के साथ काम करता है.

  • requestId

    संख्या

    अनुरोध के लिए एक ओपेक आइडेंटिफ़ायर.

GetResponseDetails

प्रॉपर्टी

  • गड़बड़ी

    DOMExceptionDetails ज़रूरी नहीं है

    रिमोट तरीके से किए गए अनुरोध से मिला DOMException, अगर कोई है.

  • requestId

    संख्या

    CreateRequest का requestId.

  • responseJson

    string ज़रूरी नहीं

    रिमोट अनुरोध से मिला PublicKeyCredential, अगर कोई है, तो href="https://w3c.github.io/webauthn/#dom-publickeycredential-tojson"> PublicKeyCredential.toJSON() को कॉल करके JSON स्ट्रिंग के तौर पर सीरियलाइज़ किया जाता है.

IsUvpaaRequest

प्रॉपर्टी

  • requestId

    संख्या

    अनुरोध के लिए एक ओपेक आइडेंटिफ़ायर.

IsUvpaaResponseDetails

प्रॉपर्टी

  • isUvpaa

    बूलियन

  • requestId

    संख्या

तरीके

attach()

browser.webAuthenticationProxy.attach(): Promise<string | undefined>

इस एक्सटेंशन को वेब ऑथेंटिकेशन एपीआई अनुरोध का ऐक्टिव प्रॉक्सी बनाता है.

रिमोट डेस्कटॉप एक्सटेंशन, आम तौर पर इस होस्ट से रिमोट सेशन के अटैचमेंट का पता लगाने के बाद, इस तरीके को कॉल करते हैं. जब यह तरीका बिना किसी गड़बड़ी के पूरा हो जाता है, तो WebAuthn अनुरोधों की सामान्य प्रोसेसिंग को निलंबित कर दिया जाता है. साथ ही, इस एक्सटेंशन एपीआई से इवेंट ट्रिगर होते हैं.

अगर कोई दूसरा एक्सटेंशन पहले से अटैच है, तो यह तरीका काम नहीं करता और गड़बड़ी का मैसेज दिखता है.

रिमोट डेस्कटॉप सेशन खत्म होने के बाद, अटैच किए गए एक्सटेंशन को detach() को कॉल करना होगा, ताकि WebAuthn अनुरोध की सामान्य प्रोसेसिंग फिर से शुरू हो सके. अगर एक्सटेंशन अनलोड किए जाते हैं, तो वे अपने-आप अलग हो जाते हैं.

नेटिव ऐप्लिकेशन से (शायद निलंबित किए गए) एक्सटेंशन में रिमोट सेशन अटैचमेंट में बदलाव का सिग्नल देने के लिए, onRemoteSessionStateChange इवेंट देखें.

रिटर्न

  • Promise<string | undefined>

completeCreateRequest()

browser.webAuthenticationProxy.completeCreateRequest(
  details: CreateResponseDetails,
)
: Promise<void>

navigator.credentials.create() कॉल के नतीजे की रिपोर्ट करता है. एक्सटेंशन को मिले हर onCreateRequest इवेंट के लिए, इसे कॉल करना ज़रूरी है. हालांकि, अगर अनुरोध रद्द कर दिया गया है, तो ऐसा करने की ज़रूरत नहीं है. अनुरोध रद्द होने पर, onRequestCanceled इवेंट ट्रिगर होता है.

पैरामीटर

रिटर्न

  • वादा<शून्य>

completeGetRequest()

browser.webAuthenticationProxy.completeGetRequest(
  details: GetResponseDetails,
)
: Promise<void>

navigator.credentials.get() कॉल के नतीजे की रिपोर्ट करता है. एक्सटेंशन को मिले हर onGetRequest इवेंट के लिए, इसे कॉल करना ज़रूरी है. हालांकि, अगर अनुरोध रद्द कर दिया गया है, तो ऐसा करने की ज़रूरत नहीं है. अनुरोध रद्द होने पर, onRequestCanceled इवेंट ट्रिगर होता है.

पैरामीटर

रिटर्न

  • वादा<शून्य>

completeIsUvpaaRequest()

browser.webAuthenticationProxy.completeIsUvpaaRequest(
  details: IsUvpaaResponseDetails,
)
: Promise<void>

PublicKeyCredential.isUserVerifyingPlatformAuthenticator() कॉल के नतीजे की रिपोर्ट करता है. एक्सटेंशन को हर उस onIsUvpaaRequest इवेंट के लिए इसे कॉल करना होगा जो उसे मिला है.

पैरामीटर

रिटर्न

  • वादा<शून्य>

detach()

browser.webAuthenticationProxy.detach(): Promise<string | undefined>

इस एक्सटेंशन को वेब ऑथेंटिकेशन एपीआई अनुरोध के लिए, ऐक्टिव प्रॉक्सी के तौर पर इस्तेमाल करने से रोकता है.

आम तौर पर, इस तरीके को तब कॉल किया जाता है, जब एक्सटेंशन को पता चलता है कि रिमोट डेस्कटॉप सेशन खत्म हो गया है. इस तरीके के वापस आने के बाद, एक्सटेंशन वेब ऑथेंटिकेशन एपीआई अनुरोध प्रॉक्सी के तौर पर काम करना बंद कर देता है.

नेटिव ऐप्लिकेशन से (शायद निलंबित किए गए) एक्सटेंशन में रिमोट सेशन अटैचमेंट में बदलाव का सिग्नल देने के लिए, onRemoteSessionStateChange इवेंट देखें.

रिटर्न

  • Promise<string | undefined>

इवेंट

onCreateRequest

browser.webAuthenticationProxy.onCreateRequest.addListener(
  callback: function,
)

WebAuthn navigator.credentials.create() कॉल होने पर ट्रिगर होता है. एक्सटेंशन को requestInfo से requestId के साथ completeCreateRequest() को कॉल करके जवाब देना होगा.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर कुछ ऐसा दिखता है:

    (requestInfo: CreateRequest) => void

onGetRequest

browser.webAuthenticationProxy.onGetRequest.addListener(
  callback: function,
)

यह तब ट्रिगर होता है, जब WebAuthn navigator.credentials.get() कॉल होता है. एक्सटेंशन को requestInfo से requestId के साथ completeGetRequest() को कॉल करके जवाब देना होगा

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर कुछ ऐसा दिखता है:

    (requestInfo: GetRequest) => void

onIsUvpaaRequest

browser.webAuthenticationProxy.onIsUvpaaRequest.addListener(
  callback: function,
)

PublicKeyCredential.isUserVerifyingPlatformAuthenticatorAvailable() कॉल होने पर ट्रिगर होता है. एक्सटेंशन को requestInfo से requestId के साथ completeIsUvpaaRequest() को कॉल करके जवाब देना होगा

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर कुछ ऐसा दिखता है:

    (requestInfo: IsUvpaaRequest) => void

onRemoteSessionStateChange

browser.webAuthenticationProxy.onRemoteSessionStateChange.addListener(
  callback: function,
)

इस एक्सटेंशन से जुड़ा कोई नेटिव ऐप्लिकेशन, इस इवेंट को ट्रिगर कर सकता है. इसके लिए, उसे डिफ़ॉल्ट उपयोगकर्ता डेटा डायरेक्ट्री में मौजूद WebAuthenticationProxyRemoteSessionStateChange नाम की डायरेक्ट्री में, एक्सटेंशन के आईडी के नाम वाली फ़ाइल में लिखना होगा

फ़ाइल में कोई कॉन्टेंट नहीं होना चाहिए. इसका मतलब है कि इस इवेंट को ट्रिगर करने के लिए, फ़ाइल के कॉन्टेंट में बदलाव करना ज़रूरी नहीं है.

नेटिव होस्ट ऐप्लिकेशन, इस इवेंट मैकेनिज़्म का इस्तेमाल करके, रिमोट सेशन की स्थिति में संभावित बदलाव का सिग्नल दे सकता है.जैसे, अटैच से डिटैच या इसके उलट. ऐसा तब हो सकता है, जब एक्सटेंशन सर्विस वर्कर को निलंबित किया गया हो. इस इवेंट के हैंडलर में, एक्सटेंशन ज़रूरत के हिसाब से attach() या detach() एपीआई के तरीकों को कॉल कर सकता है.

इवेंट लिसनर को लोड होने के समय, सिंक्रोनस तरीके से रजिस्टर किया जाना चाहिए.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर कुछ ऐसा दिखता है:

    () => void

onRequestCanceled

browser.webAuthenticationProxy.onRequestCanceled.addListener(
  callback: function,
)

यह तब ट्रिगर होता है, जब कोई onCreateRequest या onGetRequest इवेंट रद्द हो जाता है. ऐसा इसलिए होता है, क्योंकि कॉलर ने WebAuthn अनुरोध को रद्द कर दिया है या उसकी समयसीमा खत्म हो गई है. यह इवेंट मिलने पर, एक्सटेंशन को क्लाइंट साइड पर मौजूद अनुरोध को प्रोसेस करने से रोकना चाहिए. अनुरोध रद्द होने के बाद, एक्सटेंशन उसे पूरा नहीं कर सकते.

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

    callback पैरामीटर कुछ ऐसा दिखता है:

    (requestId: number) => void

    • requestId

      संख्या