לקריאה באנגלית

שתף באמצעות


הגבל את הגישה ל- Microsoft Teams כאשר עובדים בחזית המשמרת

סקירה כללית

זמן עבודה הוא תכונה המאפשרת למנהלי מערכת להגביל את הגישה ל- Microsoft Teams עבור עובדי משמרות במכשירים ניידים של Android ו- iOS. פקדים אלה מיועדים לתרחישי מכשיר ייעודי בבעלות החברה (BYOD) ומביאים את המכשיר שלך (BYOD) לעובדים בחזית העסק. קבל מידע נוסף על תרחישים של מכשירים חזיתיים.

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

  • אתה חושש שעובדים בחזית העסק מבקשים תשלום מחוץ לשעות העבודה אם הם ניגשים לאפליקציות עבודה.
  • חוקים ותקנות מקומיים מחייבים אותך להגביל את הגישה לאפליקציות עבודה כאשר עובדים אינם משמרת.

כיצד זה פועל

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

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

צילום מסך של מסך הגישה לחסימה ומסך האזהרה.

יחד עם זמן עבודה, מומלץ להגדיר גם זמן שקט להשתיק באופן אוטומטי הודעות Teams כאשר העובדים לא עובדים במשמרת.

הגדרת זמן עבודה

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

קביעת תצורה של מדיניות הגנה על אפליקציות עבור Android ו- iOS

השתמש Microsoft Intune הגנה של אפליקציות כדי לקבוע את התצורה של זמן עבודה כדי לחסום או להזהיר את הגישה ל- Teams במכשירי Android ו- iOS. לקבלת מידע נוסף אודות הגדרות מדיניות, ראה:

חבר את מערכת ניהול כוח העבודה (WFM) ל- API workingTimeSchedule

יצירת יישום

  1. צור יישום ב- Microsoft Entra עבור ה- API של Graph של workingTimeSchedule.

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

  2. הוסף את הרשאת היישום המוסתרת עבור קריאה ל- Graph API באמצעות הטווח הנדרש, Schedule-WorkingTime.ReadWrite.All.

    1. היכנס לאישום שלך בפורטל Azure.

    2. עבור אל הכרטיסיה מניפסט . תראה JSON המכיל את ההגדרה המלאה של היישום שלך.

    3. בסוף המניפסט, הוסף את המאפיין requiredResourceAccess .

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

    4. בתוך המערך requiredResourceAccess , הוסף אובייקט עם מזהה של כדי 00000003-0000-0000-0000-c000-0000000000000000 לציין הרשאות של יישום Graph.

      אם כבר יש לך אובייקט בעל מזהה זהה בתוך המערך requiredResourceAccess , עליך להוסיף רק את הפריטים הבאים בתוך המערך resourceAccess :

      • אובייקט עם המזהה של ההרשאה המוסתרת החדשה, 0b21c159-dbf4-4dbb-a6f6-490e412c716e.
      • סוג ההרשאה. במקרה זה, Role.

      להלן דוגמה של המראה של סוף המניפסט:

      {
        ...
        "preAuthorizedApplications": [],
        "publisherDomain": "microsoft.onmicrosoft.com",
        "replyUrlsWithType": [
          {
            "url": "https://localhost:44321/signin-oidc",
            "type": "Web"
          },
          {
            "url": "https://localhost:44321/",
            "type": "Web"
          }
        ],
        "requiredResourceAccess": [
          {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
              {
                "id": "0b21c159-dbf4-4dbb-a6f6-490e412c716e",
                "type": "Role"
              }
            ]
          }
        ],
        "samlMetadataUrl": null,
        "signInUrl": null,
        "signInAudience": "AzureADMyOrg",
        "tags": [],
        "tokenEncryptionKeyId": null
      }
      
    5. שמור את השינויים.

עליך להיות מנהל דיירים כדי לבצע שלב זה.

  1. בדפדפן, עבור אל https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id={ClientAppId}& response_type=code&scope=https://graph.microsoft.com/.default.
  2. בכתובת ה- URL, החלף ClientAppId במזהה היישום שלך.
  3. בתיבת הדו-שיח של ההסכמה, בחר קבל כדי להעניק הרשאת מנהל מערכת ברחבי הדייר ההרשאה המוסתרת החדשה עבור היישום.

התקשר ל- Graph מהיישום

כך ניתן לקרוא ל נקודות קצה של Graph מהיישום באמצעות קוד לדוגמה ב- C#‎.

  1. צור פרוייקט מסוף חדש באמצעות SDK של .NET 6 או .NET 7

  2. התקן את חבילת Microsoft.Identity.Client NuGet.

  3. פתח את program.cs הקובץ, והעתק והדבק בו את הקוד לדוגמה הבא:

        using System.Text;
      using Microsoft.Identity.Client;
      var userId = "928bf23a-81e8-47c9-ad54-2c0206248afe";
      var path = Path.Combine(Path.GetTempPath(),
      "workingTimeTokenGenerator.txt");
    
      string? accessToken;
      if (!File.Exists(path) || (DateTime.UtcNow - new
      FileInfo(path).LastWriteTimeUtc).TotalMinutes > 59)
      {
        var clientId = "00001111-aaaa-2222-bbbb-3333cccc4444";
        var clientSecret = "Aa1Bb~2Cc3.-Dd4Ee5Ff6Gg7Hh8Ii9_Jj0Kk1Ll2";
        var tenantId = "cad3e174-69d3-4707-abd2-f527f45c367a";
        var scopes = new string[] { "00000003-0000-0000-c000-000000000000/.default" };
    
        var app = ConfidentialClientApplicationBuilder.Create(clientId)
          .WithClientSecret(clientSecret)
          .Build();
    
        var result = await app.AcquireTokenForClient(scopes)
          .WithAuthority(AzureCloudInstance.AzurePublic, tenantId)
          .ExecuteAsync();
    
        accessToken = result.AccessToken;
        File.WriteAllText(path, accessToken);
      }
      else
      {
        accessToken = File.ReadAllText(path);
      }
    
      int number;
    
      while (true)
      {
        Console.WriteLine("Press 1 for startWorkingTime, 2 for endWorkingTime.");
        var choice = Console.ReadLine();
        if (!Int32.TryParse(choice, out number) || !new[] { 1, 2}.Contains(number))
        {
          Console.WriteLine("Out-of-range election.");
          continue;
        }
    
        break;
      }
    
      Console.WriteLine("Performing request...");
      var httpClient = new HttpClient();
      var message = new HttpRequestMessage
      {
        Method = HttpMethod.Post,
        RequestUri = new
      Uri($"https://graph.microsoft.com/beta/users/{userId}/solutions/schedule/{(number == 1 ? "startWorkingTime" : "endWorkingTime")}")
      };
      message.Headers.Add("Authorization", $"Bearer {accessToken}");
      message.Content = new StringContent("", Encoding.UTF8,
      "application/json");
      var response = await httpClient.SendAsync(message);
      if (!response.IsSuccessStatusCode)
      {
        string? content = null;
        try
        {
          content = await response.Content?.ReadAsStringAsync();
        }
        catch
        {
        }
    
        Console.WriteLine($"Graph returned a non success status code: 
      {response.StatusCode}. Reason phrase: {response.ReasonPhrase}." +
          (content is null ? "Unable to get the response body." :
      $"Content: {content}"));
      }
      else
      {
        Console.WriteLine($"Graph returned a success status code: 
      {response.StatusCode}.");
      }
    
      Console.WriteLine("Press any key to exit.");
      _ = Console.ReadKey();
    
  4. בקוד, שנה את האפשרויות הבאות:

    • tenantId: החלף עם מזהה הדייר שלך.
    • clientId: החלף בהמזהה של היישום שלך.
    • clientSecret: עליך להוסיף סוד לקוח במקטע האימות של היישום שלך. באפשרותך גם לבחור להשתמש באישור אבטחה ולשנות את הקוד בהתאם.
    • userId: החלף את המשתמש שעליו ברצונך להחיל את המדיניות inWorkingTime או outOfWorkingTime.

הגדרת זמן שקט

שלב זה הוא אופציונלי אך מומלץ.

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

שאלות נפוצות

האם עליי להשתמש באפליקציית Shifts ב- Teams כדי לנצל תכונה זו?

לא, תכונה זו מסתמכת על אות הכניסה/היציאה של השעון WFM.

האם ניתן להשתמש בזמן עבודה אם אין לי מערכת כניסה/יציאה של שעון?

לא, נדרש אות כניסה/יציאה של שעון כדי להשתמש בתכונה זו.