Доступ запрещен для настройки Azure B2B разрешить домен списка с помощью Graph API - PullRequest
0 голосов
/ 10 апреля 2020

Я создал зарегистрированное приложение в Azure, и мне будут предоставлены следующие разрешения API для Graph API следующим образом:

**
Directory.ReadWrite.All
Policy.Read.All 
Policy.ReadWrite.TrustFramework
User.Invite.All
User.Read
**

Я планирую добавить список разрешений в Azure Каталог B2B, а затем пригласите гостевого пользователя в мой каталог, используя созданный мной принцип обслуживания.

С указанными выше разрешениями я могу прочитать текущую политику и отправить приглашение гостевому пользователю. Но я не могу добавить список разрешенных доменов в своем каталоге B2B.

Каждый раз, когда я пытаюсь обновить существующую политику, я получаю отказ в доступе, как показано ниже:

**
Set-AzureADPolicy -Definition $policyValue -Id $currentpolicy.Id | Out-Null**

Error

Set-AzureADPolicy : Error occurred while executing SetPolicy 
Code: Authorization_RequestDenied
Message: Insufficient privileges to complete the operation.
InnerError:
  RequestId: 4f161b70-f71c-4507-8b91-788457429fcc
  DateTimeStamp: Wed, 08 Apr 2020 16:57:39 GMT
HttpStatusCode: Forbidden
HttpStatusDescription: Forbidden
HttpResponseStatus: Completed
At line:1 char:1
+ Set-AzureADPolicy -Definition $policyValue -Id $currentpolicy.Id | Ou ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Set-AzureADPolicy], ApiException
    + FullyQualifiedErrorId : Microsoft.Open.MSGraphBeta.Client.ApiException,Microsoft.Open.MSGraphBeta.PowerShell.SetPolicy

Кто-нибудь имел какие-либо идеи, чего здесь не хватает?

Также могу ли я подтвердить, что в данный момент поддерживается эта операция с Graph API?

Спасибо, Балайп

1 Ответ

0 голосов
/ 13 апреля 2020

Согласно некоторым тестам, я просто добавляю остальные три разрешения в разделе «Политика» в приложение, которое вы зарегистрировали. И тогда я могу использовать команду Set-AzureADPolicy success (при подключении к Azure AD по принципу обслуживания). enter image description here

Обновление:

Я предоставляю все шаги для справки:

1. Запустите приведенную ниже команду в powershell

# Login to Azure AD PowerShell With Admin Account
Connect-AzureAD 

# Create the self signed cert
$currentDate = Get-Date
$endDate  = $currentDate.AddYears(1)
$notAfter  = $endDate.AddYears(1)
$pwd  = "xxxxxxx"
$thumb = (New-SelfSignedCertificate -CertStoreLocation cert:\localmachine\my -DnsName com.foo.bar -KeyExportPolicy Exportable -Provider "Microsoft Enhanced RSA and AES Cryptographic Provider" -NotAfter $notAfter).Thumbprint
$pwd = ConvertTo-SecureString -String $pwd -Force -AsPlainText
Export-PfxCertificate -cert "cert:\localmachine\my\$thumb" -FilePath c:\temp\examplecert.pfx -Password $pwd

# Load the certificate
$cert  = New-Object System.Security.Cryptography.X509Certificates.X509Certificate("C:\temp\examplecert.pfx", $pwd)
$keyValue = [System.Convert]::ToBase64String($cert.GetRawCertData())


# Create the Azure Active Directory Application
$application = New-AzureADApplication -DisplayName "huryttt1234" -IdentifierUris "https://huryttt1234"
New-AzureADApplicationKeyCredential -ObjectId $application.ObjectId -CustomKeyIdentifier "Huryttt1234" -StartDate $currentDate -EndDate $endDate -Type AsymmetricX509Cert -Usage Verify -Value $keyValue

# Create the Service Principal and connect it to the Application
$sp = New-AzureADServicePrincipal -AppId $application.AppId

2. Теперь я go добавлю новое приложение (Huryttt1234) в AD на портале Azure и добавьте пять разрешений и дайте на это согласие администратора.

3. Затем выполните команду ниже:

# Get Tenant Detail
$tenant = Get-AzureADTenantDetail
# Now you can login to Azure PowerShell with your Service Principal and Certificate
Connect-AzureAD -TenantId $tenant.ObjectId -ApplicationId  $sp.AppId -CertificateThumbprint $thumb

Get-AzureADPolicy -Id xxxxxxxxxxxxxxxxxxxx

Set-AzureADPolicy -Definition @('{"TokenLifetimePolicy":{"Version":1,"MaxInactiveTime":"20:00:00"}}') -Id xxxxxxxxxxxxxxxxxxxx | Out-Null

Я могу запустить две нижние строки (операция get и установить операцию) успешно.

...