Проверка подлинности на основе приложений в модуле PowerShell Teams
Проверка подлинности на основе приложений теперь поддерживается в модуле Teams PowerShell с
- Версии 4.7.1-preview или более поздние версии в коммерческих & средах GCC.
- Версии 5.0.1-preview или более поздней версии в средах GCC High & DoD.
Поддерживаемые командлеты
Сейчас поддерживаются все командлеты, за исключением командлетов, упомянутых ниже.
- New-Team
- [Get|Задать|Новое|Sync]-CsOnlineApplicationInstance
- *PolicyPackage*
- *-CsTeamsShiftsConnection*
- *-CsBatchTeamsDeployment*
- [Get|Set]-CsTeamsSettingsCustomApp
- Get-MultiGeoRegion
Примеры
В следующих примерах показано, как использовать модуль Teams PowerShell с Microsoft Entra проверки подлинности на основе приложения.
Подключение с помощью отпечатка сертификата:
Connect-MicrosoftTeams -CertificateThumbprint "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
При использовании параметра CertificateThumbprint сертификат должен быть установлен на компьютере, где выполняется команда. Сертификат должен быть установлен в хранилище сертификатов пользователя.
Подключение с помощью объекта сертификата:
Connect-MicrosoftTeams -Certificate <%X509Certificate2 object%> -ApplicationId "00000000-0000-0000-0000-000000000000" -TenantId "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
При использовании параметра Certificate сертификат не требуется устанавливать на компьютере, где выполняется команда. Сертификат можно удаленно хранить & получить при выполнении скрипта. Параметр Certificate доступен в модуле Teams PowerShell версии 4.9.2-preview или более поздней.
Подключение с помощью маркеров доступа:
Маркеры доступа можно получить через конечную точку login.microsoftonline.com. Для этого требуются два маркера доступа — ресурсы MS Graph и API клиента Skype и 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")
Как это работает?
Модуль PowerShell Teams извлекает маркер на основе приложения, используя идентификатор приложения, идентификатор клиента и отпечаток сертификата. Объекту приложения, подготовленному внутри Microsoft Entra ID, назначена роль каталога, которая возвращается в маркере доступа. Управление доступом на основе ролей (RBAC) сеанса настраивается с помощью сведений о роли каталога, доступных в маркере.
Настройка проверки подлинности на основе приложений
Для проверки подлинности с помощью объектов приложения требуется начальное подключение. Приложение и субъект-служба используются взаимозаменяемо, но приложение похоже на объект класса, а субъект-служба — как экземпляр класса . Дополнительные сведения об этих объектах см. в статье Объекты приложения и субъекта-службы в Microsoft Entra ID.
Ниже приведены примеры действий по созданию приложений в Microsoft Entra ID. Подробные инструкции см. в этой статье.
- Зарегистрируйте приложение в Microsoft Entra ID.
- Назначьте приложению разрешения API.
- Для командлетов *-Cs требуется
Organization.Read.All
разрешение Microsoft API Graph . - Для командлетов, отличных от *-Cs, необходимые разрешения Microsoft API Graph:
Organization.Read.All
,User.Read.All
, ,AppCatalog.ReadWrite.All
Group.ReadWrite.All
,TeamSettings.ReadWrite.All
Channel.Delete.All
ChannelSettings.ReadWrite.All
.ChannelMember.ReadWrite.All
- Примечание. Нет необходимости настраивать разрешения API для "Api клиента Skype и Teams Администратор". Настройка этого разрешения может привести к сбоям.
- Для командлетов *-Cs требуется
- Создайте самозаверяющий сертификат.
- Вложите сертификат в приложение Microsoft Entra.
- Назначьте Microsoft Entra роли приложению. См. эту процедуру назначения роли , но найдите приложение, а не пользователя.
Приложению должны быть назначены соответствующие роли RBAC. Так как приложения подготовлены в Microsoft Entra ID, можно использовать любую из поддерживаемых встроенных ролей.