A Microsoft Teamshez való hozzáférés korlátozása, ha az előtérbeli dolgozók műszakon kívül vannak
Áttekintés
A munkaidő egy olyan funkció, amellyel a rendszergazdák korlátozhatják a Microsoft Teamshez való hozzáférést az Android és iOS rendszerű mobileszközök műszakos dolgozói számára. Ezek a vezérlők saját eszközök (BYOD) vagy vállalati tulajdonú dedikált eszközök forgatókönyveihez lettek kialakítva az előtérbeli dolgozók számára. További információ az előtérbeli eszközök forgatókönyveiről.
Ezzel a funkcióval letilthatja a Teamshez való hozzáférést, vagy figyelmeztető üzenetet jeleníthet meg, amikor a műszakon kívüli frontvonalbeli dolgozók megnyitják a Teamst. Fontolja meg a munkaidő engedélyezését az előtérbeli munkaerő számára, ha:
- Aggódik amiatt, hogy az élvonalbeli dolgozók munkaidőn kívüli fizetést kérnek, ha munkahelyi alkalmazásokhoz férnek hozzá.
- A helyi törvények és rendeletek megkövetelik, hogy korlátozza a munkahelyi alkalmazásokhoz való hozzáférést, ha az alkalmazottak műszakon kívül vannak.
Működése
Amikor egy frontvonalbeli feldolgozó beáll a műszakba, és megnyitja a Teamst, az alkalmazás ellenőrzi, hogy a feldolgozó be- vagy kikapcsolt műszakban van-e.
- Ha a feldolgozó műszakban van, hozzáférhet a Teamshez.
- Ha a feldolgozó műszakon kívül van, amikor a Teams meg van nyitva, a feldolgozó egy letiltási vagy figyelmeztető képernyőt lát.
- Ha blokkképernyőt konfigurált, a feldolgozó csak akkor férhet hozzá a Teamshez, ha be nem jelentkezik a műszakba.
- Ha konfigurált egy figyelmeztető képernyőt, a feldolgozó elvetheti azt, és eldöntheti, hogy saját belátása szerint használja-e a Teamst.
- Ha egy feldolgozó a Teamst használja az időtúllépés közben, a feldolgozó az időtúllépés után egy blokkolási vagy figyelmeztető képernyőt lát az alkalmazáshoz.
A munkaidő mellett azt is javasoljuk, hogy állítson be nyugalmi időt a Teams-értesítések automatikus elnémítására, amikor a dolgozók műszakon kívül vannak.
Munkaidő beállítása
Az alábbi lépéseket követve engedélyezheti a munkaidőt az előtérben.
Alkalmazásvédelmi szabályzatok konfigurálása Android és iOS rendszerhez
Microsoft Intune alkalmazásvédelmi szabályzatok használatával konfigurálhatja a munkaidőt, hogy letiltsa vagy figyelmeztesse a Teamshez való hozzáférést Android- és iOS-eszközökön. További információ a szabályzatbeállításokról:
- Androidos alkalmazásvédelmi szabályzat beállításai – Feltételes indítás
- iOS-alkalmazásvédelmi szabályzat beállításai – Feltételes indítás
A munkaerő-felügyeleti rendszer (WFM) csatlakoztatása a workingTimeSchedule API-hoz
Alkalmazás létrehozása
Hozzon létre egy alkalmazást a Microsoft Entra a workingTimeSchedule Graph API számára.
Az alkalmazás regisztrálásakor győződjön meg arról, hogy a Csak ebben a szervezeti címtárban lévő fiókok (egybérlős) lehetőséget választja, hogy csak a bérlő felhasználói használhassák az alkalmazást. További információ: Alkalmazás regisztrálása a Microsoft Identitásplatform.
Adja hozzá a rejtett alkalmazásengedélyt a Graph API meghívásához a szükséges hatókörrel(
Schedule-WorkingTime.ReadWrite.All
).Jelentkezzen be az alkalmazásba a Azure Portal.
Lépjen a Jegyzék fülre . Megjelenik egy JSON, amely tartalmazza az alkalmazás teljes definícióját.
A jegyzékfájl végén adja hozzá a tulajdonságot
requiredResourceAccess
.Ez a tulajdonság határozza meg azokat az engedélyeket, amelyekhez az alkalmazásnak hozzáférésre van szüksége. Más szóval az alkalmazás által meghívható összes API-t tartalmazza. Ha ez a tulajdonság már szerepel a jegyzékfájlban, az API-nak már vannak engedélyei.
requiredResourceAccess
A tömbben adjon hozzá egy azonosítójú00000003-0000-0000-0000-c000-0000000000000000
objektumot a Graph-alkalmazás engedélyeinek megadásához.Ha már van ilyen azonosítójú objektum a
requiredResourceAccess
tömbben, csak a következőt kell hozzáadnia aresourceAccess
tömbben:- Egy objektum, amely az új rejtett engedély azonosítójával rendelkezik:
0b21c159-dbf4-4dbb-a6f6-490e412c716e
. - Az engedély típusa. Ebben az esetben:
Role
.
Íme egy példa arra, hogyan nézhet ki a jegyzékfájl vége:
{ ... "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 }
- Egy objektum, amely az új rejtett engedély azonosítójával rendelkezik:
Mentse a módosításokat.
Bérlőszintű rendszergazdai hozzájárulás megadása az alkalmazás rejtett engedélyéhez
A lépés végrehajtásához bérlői rendszergazdának kell lennie.
- Nyissa meg a böngészőben a https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id={ClientAppId}& response_type=code&scope=https://graph.microsoft.com/.default.
- Az URL-címben cserélje le a elemet
ClientAppId
az alkalmazásazonosítójára. - A hozzájárulási párbeszédpanelen válassza az Elfogadás lehetőséget, ha bérlőszintű rendszergazdai hozzájárulást szeretne adni az alkalmazás új rejtett engedélyének.
A Graph meghívása az alkalmazásból
Az alábbiakban bemutatjuk, hogyan hívhat meg Graph-végpontokat az alkalmazásból példakód használatával C# nyelven.
Hozzon létre egy új konzolprojektet a .NET 6 vagy a .NET 7 SDK használatával.
Telepítse a
Microsoft.Identity.Client
NuGet-csomagot.Nyissa meg a program.cs fájlt, és másolja és illessze be a következő példakódot:
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();
A kódban módosítsa a következőket:
-
tenantId
: Cserélje le a elemet a bérlőazonosítóra. -
clientId
: Cserélje le a elemet az alkalmazás azonosítójára. -
clientSecret
: Az alkalmazás hitelesítési szakaszában hozzá kell adnia egy titkos ügyfélkódot. Dönthet úgy is, hogy biztonsági tanúsítványt használ, és ennek megfelelően módosítja a kódot. -
userId
: Cserélje le azt a felhasználót, akire alkalmazni szeretné az inWorkingTime vagy outOfWorkingTime szabályzatot.
-
Nyugalmi idő beállítása
Ez a lépés nem kötelező, de ajánlott.
Konfigurálja a nyugalmi időre vonatkozó szabályzatokat a Intune, hogy automatikusan elnémítsa a Teams-értesítéseket az előtérbeli dolgozók számára munkaidőn kívüli időszakban. További információ a csendes időre vonatkozó szabályzatok létrehozásáról.
Gyakori kérdések
Használnom kell a Shifts alkalmazást a Teamsben, hogy kihasználhassam ezt a funkciót?
Nem, ez a funkció a WFM be- és kimenő órájára támaszkodik.
Használhatom a munkaidőt, ha nincs be- vagy kimenőóra-rendszerem?
Nem, a funkció használatához órajel szükséges.