ক্লায়েন্ট পাসওয়ার্ড ফিল্ডের পরে একটি দ্বিতীয় বাক্স দেখায়, আপনি হার্ডওয়্যার টোকেন থেকে কোডটি লেখেন, তবুও লগইন প্রমাণীকরণ ত্রুটিতে ব্যর্থ হয়। বাক্সটি আছে, অর্থাৎ প্রোফাইল সেটি চেয়েছে। সার্ভার মানটি এমন আকারে পেয়েছে কি না যা সে বোঝে, সেটি ভিন্ন প্রশ্ন, এবং প্রথমে তারই উত্তর দেওয়া দরকার।

আপনার ক্লায়েন্ট আসলে যে প্রম্পট দেখায়, সেখান থেকেই শুরু করুন

একটি প্রোফাইল একটি প্রম্পট স্ট্রিং এবং একটি ফ্ল্যাগসহ স্ট্যাটিক চ্যালেঞ্জ নির্দেশ বহন করতে পারে, ফ্ল্যাগটি নিয়ন্ত্রণ করে আপনি টাইপ করার সময় উত্তরটি দেখানো হবে কি না। প্রম্পট হলো ডায়ালগে যা দেখেন; ফ্ল্যাগ হলো সেই একই ইনপুটের জন্য প্রদর্শন পছন্দ। এর কোনোটিই সার্ভারকে কিছু যাচাই করার উপায় বলে না।

আপনাকে আসলে কতগুলো ফিল্ড দেওয়া হয়েছে গুনুন। ব্যবহারকারীর নামের জন্য একটি ফিল্ড আর একটি মাস্ক করা ফিল্ড হলো কোনো চ্যালেঞ্জ ছাড়াই সাধারণ পাসওয়ার্ড লগইন। পাসওয়ার্ডের পরে নিজস্ব লেবেল নিয়ে যে দ্বিতীয় ফিল্ড আসে, সেটি হলো ক্লায়েন্টের চ্যালেঞ্জ মিথস্ক্রিয়া বাস্তবায়ন।

আপনি যে ক্লায়েন্ট ব্যবহার করছেন সেখানে যদি দ্বিতীয় বাক্সটি কখনো না আসে, তবে সেই ক্লায়েন্ট মিথস্ক্রিয়াটি বাস্তবায়ন না-ও করতে পারে, অথবা কেবল ম্যানেজমেন্ট ইন্টারফেসের মতো ভিন্ন ফ্রন্ট এন্ডের মাধ্যমে বাস্তবায়ন করতে পারে। ক্লায়েন্ট পরীক্ষা করা প্রোফাইল নতুন করে লেখার চেয়ে সস্তা, এবং সাধারণত অমিলটি সেখানেই থাকে।

সার্ভারকে আগে থেকেই যা সমর্থন করতে হবে

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

অপারেটরকে জিজ্ঞাসা করুন কোন প্রক্রিয়া যাচাইটি করে। এটি হতে পারে PAM-এর সঙ্গে কথা বলা একটি প্লাগইন, একটি স্ক্রিপ্ট হুক যা টোকেন পরিষেবার বিপরীতে উত্তরটি যাচাই করে, অথবা ম্যানেজমেন্ট-ভিত্তিক একটি ইন্টিগ্রেশন যা ভরা মানটি নিজেই বিশ্লেষণ করে। এদের প্রত্যেকে কিছুটা ভিন্ন ইনপুট আশা করে।

এখানেই প্রত্যাশা ক্রমাঙ্কন করতে হয়। দ্বিতীয় প্রম্পট একটি ইনপুট প্রক্রিয়া, দ্বিতীয় ফ্যাক্টর প্রয়োগের প্রমাণ নয়, কারণ প্রয়োগ ঘটে সার্ভারের দিকে এবং কেবল ভুল কোড পরীক্ষা করলেই দেখা যায়।

ম্যানেজমেন্ট ইন্টারফেস যে এনকোডেড ফিল্ড পাঠায়

যখন একটি ফ্রন্ট এন্ড ম্যানেজমেন্ট ইন্টারফেসের মাধ্যমে সংযোগ চালায়, তখন জমা দেওয়ার আগে পাসওয়ার্ড ও চ্যালেঞ্জ উত্তর একটি মানে ভরে দেওয়া হয়। ম্যানেজমেন্ট ইন্টারফেসের রেফারেন্স বিন্যাসটি বর্ণনা করে: একটি প্রিফিক্স, তারপর আলাদা Base64 উপাদান হিসেবে পাসওয়ার্ড ও উত্তর।

Base64 একটি এনকোডিং, সুরক্ষা নয়। এটি ফিল্ড পড়তে পারে এমন কারো থেকে কিছু লুকায় না, এবং এককালীন কোডকে পুনরায় ব্যবহারযোগ্য কিছুতে বদলায় না। ভরা মানটি পাসওয়ার্ডের মতোই ব্যবহার দাবি করে: ভাগ করা প্রোফাইল থেকে দূরে, কমান্ড লাইন থেকে দূরে এবং ডায়াগনস্টিক লগ থেকে দূরে।

এই এনকোডিংই বিভ্রান্তির সবচেয়ে সাধারণ উৎস, কারণ এখন তিনটি রূপ আছে যা দেখতে একই রকম কিন্তু বিনিময়যোগ্য নয়। একটি সাধারণ ক্রেডেনশিয়াল ফাইল পাসওয়ার্ড ধরে রাখে। পাসওয়ার্ড ও কোডের আক্ষরিক সংযোজন ভিন্ন একটি স্ট্রিং ধরে রাখে। ম্যানেজমেন্ট ক্লায়েন্টের ভরা উত্তর তৃতীয়টি ধরে রাখে। কেবল একটি ত্রুটি মিটে যাওয়ার কারণে ফিল্ড বদলানোর আগে নিশ্চিত করুন আপনার যাচাই পথ কোনটি আশা করে।

স্ট্যাটিক বনাম ডাইনামিক: ভিন্ন সময়

স্ট্যাটিক চ্যালেঞ্জ প্রথম ক্রেডেনশিয়াল জমা দেওয়ার আগেই জানা থাকে, তাই ক্লায়েন্ট এটি আগেই চাইতে পারে। ডাইনামিক চ্যালেঞ্জ পরে আসে, বিনিময় শুরু হওয়ার পরে প্রমাণীকরণ কর্মপ্রবাহ এটি পাঠায়, এবং এটি এমন ক্লায়েন্ট চায় যা কথোপকথনের মাঝখানে আসা অনুরোধ সামলাতে পারে।

একটির সমর্থন অন্যটি দেয় না। স্ট্যাটিক প্রম্পট কনফিগার করা প্রোফাইল নির্দেশ সার্ভার-আরম্ভিত চ্যালেঞ্জ বাস্তবায়ন করে না, আর ডাইনামিক অনুরোধ সামলানো ফ্রন্ট এন্ডও স্ট্যাটিক একটি নাও দেখাতে পারে। অনুরোধ কোন পক্ষ শুরু করেছে তা পড়াই তাদের আলাদা করার দ্রুততম উপায়।

মানবহীন পরিচালনাই সেই জায়গা যেখানে এটি ইন্টারফেসের প্রশ্ন নয়, নকশার প্রশ্ন হয়ে ওঠে। সংরক্ষিত কোড টেকসই বুট-কালীন ক্রেডেনশিয়াল নয়, এবং কয়েক ঘণ্টা পরে পুনঃসংযোগে নতুন ইনপুট লাগবে, যদি না স্থাপনা এমন টোকেন ব্যবস্থা সমর্থন করে যা অপারেটর সচেতনভাবে সক্রিয় করেছেন।

সাফল্য ও ব্যর্থতা পরীক্ষা করুন, শুধু ডায়ালগ নয়

পরীক্ষার দুই অংশই চালান। সঠিক ক্রেডেনশিয়াল ও বৈধ উত্তরে সফল হওয়া উচিত; সঠিক ক্রেডেনশিয়াল ও সচেতনভাবে ভুল উত্তরে প্রত্যাখ্যাত হওয়া উচিত। যদি দুটোই সফল হয়, ক্লায়েন্ট এমন ইনপুট সংগ্রহ করছে যা কিছুই যাচাই করে না, এবং ডায়ালগকে নিয়ন্ত্রণ ভেবে ভুল করা হয়েছে। ওই একটি পরীক্ষাই যেকোনো প্রোফাইল পর্যালোচনার চেয়ে বেশি স্থাপনা ধরে ফেলে।

তারপর পুনঃসংযোগের পরে, নিবন্ধিত নয় এমন অ্যাকাউন্ট দিয়ে এবং আপনার ব্যবহারকারীরা আসলে যে ক্লায়েন্ট চালান তার মাধ্যমে সংযোগটি পুনরাবৃত্তি করুন। প্রম্পট দেখা যাওয়া ক্লায়েন্টের আচরণ; ভুল কোড প্রত্যাখ্যান করা সার্ভারের কিছু প্রয়োগ।

সম্পর্কিত নিবন্ধ