הזדהות מאובטחת ומותאמת אישית בAPI - מפתח קבוע - API KEY
-
ב״ה
השימוש בAPI של ימות המשיח מתחלק לקבוצה של לקוחות שמתמשים בapi בממשקים באתרים שלהם, ללקוחות שמשלבים תקשורת מול ימות המשיח ביישומים צד שרת וכד.
לטובת ביצוע הזדהות מאובטחת ונוחה ניתן ליצור מפתח api קבוע, להגביל אותו לפרמטרים מסויימים, כתובות IP, שירותים, וכד.
ניהול מפתחות הAPI נעשה באמצעות ממשק הניהול הייעודי בכתובת https://www.call2all.co.il/firewall - אליו ניתן להתחבר על ידי יצירת מפתח API שעבר אימות דו שלבי - או בצורה פשוטה יותר, באתר הניהול בלשונית ״אבטחה>ניהול מפתחות גישה״.
השימוש במפתח גישה טוב בגלל כמה סיבות:
- לא קשור לסיסמת ניהול שיכולה להשתנות.
- ניתן להתאמות אישיות מגוונות, הכל מכתובות הIP שמהם ניתן להשתמש במפתח, ועד לרמה של איזור שירות API ניתן לגשת איתו, או איזה פרמטרים ניתן לשלוח.
- מפתח פטור מחובת אימות דו-שלבי.
במנגנון ההתאמה אישית הושקע מחשבה רבה, והוא מאפשר, בין הייתר, גם לנעול מפתח לשימוש של שירות אחד בלבד - ואפילו עם פרמטרים ספציפיים - גם אם הם לא נשלחו על ידי הלקוח.
ההגבלות וההתאמות אישית מפורטות בממשק ״חומת האש״ של ניהול המפתחות, אבל נביא דוגמא כדי להמחיש את הגמישות:
כל ההתאמות אישית וההגדרות במפתח ניתנים ליישום בעת יצירת המפתח ו/או לאחר מכן בלחצן העריכה.
מפתח API לטובת שימוש במנוע המרת YMGR רק בשלוחה מסויימת ספציפית בלבד:
ניצור מפתח - ונגביל אותו לשימוש בשירות ספציפי של המרת ymgr - דרך לשונית ״הגבלות שירותים״:

לאחר מכן, נעבור ללשונית ״כללי חומת אש״ ונגדיר דבר ראשון שככל ואין כלל מתאים - הבקשה תידחה, על ידי שנגדיר את כלל ברירת המחדל של חומת האש בתור ״חסום״:

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

בא נשים לב מה קורה פה.
בעצם ״שירות״ לא רלוונטי אלינו, כי הרי המפתח כולו מוגבל לשירות אחד בלבד, אז אין עניין לכתוב אותו שוב פה.
אנחנו צריכים להגדיר רק את שם הפרמטר -wathשהוא הפרמטר שהלקוח שולח בו את הנתיב של הקובץ, ואנחנו צריכים לוודא שהערך מתחיל בivr2:/Log/ומכיל כל קובץ שמסתיים בymgr, אבל לא בתוך תת תיקיה, למשל, אנחנו לא רוצים שהמפתח יכל לגשת לתיקיהLogConfBridgeEnterExitשמכילה דוחות של חדרי ועידה...אז נגדיר ככה:

או לחלופין, אם נרצה שיהיה אפשר להשתמש עם המפתח גם לתת תיקיות, פשוט במקום
*פעם אחת, נעשה פעמיים:
או לחלופין, אם נרצה שיהיה אפשר להשתמש עם המפתח רק באותה התיקיה, אבל רק לתבנית של קבצים מסויימת, שימו לב:

הסימני שאלה מציינים שמדובר במשהוא כל שהוא, אבל לפי מספר הפעמים שיש את סימני השאלה, כך ש:
ivr2:/Log/LogFolderEnterExit-2024-022.ymgr // יחסם ivr2:/Log/LogFolderEnterExit-2024-02.ymgr // יצליח ivr2:/Log/LogFolderEnterExit-2026-02.ymgr // יצליח ivr2:/Log/LogFolderEnterExit-2031-02.ymgr // יחסם ivr2:/Log/LogFolderEnterExitGlobal.ymgr // יחסםכן על זו הדרך.
טיפ נוסף: נעילת סוג ההמרה לhtml בלבד.
נוכל להעזר בלשונית ״פרמטרים להגדרה״ - כך שככל והכלל מתאים - אנחנו מעוניינים להגדיר פרמטרים מסויימים כאילו הם נשלחו.
למשל, נרצה שהמפתח הזה יוכל להמיר רק לhtml, ורק בשפה אנגלית.אז נגדיר:

ואז, הפרמטרים האלה יכתבו - כאילו שלחו אותם.
מפתח API לטובת העתקת קובץ מסויים - בצורה שלא צריך לשלוח שום פרמטר:
ניתן להגדיר מפתח כך שלא יהיה ניתן לשלוח איתו ממש שום פרמטר, והוא כביכול ״ידע״ מה הוא צריך לעשות.
לצורך הדוגמא, ניצור מפתח שמעתיק את קובץ
ivr2:/M0000.wavלivr2:/M0000-new.wavבצורה שלא ניתן לשנות שום דבר.הגבלה לשימוש ב
FileAction:
רשימה לבנה של פרמטרים ברמת כל המפתח לפרמטר שלא ישלח בחיים ולא רלוונטי, תוך כדי הסרת כל הפרמטרים האחרים - ככל וישלחו:

חסימת כל הבקשות שלא מתאימות לכלל חומת אש:

יצירת כלל שמתאים תמיד - (ללא שום הגדרות) - אבל ב״פרמטרים להגדרה״ נגדיר את הפמרטרים שלנו:

בעצם ״הכנו״ בשביל המפתח כל מה שהוא צריך / יכול לעשות.
נקרא לשירות, ולא משנה איזה פרמטרים נשלח, תמיד נקבל:
{ { responseStatus: "OK", reports: [{ what: "ivr2:/M0000.wav", target: "ivr2:/M0000-new.wav", success: true }], message: "ok", success: true, action: "copy", yemotAPIVersion: 7 }ללא שום אפשרות לשנות שום דבר אחר עם המפתח.
וכן על זו הדרך וכו וכו ניתן לעשות אפשרויות אין סופיות, להגדיר כמה כללים יחד כדי לאפשר הרבה דברים, וכו וכו.
בברכה,