کلائنٹ پاس ورڈ فیلڈ کے بعد دوسرا خانہ دکھاتا ہے، آپ ہارڈویئر ٹوکن سے کوڈ لکھتے ہیں، اور لاگ اِن پھر بھی توثیق کی خرابی کے ساتھ ناکام ہوتا ہے۔ وہ خانہ موجود ہے، یعنی پروفائل نے اُس کی درخواست کی تھی۔ سرور کو قدر ایسی شکل میں ملی یا نہیں جو وہ سمجھتا ہے، یہ الگ سوال ہے، اور پہلے اُسی کا جواب دینا چاہیے۔

اُس پرامپٹ سے شروع کریں جو آپ کا کلائنٹ واقعی دکھاتا ہے

پروفائل میں پرامپٹ اسٹرنگ اور ایک پرچم کے ساتھ اسٹیٹک چیلنج کی ہدایت ہو سکتی ہے، پرچم یہ کنٹرول کرتا ہے کہ ٹائپ کرتے وقت جواب ظاہر ہو یا نہیں۔ پرامپٹ وہ ہے جو آپ ڈائیلاگ میں دیکھتے ہیں؛ پرچم اُسی اِن پٹ کے لیے ظہور کی ترجیح ہے۔ اِن دونوں میں سے کوئی بھی سرور کو نہیں بتاتا کہ کسی چیز کی تصدیق کیسے کی جائے۔

وہ فیلڈز گنیں جو آپ کو واقعی دیے گئے۔ صارف نام کے لیے ایک فیلڈ اور ایک پردہ شدہ فیلڈ بغیر کسی چیلنج کے عام پاس ورڈ لاگ اِن ہے۔ پاس ورڈ کے بعد اپنے لیبل کے ساتھ آنے والا دوسرا فیلڈ کلائنٹ کا چیلنج تعامل نافذ کرنا ہے۔

اگر آپ کے استعمال کردہ کلائنٹ میں دوسرا خانہ کبھی ظاہر نہ ہو، تو ممکن ہے وہ کلائنٹ تعامل نافذ نہ کرتا ہو، یا صرف مینجمنٹ انٹرفیس جیسے کسی اور فرنٹ اینڈ کے ذریعے کرتا ہو۔ کلائنٹ کی جانچ پروفائل دوبارہ لکھنے سے سستی ہے، اور عام طور پر عدم مطابقت وہیں ہوتی ہے۔

سرور کو پہلے سے کیا سپورٹ کرنا چاہیے

پروفائل بیان کرتا ہے کہ کلائنٹ کو کیا جمع کرنا چاہیے۔ یہ سرور پر تصدیق کو فعال نہیں کرتا، اور متعلقہ توثیقی انضمام کے بغیر سرور کو صرف وہی پاس ورڈ ملے گا جو وہ نہیں پہچانتا۔ اسی لیے کچھ تعیناتیاں پرامپٹ دکھاتی ہیں اور ہر کوڈ مسترد کرتی ہیں، اور اسی لیے یہ اہم ہے کہ کون سا طریقہ کار جانچ کرتا ہے، اِس بارے میں آپریٹر کا جواب کیا ہے۔

آپریٹر سے پوچھیں کہ کون سا طریقہ کار جانچ کرتا ہے۔ یہ PAM سے بات کرنے والا پلگ اِن، ٹوکن سروس کے سامنے جواب کی تصدیق کرنے والا اسکرپٹ ہک، یا مینجمنٹ پر مبنی انضمام ہو سکتا ہے جو بھرا ہوا قدر خود تجزیہ کرتا ہے۔ اِن میں سے ہر ایک قدرے مختلف اِن پٹ کی توقع کرتا ہے۔

یہاں توقعات کو متوازن کرنا بھی ضروری ہے۔ دوسرا پرامپٹ ایک اِن پٹ طریقہ کار ہے، دوسرے عنصر کے نافذ ہونے کا ثبوت نہیں، کیونکہ نفاذ سرور کی طرف ہوتا ہے اور صرف غلط کوڈ جانچنے پر ظاہر ہوتا ہے۔

مینجمنٹ انٹرفیس جو انکوڈ شدہ فیلڈ بھیجتا ہے

جب فرنٹ اینڈ مینجمنٹ انٹرفیس کے ذریعے کنکشن چلاتا ہے، تو جمع کرانے سے پہلے پاس ورڈ اور چیلنج جواب ایک ہی قدر میں بھر دیے جاتے ہیں۔ مینجمنٹ انٹرفیس حوالہ فارمیٹ بیان کرتا ہے: ایک سابقہ، پھر الگ Base64 اجزا کے طور پر پاس ورڈ اور جواب۔

Base64 ایک انکوڈنگ ہے، تحفظ نہیں۔ یہ فیلڈ پڑھ سکنے والے کسی سے کچھ نہیں چھپاتا، اور ایک بار کے کوڈ کو دوبارہ قابلِ استعمال چیز میں نہیں بدلتا۔ بھرا ہوا قدر پاس ورڈ جیسے ہی سلوک کا حقدار ہے: مشترکہ پروفائلز سے باہر، کمانڈ لائنوں سے باہر اور تشخیصی لاگز سے باہر۔

یہی انکوڈنگ الجھن کا سب سے عام ذریعہ بھی ہے، کیونکہ اب تین شکلیں ہیں جو ایک جیسی دکھتی ہیں اور ایک دوسرے کی جگہ نہیں لے سکتیں۔ سادہ اسناد فائل پاس ورڈ رکھتی ہے۔ پاس ورڈ اور کوڈ کا لفظی جوڑ دوسری اسٹرنگ رکھتا ہے۔ مینجمنٹ کلائنٹ کا بھرا ہوا جواب تیسری رکھتا ہے۔ صرف خرابی کے غائب ہونے پر فیلڈ بدلنے سے پہلے تصدیق کریں کہ آپ کا جانچ راستہ کس کی توقع کرتا ہے۔

اسٹیٹک بمقابلہ ڈائنامک: مختلف وقت

اسٹیٹک چیلنج پہلی اسناد جمع کرانے سے پہلے معلوم ہوتا ہے، اس لیے کلائنٹ اُسے پیشگی مانگ سکتا ہے۔ ڈائنامک چیلنج بعد میں آتا ہے، تبادلہ شروع ہونے کے بعد توثیقی بہاؤ اُسے بھیجتا ہے، اور اُسے ایسا کلائنٹ درکار ہے جو بات چیت کے درمیان آنے والی درخواست سنبھال سکے۔

ایک کی سپورٹ دوسرا نہیں دیتی۔ اسٹیٹک پرامپٹ مرتب کرنے والی پروفائل ہدایت سرور کے شروع کردہ چیلنج کو نافذ نہیں کرتی، اور ڈائنامک درخواستیں سنبھالنے والا فرنٹ اینڈ پھر بھی اسٹیٹک نہ دکھا سکے۔ درخواست کس طرف نے شروع کی یہ پڑھنا ہی اُنہیں الگ پہچاننے کا تیز ترین طریقہ ہے۔

بغیر نگرانی کے آپریشن وہ جگہ ہے جہاں یہ انٹرفیس کا نہیں بلکہ ڈیزائن کا سوال بن جاتا ہے۔ محفوظ شدہ کوڈ بوٹ کے وقت کی پائیدار اسناد نہیں ہے، اور گھنٹوں بعد دوبارہ جڑنے پر تازہ اِن پٹ درکار ہوگا، الا یہ کہ تعیناتی ایسا ٹوکن انتظام سپورٹ کرے جو آپریٹر نے دانستہ فعال کیا ہو۔

کامیابی اور ناکامی دونوں جانچیں، صرف ڈائیلاگ نہیں

جانچ کے دونوں حصے چلائیں۔ درست اسناد اور معتبر جواب کامیاب ہونے چاہئیں؛ درست اسناد اور دانستہ غلط جواب مسترد ہونے چاہئیں۔ اگر دونوں کامیاب ہوں، تو کلائنٹ ایسا اِن پٹ جمع کر رہا ہے جسے کچھ جانچتا نہیں، اور ڈائیلاگ کو کنٹرول سمجھ لیا گیا ہے۔ وہی ایک جانچ کسی بھی پروفائل جائزے سے زیادہ تعیناتیاں پکڑتی ہے۔

پھر دوبارہ جڑنے کے بعد، ایسے اکاؤنٹ کے ساتھ جو اندراج شدہ نہیں، اور اُس کلائنٹ کے ذریعے جو آپ کے صارفین واقعی چلاتے ہیں، کنکشن دہرائیں۔ پرامپٹ کا ظاہر ہونا کلائنٹ کا رویہ ہے؛ غلط کوڈ کا مسترد ہونا سرور کا کچھ نافذ کرنا ہے۔

متعلقہ مضامین