banner

פרוטוקול oauth 2.0 - בימינו, כשאתה שומע מישהו מדבר על OAuth, סביר להניח שהם מתכוונים ל- OAuth 2.0. גרסאות קודמות לתקן אינן מיושמות יותר.OAuth היא פרוטוקול הרשאה המאפשרת לך לעבוד עם מערכות חיצוניות בצורה מאובטחת באמצעות מזהים דיגיטליים הנקראים Tokens. סוג אחד של Tokens נקרא Access Token. תפקידו לאפשר לך לממש APIs בצורה מאובטחת. שירות ה- API יכול להשתמש ב- Access Token כדי לקבוע אם אתה רשאי לעשות את מה שאתה מנסה לעשות או לא.

קבלת Token מושגת על ידי תהליך תקשורת בין שירות או אפליקציה לבין שרת הרשאות. פרוטוקול OAuth 2.0 מאפשר מספר תרחישי זרימה המשמשים לקבלת הרשאות. תהליכי הזרימה משתנים במידה שבה שרת ההרשאות ״סומך״ על שרת האפליקציה (מבחינת אבטחת מידע).

הגדרות חשובות להבנת התהליך:

OAuth Term
Definition

Authorization Server 
השרת האמון על ההרשאות והקצאת ה- Tokens


Client Application

האפליקציה אשר מבקשת בשם המשתמש גישה לנתונים

Resource Owner

המשתמש אשר מבקש הרשאת גישה לנתונים באמצעות האפליקציה
Resource Server
השרת אשר חושף נתונים באמצעות API ומסוגל לאמת
Access Token שמגיעים משרת ההרשאות

Authorization Flows

תרחישי הזרימה בהם תומך הפרוטוקול מגוונים מאוד והעיקריים שבהם:

1. Implicit Flow - מותאם לאפליקציות ״דף בודד״ SPA לא מהימנות (כמו Angular או Vue.js)

2. Code Flow - עבור אפליקציות מהימנות (כמו Spring Boot או .NET)

3. Code Flow with PKCE - עבור אפליקציות Untrusted Native או Mobile Apps.

4. Client Credentials - עבור Server to Server בין שרתים מהימנים ללא משתמש קצה.

5. Resource Owner Password - לא מומלץ - שימש בעבר עבור שירותי אינטרנט מהימנים עם דף כניסה מותאם אישית שמעבירים את סיסמת משתמש הקצה אל שרת ההרשאות.

איזה תרחיש מתאים למערכת שאתם מפתחים? קבלו את עץ החלטה!

בבלוג זה נתמקד בתהליך שמשמש ארגונים המעוניינים לבנות מערכת הזדהות והרשאות עבור אפליקציה מהימנה כגון אתר אינטרנט עם משתמש קצה.

Authorization Code Flow

תרחיש זה מאפשר לשרת ההרשאות להתמודד עם ארכיטקטורה הכוללת רכיב דפדפן (שאינו מהימן) ורכיב מתווך מהימן כגון יישום Spring Boot או NET.

התרחיש מנצל את תכונות ההפניה המובנות בפרוטוקול HTTP שפועלות על ידי הדפדפן. התהליך מתחיל ביוזמת משתמש הקצה בפניה אל שרת האפליקציה לקבלת נתונים. הבקשה נענית בהפניה של הדפדפן אל שרת ההרשאה לאימות של משתמש הקצה. רכיב האימות מתבצע בדרך כלל באמצעות ספק שירות חיצוני, Identity Provider, כמו OKTA. 

Okta Authentication and MFA 

שרת ההרשאות סומך עליו לטפל באישורי ההזדהות של המשתמש בצורה מאובטחת. למערכת OKTA היכולת לא רק לשמור על סיסמת המשתמש בצורה מאובטחת אלא לאמת את התהליך באמצעות הזדהות מוכוונת הקשר Context כגון הרשת שממנה בוצעה ההזדהות, המכשיר שממנו בוצעה, הזמן והתנהגות המשתמש. בנוסף המערכת מכילה פקטור הזדהות נוסף להקשחת התהליך Multi-Factor authentication.

Access Token

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

אפליקציית התווך יכולה כעת בצורה מאובטחת ״ומאחורי הקלעים״, להשתמש בקוד שהתקבל בשילוב עם פרטי התצורה של שרת ההרשאות Client Secret ו- Client ID על מנת לבקש Access Token. על מפתח האפליקציה לוודא שהטוקן הזה לא ייחשף אל משתמשי הקצה ויישמר סודי. הוא מהווה תחליף לגיטימי לפרטי ההזדהות של המשתמש. 

התהליך מתחיל בזיהוי המשתמש מדפדפן שאינו מהימן וממשיך בהחלפת טוקן מאחורי הקלעים

JSON Web Tokens

לאחר קבלת Access Token משרת ההרשאות, ינותב הקליינט למסור אותו אל שרת הנתונים. שרת הנתונים נדרש לאמת את הטוקן לפני השימוש בו. 

הטוקנים הם בפורמט JSON Web Token או בקיצור JWT וחתומים על ידי מפתחות אסימטרים JSON Web Keys או בקיצור JWK אותם ניתן לקבל משרת ההרשאות ולשמור בשרת הנתונים. על מנת לפענח אותם ולאמת את מקורם ניתן להשוות את המפתח ששימש להצפנת הטוקן עם המפתח שנשמר בשרת ההרשאות מקומית או לחזור בקריאת API, אל שרת ההרשאות על מנת לאמת את הטוקן (פחות מומלץ בתרחישים הדורשים ביצועים גבוהים).

מקורות:

  • https://developer.okta.com/docs/guides/implement-auth-code/-/use-flow/
  • https://developer.okta.com/docs/concepts/auth-overview/#what-kind-of-client-are-you-building
  • https://developer.okta.com/blog/2018/12/13/oauth-2-for-native-and-mobile-apps

  • קטגוריות: מאמרים

  • תגיות:

  • Mobileiron ו-MacOS: כששתי ענקיות חוברות יחדיו

    מאת: Itzik Hanan | 27/08/2020

    על פי סקר שנערך בקרב 580 ארגונים ובחן את השפעת מתן הבחירה לעובדים בטכנולוגיות על שביעות רצונם ממקום העבודה, 72% מהעובדים בארגונים מעדיפים Mac. עם 135,000 תחנות עבודה של Mac מבית אפל בתוך שלוש שנים, יותר ויותר מערכות הפעלה מיוצרות עם פתרונות מובנים לניהול מרכזי של המכשיר. בכך, משלימה ההתפתחות הטכנולוגית צעד נוסף בדרך לסינרגיה […]

    קרא עוד
  • Okta Platform-Workshop

    מאת: Yafit Zisser | 18/08/2020

    מנהל מערכת OKTA? בואו ללמוד כיצד להשתמש ביכולות ה api של המערכת על מנת להוציא מידע מגוון או להעשיר את המידע הקיים ממערכות חיצוניות. הסדרה בת 6 סרטונים איתם תוכלו להעמיק את הידע ואת היכולות שלכם במערכת. הסדרה מחולקת לשני חלקים, כל חלק מכיל 3 סרטונים okta platform review – PART 1 Part 1.1 סקירה […]

    קרא עוד
  • כשהססמאות חלשות – OKTA חזקה

    מאת: Muli Motola | 26/06/2020

    סיסמאות זה לחלשים? חישבו שוב: רק בארצות הברית עסקים מפסידים 7.3 מיליון דולר בשנה בשל פרצות אבטחה. ומה קורה ברחבי העולם? לא פחות מהפסד שנתי ממוצע של 4.47 מיליארד דולר בגלל כשלים בבקרה. ואם זה לא מספיק, נמצא כי 81% מהפריצות למערכות IT  בארגון גם הם תוצאה של סיסמאות חלשות.  סכומי-עתק יורדים לטמיון בשל כשלי […]

    קרא עוד
  • אבטחת מידע – זה לא משחק ילדים. TikTok

    מאת: Yafit Zisser | 05/05/2020

    מצלמים מפלטרים מעלים לטיקטוק- והטיקטוק זוכר הכל. ילדים זה שמחה והמון המון מידע.. ולא רק של הילדים. הטיקטוק משגע את העולם ובטח עכשיו ב'זמן קורונה', אתם יודעים הכל על הילדים שלכם? גם ה- TikTok. עם המקום הרביעי במספר ההורדות לשנת 2018 כשרק פייסבוק וואטסאפ עוקפות אותה, טיקטוק עושה להורים בית ספר. האפליקציה שכבשה את העולם […]

    קרא עוד
  • מתפשט כמו מגפה – הגנה על מידע

    מאת: Itzik Hanan | 26/03/2020

    וירוס ה COVID_19 סוחף את מדינות העולם ואתו, מתעוררים כל מיני פתרונות קסם למגפה, בזמן שמה שבאמת צריך הוא אנשי מקצוע. הבהלה והפאניקה עושות את שלהן. בתוך שבוע בלבד, ראינו איך עולם שלם מתהפך על פיו: הסופרים מפוצצים והתורים בדרך לקופה הם אינסופיים, רשתות מעלות את מחירי האלכו-ג'ל במאות אחוזים, מנצלות את האנשים המבוהלים בכל […]

    קרא עוד
  • ניהול פוליטיקת זהויות – בחירות 2020 / 3#

    מאת: Yafit Zisser | 01/03/2020

    מה קורה כשהגבולות בין הפוליטי והאישי הולכים ומיטשטשים? בזמנים כאלה, אבטחת מידע היא התחום שצריך לעמוד בחזית הטכנולוגיה. דליפת מידע של מיליוני בוחרים בישראל מציתה נורה אדומה בכל הנוגע לאבטחת מידע. אם מפלגה גדולה אינה מצליחה לשמור על חסינות המידע, מה זה אומר על ארגונים פיננסיים ואיך נערכים לעידן שבו פריצה למידע רגיש היא אחת […]

    קרא עוד
למאמרים נוספים
צור קשר hlink
X

צור קשר

דילוג לתוכן