В конвейере выпуска я пытаюсь подключиться к Azure AD с помощью Connect-Azaccount, поэтому я могу запустить Get-AzADgroup для получения некоторых имен групп Az AD и их guid и вывода в переменные.
Я создал задачу Azure Powershell со следующим встроенным скриптом.
(Get-AzADGroup -DisplayName "имя-группы").origin
Привет, Джой! Я еще не пробовал, так как у меня нет разрешения на создание приложения AD и субъекта-службы. Я сообщу вам, как только получу разрешения.
Вы также можете использовать существующее приложение AD, если вы создаете проект DevOps, оно автоматически создаст приложение AD с именем, например organizationname-projectname-513f22f1-befd-xxxxxxcfe90f
, в реестрах приложений в вашем клиенте. Но вам также нужно разрешение на Grant admin consent for xxx
. Может быть, вы могли бы попросить своего администратора предоставить вам разрешение API. :-)
Привет, Джой, я создал запрос, чтобы наша команда безопасности создала приложение AD. Все еще жду..
Привет, радость! В задаче powershell «Подписка Azure в AZ» вы используете субъект-службу или подключение к службе управляемого удостоверения службы?
Я использовал субъект-службу.
Привет, Джой! Я получаю сообщение об ошибке при выполнении задачи Azure PowerShell. не удалось найти модули: «Az.Accounts» с версией: «».
Я использую версию задачи 4.* (превью)
Привет, Джой, ты знаешь, в чем проблема?
Я не уверен, я рекомендую вам опубликовать новый вопрос, чтобы задать конкретную ошибку.
Привет Джой, я смог исправить ошибку. Вы знаете, какую роль вы отвели SP?
Это зависит от вашего требования, в моем примере я не давал роль SP, я просто даю разрешение AAD Graph Directory.Read.All
.
Кажется, вам нужно использовать неинтерактивный вход в систему, выполните следующие действия.
Создайте приложение Azure Active Directory. и создать секрет для приложения, сохраните секрет и получить значения для входа.
В приложении AD -> API permissions
-> Add a permission
-> выберите Azure Active Directory Graph
-> Application permissions
-> Directory.Read.All
-> нажмите Add permissions
-> нажмите Grant admin consent for xxx
, см. скриншот.
Попробуйте скрипт, как показано ниже, используйте значения, которые вы получили на шаге 1, он отлично работает на моей стороне.
Примечание: вам нужно использовать Task version
с 4.*(preview)
, когда вы используете Az
модуль powershell.
$azureAplicationId = "<your ad app application id>"
$azureTenantId= "<your tenant id>"
$azurePassword = ConvertTo-SecureString "<the secret of your ad app>" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($azureAplicationId , $azurePassword)
Connect-AzAccount -Credential $psCred -TenantId $azureTenantId -ServicePrincipal
#I just test to get all groups, you could do other operations
Get-AzADGroup
Джой Ван, я использовал ваш метод упоминания, но не вошел в систему. Проверьте следующую ошибку: Connect-AzAccount: сбой проверки подлинности ClientSecretCredential: проблема с конфигурацией препятствует проверке подлинности. Подробные сведения см. в сообщении об ошибке с сервера. Вы можете изменить конфигурацию на портале регистрации приложений. Подробнее см. в aka.ms/msal-net-invalid-client. Исходное исключение: AADSTS7000215: предоставлен недопустимый секрет клиента.
Если мой ответ полезен, пожалуйста, отметьте его как ответ (слева от моего ответа есть возможность отметить), спасибо.