PyPI হল Python প্রোগ্রামিং ভাষায় তৃতীয় পক্ষের অ্যাপ্লিকেশনের জন্য অফিসিয়াল সফ্টওয়্যার সংগ্রহস্থল।
কিছুদিন আগে ঘোষণা করা হয়েছে যে, পাইথন প্যাকেজ রিপোজিটরি PyPI (পাইথন প্যাকেজ ইনডেক্স) এখন প্যাকেজ প্রকাশের জন্য একটি নতুন নিরাপদ পদ্ধতি চালু করেছে , যার ফলে বাহ্যিক সিস্টেমে (যেমন, গিটহাব অ্যাকশনস) নির্দিষ্ট পাসওয়ার্ড এবং এপিআই অ্যাক্সেস টোকেন সংরক্ষণের প্রয়োজনীয়তা দূর হয়েছে।
নতুন প্রমাণীকরণ পদ্ধতিটির নাম ‘ট্রাস্টেড পাবলিশার্স’ এবং এটি এমন একটি সমস্যা সমাধানের জন্য তৈরি করা হয়েছে, যেখানে বাহ্যিক সিস্টেম হ্যাক হওয়ার ফলে ক্ষতিকারক আপডেট প্রকাশিত হয় এবং পূর্বনির্ধারিত পাসওয়ার্ড বা টোকেন ভুল হাতে চলে যায়।
আজ থেকে, PyPI প্যাকেজ রক্ষণাবেক্ষণকারীরা একটি নতুন, আরও সুরক্ষিত প্রকাশনা পদ্ধতি গ্রহণ করতে পারে যা বহিরাগত সিস্টেমের সাথে ভাগ করার জন্য দীর্ঘস্থায়ী পাসওয়ার্ড বা API টোকেনের প্রয়োজন হয় না।
এটি উল্লেখ করা হয়েছে যে এই নতুন প্রমাণীকরণ পদ্ধতি অন্যান্য ঐতিহ্যগত PyPI প্রমাণীকরণ পদ্ধতির তুলনায় উল্লেখযোগ্য ব্যবহারযোগ্যতা এবং নিরাপত্তা সুবিধা প্রদান করে:
- ব্যবহারযোগ্যতা: বিশ্বস্ত প্রকাশনার সাথে, ব্যবহারকারীদের আর ম্যানুয়ালি PyPI তে API টোকেন তৈরি করতে হবে না এবং তাদের CI প্রদানকারীতে কপি করে পেস্ট করতে হবে। একমাত্র ম্যানুয়াল পদক্ষেপ হল PyPI এ সম্পাদক কনফিগার করা।
- নিরাপত্তা: নিয়মিত PyPI API টোকেনগুলি দীর্ঘস্থায়ী হয়, যার মানে হল যে আক্রমণকারী যে প্যাকেজ রিলিজের সাথে আপস করে তার বৈধ ব্যবহারকারী নোটিশ না করা পর্যন্ত এবং ম্যানুয়ালি প্রত্যাহার না করা পর্যন্ত এটি ব্যবহার করতে পারে। একইভাবে, একটি পাসওয়ার্ড দিয়ে আপলোড করার মানে হল যে আক্রমণকারী অ্যাকাউন্টের সাথে সম্পর্কিত যে কোনও প্রকল্প আপলোড করতে পারে। বিশ্বস্ত প্রকাশনা এই উভয় সমস্যাকে এড়িয়ে যায়: ইস্যু করা টোকেন স্বয়ংক্রিয়ভাবে মেয়াদ শেষ হয়ে যায় এবং শুধুমাত্র যে প্যাকেজগুলিতে তারা আপলোড করার জন্য অনুমোদিত তাদের মধ্যে সীমাবদ্ধ।
এই নতুন প্রমাণীকরণ পদ্ধতি সম্পর্কে উল্লেখ করা হয়েছে যে, এটি ওপেনআইডি কানেক্ট ( OIDC) স্ট্যান্ডার্ডের উপর ভিত্তি করে তৈরি। এটি প্রচলিত লগইন/পাসওয়ার্ড অথবা অ্যাক্সেস টোকেন দ্বারা ম্যানুয়ালি তৈরি করা কোনো স্থায়ী এপিআই (API) ব্যবহারের পরিবর্তে, একটি প্যাকেজ প্রকাশনা কার্যক্রম যাচাই করার জন্য বাহ্যিক পরিষেবা এবং PyPI ডিরেক্টরির মধ্যে বিনিময় করা সময়-সীমিত প্রমাণীকরণ টোকেন ব্যবহার করে ।
বিশ্বস্ত তৃতীয় পক্ষের পরিষেবা এবং PyPI-এর মধ্যে স্বল্পস্থায়ী পরিচয় টোকেন বিনিময় করার জন্য OpenID Connect (OIDC) স্ট্যান্ডার্ড ব্যবহার করার জন্য "বিশ্বস্ত প্রকাশনা" হল আমাদের শব্দ। এই পদ্ধতিটি স্বয়ংক্রিয় পরিবেশে ব্যবহার করা যেতে পারে এবং প্রকাশ করার সময় PyPI এর সাথে প্রমাণীকরণের জন্য ব্যবহারকারীর নাম/পাসওয়ার্ড সংমিশ্রণ বা ম্যানুয়ালি জেনারেট করা API টোকেন ব্যবহার করার প্রয়োজনীয়তা দূর করে।
অন্যদিকে, এটিও উল্লেখ করা হয়েছে যে প্যাকেজ রক্ষণাবেক্ষণকারীরা, PyPI পক্ষ থেকে, বহিরাগত OpenID প্রদানকারীদের (IdPs) ট্রাস্ট শনাক্তকারী প্রদান করতে পারে, যা বহিরাগত পরিষেবা PyPI-এর নন-লাইভ টোকেনগুলির জন্য অনুরোধ করতে ব্যবহার করবে।
জেনারেট করা ওপেনআইডি কানেক্ট টোকেনগুলো প্রজেক্ট এবং ড্রাইভারের মধ্যকার সম্পর্ক নিশ্চিত করে, যা পাইপিআই-কে অতিরিক্ত মেটাডেটা যাচাই করার সুযোগ দেয়, যেমন প্রকাশিত প্যাকেজটি কোনো নির্দিষ্ট রিপোজিটরির সাথে যুক্ত কিনা তা যাচাই করা। টোকেনগুলো স্থায়ী নয়, নির্দিষ্ট এপিআই-এর সাথে সংযুক্ত থাকে এবং একটি স্বল্পস্থায়ী মেয়াদের পর স্বয়ংক্রিয়ভাবে মেয়াদোত্তীর্ণ হয়ে যায়।
পরিবর্তে, PyPI রক্ষণাবেক্ষণকারীরা PyPI কনফিগার করতে পারে একটি প্রদত্ত ওপেনআইডি কানেক্ট পরিচয় প্রদানকারী (আইডিপি) দ্বারা প্রদত্ত একটি পরিচয়কে বিশ্বাস করতে। এটি PyPI-কে সেই পরিচয় যাচাই করতে এবং আস্থা অর্পণ করতে দেয়, যা তখন PyPI থেকে সীমিত-স্কোপের, স্বল্প-কালীন API টোকেনগুলির অনুরোধ করার জন্য অনুমোদিত। এই API টোকেনগুলিকে কখনই সংরক্ষণ বা ভাগ করার দরকার নেই, দ্রুত মেয়াদ শেষ হওয়ার সাথে সাথে স্বয়ংক্রিয়ভাবে ঘোরানো হবে এবং একটি প্রকাশিত প্যাকেজ এবং এর উত্সের মধ্যে একটি যাচাইযোগ্য লিঙ্ক প্রদান করবে৷
বর্তমানে, গিটহাব অ্যাকশনস-এ শুরু করা কন্ট্রোলারগুলোর জন্য ট্রাস্টেড পাবলিশার্স মেকানিজম ব্যবহারের সুবিধাটি ইতিমধ্যেই বাস্তবায়িত এবং চালু রয়েছে । পরিশেষে, এবং গুরুত্বপূর্ণভাবে, এটিও উল্লেখ করা হয়েছে যে ভবিষ্যতে অন্যান্য বাহ্যিক পরিষেবাগুলোর জন্যও ট্রাস্টেড পাবলিশার্স-এর সমর্থন প্রত্যাশিত।
অবশেষে, আপনি যদি এই বিষয়ে আরও জানতে আগ্রহী হন , তাহলে নিচের লিঙ্কে বিস্তারিত তথ্য পেতে পারেন ।