Authentication_MissingOrMalformed при выполнении New-AzureADApplication - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь запустить этот скрипт, но я получаю эту ошибку:

New-AzureADApplication: ошибка при выполнении NewApplication

Код: Authentication_MissingOrMalformed

Сообщение: токен доступа отсутствует или поврежден.

Import-Module AzureAD  -Force

$rmAccount = Add-AzureRmAccount

$subscriptionId = $rmAccount.Context.Subscription.Id
$tenantId = $rmAccount.Context.Tenant.Id

$tokenCache = $rmAccount.Context.TokenCache
$cachedTokens = $tokenCache.ReadItems() `
        | where { $_.TenantId -eq $tenantId } `
        | Sort-Object -Property ExpiresOn -Descending

$infos = Connect-AzureAD -TenantId $tenantId `
                -AadAccessToken $cachedTokens[0].AccessToken `
                -AccountId $rmAccount.Context.Account.Id

$clientAadApplication = New-AzureADApplication -DisplayName "TodoListClient-NativeDotNet" `
                                                  -ReplyUrls "https://TodoListClient-NativeDotNet" `
                                                  -PublicClient $True

$currentAppId = $clientAadApplication.AppId
$clientServicePrincipal = New-AzureADServicePrincipal -AppId $currentAppId -Tags {WindowsAzureActiveDirectoryIntegratedApp}
$currentAppId = $clientAadApplication.AppIds

Я пытаюсь автоматически зарегистрировать собственное приложение в Azure Active Directory без зависимости от портала Azure, поэтому я вошел в систему с помощью Add-AzureRmAccount, чтобы получить TenantId и SubscriptionId, а затем использовал кешированный токен для подключитесь к AzureAD для предотвращения двойного входа.

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Вы были близки, но токен, который вы передаете от AzureRMAccount, не является правильной аудиторией / ресурсом для действий, которые вы делаете. Простое удаление этого бита и запуск чего-то подобного ниже будет работать с правильными разрешениями аудитории и ресурсов для вашего токена. Вы всегда можете проверить свою аудиторию и область действия токенов, скопировав и вставив ее в https://jwt.ms (полезный отладчик токенов от Microsoft).


Import-Module AzureAD  -Force
Connect-AzureAD
$clientAadApplication = New-AzureADApplication -DisplayName "TodoListClient-NativeDotNet" `
                                                  -ReplyUrls "https://TodoListClient-NativeDotNet" `
                                                  -PublicClient $True

$currentAppId = $clientAadApplication.AppId
$clientServicePrincipal = New-AzureADServicePrincipal -AppId $currentAppId -Tags {WindowsAzureActiveDirectoryIntegratedApp}
$currentAppId = $clientAadApplication.AppIds
0 голосов
/ 02 июля 2018

Токен, полученный при запуске Add-AzureRmAccount, предназначен для аудитории https://management.core.windows.net, но для командлетов Azure AD нужен токен для аудитории Azure AD Graph (https://graph.windows.net). Таким образом, вы не можете использовать этот токен при вызове New-AzureADApplication. Вам следует выбирать между командлетами Azure RM или Azure AD, но не обоими. Но, насколько мне известно, New-AzureRmADApplication не поддерживает создание собственного приложения, поэтому вам следует использовать только командлеты Azure AD .

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...