דילוג לתוכן
תיעוד · מרחבי עבודה, מנפיקים ואסימונים

מושגים

כמה רעיונות מסבירים כמעט כל דבר ב-Usher: איפה הדברים נמצאים, מי מנפיק אסימונים, איפה אנשים מתחברים, וכמה זמן כל אסימון תקף.

מרחבי עבודה, פרויקטים וסביבות

  • מרחב עבודה הוא הצוות או החברה שלך ב-Usher Console. החברים ויומן הביקורת שייכים לו.
  • פרויקט הוא מוצר אחד: אפליקציית האינטרנט שלך, או פורטל שותפים. מרחב עבודה יכול להכיל הרבה פרויקטים.
  • סביבה היא עותק פועל אחד של פרויקט, בדרך כלל פיתוח וייצור. בסביבות נמצאים האנשים, האפליקציות, המפתחות וההגדרות.

מרחב עבודה · Acme Ltd

פרויקט · אתר

  • development · wise-otter-42
  • production · acme

פרויקט · פורטל שותפים

  • development · calm-heron-17
  • production · acme-partners
כל סביבה היא מנפיק בפני עצמו, עם משתמשים, מפתחות ו-Lobby משלה.

לסביבות אין שום דבר משמעותי משותף. לכל אחת יש סכמת Postgres משלה, מפתחות חתימה משלה וסודות משלה, מוצפנים תחת מפתח הנתונים שלה. אדם שנרשם בסביבת הפיתוח לא קיים בסביבת הייצור, ואסימון מאחת מהן אי אפשר לאמת לעולם עם המפתחות של השנייה.

מנהל של מרחב העבודה יכול למחוק פרויקט בתחתית הדף "סקירה כללית" שלו, אחרי הקלדת שם הפרויקט. כל הסביבות שבו נמחקות בבת אחת: האנשים, האפליקציות, המפתחות וההגדרות שלהן, וכל סשן ואסימון שהן נתנו. הכתובות שלו מפסיקות לענות ולא ניתנות שוב לעולם, כך שאפליקציה שעדיין סומכת על אחת מהן לא יכולה להיות מרומה על ידי פרויקט של מישהו אחר.

מנפיקים

כל סביבה היא מנפיק OpenID Connect בפני עצמו, במארח משלה בדומיין הדיירים:

מנפיק
https://<handle>.usherid.com
  • לסביבות ייצור יש כינוי שבוחרים: 3 עד 32 אותיות לטיניות קטנות, ספרות ומקפים לא רצופים, למשל שם החברה שלך. כינוי שכבר היה בשימוש לא ניתן שוב לעולם.
  • סביבות פיתוח מקבלות כינוי אקראי, כמו wise-otter-42, שאף אחד לא יחשוב בטעות שהוא מותג.

המנפיק נקבע כשהסביבה נוצרת, כי כל אסימון שהוא חותם עליו מציין אותו ב-iss, וכל אפליקציה שסומכת עליו בודקת את הערך הזה.

דומיין הדיירים הוא דומיין רשום שונה מזה של Usher עצמו (usheridentity.com), כך שדפי ההתחברות של לקוח אף פעם לא נמצאים באותו אתר (same-site) כמו Usher Console, וקובצי ה-Cookie הם של מארח בלבד: דפדפן שולח את קובצי ה-Cookie של סביבה רק לסביבה הזו.

ה-Lobby

ה-Lobby הוא דף ההתחברות שכל סביבה מארחת אצל המנפיק שלה. האפליקציה שלך שולחת אליו אנשים; הוא מחבר אותם ושולח אותם בחזרה.

  • הוא תמיד מציין את האפליקציה שאליה האדם ממשיך, בתווית "ממשיכים אל".
  • הוא מציע רק את השיטות שהסביבה מתירה: מפתחות גישה, קודים בדוא״ל, קישורי קסם, חשבונות ברשתות חברתיות (Google, GitHub, Microsoft, Apple) וסיסמאות.
  • הוא יכול לדרוש גורם שני: אפליקציית אימות (עם קודי גיבוי) או מפתח גישה.
  • הוא יכול להיות פתוח לכולם, או מוגבל לרשימת אורחים של כתובות ודומיינים.

הוא נראה אותו דבר לא משנה מאיזה מוצר האדם הגיע. זה מכוון: אנשים לומדים איך נראה Lobby אמיתי, ושמים לב כשדף מסוים אינו כזה.

חשבונות Usher

לרוב הסביבות יש משתמשים משלהן. חשבונות Usher שונים: חשבון אחד שמחבר אדם לכל אפליקציה שמציעה "המשך עם Usher". אנשים מנהלים את החשבון שלהם בכתובת account.usheridentity.com.

אסימונים ומשך התוקף שלהם

אסימוןברירת מחדלאפשר להגדירלמה הוא משמש
קוד הרשאה5 דקותקבועמוחלף פעם אחת באסימונים. לשימוש יחיד.
אסימון זהות10 דקות1 עד 60 דקותאומר לאפליקציה שלך מי התחבר. לא לקריאה לממשקי API.
אסימון גישה10 דקות1 עד 60 דקותנשלח ל-API שלך, שבודק אותו.
אסימון רענון30 ימים1 עד 90 ימיםמקבל אסימוני גישה חדשים. מתחלף בכל שימוש. דורש offline_access.
אסימון גישה למכונה15 דקות1 עד 60 דקותל-client_credentials: שרתים שאין מאחוריהם אדם.
קוד בדוא״ל, קישור קסם10 דקותקבועהתחברות אחת. קוד מאפשר שלושה ניסיונות.

גם לסשנים ב-Lobby יש משך תוקף: סשן מסתיים אחרי 7 ימים בלי שימוש (1 עד 30), ואחרי 30 ימים בסך הכול (1 עד 90). שינוי של משהו רגיש, כמו כתובת דוא״ל, דורש התחברות מ-10 הדקות האחרונות.

מפתחות חתימה

האסימונים נחתמים ב-RS256 כברירת מחדל; סביבה יכולה להשתמש ב-ES256 או ב-EdDSA במקום. המפתחות הציבוריים מפורסמים ב-jwks_uri של הסביבה, כך שהספריות שלך מורידות אותם, וקולטות מפתחות חדשים כשמחליפים מפתחות.

היקפי הרשאות (scopes)

Scopeמה האפליקציה שלך מקבלת
openidחובה. אסימון זהות עם ה-sub של האדם.
profileהשם והתמונה שלו.
emailכתובת הדוא״ל שלו, והאם היא מאומתת.
offline_accessאסימון רענון, כדי שיישאר מחובר.