Eventos
Conferencia de la comunidad de Microsoft 365
6 may, 2 p.m. - 9 may, 12 a.m.
Prepárate para la era de la IA en el último evento de Microsoft 365 dirigido por la comunidad, del 6 al 8 de mayo en Las Vegas.
Más informaciónEste explorador ya no es compatible.
Actualice a Microsoft Edge para aprovechar las características, las actualizaciones de seguridad y el soporte técnico más recientes.
El tiempo de trabajo es una característica que permite a los administradores limitar el acceso a Microsoft Teams para los trabajadores por turnos en dispositivos móviles Android e iOS. Estos controles están diseñados para escenarios de dispositivos dedicados de empresa o bring-your-own-device (BYOD) para trabajadores de primera línea. Obtenga más información sobre los escenarios de dispositivos de primera línea.
Con esta característica, puede bloquear el acceso a Teams o mostrar un mensaje de advertencia cuando los trabajadores de primera línea que están fuera del turno abren Teams. Considere la posibilidad de habilitar el tiempo de trabajo para los empleados de primera línea si:
Cuando un trabajador de primera línea marca el reloj en su turno y abre Teams, la aplicación comprueba si el trabajo está activado o desactivado.
Junto con el tiempo de trabajo, se recomienda configurar también el tiempo de silencio para silenciar automáticamente las notificaciones de Teams cuando los trabajadores están fuera del turno.
Siga estos pasos para habilitar el tiempo de trabajo para la primera línea.
Use Microsoft Intune directivas de protección de aplicaciones para configurar el tiempo de trabajo para bloquear o advertir el acceso a Teams en dispositivos Android e iOS. Para obtener más información sobre la configuración de directivas, consulte:
Cree una aplicación en Microsoft Entra para el Graph API workingTimeSchedule.
Al registrar la aplicación, asegúrese de elegir la opción Cuentas solo en este directorio organizativo (inquilino único) para que solo los usuarios del inquilino puedan usar la aplicación. Para más información, consulte Registro de una aplicación con el Plataforma de identidad de Microsoft.
Agregue el permiso de aplicación oculto para llamar al Graph API mediante el ámbito necesario, Schedule-WorkingTime.ReadWrite.All
.
Inicie sesión en la aplicación en el Azure Portal.
Vaya a la pestaña Manifiesto . Verá un JSON que contiene la definición completa de la aplicación.
Al final del manifiesto, agregue la requiredResourceAccess
propiedad .
Esta propiedad especifica el conjunto de permisos a los que la aplicación requiere acceso. En otras palabras, contiene todas las API a las que la aplicación puede llamar. Si esta propiedad ya está presente en el manifiesto, la API ya tiene algunos permisos concedidos.
Dentro de la requiredResourceAccess
matriz, agregue un objeto con un identificador de 00000003-0000-0000-0000-c000-0000000000000000
para especificar los permisos de la aplicación Graph.
Si ya tiene un objeto con este mismo identificador dentro de la requiredResourceAccess
matriz, solo tendrá que agregar lo siguiente dentro de la resourceAccess
matriz:
0b21c159-dbf4-4dbb-a6f6-490e412c716e
.Role
.Este es un ejemplo del aspecto que podría tener el final del manifiesto:
{
...
"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
}
Guarde los cambios.
Debe ser administrador de un espacio empresarial para realizar este paso.
ClientAppId
el identificador de la aplicación.A continuación se muestra cómo llamar a los puntos de conexión de Graph desde la aplicación mediante código de ejemplo en C#.
Cree un nuevo proyecto de consola con el SDK de .NET 6 o .NET 7.
Instale el Microsoft.Identity.Client
paquete NuGet.
Abra el archivo program.cs y copie y pegue el código de ejemplo siguiente en él:
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();
En el código, cambie lo siguiente:
tenantId
: reemplace por el identificador de inquilino.clientId
: reemplace por el identificador de la aplicación.clientSecret
: debe agregar un secreto de cliente en la sección de autenticación de la aplicación. También puede optar por usar un certificado de seguridad y cambiar el código en consecuencia.userId
: reemplace por el usuario al que desea aplicar la directiva inWorkingTime o outOfWorkingTime.Este paso es opcional, pero se recomienda.
Configure directivas de tiempo de silencio en Intune para silenciar automáticamente las notificaciones de Teams para los trabajadores de primera línea durante horas no laborables. Obtenga más información sobre cómo crear directivas de tiempo de silencio.
¿Tengo que usar la aplicación Turnos en Teams para aprovechar esta característica?
No, esta característica se basa en la señal de entrada y salida del reloj de la WFM.
¿Puedo usar el tiempo de trabajo si no tengo un sistema de entrada y salida del reloj en su lugar?
No, se requiere una señal de entrada y salida del reloj para usar esta característica.
Eventos
Conferencia de la comunidad de Microsoft 365
6 may, 2 p.m. - 9 may, 12 a.m.
Prepárate para la era de la IA en el último evento de Microsoft 365 dirigido por la comunidad, del 6 al 8 de mayo en Las Vegas.
Más informaciónFormación
Módulo
Configurar, implementar y administrar los dispositivos de Teams - Training
Los dispositivos de Teams proporcionan una experiencia familiar y son esenciales para un área de trabajo híbrida. Obtenga información sobre cómo aprovisionar y administrar dispositivos y cuentas de dispositivo asociadas.
Certificación
Microsoft 365 Certified: Teams Administrator Associate - Certifications
Demostrar aptitudes para planear, implementar, configurar y administrar Microsoft Teams para centrarse en la colaboración y la comunicación eficientes y eficaces en un entorno de Microsoft 365.