ב״ה
השימוש בAPI של ימות המשיח מתחלק לקבוצה של לקוחות שמתמשים בapi בממשקים באתרים שלהם, ללקוחות שמשלבים תקשורת מול ימות המשיח ביישומים צד שרת וכד.
לטובת ביצוע הזדהות מאובטחת ונוחה ניתן ליצור מפתח api קבוע, להגביל אותו לפרמטרים מסויימים, כתובות IP, שירותים, וכד.
ניהול מפתחות הAPI נעשה באמצעות ממשק הניהול הייעודי בכתובת https://www.call2all.co.il/firewall - אליו ניתן להתחבר על ידי יצירת מפתח API שעבר אימות דו שלבי - או בצורה פשוטה יותר, באתר הניהול בלשונית ״אבטחה>ניהול מפתחות גישה״.
השימוש במפתח גישה טוב בגלל כמה סיבות:
לא קשור לסיסמת ניהול שיכולה להשתנות. ניתן להתאמות אישיות מגוונות, הכל מכתובות הIP שמהם ניתן להשתמש במפתח, ועד לרמה של איזור שירות API ניתן לגשת איתו, או איזה פרמטרים ניתן לשלוח. מפתח פטור מחובת אימות דו-שלבי.במנגנון ההתאמה אישית הושקע מחשבה רבה, והוא מאפשר, בין הייתר, גם לנעול מפתח לשימוש של שירות אחד בלבד - ואפילו עם פרמטרים ספציפיים - גם אם הם לא נשלחו על ידי הלקוח.
ההגבלות וההתאמות אישית מפורטות בממשק ״חומת האש״ של ניהול המפתחות, אבל נביא דוגמא כדי להמחיש את הגמישות:
כל ההתאמות אישית וההגדרות במפתח ניתנים ליישום בעת יצירת המפתח ו/או לאחר מכן בלחצן העריכה.
מפתח API לטובת שימוש במנוע המרת YMGR רק בשלוחה מסויימת ספציפית בלבד:ניצור מפתח - ונגביל אותו לשימוש בשירות ספציפי של המרת ymgr - דרך לשונית ״הגבלות שירותים״:
76763654-e2d8-4807-9abe-01a7a7667995-image.png
לאחר מכן, נעבור ללשונית ״כללי חומת אש״ ונגדיר דבר ראשון שככל ואין כלל מתאים - הבקשה תידחה, על ידי שנגדיר את כלל ברירת המחדל של חומת האש בתור ״חסום״:
d2ade3b3-bd47-4a49-9333-feeadc2a2697-image.png
לאחר מכן, ניצור כלל חדש עם ההגדרות המתאימות.
לצורך הדוגמא, אנחנו רוצים לאפשר למפתח להמיר אך ורק קבצים שנמצאים בתוך תיקיית Log שבמערכת.
נדגים איך ניתן להגביל רק לקבצים בתיקיה הראשית, או אפילו בתתי התיקיות של Log.
נלחץ על לחצן ״הוסף כלל״, ניתן לבחור לו שם, כמובן המדיניות שלו צריכה להיות ״איפשור״, ונעבור ללשונית ״פרמטרים״ - שם נגדיר את החלק החשוב:
3c8b9b59-1fb9-40d3-b489-d8e8b52dc73a-image.png
בא נשים לב מה קורה פה.
בעצם ״שירות״ לא רלוונטי אלינו, כי הרי המפתח כולו מוגבל לשירות אחד בלבד, אז אין עניין לכתוב אותו שוב פה.
אנחנו צריכים להגדיר רק את שם הפרמטר - wath שהוא הפרמטר שהלקוח שולח בו את הנתיב של הקובץ, ואנחנו צריכים לוודא שהערך מתחיל ב ivr2:/Log/ ומכיל כל קובץ שמסתיים ב ymgr, אבל לא בתוך תת תיקיה, למשל, אנחנו לא רוצים שהמפתח יכל לגשת לתיקיה LogConfBridgeEnterExit שמכילה דוחות של חדרי ועידה...
אז נגדיר ככה:
39cadf17-b42a-4385-8e2c-cf94d08b2533-image.png
או לחלופין, אם נרצה שיהיה אפשר להשתמש עם המפתח גם לתת תיקיות, פשוט במקום * פעם אחת, נעשה פעמיים:d51df01e-b0ac-470c-a149-285f0edc8deb-image.png
או לחלופין, אם נרצה שיהיה אפשר להשתמש עם המפתח רק באותה התיקיה, אבל רק לתבנית של קבצים מסויימת, שימו לב:451b562e-0635-4108-a935-7aa5a8ce588d-image.png
הסימני שאלה מציינים שמדובר במשהוא כל שהוא, אבל לפי מספר הפעמים שיש את סימני השאלה, כך ש:
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, ורק בשפה אנגלית.
אז נגדיר:
035afd95-c643-495f-84a1-327422c45bab-image.png
ואז, הפרמטרים האלה יכתבו - כאילו שלחו אותם.
מפתח API לטובת העתקת קובץ מסויים - בצורה שלא צריך לשלוח שום פרמטר:ניתן להגדיר מפתח כך שלא יהיה ניתן לשלוח איתו ממש שום פרמטר, והוא כביכול ״ידע״ מה הוא צריך לעשות.
לצורך הדוגמא, ניצור מפתח שמעתיק את קובץ ivr2:/M0000.wav ל ivr2:/M0000-new.wav בצורה שלא ניתן לשנות שום דבר.
הגבלה לשימוש בFileAction:e34b5478-ce7f-416d-bfd1-77b94a0fc0b3-image.png
רשימה לבנה של פרמטרים ברמת כל המפתח לפרמטר שלא ישלח בחיים ולא רלוונטי, תוך כדי הסרת כל הפרמטרים האחרים - ככל וישלחו:266f30f2-37a5-4259-8d73-067126d6e480-image.png
חסימת כל הבקשות שלא מתאימות לכלל חומת אש:9a65670c-0405-4f63-8982-b4ed9a26d6c1-image.png
יצירת כלל שמתאים תמיד - (ללא שום הגדרות) - אבל ב״פרמטרים להגדרה״ נגדיר את הפמרטרים שלנו:960d0d5f-4cc2-4d20-b03e-db479f700eea-image.png
בעצם ״הכנו״ בשביל המפתח כל מה שהוא צריך / יכול לעשות.
נקרא לשירות, ולא משנה איזה פרמטרים נשלח, תמיד נקבל:
{ { responseStatus: "OK", reports: [{ what: "ivr2:/M0000.wav", target: "ivr2:/M0000-new.wav", success: true }], message: "ok", success: true, action: "copy", yemotAPIVersion: 7 }ללא שום אפשרות לשנות שום דבר אחר עם המפתח.
וכן על זו הדרך וכו וכו ניתן לעשות אפשרויות אין סופיות, להגדיר כמה כללים יחד כדי לאפשר הרבה דברים, וכו וכו.
בברכה,