- HTTP অনুরোধ
- অনুরোধকারী শরীর
- প্রতিক্রিয়া সংস্থা
- প্রমাণীকরণ চাবি
- প্রুফঅফপ্রোভিশনিং
- মোবাইলসিকিউরিটিঅবজেক্ট
ক্রেডেনশিয়াল সরবরাহ করার একটি এন্ডপয়েন্ট।
HTTP অনুরোধ
POST https://example.issuer.com/api/v1/vdc/provisionMobileSecurityObjects
অনুরোধকারী শরীর
অনুরোধের মূল অংশে নিম্নলিখিত কাঠামোসহ ডেটা থাকে:
| JSON উপস্থাপনা |
|---|
{ "requestMetadata": { object ( |
| ক্ষেত্র | |
|---|---|
requestMetadata | আবশ্যক। অনুরোধ সম্পর্কিত মেটাডেটা, যা সকল অনুরোধের জন্য আবশ্যক। |
deviceReferenceId | আবশ্যক। ডিভাইসটির সাথে সংশ্লিষ্ট আইডি এবং ডিভাইসটির সাথে যুক্ত আইডেন্টিটি কী। এটি কোনো ডিভাইস আইডি নয়, অর্থাৎ, যদি ব্যবহারকারীর একই ডিভাইসে দুটি আলাদা ক্রেডেনশিয়াল থাকে, তবে সেগুলোর মধ্যে এই আইডি ভিন্ন হবে। এই আইডিটি সমস্ত অনুরোধে সরবরাহ করা হয় এবং অনুরোধগুলির মধ্যে সম্পর্ক স্থাপন করতে এটি ব্যবহার করা যেতে পারে। |
credentialId | আবশ্যক। একটি অস্বচ্ছ শনাক্তকারী যা কোনো ডিভাইসে প্রদত্ত একটি নির্দিষ্ট পরিচয়পত্রের প্রতিনিধিত্ব করে। উদাহরণ: UUID |
authKeys[] | প্রয়োজনীয়। x509 সার্টিফিকেটগুলোর একটি তালিকা, যেগুলোকে মোবাইল নিরাপত্তা অবজেক্ট হিসেবে ব্যবহারের জন্য সার্টিফাই করা প্রয়োজন। প্রতিটি সার্টিফিকেট ডিভাইস ক্রেডেনশিয়াল কী দ্বারা স্বাক্ষরিত। |
proofOfProvisioning | আবশ্যক। ডিভাইস থেকে এমন একটি অবজেক্ট যা প্রমাণ করে যে ক্রেডেনশিয়ালটি যথাযথভাবে প্রোভিশন করা হয়েছে। এর গঠন সম্পর্কে আরও বিস্তারিত জানতে অবজেক্ট ডেফিনিশনটি দেখুন। দ্রষ্টব্য: ক্রেডেনশিয়াল প্রোভিশন করার পর প্রথমবার যখন মোবাইল সিকিউরিটি অবজেক্ট (MSO) প্রোভিশন করা হয়, তখন এই অবজেক্টটি প্রদান করা হয়। যখন এই পদ্ধতিটি MSO রিফ্রেশের জন্য ব্যবহার করা হয়, তখন এটি প্রদান করা হবে না। |
deviceEncryptionKey | আবশ্যক। একটি অবজেক্ট যাতে ডিভাইসটির ক্ষণস্থায়ী এনক্রিপশন কী এবং সংশ্লিষ্ট মেটাডেটা থাকে। এই কী-টি ডিভাইসে কোনো ভ্যালু এনক্রিপ্ট করে ফেরত পাঠানোর জন্য ব্যবহৃত হয়। অনবোর্ডিংয়ের সময় স্যান্ডবক্স এনভায়রনমেন্টে এই অবজেক্টটি প্রদান করা নাও হতে পারে, যা নির্দেশ করে যে ইস্যুকারীকে প্লেইনটেক্সট ডেটা ফেরত দিতে হবে। প্রোডাকশন এনভায়রনমেন্টে এটি সর্বদা সেট করা উচিত। |
credentialVersionId | আবশ্যক। ডিভাইসটিতে বর্তমানে থাকা ক্রেডেনশিয়াল ভার্সন আইডি। ক্রেডেনশিয়ালের পুরোনো ভার্সনগুলোর জন্য মোবাইল সিকিউরিটি অবজেক্ট প্রোভিশন করতে এটি ব্যবহার করা উচিত নয়। যদি এটি ইস্যুকারীর রেকর্ডে প্রোভিশন করা সবচেয়ে সাম্প্রতিক ভার্সনের সাথে না মেলে, তাহলে এর পরিবর্তে InvalidState সহ একটি ErrorResponse রিটার্ন করা উচিত। |
প্রতিক্রিয়া সংস্থা
মোবাইল নিরাপত্তা অবজেক্ট সরবরাহ করার ফলাফল সম্বলিত একটি প্রতিক্রিয়া।
সফল হলে, প্রতিক্রিয়া অংশে নিম্নলিখিত কাঠামোসহ ডেটা থাকে:
| JSON উপস্থাপনা |
|---|
{ "responseMetadata": { object ( |
| ক্ষেত্র | |
|---|---|
responseMetadata | আবশ্যক। প্রতিক্রিয়া সম্পর্কিত মেটাডেটা, যা সকল প্রতিক্রিয়ার জন্য আবশ্যক। |
mobileSecurityObjects[] | প্রয়োজনীয়। প্রস্তুত থাকা MobileSecurityObject-গুলোর একটি তালিকা। বর্তমানে কোনো MobileSecurityObject প্রস্তুত না থাকলে এই তালিকাটি খালি থাকতে পারে। |
প্রমাণীকরণ চাবি
ডিভাইস ক্রেডেনশিয়াল কী দ্বারা স্বাক্ষরিত একটি x509 সার্টিফিকেট, যা ইস্যুকারী কর্তৃক সত্যায়িত হতে হবে।
এগুলো ওয়ালেট দ্বারা অ্যান্ড্রয়েড আইডেন্টিটি ক্রেডেনশিয়াল এপিআই (Android Identity Credential API) থেকে সংগ্রহ করা হয়, এবং https://developer.android.com/reference/android/security/identity/IdentityCredential#getAuthKeysNeedingCertification( ) -এ এ বিষয়ে আরও বিস্তারিত নথিভুক্ত করা আছে।
| JSON উপস্থাপনা |
|---|
{ // Union field |
| ক্ষেত্র | |
|---|---|
ইউনিয়ন ফিল্ড presencetype । আবশ্যক। এটি এমন একটি বিকল্প যা নির্দেশ করে AuthKey-টি কীভাবে উপস্থাপন করা হচ্ছে। presencetype নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে: | |
encryptedData | এনক্রিপ্ট করা মান এবং মানটি ডিক্রিপ্ট করার জন্য প্রয়োজনীয় এনক্রিপশন মেটাডেটা। |
unencryptedValue | AuthKey-এর base64 এনকোডেড মান। |
প্রুফঅফপ্রোভিশনিং
একটি COSE_Sign1 স্ট্রাকচার্ড, যা ডিভাইস ক্রেডেনশিয়াল কী দ্বারা স্বাক্ষরিত এবং যা প্রমাণ করে যে সংশ্লিষ্ট ক্রেডেনশিয়ালটি ডিভাইসের সুরক্ষিত স্টোরেজে সঠিকভাবে প্রোভিশন করা হয়েছে।
এই কাঠামোটি অ্যান্ড্রয়েড আইডেন্টিটি ক্রেডেনশিয়াল এপিআই (Android Identity Credential API) দ্বারা সংজ্ঞায়িত, এবং https://developer.android.com/reference/android/security/identity/WritableIdentityCredential#personalize(android.security.identity.PersonalizationData ) -এ এ বিষয়ে আরও বিশদ বিবরণ দেওয়া আছে।
| JSON উপস্থাপনা |
|---|
{ // Union field |
| ক্ষেত্র | |
|---|---|
ইউনিয়ন ফিল্ড presencetype । আবশ্যক। এটি এমন একটি বিকল্প যা নির্দেশ করে যে ProofOfProvisioning কীভাবে উপস্থাপন করা হচ্ছে। presencetype নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে: | |
encryptedData | এনক্রিপ্ট করা মান এবং মানটি ডিক্রিপ্ট করার জন্য প্রয়োজনীয় এনক্রিপশন মেটাডেটা। |
unencryptedValue | ProofOfProvisioning-এর বেস৬৪ এনকোডেড মান। |
মোবাইলসিকিউরিটিঅবজেক্ট
একটি অবজেক্ট যা ক্রেডেনশিয়ালে অন্তর্ভুক্ত প্রতিটি ডেটা এলিমেন্ট থেকে গণনা করা ডাইজেস্টগুলোকে এনক্যাপসুলেট করে। এটিকে স্ট্যাটিক অথ ডেটা হিসাবে উপস্থাপন করা হয়, যা অ্যান্ড্রয়েড আইডেন্টিটি ক্রেডেনশিয়াল লাইব্রেরির জন্য প্রয়োজনীয় ফরম্যাট। স্ট্যাটিক অথ ডেটা তৈরির বিষয়ে বিস্তারিত জানতে এটি দেখুন।
| JSON উপস্থাপনা |
|---|
{ "expirationTimeMillis": string, // Union field |
| ক্ষেত্র | |
|---|---|
expirationTimeMillis | একটি টাইমস্ট্যাম্প যা নির্দেশ করে কখন মোবাইল সিকিউরিটি অবজেক্টটির মেয়াদ শেষ হবে। টাইমস্ট্যাম্পটি ইউনিক্স ইপক থেকে মিলিসেকেন্ডের সংখ্যা হিসাবে প্রকাশ করা হয়। |
ইউনিয়ন ফিল্ড presencetype । আবশ্যক। এটি এমন একটি বিকল্প যা নির্দেশ করে ক্রেডেনশিয়ালটি কীভাবে উপস্থাপন করা হচ্ছে। presencetype নিম্নলিখিতগুলির মধ্যে কেবল একটি হতে পারে: | |
encryptedData | এনক্রিপ্ট করা মান এবং মানটি ডিক্রিপ্ট করার জন্য প্রয়োজনীয় এনক্রিপশন মেটাডেটা। |
unencryptedValue | ক্রেডেনশিয়ালটির বেস৬৪ এনকোডেড মান। |