ایک پروڈکٹ مینیجر کمپنی کا VPN آن کرنے والا بٹن مانگتا ہے، اور درخواست معمولی لگتی ہے۔ iOS پر یہ چھوٹی خصوصیت نہیں؛ یہ عوامی معاہدے سے باہر ہے، اور ہر راستہ یا تو جائزے میں ناکام ہوتا ہے یا اگلی ریلیز میں ٹوٹ جاتا ہے۔ درخواست کو اسی سے گزارئیں جو پلیٹ فارم واقعی اجازت دیتا ہے، اور ڈیزائن زیادہ تر خود لکھا جاتا ہے۔ ایپ VPN کنفیگریشن رکھ سکتی ہے اور اسے شروع کر سکتی ہے۔ ایپ سسٹم سوئچ تک نہیں پہنچ سکتی، ایسی پروفائل کی حالت نہیں پڑھ سکتی جو اس نے خود نہ بنائی ہو، اور کسی صارف کو اس کی مرضی کے خلاف منسلک نہیں رکھ سکتی۔

ان تین چیزوں سے شروع کریں جن کا صارف مطلب رکھتا ہے

API الگ کرنے سے پہلے معانی الگ کریں۔ کبھی صارف چاہتا ہے کہ آپ کی ایپ کی سرنگ منسلک ہو، کبھی وہ کسی اور کے نصب کردہ پروفائل کے لیے سیٹنگز کا سوئچ آن کرنا چاہتا ہے، اور کبھی وہ چاہتا ہے کہ فون سرنگ کے بغیر براؤز نہ کر سکے۔ یہ تین مختلف طریقہ کاروں سے مطابقت رکھتے ہیں، اور عام ایپ کے لیے صرف پہلا کھلا ہے۔

دوسرا مطلب ہی Stack Overflow کے سوالات پیدا کرتا ہے، اور اس کا کوئی معاون جواب نہیں ہے۔ سیٹنگز کا ٹوگل صارف کا ہے اور زیرِ انتظام آلات پر پروفائل کا۔ کوئی عوامی API VPN کنفیگریشنز کی فہرست نہیں دیتا، یہ نہیں بتاتا کہ سسٹم سرنگ فعال ہے یا نہیں، اور اسے تبدیل نہیں کرتا۔

ایپ واقعی کیا بنا سکتی ہے

NetworkExtension ایپ کو NEVPNManager کے ذریعے اپنی کنفیگریشن دیتا ہے۔ Personal VPN حق اور صارف کی رضامندی کے ساتھ، ایپ ایسی کنفیگریشن محفوظ کرتی ہے جو سیٹنگز میں اپنے نام سے دکھائی دیتی ہے، اور وہ اسی ایک کنکشن کو شروع یا بند کر سکتی ہے۔ یہ ایک حقیقی، قابلِ جائزہ صلاحیت ہے، اور یہی پورا دائرہ ہے: مینیجر صرف وہی پڑھتا اور لکھتا ہے جو اس نے خود بنایا۔

حق خودکار نہیں ہے۔ آپ اسے Apple سے مانگتے ہیں اور دلیل دیتے ہیں کہ ایپ کو سرنگ کی ضرورت کیوں ہے، اور جس گاہک کا واحد مقصد کسی اور کی پروفائل آن کرنا ہے اس کے پاس اچھا جواب نہیں ہے۔ پیکٹ سرنگ فراہم کرنے والے اسی قاعدے کی پیروی مختلف کلاس کے ساتھ کرتے ہیں: NETunnelProviderManager ایسی فراہم کنندہ کی بنیاد پر کنفیگریشنز رکھتا ہے جو ایپ نے خود نصب کیں۔ دونوں میں سے کوئی راستہ MDM کے فراہم کردہ پروفائل تک نہیں پہنچتا۔

رضامندی محفوظ کرنے کے وقت بھی لاگو ہوتی ہے۔ کنفیگریشن لکھنا صارف سے پوچھتا ہے، اور یہ پوچھنا ایسی چیز نہیں جسے ایپ سہولت کے لیے دبا سکے۔

حالت پڑھنا بھی اسی دیوار سے ٹکراتا ہے

حالت کنٹرول سے زیادہ دوستانہ دکھتی ہے اور اتنی ہی بند ہے۔ NEVPNStatus ایپ کی اپنی کنفیگریشن کے لیے غلط، منقطع، منسلک ہو رہا، منسلک، دوبارہ تصدیق یا منقطع ہو رہا بتاتا ہے، اور ہر تبدیلی پر اطلاع نکلتی ہے۔ یہ انتظامی پروفائل کی نصب کردہ سرنگ کے بارے میں کچھ نہیں کہتا، اور ہیلپ ڈیسک واقعی وہی حالت دیکھنا چاہتا ہے۔

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

On Demand اور Always On اصل لیور ہیں

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

Always On VPN نفاذ کا طریقہ کار ہے، اور یہ نگرانی سے جڑا ہے۔ زیرِ نگرانی آلے پر MDM ایسی پروفائل نصب کرتا ہے جو سرنگ کو فعال رکھتی ہے؛ غیر نگرانی شدہ ذاتی فون پر وہی کلیدیں وہی رویہ پیدا نہیں کرتیں۔ یہ عدم توازن جان بوجھ کر ہے، اور پے لوڈ کلیدوں کی کوئی ترکیب اسے ختم نہیں کرتی۔ جب تقاضا واقعی یہ ہو کہ VPN آن ہی رہے، تو تقاضا دراصل یہ ہے کہ آلہ زیرِ انتظام ہو۔

دونوں کے درمیان کمزور کزن بیٹھا ہے: ایسا قاعدہ جو صارف کے منقطع کرنے کے بعد دوبارہ منسلک ہوتا ہے۔ یہ اگلی بار قاعدے کے جائزے پر منسلک ہوتا ہے، جو فوراً ہونے کے برابر نہیں، اور جان بوجھ کر منقطع کرنے والا صارف فرق محسوس کرے گا۔ تالا دینے کا وعدہ کرنے کے بجائے انٹرفیس کو اسی خلا کے گرد ڈیزائن کریں۔

معاون راستہ بھیجیں

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

سسٹم VPN کو چھیڑنے والی نجی API ڈیمو پاس کرے گی اور جائزے میں ناکام ہو گی، اور اگر کسی اور راستے سے بھیجی گئی تو اگلی iOS ریلیز میں ٹوٹ جائے گی۔ ایک سوئچ کے لیے اس تبادلے کا کوئی نسخہ قابلِ قدر نہیں۔

انتظامی ٹیلی میٹری الگ چینل ہے: یہ بتاتی ہے کہ پروفائل نصب ہے اور آلہ مطابق ہے یا نہیں، جو رپورٹنگ ہے، فی ایپ کنٹرول سطح نہیں۔ ہر اپ ڈیٹ کے بعد حقیقی آلے پر بہاؤ آزمائیں، کیونکہ معاون رویہ OS میں رہتا ہے اور OS حرکت کرتا ہے۔

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