Autenticación basada en aplicaciones en el módulo de PowerShell de Teams
La autenticación basada en aplicaciones ahora se admite en el módulo de PowerShell de Teams con
- Versiones 4.7.1-preview o posteriores en entornos comerciales & GCC.
- Versiones 5.0.1-preview o posteriores en entornos de GCC High & DoD.
Cmdlets admitidos
Ahora se admiten todos los cmdlets, excepto los cmdlets que se mencionan a continuación.
- New-Team
- [Obtener|Conjunto|Nuevo|Sync]-CsOnlineApplicationInstance
- *PolicyPackage*
- *-CsTeamsShiftsConnection*
- *-CsBatchTeamsDeployment*
- [Obtener|Set]-CsTeamsSettingsCustomApp
- Get-MultiGeoRegion
Ejemplos
En los ejemplos siguientes se muestra cómo usar el módulo de PowerShell de Teams con la autenticación basada en aplicaciones de Microsoft Entra:
Conectar mediante una huella digital del certificado:
Connect-MicrosoftTeams -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
Al usar el parámetro CertificateThumbprint, el certificado debe instalarse en el equipo en el que se ejecuta el comando. El certificado debe instalarse en el almacén de certificados del usuario.
Conectarse mediante un objeto de certificado:
Connect-MicrosoftTeams -Certificate <%X509Certificate2 object%> -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
Al usar el parámetro Certificate, no es necesario que el certificado esté instalado en el equipo donde se ejecuta el comando. El certificado se puede almacenar de forma remota & se captura cuando se ejecuta el script. El parámetro Certificate está disponible en Teams PowerShell Module versión 4.9.2-preview o posterior.
Conectarse mediante tokens de acceso:
Los tokens de acceso se pueden recuperar a través del punto de conexión de login.microsoftonline.com. Se necesitan dos tokens de acceso: "MS Graph" y recursos de "API de Administración de inquilino de Skype y Teams".
$ClientSecret = "…" $ApplicationID = "00000000-0000-0000-0000-000000000000" $TenantID = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY" $graphtokenBody = @{ Grant_Type = "client_credentials" Scope = "https://graph.microsoft.com/.default" Client_Id = $ApplicationID Client_Secret = $ClientSecret } $graphToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $graphtokenBody | Select-Object -ExpandProperty Access_Token $teamstokenBody = @{ Grant_Type = "client_credentials" Scope = "48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default" Client_Id = $ApplicationID Client_Secret = $ClientSecret } $teamsToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $teamstokenBody | Select-Object -ExpandProperty Access_Token Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken")
¿Cómo funciona?
El módulo PowerShell de Teams captura el token basado en la aplicación con el id. de aplicación, el id. de inquilino y la huella digital del certificado. El objeto de aplicación aprovisionado dentro de Microsoft Entra ID tiene asignado un rol de directorio, que se devuelve en el token de acceso. El control de acceso basado en roles (RBAC) de la sesión se configura con la información de rol de directorio que está disponible en el token.
Configurar autenticación basada en aplicaciones
Se requiere una incorporación inicial para la autenticación con objetos de aplicación. La entidad de servicio y la aplicación se usan indistintamente, pero una aplicación es como un objeto de clase mientras que una entidad de servicio es como una instancia de la clase. Puede obtener más información sobre estos objetos en Objetos de entidad de servicio y aplicación en Microsoft Entra ID.
A continuación se indican pasos de ejemplo para crear aplicaciones en Microsoft Entra ID. Para conocer los pasos detallados, consulte este artículo.
- Registre la aplicación en Microsoft Entra ID.
- Asigne permisos de API a la aplicación.
- Para cmdlets *-Cs: el permiso de Microsoft Graph API necesario es
Organization.Read.All
. - Para cmdlets que no sean *-Cs: los permisos de Microsoft Graph API necesarios son
Organization.Read.All
, ,Group.ReadWrite.All
User.Read.All
,AppCatalog.ReadWrite.All
,TeamSettings.ReadWrite.All
,Channel.Delete.All
ChannelSettings.ReadWrite.All
ChannelMember.ReadWrite.All
. - Nota: no es necesario configurar ningún permiso de API para "API de inquilino de Skype y Teams Administración API". Configurar este permiso puede provocar errores.
- Para cmdlets *-Cs: el permiso de Microsoft Graph API necesario es
- Genere un certificado autofirmado.
- Adjunte el certificado a la aplicación Microsoft Entra.
- Asigne roles de Microsoft Entra a la aplicación. Consulte este procedimiento Asignar un rol , pero busque la aplicación en lugar de un usuario.
La aplicación debe tener asignados los roles RBAC adecuados. Dado que las aplicaciones se aprovisionan en Microsoft Entra ID, puede usar cualquiera de los roles integrados admitidos.