В Azure AD мы модем регистрировать 4 типа приложений: OAuth Web Apps, OAuth Native, SAML и Azure App proxy. Чаще всего встречаются
OAuth Web регистрации.

Ниже полный код скрипта, который создает приложение, навешивает на него права в Azure AD и создает два ключа, а в конце регистрирует SPN для него.

Обратите внимание, что мы добавляем несколько Reply URL в массиве. Вы можете оставить столько, сколько требуется.

В качестве прав, я добавлял User.Read и User.ReadBasic.All. ID для всех остальных вы можете получить, выполнив команду:

(Get-AzureADServicePrincipal -All $true | Where-Object {$_.DisplayName -eq "Windows Azure Active Directory"}).Oauth2Permissions

Я также создаю 2 ключа валидностью на 1 и 2 года.

Нну а SPN в конце добавляет правильный тег для того, чтобы AAD правильно классифицировала приложение.

Connect-AzureAD

<#
Get all available delegated permissions for API Windows Azure Active Directory
(Get-AzureADServicePrincipal -All $true | Where-Object {$_.DisplayName -eq "Windows Azure Active Directory"}).Oauth2Permissions

Id                      : 311a71cc-e848-46a1-bdf8-97ff7156d8e6
Value                   : User.Read

Id                      : cba73afc-7f69-4d86-8450-4978e04ecd1a
Value                   : User.ReadBasic.All

Id                      : 5778995a-e1bf-45b8-affa-663a9f3f4d04
Value                   : Directory.Read.All

Id                      : 6234d376-f627-4f0f-90e0-dff25c5211a3
Value                   : Group.Read.All

Id                      : c582532d-9d9e-43bd-a97c-2667a28ce295
Value                   : User.Read.All

Id                      : a42657d6-7f20-40e3-b6f0-cee03008a62a
Value                   : Directory.AccessAsUser.All

#>

$ReplyUrls = New-Object 'System.Collections.Generic.List[String]'
# [string[]]$a = "https://1st","https://2nd","https://3rd","https://webapp-1.azurewebsites.net"
[string[]]$a = "https://webapp-1.azurewebsites.net/"
$ReplyUrls.AddRange($a)
$ApiURI = "https://webapp-1.azurewebsites.net/"
$Homepage = "https://webapp-1.azurewebsites.net/"

$DisplayName = "Webapp-1 PRD"

$AzureAPIperms1 = New-Object -TypeName "microsoft.open.azuread.model.resourceAccess" -ArgumentList "311a71cc-e848-46a1-bdf8-97ff7156d8e6","Scope"
$AzureAPIperms2 = New-Object -TypeName "microsoft.open.azuread.model.resourceAccess" -ArgumentList "cba73afc-7f69-4d86-8450-4978e04ecd1a","Scope"
$AzureAPI = New-Object -TypeName "Microsoft.Open.AzureAD.Model.RequiredResourceAccess"
$AzureAPI.ResourceAppId = "00000002-0000-0000-c000-000000000000"
$AzureAPI.ResourceAccess = $AzureAPIperms1,$AzureAPIperms2


# OAuth application
try {
    $NewOAuthapp = New-AzureADApplication -DisplayName $DisplayName -IdentifierUris $ApiURI -Homepage $Homepage -ReplyUrls $ReplyUrls -RequiredResourceAccess @($AzureAPI)
    }
catch { $_.Exception.Message; break }
$NewOAuthapp | select DisplayName,AppId,Homepage,ReplyUrls,IdentifierUris | fl

# Create and set access key
$key1 = New-AzureADApplicationPasswordCredential -ObjectId $NewOAuthapp.ObjectId -CustomKeyIdentifier "Key1" -EndDate (get-date).AddYears(1)
$key2 = New-AzureADApplicationPasswordCredential -ObjectId $NewOAuthapp.ObjectId -CustomKeyIdentifier "Key2" -EndDate (get-date).AddYears(2)
"key1 value is: $($key1.value)"
"key2 value is: $($key2.value)"

# Add SPN to our app. Note the tag: https://docs.microsoft.com/en-us/powershell/module/azuread/new-azureadserviceprincipal?view=azureadps-2.0
$NewAppSPN = New-AzureADServicePrincipal -AppId $NewOAuthapp.AppId -Tags {WindowsAzureActiveDirectoryIntegratedApp}

Насколько полезен этот пост?

Кликните на звезду, чтобы оценить!

Средний рейтинг 5 / 5. Количество голосов: 1