تصورات
چند تصورات Usher کی تقریباً ہر چیز کی وضاحت کر دیتے ہیں: چیزیں کہاں رہتی ہیں، ٹوکن کون جاری کرتا ہے، لوگ کہاں سائن ان کرتے ہیں، اور ہر ٹوکن کتنی دیر چلتا ہے۔
ورک اسپیسز، پروجیکٹس اور انوائرنمنٹس
- ورک اسپیس Usher Console میں آپ کی ٹیم یا کمپنی ہے۔ اس کے اراکین اور اس کا آڈٹ لاگ اسی کے ہیں۔
- پروجیکٹ ایک پروڈکٹ ہے: آپ کی ویب ایپ، یا کوئی پارٹنر پورٹل۔ ایک ورک اسپیس میں بہت سے ہو سکتے ہیں۔
- انوائرنمنٹ کسی پروجیکٹ کی ایک چلتی ہوئی نقل ہے، عموماً ڈیولپمنٹ اور پروڈکشن۔ لوگ، ایپلیکیشنز، کلیدیں اور ترتیبات انوائرنمنٹس میں رہتی ہیں۔
ورک اسپیس · Acme Ltd
پروجیکٹ · ویب
- ڈیولپمنٹ · wise-otter-42
- پروڈکشن · acme
پروجیکٹ · پارٹنر پورٹل
- ڈیولپمنٹ · calm-heron-17
- پروڈکشن · acme-partners
انوائرنمنٹس کوئی اہم چیز مشترک نہیں رکھتے۔ ہر ایک کا اپنا Postgres اسکیما، اپنی سائننگ کلیدیں، اور اپنی ڈیٹا کلید کے تحت مہربند اپنے سیکرٹس ہیں۔ جو فرد ڈیولپمنٹ میں سائن اپ کرے وہ پروڈکشن میں موجود نہیں ہوتا، اور ایک کا ٹوکن کبھی دوسرے کی کلیدوں سے تصدیق نہیں پا سکتا۔
ورک اسپیس کا ایڈمن کسی پروجیکٹ کا نام ٹائپ کرنے کے بعد اس کے جائزہ صفحے کے آخر سے پروجیکٹ حذف کر سکتا ہے۔ اس کے سارے انوائرنمنٹس ایک ساتھ ختم ہو جاتے ہیں: ان کے لوگ، ایپلیکیشنز، کلیدیں اور ترتیبات، اور ان کا دیا ہوا ہر سیشن اور ٹوکن۔ اس کے پتے جواب دینا بند کر دیتے ہیں اور دوبارہ کبھی کسی کو نہیں دیے جاتے، اس لیے جو ایپ اب بھی ان میں سے کسی پر بھروسا کرتی ہو، اسے کسی اور کا پروجیکٹ دھوکا نہیں دے سکتا۔
جاری کنندگان
ہر انوائرنمنٹ اپنا الگ OpenID Connect جاری کنندہ ہے، ٹیننٹ ڈومین پر اپنے الگ ہوسٹ پر:
https://<handle>.usherid.com- پروڈکشن انوائرنمنٹس کا ہینڈل آپ چنتے ہیں: 3 سے 32 تک چھوٹے انگریزی حروف، ہندسے اور اکیلے ہائفن، جیسے آپ کی کمپنی کا نام۔ ایک بار استعمال شدہ ہینڈل دوبارہ کبھی نہیں دیا جاتا۔
- ڈیولپمنٹ انوائرنمنٹس کو ایک بے ترتیب ہینڈل ملتا ہے، جیسے
wise-otter-42، جسے کوئی کسی برانڈ سے نہیں ملائے گا۔
جاری کنندہ انوائرنمنٹ بنتے وقت طے ہو جاتا ہے، کیونکہ اس کا سائن کیا ہوا ہر ٹوکن iss میں اس کا نام رکھتا ہے، اور اس پر بھروسا کرنے والی ہر ایپ یہ قدر جانچتی ہے۔
ٹیننٹ ڈومین Usher کے اپنے ڈومین (usheridentity.com) سے مختلف ایک قابلِ رجسٹریشن ڈومین ہے، اس لیے کسی گاہک کے سائن ان صفحات کبھی Usher Console کے ساتھ same-site نہیں ہوتے، اور کوکیز صرف ہوسٹ والی ہیں: براؤزر کسی انوائرنمنٹ کی کوکیز صرف اسی انوائرنمنٹ کو بھیجتا ہے۔
لابی
لابی سائن ان کا وہ صفحہ ہے جسے ہر انوائرنمنٹ اپنے جاری کنندہ پر ہوسٹ کرتا ہے۔ آپ کی ایپ لوگوں کو وہاں بھیجتی ہے؛ لابی انہیں سائن ان کرا کے واپس بھیج دیتی ہے۔
- یہ ہمیشہ “… پر جا رہے ہیں” والی چِپ میں اس ایپ کا نام بتاتی ہے جس کی طرف فرد جا رہا ہے۔
- یہ صرف وہی طریقے پیش کرتی ہے جن کی انوائرنمنٹ اجازت دیتا ہے: پاس کیز، ای میل سے بھیجے گئے کوڈ، میجک لنکس، سوشل اکاؤنٹس (Google، GitHub، Microsoft، Apple) اور پاس ورڈ۔
- یہ دوسرا فیکٹر لازمی کر سکتی ہے: تصدیقی ایپ (بیک اپ کوڈز کے ساتھ) یا پاس کی۔
- یہ سب کے لیے کھلی ہو سکتی ہے، یا پتوں اور ڈومینز کی ایک مہمان فہرست تک محدود۔
جس بھی پروڈکٹ نے فرد کو بھیجا ہو، یہ ایک جیسی دکھتی ہے۔ ایسا جان بوجھ کر ہے: لوگ سیکھ جاتے ہیں کہ اصل لابی کیسی دکھتی ہے، اور جب کوئی صفحہ لابی نہ ہو تو پہچان لیتے ہیں۔
Usher اکاؤنٹس
زیادہ تر انوائرنمنٹس کے اپنے صارفین ہوتے ہیں۔ Usher اکاؤنٹس مختلف ہیں: ایک اکاؤنٹ جو کسی فرد کو ہر اس ایپ میں سائن ان کراتا ہے جو Usher کے ساتھ جاری رکھیں پیش کرتی ہے۔ لوگ اپنا اکاؤنٹ account.usheridentity.com پر سنبھالتے ہیں۔
ٹوکن اور ان کی مدت
| ٹوکن | ڈیفالٹ | قابلِ تعین حد | یہ کس لیے ہے |
|---|---|---|---|
| آتھرائزیشن کوڈ | 5 منٹ | مقررہ | ایک بار ٹوکنز کے بدلے دیا جاتا ہے۔ ایک بار استعمال کا۔ |
| ID ٹوکن | 10 منٹ | 1 سے 60 منٹ | آپ کی ایپ کو بتاتا ہے کہ کس نے سائن ان کیا۔ APIs کو کال کرنے کے لیے نہیں۔ |
| ایکسیس ٹوکن | 10 منٹ | 1 سے 60 منٹ | آپ کی API کو بھیجا جاتا ہے، جو اسے جانچتی ہے۔ |
| ریفریش ٹوکن | 30 دن | 1 سے 90 دن | نئے ایکسیس ٹوکن لاتا ہے۔ ہر استعمال پر بدل جاتا ہے۔ offline_access درکار ہے۔ |
| مشین ایکسیس ٹوکن | 15 منٹ | 1 سے 60 منٹ | client_credentials کے لیے: ایسے سرورز جن کے پیچھے کوئی فرد نہیں۔ |
| ای میل سے بھیجا گیا کوڈ، میجک لنک | 10 منٹ | مقررہ | ایک سائن ان۔ ایک کوڈ کی تین کوششیں ہوتی ہیں۔ |
لابی کے سیشنز کی بھی مدت ہوتی ہے: استعمال کے بغیر 7 دن بعد (1 سے 30) سیشن ختم ہو جاتا ہے، اور مجموعی طور پر 30 دن بعد (1 سے 90)۔ کوئی حساس چیز بدلنے کے لیے، جیسے ای میل پتہ، پچھلے 10 منٹ کے اندر کا سائن ان درکار ہے۔
سائننگ کلیدیں
ٹوکنز ڈیفالٹ طور پر RS256 سے سائن کیے جاتے ہیں؛ کوئی انوائرنمنٹ اس کے بجائے ES256 یا EdDSA استعمال کر سکتا ہے۔ عوامی کلیدیں انوائرنمنٹ کے jwks_uri پر شائع ہوتی ہیں، اس لیے آپ کی لائبریریاں انہیں حاصل کرتی ہیں، اور کلیدیں روٹیٹ ہونے پر نئی کلیدیں لے لیتی ہیں۔
اسکوپس
| اسکوپ | آپ کی ایپ کو کیا ملتا ہے |
|---|---|
openid | لازمی۔ فرد کے sub کے ساتھ ایک ID ٹوکن۔ |
profile | اس کا نام اور تصویر۔ |
email | اس کا ای میل پتہ، اور یہ کہ آیا وہ تصدیق شدہ ہے۔ |
offline_access | ایک ریفریش ٹوکن، تاکہ وہ سائن ان رہے۔ |