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

ואז, הפרמטרים האלה יכתבו - כאילו שלחו אותם.
ניתן להגדיר מפתח כך שלא יהיה ניתן לשלוח איתו ממש שום פרמטר, והוא כביכול ״ידע״ מה הוא צריך לעשות.
לצורך הדוגמא, ניצור מפתח שמעתיק את קובץ 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
}
ללא שום אפשרות לשנות שום דבר אחר עם המפתח.
וכן על זו הדרך וכו וכו ניתן לעשות אפשרויות אין סופיות, להגדיר כמה כללים יחד כדי לאפשר הרבה דברים, וכו וכו.
בברכה,