chrome.webAuthenticationProxy

ब्यौरा

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

अनुमतियां

webAuthenticationProxy

उपलब्धता

Chrome 115+ MV3+

टाइप

CreateRequest

प्रॉपर्टी

  • requestDetailsJson

    स्ट्रिंग

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

  • requestId

    संख्या

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

CreateResponseDetails

प्रॉपर्टी

  • गड़बड़ी

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

  • requestId

    संख्या

    CreateRequest का requestId.

  • responseJson

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

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

DOMExceptionDetails

प्रॉपर्टी

  • मैसेज

    स्ट्रिंग

  • नाम

    स्ट्रिंग

GetRequest

प्रॉपर्टी

  • requestDetailsJson

    स्ट्रिंग

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

  • requestId

    संख्या

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

GetResponseDetails

प्रॉपर्टी

  • गड़बड़ी

    अगर रिमोट अनुरोध से कोई 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()

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

इस एक्सटेंशन को, Web Authentication API के अनुरोध की प्रॉक्सी के तौर पर चालू करता है.

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

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

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

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

रिटर्न

  • Promise<string | undefined>

completeCreateRequest()

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

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

पैरामीटर

रिटर्न

  • Promise<void>

completeGetRequest()

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

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

पैरामीटर

रिटर्न

  • Promise<void>

completeIsUvpaaRequest()

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

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

पैरामीटर

रिटर्न

  • Promise<void>

detach()

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

इस एक्सटेंशन को, Web Authentication API के अनुरोध की प्रॉक्सी के तौर पर इस्तेमाल होने से रोकता है.

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

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

रिटर्न

  • Promise<string | undefined>

इवेंट

onCreateRequest

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (requestInfo: CreateRequest) => void

onGetRequest

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (requestInfo: GetRequest) => void

onIsUvpaaRequest

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (requestInfo: IsUvpaaRequest) => void

onRemoteSessionStateChange

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

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

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

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    () => void

onRequestCanceled

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

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

पैरामीटर

  • कॉलबैक

    फ़ंक्शन

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

    (requestId: number) => void

    • requestId

      संख्या