chrome.enterprise.platformKeys

বর্ণনা

কীগুলি তৈরি করতে এবং এই কীগুলির জন্য শংসাপত্র ইনস্টল করতে chrome.enterprise.platformKeys API ব্যবহার করুন৷ শংসাপত্রগুলি প্ল্যাটফর্ম দ্বারা পরিচালিত হবে এবং chrome.platformKeys এর মাধ্যমে TLS প্রমাণীকরণ, নেটওয়ার্ক অ্যাক্সেস বা অন্যান্য এক্সটেনশনের জন্য ব্যবহার করা যেতে পারে৷

অনুমতি

enterprise.platformKeys

উপস্থিতি

ChromeOS শুধুমাত্র নীতির প্রয়োজন

ধারণা এবং ব্যবহার

একটি ক্লায়েন্ট শংসাপত্র নথিভুক্ত করার জন্য এই API-এর সাধারণ ব্যবহার এই পদক্ষেপগুলি অনুসরণ করে:

  • enterprise.platformKeys.getTokens() ব্যবহার করে সমস্ত উপলব্ধ টোকেন পান।

  • "user" এর সমান id সহ টোকেন খুঁজুন। পরবর্তীতে এই টোকেনটি ব্যবহার করুন।

  • generateKey() টোকেন পদ্ধতি (SubtleCrypto-এ সংজ্ঞায়িত) ব্যবহার করে একটি কী জোড়া তৈরি করুন। এটি হ্যান্ডেলটি কীতে ফিরে আসবে।

  • exportKey() টোকেন পদ্ধতি ব্যবহার করে সর্বজনীন কী রপ্তানি করুন (সাবটলক্রিপ্টোতে সংজ্ঞায়িত)।

  • sign() টোকেন পদ্ধতি (সাবটলক্রিপ্টোতে সংজ্ঞায়িত) ব্যবহার করে সার্টিফিকেশন অনুরোধের ডেটার স্বাক্ষর তৈরি করুন।

  • শংসাপত্রের অনুরোধটি সম্পূর্ণ করুন এবং এটি সার্টিফিকেশন কর্তৃপক্ষের কাছে পাঠান।

  • যদি একটি শংসাপত্র প্রাপ্ত হয়, এটি ব্যবহার করে আমদানি করুন [ enterprise.platformKeys.importCertificate() `[3]

এখানে একটি উদাহরণ রয়েছে যা শংসাপত্রের অনুরোধ তৈরি এবং পাঠানো ছাড়া প্রধান API ইন্টারঅ্যাকশন দেখায়:

function getUserToken(callback) {
  chrome.enterprise.platformKeys.getTokens(function(tokens) {
    for (var i = 0; i < tokens.length; i++) {
      if (tokens[i].id == "user") {
        callback(tokens[i]);
        return;
      }
    }
    callback(undefined);
  });
}

function generateAndSign(userToken) {
  var data = new Uint8Array([0, 5, 1, 2, 3, 4, 5, 6]);
  var algorithm = {
    name: "RSASSA-PKCS1-v1_5",
    // RsaHashedKeyGenParams
    modulusLength: 2048,
    publicExponent:
        new Uint8Array([0x01, 0x00, 0x01]),  // Equivalent to 65537
    hash: {
      name: "SHA-256",
    }
  };
  var cachedKeyPair;
  userToken.subtleCrypto.generateKey(algorithm, false, ["sign"])
    .then(function(keyPair) {
            cachedKeyPair = keyPair;
            return userToken.subtleCrypto.exportKey("spki", keyPair.publicKey);
          },
          console.log.bind(console))
    .then(function(publicKeySpki) {
            // Build the Certification Request using the public key.
            return userToken.subtleCrypto.sign(
                {name : "RSASSA-PKCS1-v1_5"}, cachedKeyPair.privateKey, data);
          },
          console.log.bind(console))
    .then(function(signature) {
              // Complete the Certification Request with |signature|.
              // Send out the request to the CA, calling back
              // onClientCertificateReceived.
          },
          console.log.bind(console));
}

function onClientCertificateReceived(userToken, certificate) {
  chrome.enterprise.platformKeys.importCertificate(userToken.id, certificate);
}

getUserToken(generateAndSign);

প্রকারভেদ

Algorithm

Chrome 110+

উৎপন্ন কী ধরনের.

এনাম

"আরএসএ"

"ECDSA"

ChallengeKeyOptions

Chrome 110+

বৈশিষ্ট্য

  • চ্যালেঞ্জ

    অ্যারেবাফার

    যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা নির্গত একটি চ্যালেঞ্জ।

  • registerKey

    RegisterKeyOptions ঐচ্ছিক

    উপস্থিত থাকলে, নির্দিষ্ট scope টোকেন দিয়ে চ্যালেঞ্জড কী নিবন্ধন করে। কীটি তারপর একটি শংসাপত্রের সাথে যুক্ত করা যেতে পারে এবং অন্য যেকোনো স্বাক্ষরকারী কীর মতো ব্যবহার করা যেতে পারে। এই ফাংশনে পরবর্তী কলগুলি নির্দিষ্ট scope একটি নতুন এন্টারপ্রাইজ কী তৈরি করবে৷

  • সুযোগ

    কোন এন্টারপ্রাইজ কী চ্যালেঞ্জ করতে হবে।

RegisterKeyOptions

Chrome 110+

বৈশিষ্ট্য

  • অ্যালগরিদম

    কোন অ্যালগরিদম নিবন্ধিত কী ব্যবহার করা উচিত।

Scope

Chrome 110+

এন্টারপ্রাইজ ইউজার কী বা এন্টারপ্রাইজ মেশিন কী ব্যবহার করবেন কিনা।

এনাম

"ব্যবহারকারী"

"মেশিন"

Token

বৈশিষ্ট্য

  • আইডি

    স্ট্রিং

    এই Token স্বতন্ত্রভাবে চিহ্নিত করে।

    স্ট্যাটিক আইডিগুলি হল "user" এবং "system" , যথাক্রমে প্ল্যাটফর্মের ব্যবহারকারী-নির্দিষ্ট এবং সিস্টেম-ওয়াইড হার্ডওয়্যার টোকেনকে উল্লেখ করে। অন্য কোনো টোকেন (অন্যান্য শনাক্তকারীর সাথে) enterprise.platformKeys.getTokens দ্বারা ফেরত দেওয়া হতে পারে।

  • সফ্টওয়্যারব্যাকড সাবটেলক্রিপ্টো

    SubtleCrypto

    Chrome 97+

    WebCrypto এর SubtleCrypto ইন্টারফেস প্রয়োগ করে। কী জেনারেশন সহ ক্রিপ্টোগ্রাফিক ক্রিয়াকলাপগুলি সফ্টওয়্যার-সমর্থিত। কীগুলির সুরক্ষা, এবং এইভাবে নিষ্কাশনযোগ্য সম্পত্তির বাস্তবায়ন সফ্টওয়্যারে করা হয়, তাই কীগুলি হার্ডওয়্যার-ব্যাকড কীগুলির চেয়ে কম সুরক্ষিত।

    2048 পর্যন্ত modulusLength সাথে শুধুমাত্র অ-নিষ্কারযোগ্য RSASSA-PKCS1-V1_5 কীগুলি তৈরি করা যেতে পারে। প্রতিটি কী সর্বাধিক একবারে ডেটা স্বাক্ষর করার জন্য ব্যবহার করা যেতে পারে।

    একটি নির্দিষ্ট Token জেনারেট হওয়া কীগুলি অন্য কোনও টোকেনের সাথে ব্যবহার করা যাবে না, বা window.crypto.subtle এর সাথে ব্যবহার করা যাবে না। একইভাবে, window.crypto.subtle দিয়ে তৈরি Key অবজেক্ট এই ইন্টারফেসের সাথে ব্যবহার করা যাবে না।

  • subtleCrypto

    SubtleCrypto

    WebCrypto এর SubtleCrypto ইন্টারফেস প্রয়োগ করে। কী জেনারেশন সহ ক্রিপ্টোগ্রাফিক ক্রিয়াকলাপগুলি হার্ডওয়্যার-সমর্থিত।

    2048 পর্যন্ত modulusLength সাথে শুধুমাত্র নন-এক্সট্র্যাক্টেবল RSASSA-PKCS1-V1_5 কী এবং namedCurve P-256 নামক ECDSA দিয়ে তৈরি করা যেতে পারে। প্রতিটি কী সর্বাধিক একবারে ডেটা স্বাক্ষর করার জন্য ব্যবহার করা যেতে পারে।

    একটি নির্দিষ্ট Token জেনারেট হওয়া কীগুলি অন্য কোনও টোকেনের সাথে ব্যবহার করা যাবে না, বা window.crypto.subtle এর সাথে ব্যবহার করা যাবে না। একইভাবে, window.crypto.subtle দিয়ে তৈরি Key অবজেক্ট এই ইন্টারফেসের সাথে ব্যবহার করা যাবে না।

পদ্ধতি

challengeKey()

Chrome 110+
chrome.enterprise.platformKeys.challengeKey(
  options: ChallengeKeyOptions,
  callback: function,
)

challengeMachineKey এবং challengeUserKey এর মতো, কিন্তু একটি নিবন্ধিত কী-এর অ্যালগরিদম নির্দিষ্ট করার অনুমতি দেয়। একটি হার্ডওয়্যার-সমর্থিত এন্টারপ্রাইজ মেশিন কী চ্যালেঞ্জ করে এবং একটি দূরবর্তী প্রত্যয়ন প্রোটোকলের অংশ হিসাবে প্রতিক্রিয়া নির্গত করে। শুধুমাত্র Chrome OS-এ এবং যাচাইকৃত অ্যাক্সেস ওয়েব API-এর সাথে একত্রে উপযোগী যা উভয়ই চ্যালেঞ্জের সমস্যা এবং প্রতিক্রিয়া যাচাই করে।

যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা একটি সফল যাচাইকরণ একটি শক্তিশালী সংকেত যে বর্তমান ডিভাইসটি একটি বৈধ Chrome OS ডিভাইস, বর্তমান ডিভাইসটি যাচাইকরণের সময় নির্দিষ্ট করা ডোমেন দ্বারা পরিচালিত হয়, বর্তমান সাইন-ইন করা ব্যবহারকারী যাচাইকরণের সময় নির্দিষ্ট করা ডোমেন দ্বারা পরিচালিত হয় , এবং বর্তমান ডিভাইসের অবস্থা এন্টারপ্রাইজ ডিভাইস নীতি মেনে চলে। উদাহরণস্বরূপ, একটি নীতি নির্দিষ্ট করতে পারে যে ডিভাইসটি অবশ্যই বিকাশকারী মোডে থাকবে না৷ যাচাইকরণের মাধ্যমে নির্গত যেকোন ডিভাইসের পরিচয় বর্তমান ডিভাইসের হার্ডওয়্যারের সাথে শক্তভাবে আবদ্ধ। যদি "user" স্কোপ নির্দিষ্ট করা হয়, তাহলে পরিচয়টি বর্তমান সাইন-ইন করা ব্যবহারকারীর সাথে শক্তভাবে আবদ্ধ।

এই ফাংশনটি অত্যন্ত সীমাবদ্ধ এবং যদি বর্তমান ডিভাইসটি পরিচালিত না হয়, বর্তমান ব্যবহারকারী পরিচালিত না হয়, অথবা যদি এই ক্রিয়াকলাপটি এন্টারপ্রাইজ ডিভাইস নীতি দ্বারা কলারের জন্য স্পষ্টভাবে সক্ষম না করা হয় তবে এটি ব্যর্থ হবে৷ চ্যালেঞ্জড কী "system" বা "user" টোকেনে থাকে না এবং অন্য কোনো API দ্বারা অ্যাক্সেসযোগ্য নয়।

পরামিতি

  • ChallengeKeyOptions এ সংজ্ঞায়িত ক্ষেত্র সমন্বিত অবজেক্ট।

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (response: ArrayBuffer)=>void

    • প্রতিক্রিয়া

      অ্যারেবাফার

      চ্যালেঞ্জ প্রতিক্রিয়া.

challengeMachineKey()

Chrome 50+ Chrome 110 থেকে অবরুদ্ধ
chrome.enterprise.platformKeys.challengeMachineKey(
  challenge: ArrayBuffer,
  registerKey?: boolean,
  callback: function,
)

পরিবর্তে challengeKey ব্যবহার করুন।

একটি হার্ডওয়্যার-সমর্থিত এন্টারপ্রাইজ মেশিন কী চ্যালেঞ্জ করে এবং একটি দূরবর্তী প্রত্যয়ন প্রোটোকলের অংশ হিসাবে প্রতিক্রিয়া নির্গত করে। শুধুমাত্র Chrome OS-এ এবং যাচাইকৃত অ্যাক্সেস ওয়েব API-এর সাথে একত্রে উপযোগী যা উভয়ই চ্যালেঞ্জের সমস্যা এবং প্রতিক্রিয়া যাচাই করে। যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা একটি সফল যাচাইকরণ হল নিম্নলিখিতগুলির একটি শক্তিশালী সংকেত: * বর্তমান ডিভাইসটি একটি বৈধ Chrome OS ডিভাইস৷ * বর্তমান ডিভাইসটি যাচাইকরণের সময় নির্দিষ্ট করা ডোমেন দ্বারা পরিচালিত হয়। * বর্তমান সাইন-ইন ব্যবহারকারী যাচাইকরণের সময় নির্দিষ্ট ডোমেন দ্বারা পরিচালিত হয়। * বর্তমান ডিভাইসের অবস্থা এন্টারপ্রাইজ ডিভাইস নীতি মেনে চলে। উদাহরণস্বরূপ, একটি নীতি নির্দিষ্ট করতে পারে যে ডিভাইসটি অবশ্যই বিকাশকারী মোডে থাকবে না৷ * যাচাইকরণের মাধ্যমে নির্গত যেকোন ডিভাইসের পরিচয় বর্তমান ডিভাইসের হার্ডওয়্যারের সাথে শক্তভাবে আবদ্ধ। এই ফাংশনটি অত্যন্ত সীমাবদ্ধ এবং যদি বর্তমান ডিভাইসটি পরিচালিত না হয়, বর্তমান ব্যবহারকারী পরিচালিত না হয়, অথবা যদি এই ক্রিয়াকলাপটি এন্টারপ্রাইজ ডিভাইস নীতি দ্বারা কলারের জন্য স্পষ্টভাবে সক্ষম না করা হয় তবে এটি ব্যর্থ হবে৷ এন্টারপ্রাইজ মেশিন কী "system" টোকেনে থাকে না এবং অন্য কোনো API দ্বারা অ্যাক্সেসযোগ্য নয়।

পরামিতি

  • চ্যালেঞ্জ

    অ্যারেবাফার

    যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা নির্গত একটি চ্যালেঞ্জ।

  • registerKey

    বুলিয়ান ঐচ্ছিক

    Chrome 59+

    সেট করা থাকলে, বর্তমান এন্টারপ্রাইজ মেশিন কী "system" টোকেনের সাথে নিবন্ধিত হয় এবং এন্টারপ্রাইজ মেশিন কী ভূমিকা ত্যাগ করে। কীটি তারপর একটি শংসাপত্রের সাথে যুক্ত করা যেতে পারে এবং অন্য যেকোনো স্বাক্ষরকারী কীর মতো ব্যবহার করা যেতে পারে। এই কী 2048-বিট RSA। এই ফাংশনে পরবর্তী কলগুলি একটি নতুন এন্টারপ্রাইজ মেশিন কী তৈরি করবে।

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (response: ArrayBuffer)=>void

    • প্রতিক্রিয়া

      অ্যারেবাফার

      চ্যালেঞ্জ প্রতিক্রিয়া.

challengeUserKey()

Chrome 50+ Chrome 110 থেকে অবরুদ্ধ
chrome.enterprise.platformKeys.challengeUserKey(
  challenge: ArrayBuffer,
  registerKey: boolean,
  callback: function,
)

পরিবর্তে challengeKey ব্যবহার করুন।

একটি হার্ডওয়্যার-সমর্থিত এন্টারপ্রাইজ ব্যবহারকারী কীকে চ্যালেঞ্জ করে এবং একটি দূরবর্তী প্রত্যয়ন প্রোটোকলের অংশ হিসাবে প্রতিক্রিয়া নির্গত করে। শুধুমাত্র Chrome OS-এ এবং যাচাইকৃত অ্যাক্সেস ওয়েব API-এর সাথে একত্রে উপযোগী যা উভয়ই চ্যালেঞ্জের সমস্যা এবং প্রতিক্রিয়া যাচাই করে। যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা একটি সফল যাচাইকরণ হল নিম্নলিখিতগুলির একটি শক্তিশালী সংকেত: * বর্তমান ডিভাইসটি একটি বৈধ Chrome OS ডিভাইস৷ * বর্তমান ডিভাইসটি যাচাইকরণের সময় নির্দিষ্ট করা ডোমেন দ্বারা পরিচালিত হয়। * বর্তমান সাইন-ইন ব্যবহারকারী যাচাইকরণের সময় নির্দিষ্ট ডোমেন দ্বারা পরিচালিত হয়। * বর্তমান ডিভাইসের অবস্থা এন্টারপ্রাইজ ব্যবহারকারী নীতি মেনে চলে। উদাহরণস্বরূপ, একটি নীতি নির্দিষ্ট করতে পারে যে ডিভাইসটি অবশ্যই বিকাশকারী মোডে থাকবে না৷ * যাচাইকরণের দ্বারা নির্গত সর্বজনীন কীটি বর্তমান ডিভাইসের হার্ডওয়্যার এবং বর্তমান সাইন-ইন করা ব্যবহারকারীর সাথে শক্তভাবে আবদ্ধ। এই ফাংশনটি অত্যন্ত সীমাবদ্ধ এবং যদি বর্তমান ডিভাইসটি পরিচালিত না হয়, বর্তমান ব্যবহারকারী পরিচালিত না হয়, অথবা যদি এই ক্রিয়াকলাপটি এন্টারপ্রাইজ ব্যবহারকারী নীতি দ্বারা কলারের জন্য স্পষ্টভাবে সক্ষম না করা হয় তবে এটি ব্যর্থ হবে৷ এন্টারপ্রাইজ ব্যবহারকারী কী "user" টোকেনে থাকে না এবং অন্য কোনো API দ্বারা অ্যাক্সেসযোগ্য নয়।

পরামিতি

  • চ্যালেঞ্জ

    অ্যারেবাফার

    যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা নির্গত একটি চ্যালেঞ্জ।

  • registerKey

    বুলিয়ান

    সেট করা থাকলে, বর্তমান এন্টারপ্রাইজ ব্যবহারকারী কী "user" টোকেনের সাথে নিবন্ধিত হয় এবং এন্টারপ্রাইজ ব্যবহারকারী কী ভূমিকা পরিত্যাগ করে। কীটি তারপর একটি শংসাপত্রের সাথে যুক্ত করা যেতে পারে এবং অন্য যেকোনো স্বাক্ষরকারী কীর মতো ব্যবহার করা যেতে পারে। এই কী 2048-বিট RSA। এই ফাংশনে পরবর্তী কলগুলি একটি নতুন এন্টারপ্রাইজ ব্যবহারকারী কী তৈরি করবে।

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (response: ArrayBuffer)=>void

    • প্রতিক্রিয়া

      অ্যারেবাফার

      চ্যালেঞ্জ প্রতিক্রিয়া.

getCertificates()

chrome.enterprise.platformKeys.getCertificates(
  tokenId: string,
  callback: function,
)

প্রদত্ত টোকেন থেকে উপলব্ধ সমস্ত ক্লায়েন্ট শংসাপত্রের তালিকা প্রদান করে। একটি নির্দিষ্ট প্রমাণীকরণের জন্য ব্যবহারযোগ্য ক্লায়েন্ট শংসাপত্রের অস্তিত্ব এবং মেয়াদ পরীক্ষা করতে ব্যবহার করা যেতে পারে।

পরামিতি

  • tokenId

    স্ট্রিং

    getTokens দ্বারা ফেরত দেওয়া একটি টোকেনের আইডি।

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (certificates: ArrayBuffer[])=>void

    • সার্টিফিকেট

      ArrayBuffer[]

      শংসাপত্রের তালিকা, প্রতিটি X.509 শংসাপত্রের DER এনকোডিং-এ।

getTokens()

chrome.enterprise.platformKeys.getTokens(
  callback: function,
)

উপলব্ধ টোকেন ফেরত দেয়। একটি নিয়মিত ব্যবহারকারীর অধিবেশনে তালিকায় সর্বদা "user" id সহ ব্যবহারকারীর টোকেন থাকবে। যদি একটি সিস্টেম-ব্যাপী TPM টোকেন উপলব্ধ থাকে, তবে প্রত্যাবর্তিত তালিকায় "system" id সহ সিস্টেম-ব্যাপী টোকেনও থাকবে। সিস্টেম-ব্যাপী টোকেন এই ডিভাইসের সমস্ত সেশনের জন্য একই হবে (যেমন একটি Chromebook অর্থে ডিভাইস)।

পরামিতি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (tokens: Token[])=>void

    • টোকেন

      উপলব্ধ টোকেন তালিকা.

importCertificate()

chrome.enterprise.platformKeys.importCertificate(
  tokenId: string,
  certificate: ArrayBuffer,
  callback?: function,
)

প্রদত্ত টোকেনে certificate আমদানি করে যদি প্রত্যয়িত কীটি ইতিমধ্যেই এই টোকেনে সংরক্ষিত থাকে। একটি সফল শংসাপত্রের অনুরোধের পরে, এই ফাংশনটি প্রাপ্ত শংসাপত্র সংরক্ষণ করতে এবং প্রমাণীকরণের জন্য অপারেটিং সিস্টেম এবং ব্রাউজারে উপলব্ধ করতে ব্যবহার করা উচিত।

পরামিতি

  • tokenId

    স্ট্রিং

    getTokens দ্বারা ফেরত দেওয়া একটি টোকেনের আইডি।

  • সনদপত্র

    অ্যারেবাফার

    একটি X.509 শংসাপত্রের DER এনকোডিং৷

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    ()=>void

removeCertificate()

chrome.enterprise.platformKeys.removeCertificate(
  tokenId: string,
  certificate: ArrayBuffer,
  callback?: function,
)

উপস্থিত থাকলে প্রদত্ত টোকেন থেকে certificate সরিয়ে দেয়। অপ্রচলিত শংসাপত্রগুলি অপসারণ করতে ব্যবহার করা উচিত যাতে প্রমাণীকরণের সময় সেগুলি বিবেচনা করা না হয় এবং শংসাপত্রের পছন্দকে বিশৃঙ্খল না করে। শংসাপত্রের দোকানে সঞ্চয়স্থান বিনামূল্যে ব্যবহার করা উচিত।

পরামিতি

  • tokenId

    স্ট্রিং

    getTokens দ্বারা ফেরত দেওয়া একটি টোকেনের আইডি।

  • সনদপত্র

    অ্যারেবাফার

    একটি X.509 শংসাপত্রের DER এনকোডিং৷

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    ()=>void

,

বর্ণনা

কীগুলি তৈরি করতে এবং এই কীগুলির জন্য শংসাপত্র ইনস্টল করতে chrome.enterprise.platformKeys API ব্যবহার করুন৷ শংসাপত্রগুলি প্ল্যাটফর্ম দ্বারা পরিচালিত হবে এবং chrome.platformKeys এর মাধ্যমে TLS প্রমাণীকরণ, নেটওয়ার্ক অ্যাক্সেস বা অন্যান্য এক্সটেনশনের জন্য ব্যবহার করা যেতে পারে৷

অনুমতি

enterprise.platformKeys

উপস্থিতি

ChromeOS শুধুমাত্র নীতির প্রয়োজন

ধারণা এবং ব্যবহার

একটি ক্লায়েন্ট শংসাপত্র নথিভুক্ত করার জন্য এই API-এর সাধারণ ব্যবহার এই পদক্ষেপগুলি অনুসরণ করে:

  • enterprise.platformKeys.getTokens() ব্যবহার করে সমস্ত উপলব্ধ টোকেন পান।

  • "user" এর সমান id সহ টোকেন খুঁজুন। পরবর্তীতে এই টোকেনটি ব্যবহার করুন।

  • generateKey() টোকেন পদ্ধতি (SubtleCrypto-এ সংজ্ঞায়িত) ব্যবহার করে একটি কী জোড়া তৈরি করুন। এটি হ্যান্ডেলটি কীতে ফিরে আসবে।

  • exportKey() টোকেন পদ্ধতি ব্যবহার করে সর্বজনীন কী রপ্তানি করুন (সাবটলক্রিপ্টোতে সংজ্ঞায়িত)।

  • sign() টোকেন পদ্ধতি (সাবটলক্রিপ্টোতে সংজ্ঞায়িত) ব্যবহার করে সার্টিফিকেশন অনুরোধের ডেটার স্বাক্ষর তৈরি করুন।

  • শংসাপত্রের অনুরোধটি সম্পূর্ণ করুন এবং এটি সার্টিফিকেশন কর্তৃপক্ষের কাছে পাঠান।

  • যদি একটি শংসাপত্র প্রাপ্ত হয়, এটি ব্যবহার করে আমদানি করুন [ enterprise.platformKeys.importCertificate() `[3]

এখানে একটি উদাহরণ রয়েছে যা শংসাপত্রের অনুরোধ তৈরি এবং পাঠানো ছাড়া প্রধান API ইন্টারঅ্যাকশন দেখায়:

function getUserToken(callback) {
  chrome.enterprise.platformKeys.getTokens(function(tokens) {
    for (var i = 0; i < tokens.length; i++) {
      if (tokens[i].id == "user") {
        callback(tokens[i]);
        return;
      }
    }
    callback(undefined);
  });
}

function generateAndSign(userToken) {
  var data = new Uint8Array([0, 5, 1, 2, 3, 4, 5, 6]);
  var algorithm = {
    name: "RSASSA-PKCS1-v1_5",
    // RsaHashedKeyGenParams
    modulusLength: 2048,
    publicExponent:
        new Uint8Array([0x01, 0x00, 0x01]),  // Equivalent to 65537
    hash: {
      name: "SHA-256",
    }
  };
  var cachedKeyPair;
  userToken.subtleCrypto.generateKey(algorithm, false, ["sign"])
    .then(function(keyPair) {
            cachedKeyPair = keyPair;
            return userToken.subtleCrypto.exportKey("spki", keyPair.publicKey);
          },
          console.log.bind(console))
    .then(function(publicKeySpki) {
            // Build the Certification Request using the public key.
            return userToken.subtleCrypto.sign(
                {name : "RSASSA-PKCS1-v1_5"}, cachedKeyPair.privateKey, data);
          },
          console.log.bind(console))
    .then(function(signature) {
              // Complete the Certification Request with |signature|.
              // Send out the request to the CA, calling back
              // onClientCertificateReceived.
          },
          console.log.bind(console));
}

function onClientCertificateReceived(userToken, certificate) {
  chrome.enterprise.platformKeys.importCertificate(userToken.id, certificate);
}

getUserToken(generateAndSign);

প্রকারভেদ

Algorithm

Chrome 110+

উৎপন্ন কী ধরনের.

এনাম

"আরএসএ"

"ECDSA"

ChallengeKeyOptions

Chrome 110+

বৈশিষ্ট্য

  • চ্যালেঞ্জ

    অ্যারেবাফার

    যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা নির্গত একটি চ্যালেঞ্জ।

  • registerKey

    RegisterKeyOptions ঐচ্ছিক

    উপস্থিত থাকলে, নির্দিষ্ট scope টোকেন দিয়ে চ্যালেঞ্জড কী নিবন্ধন করে। কীটি তারপর একটি শংসাপত্রের সাথে যুক্ত করা যেতে পারে এবং অন্য যেকোনো স্বাক্ষরকারী কীর মতো ব্যবহার করা যেতে পারে। এই ফাংশনে পরবর্তী কলগুলি নির্দিষ্ট scope একটি নতুন এন্টারপ্রাইজ কী তৈরি করবে৷

  • সুযোগ

    কোন এন্টারপ্রাইজ কী চ্যালেঞ্জ করতে হবে।

RegisterKeyOptions

Chrome 110+

বৈশিষ্ট্য

  • অ্যালগরিদম

    কোন অ্যালগরিদম নিবন্ধিত কী ব্যবহার করা উচিত।

Scope

Chrome 110+

এন্টারপ্রাইজ ইউজার কী বা এন্টারপ্রাইজ মেশিন কী ব্যবহার করবেন কিনা।

এনাম

"ব্যবহারকারী"

"মেশিন"

Token

বৈশিষ্ট্য

  • আইডি

    স্ট্রিং

    এই Token স্বতন্ত্রভাবে চিহ্নিত করে।

    স্ট্যাটিক আইডিগুলি হল "user" এবং "system" , যথাক্রমে প্ল্যাটফর্মের ব্যবহারকারী-নির্দিষ্ট এবং সিস্টেম-ওয়াইড হার্ডওয়্যার টোকেনকে উল্লেখ করে। অন্য কোনো টোকেন (অন্যান্য শনাক্তকারীর সাথে) enterprise.platformKeys.getTokens দ্বারা ফেরত দেওয়া হতে পারে।

  • সফ্টওয়্যারব্যাকড সাবটেলক্রিপ্টো

    SubtleCrypto

    Chrome 97+

    WebCrypto এর SubtleCrypto ইন্টারফেস প্রয়োগ করে। কী জেনারেশন সহ ক্রিপ্টোগ্রাফিক ক্রিয়াকলাপগুলি সফ্টওয়্যার-সমর্থিত। কীগুলির সুরক্ষা, এবং এইভাবে নিষ্কাশনযোগ্য সম্পত্তির বাস্তবায়ন সফ্টওয়্যারে করা হয়, তাই কীগুলি হার্ডওয়্যার-ব্যাকড কীগুলির চেয়ে কম সুরক্ষিত।

    2048 পর্যন্ত modulusLength সাথে শুধুমাত্র অ-নিষ্কারযোগ্য RSASSA-PKCS1-V1_5 কীগুলি তৈরি করা যেতে পারে। প্রতিটি কী সর্বাধিক একবারে ডেটা স্বাক্ষর করার জন্য ব্যবহার করা যেতে পারে।

    একটি নির্দিষ্ট Token জেনারেট হওয়া কীগুলি অন্য কোনও টোকেনের সাথে ব্যবহার করা যাবে না, বা window.crypto.subtle এর সাথে ব্যবহার করা যাবে না। একইভাবে, window.crypto.subtle দিয়ে তৈরি Key অবজেক্ট এই ইন্টারফেসের সাথে ব্যবহার করা যাবে না।

  • subtleCrypto

    SubtleCrypto

    WebCrypto এর SubtleCrypto ইন্টারফেস প্রয়োগ করে। কী জেনারেশন সহ ক্রিপ্টোগ্রাফিক ক্রিয়াকলাপগুলি হার্ডওয়্যার-সমর্থিত।

    2048 পর্যন্ত modulusLength সাথে শুধুমাত্র নন-এক্সট্র্যাক্টেবল RSASSA-PKCS1-V1_5 কী এবং namedCurve P-256 নামক ECDSA দিয়ে তৈরি করা যেতে পারে। প্রতিটি কী সর্বাধিক একবারে ডেটা স্বাক্ষর করার জন্য ব্যবহার করা যেতে পারে।

    একটি নির্দিষ্ট Token জেনারেট হওয়া কীগুলি অন্য কোনও টোকেনের সাথে ব্যবহার করা যাবে না, বা window.crypto.subtle এর সাথে ব্যবহার করা যাবে না। একইভাবে, window.crypto.subtle দিয়ে তৈরি Key অবজেক্ট এই ইন্টারফেসের সাথে ব্যবহার করা যাবে না।

পদ্ধতি

challengeKey()

Chrome 110+
chrome.enterprise.platformKeys.challengeKey(
  options: ChallengeKeyOptions,
  callback: function,
)

challengeMachineKey এবং challengeUserKey এর মতো, কিন্তু একটি নিবন্ধিত কী-এর অ্যালগরিদম নির্দিষ্ট করার অনুমতি দেয়। একটি হার্ডওয়্যার-সমর্থিত এন্টারপ্রাইজ মেশিন কী চ্যালেঞ্জ করে এবং একটি দূরবর্তী প্রত্যয়ন প্রোটোকলের অংশ হিসাবে প্রতিক্রিয়া নির্গত করে। শুধুমাত্র Chrome OS-এ এবং যাচাইকৃত অ্যাক্সেস ওয়েব API-এর সাথে একত্রে উপযোগী যা উভয়ই চ্যালেঞ্জের সমস্যা এবং প্রতিক্রিয়া যাচাই করে।

যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা একটি সফল যাচাইকরণ একটি শক্তিশালী সংকেত যে বর্তমান ডিভাইসটি একটি বৈধ Chrome OS ডিভাইস, বর্তমান ডিভাইসটি যাচাইকরণের সময় নির্দিষ্ট করা ডোমেন দ্বারা পরিচালিত হয়, বর্তমান সাইন-ইন করা ব্যবহারকারী যাচাইকরণের সময় নির্দিষ্ট করা ডোমেন দ্বারা পরিচালিত হয় , এবং বর্তমান ডিভাইসের অবস্থা এন্টারপ্রাইজ ডিভাইস নীতি মেনে চলে। উদাহরণস্বরূপ, একটি নীতি নির্দিষ্ট করতে পারে যে ডিভাইসটি অবশ্যই বিকাশকারী মোডে থাকবে না৷ যাচাইকরণের মাধ্যমে নির্গত যেকোন ডিভাইসের পরিচয় বর্তমান ডিভাইসের হার্ডওয়্যারের সাথে শক্তভাবে আবদ্ধ। যদি "user" স্কোপ নির্দিষ্ট করা হয়, তাহলে পরিচয়টি বর্তমান সাইন-ইন করা ব্যবহারকারীর সাথে শক্তভাবে আবদ্ধ।

এই ফাংশনটি অত্যন্ত সীমাবদ্ধ এবং যদি বর্তমান ডিভাইসটি পরিচালিত না হয়, বর্তমান ব্যবহারকারী পরিচালিত না হয়, অথবা যদি এই ক্রিয়াকলাপটি এন্টারপ্রাইজ ডিভাইস নীতি দ্বারা কলারের জন্য স্পষ্টভাবে সক্ষম না করা হয় তবে এটি ব্যর্থ হবে৷ চ্যালেঞ্জড কী "system" বা "user" টোকেনে থাকে না এবং অন্য কোনো API দ্বারা অ্যাক্সেসযোগ্য নয়।

পরামিতি

  • ChallengeKeyOptions এ সংজ্ঞায়িত ক্ষেত্র সমন্বিত অবজেক্ট।

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (response: ArrayBuffer)=>void

    • প্রতিক্রিয়া

      অ্যারেবাফার

      চ্যালেঞ্জ প্রতিক্রিয়া.

challengeMachineKey()

Chrome 50+ Chrome 110 থেকে অবরুদ্ধ
chrome.enterprise.platformKeys.challengeMachineKey(
  challenge: ArrayBuffer,
  registerKey?: boolean,
  callback: function,
)

পরিবর্তে challengeKey ব্যবহার করুন।

একটি হার্ডওয়্যার-সমর্থিত এন্টারপ্রাইজ মেশিন কী চ্যালেঞ্জ করে এবং একটি দূরবর্তী প্রত্যয়ন প্রোটোকলের অংশ হিসাবে প্রতিক্রিয়া নির্গত করে। শুধুমাত্র Chrome OS-এ এবং যাচাইকৃত অ্যাক্সেস ওয়েব API-এর সাথে একত্রে উপযোগী যা উভয়ই চ্যালেঞ্জের সমস্যা এবং প্রতিক্রিয়া যাচাই করে। যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা একটি সফল যাচাইকরণ হল নিম্নলিখিতগুলির একটি শক্তিশালী সংকেত: * বর্তমান ডিভাইসটি একটি বৈধ Chrome OS ডিভাইস৷ * বর্তমান ডিভাইসটি যাচাইকরণের সময় নির্দিষ্ট করা ডোমেন দ্বারা পরিচালিত হয়। * বর্তমান সাইন-ইন ব্যবহারকারী যাচাইকরণের সময় নির্দিষ্ট ডোমেন দ্বারা পরিচালিত হয়। * বর্তমান ডিভাইসের অবস্থা এন্টারপ্রাইজ ডিভাইস নীতি মেনে চলে। উদাহরণস্বরূপ, একটি নীতি নির্দিষ্ট করতে পারে যে ডিভাইসটি অবশ্যই বিকাশকারী মোডে থাকবে না৷ * যাচাইকরণের মাধ্যমে নির্গত যেকোন ডিভাইসের পরিচয় বর্তমান ডিভাইসের হার্ডওয়্যারের সাথে শক্তভাবে আবদ্ধ। এই ফাংশনটি অত্যন্ত সীমাবদ্ধ এবং যদি বর্তমান ডিভাইসটি পরিচালিত না হয়, বর্তমান ব্যবহারকারী পরিচালিত না হয়, অথবা যদি এই ক্রিয়াকলাপটি এন্টারপ্রাইজ ডিভাইস নীতি দ্বারা কলারের জন্য স্পষ্টভাবে সক্ষম না করা হয় তবে এটি ব্যর্থ হবে৷ এন্টারপ্রাইজ মেশিন কী "system" টোকেনে থাকে না এবং অন্য কোনো API দ্বারা অ্যাক্সেসযোগ্য নয়।

পরামিতি

  • চ্যালেঞ্জ

    অ্যারেবাফার

    যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা নির্গত একটি চ্যালেঞ্জ।

  • registerKey

    বুলিয়ান ঐচ্ছিক

    Chrome 59+

    সেট করা থাকলে, বর্তমান এন্টারপ্রাইজ মেশিন কী "system" টোকেনের সাথে নিবন্ধিত হয় এবং এন্টারপ্রাইজ মেশিন কী ভূমিকা ত্যাগ করে। কীটি তারপর একটি শংসাপত্রের সাথে যুক্ত করা যেতে পারে এবং অন্য যেকোনো স্বাক্ষরকারী কীর মতো ব্যবহার করা যেতে পারে। এই কী 2048-বিট RSA। এই ফাংশনে পরবর্তী কলগুলি একটি নতুন এন্টারপ্রাইজ মেশিন কী তৈরি করবে।

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (response: ArrayBuffer)=>void

    • প্রতিক্রিয়া

      অ্যারেবাফার

      চ্যালেঞ্জ প্রতিক্রিয়া.

challengeUserKey()

Chrome 50+ Chrome 110 থেকে অবরুদ্ধ
chrome.enterprise.platformKeys.challengeUserKey(
  challenge: ArrayBuffer,
  registerKey: boolean,
  callback: function,
)

পরিবর্তে challengeKey ব্যবহার করুন।

একটি হার্ডওয়্যার-সমর্থিত এন্টারপ্রাইজ ব্যবহারকারী কীকে চ্যালেঞ্জ করে এবং একটি দূরবর্তী প্রত্যয়ন প্রোটোকলের অংশ হিসাবে প্রতিক্রিয়া নির্গত করে। শুধুমাত্র Chrome OS-এ এবং যাচাইকৃত অ্যাক্সেস ওয়েব API-এর সাথে একত্রে উপযোগী যা উভয়ই চ্যালেঞ্জের সমস্যা এবং প্রতিক্রিয়া যাচাই করে। যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা একটি সফল যাচাইকরণ হল নিম্নলিখিতগুলির একটি শক্তিশালী সংকেত: * বর্তমান ডিভাইসটি একটি বৈধ Chrome OS ডিভাইস৷ * বর্তমান ডিভাইসটি যাচাইকরণের সময় নির্দিষ্ট করা ডোমেন দ্বারা পরিচালিত হয়। * বর্তমান সাইন-ইন ব্যবহারকারী যাচাইকরণের সময় নির্দিষ্ট ডোমেন দ্বারা পরিচালিত হয়। * বর্তমান ডিভাইসের অবস্থা এন্টারপ্রাইজ ব্যবহারকারী নীতি মেনে চলে। উদাহরণস্বরূপ, একটি নীতি নির্দিষ্ট করতে পারে যে ডিভাইসটি অবশ্যই বিকাশকারী মোডে থাকবে না৷ * যাচাইকরণের দ্বারা নির্গত সর্বজনীন কীটি বর্তমান ডিভাইসের হার্ডওয়্যার এবং বর্তমান সাইন-ইন করা ব্যবহারকারীর সাথে শক্তভাবে আবদ্ধ। এই ফাংশনটি অত্যন্ত সীমাবদ্ধ এবং যদি বর্তমান ডিভাইসটি পরিচালিত না হয়, বর্তমান ব্যবহারকারী পরিচালিত না হয়, অথবা যদি এই ক্রিয়াকলাপটি এন্টারপ্রাইজ ব্যবহারকারী নীতি দ্বারা কলারের জন্য স্পষ্টভাবে সক্ষম না করা হয় তবে এটি ব্যর্থ হবে৷ এন্টারপ্রাইজ ব্যবহারকারী কী "user" টোকেনে থাকে না এবং অন্য কোনো API দ্বারা অ্যাক্সেসযোগ্য নয়।

পরামিতি

  • চ্যালেঞ্জ

    অ্যারেবাফার

    যাচাইকৃত অ্যাক্সেস ওয়েব API দ্বারা নির্গত একটি চ্যালেঞ্জ।

  • registerKey

    বুলিয়ান

    সেট করা থাকলে, বর্তমান এন্টারপ্রাইজ ব্যবহারকারী কী "user" টোকেনের সাথে নিবন্ধিত হয় এবং এন্টারপ্রাইজ ব্যবহারকারী কী ভূমিকা পরিত্যাগ করে। কীটি তারপর একটি শংসাপত্রের সাথে যুক্ত করা যেতে পারে এবং অন্য যেকোনো স্বাক্ষরকারী কীর মতো ব্যবহার করা যেতে পারে। এই কী 2048-বিট RSA। এই ফাংশনে পরবর্তী কলগুলি একটি নতুন এন্টারপ্রাইজ ব্যবহারকারী কী তৈরি করবে।

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (response: ArrayBuffer)=>void

    • প্রতিক্রিয়া

      অ্যারেবাফার

      চ্যালেঞ্জ প্রতিক্রিয়া.

getCertificates()

chrome.enterprise.platformKeys.getCertificates(
  tokenId: string,
  callback: function,
)

প্রদত্ত টোকেন থেকে উপলব্ধ সমস্ত ক্লায়েন্ট শংসাপত্রের তালিকা প্রদান করে। একটি নির্দিষ্ট প্রমাণীকরণের জন্য ব্যবহারযোগ্য ক্লায়েন্ট শংসাপত্রের অস্তিত্ব এবং মেয়াদ পরীক্ষা করতে ব্যবহার করা যেতে পারে।

পরামিতি

  • tokenId

    স্ট্রিং

    getTokens দ্বারা ফেরত দেওয়া একটি টোকেনের আইডি।

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (certificates: ArrayBuffer[])=>void

    • সার্টিফিকেট

      ArrayBuffer[]

      শংসাপত্রের তালিকা, প্রতিটি X.509 শংসাপত্রের DER এনকোডিং-এ।

getTokens()

chrome.enterprise.platformKeys.getTokens(
  callback: function,
)

উপলব্ধ টোকেন ফেরত দেয়। একটি নিয়মিত ব্যবহারকারীর অধিবেশনে তালিকায় সর্বদা "user" id সহ ব্যবহারকারীর টোকেন থাকবে। যদি একটি সিস্টেম-ব্যাপী TPM টোকেন উপলব্ধ থাকে, তবে প্রত্যাবর্তিত তালিকায় "system" id সহ সিস্টেম-ব্যাপী টোকেনও থাকবে। সিস্টেম-ব্যাপী টোকেন এই ডিভাইসের সমস্ত সেশনের জন্য একই হবে (যেমন একটি Chromebook অর্থে ডিভাইস)।

পরামিতি

  • কলব্যাক

    ফাংশন

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    (tokens: Token[])=>void

    • টোকেন

      উপলব্ধ টোকেন তালিকা.

importCertificate()

chrome.enterprise.platformKeys.importCertificate(
  tokenId: string,
  certificate: ArrayBuffer,
  callback?: function,
)

প্রদত্ত টোকেনে certificate আমদানি করে যদি প্রত্যয়িত কীটি ইতিমধ্যেই এই টোকেনে সংরক্ষিত থাকে। একটি সফল শংসাপত্রের অনুরোধের পরে, এই ফাংশনটি প্রাপ্ত শংসাপত্র সংরক্ষণ করতে এবং প্রমাণীকরণের জন্য অপারেটিং সিস্টেম এবং ব্রাউজারে উপলব্ধ করতে ব্যবহার করা উচিত।

পরামিতি

  • tokenId

    স্ট্রিং

    getTokens দ্বারা ফেরত দেওয়া একটি টোকেনের আইডি।

  • সনদপত্র

    অ্যারেবাফার

    একটি X.509 শংসাপত্রের DER এনকোডিং৷

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    ()=>void

removeCertificate()

chrome.enterprise.platformKeys.removeCertificate(
  tokenId: string,
  certificate: ArrayBuffer,
  callback?: function,
)

উপস্থিত থাকলে প্রদত্ত টোকেন থেকে certificate সরিয়ে দেয়। অপ্রচলিত শংসাপত্রগুলি অপসারণ করতে ব্যবহার করা উচিত যাতে প্রমাণীকরণের সময় সেগুলি বিবেচনা করা না হয় এবং শংসাপত্রের পছন্দে বিশৃঙ্খলা না হয়। শংসাপত্রের দোকানে সঞ্চয়স্থান বিনামূল্যে ব্যবহার করা উচিত।

পরামিতি

  • tokenId

    স্ট্রিং

    getTokens দ্বারা ফেরত দেওয়া একটি টোকেনের আইডি।

  • সনদপত্র

    অ্যারেবাফার

    একটি X.509 শংসাপত্রের DER এনকোডিং৷

  • কলব্যাক

    ফাংশন ঐচ্ছিক

    callback প্যারামিটারটি এর মত দেখাচ্ছে:

    ()=>void