Проверьте, существует ли IdentifierUris в приложении Microsoft Azure Active Directory с помощью PowerShell - PullRequest
0 голосов
/ 09 мая 2019

Я использую следующий сценарий PowerShell для создания приложения Azure Active Directory

$appName = "data-factory-app"
$appURI = "www.datafactoryapp.com"
$appExists = Get-AzADApplication -DisplayName $appName
if (-not $appExists)
{
 if (-not $appExists.IdentifierUris
 New-AzADApplication -DisplayName $appName -IdentifierUris $appURI
}
else 
{
 Write-Output "Application Already Exists"
}

Я выполняю проверку для Display Name, мне также нужно выполнить проверку IdentifierUris, если она существует, но не может найти какую-либокоманда.может ли кто-нибудь помочь

Ответы [ 2 ]

1 голос
/ 10 мая 2019

Для этого я рекомендую использовать командлет Get-AzureADApplication из модуля AzureAD PowerShell (командлеты имеют форму -AzureAD ) вместо командлета из Azure PowerShellМодуль 2.0 (где командлеты имеют вид -AzAD ).

С помощью этого командлета вы можете указать фильтр, как в API Azure AD Graph * $ filter , и получите то, что вы ищете в одном запросе.

Чтобы получить все объекты приложения с заданным отображаемым именем или по любому идентификатору URI (технически это список), совпадающемутот, который вы дали, вы можете сделать следующее:

$appName = "data-factory-app"
$appURI  = "www.datafactoryapp.com"
$filter  = "displayName eq '{0}' or identifierUris/any(u:u eq '{1}')" -f $appName, $appURI
$appExists = Get-AzureADApplication -Filter $filter

if (-not $appExists) {
     # No application exists with that display name or identifier URI
} else {
     # An application already exists with that display name or identifier URI!
}

Редактировать: Если по какой-то причине вы должны использовать модуль Azure PowerShell (Az), вам потребуетсясделайте два отдельных вызова для проверки:

$appName = "data-factory-app"
$appURI  = "www.datafactoryapp.com"

$appExistsWithDisplayName = Get-AzADApplication -DisplayName $appName
if (-not $appExistsWithDisplayName) {

    $appExistsWithIdentifierUri = Get-AzADApplication -IdentifierUri $appURI
    if (-not $appExistsWithIdentifierUri)) {
        # No application exists with that display name or identifier URI
    } else {
        # An application already exists with that identifier URI
    }
} else {
     # An application already exists with that display name
}
0 голосов
/ 09 мая 2019

Я не могу проверить это сам, но это может помочь:

$appName   = "data-factory-app"
$appURI    = "www.datafactoryapp.com"
$appExists = Get-AzADApplication -DisplayName $appName

if (-not $appExists) {
    Write-Output "Application '$appName' does not exist"
    # create it here?
    # see https://docs.microsoft.com/en-us/powershell/module/az.resources/new-azadapplication?view=azps-2.0.0
}
else {
    Write-Output "Application already exists, checking IdentifierUris"
    if (-not $appExists.IdentifierUris -or @($appExists.IdentifierUris) -notcontains $appURI ) {
        Write-Output "Updating Application IdentifierUris"
        $appExists | Update-AzADApplication -IdentifierUri $appURI
    }
}
...