Développement Microsoft 365: comment obtenir un ensemble complet de modifications d'autorisation dans SPO

Adresse du blog 51CTO: https://blog.51cto.com/13969817
Adresse du blog du jardin du blog: https://www.cnblogs.com/bxapollo

Microsoft Graph est une API Web RESTful, vous pouvez l'utiliser pour accéder aux ressources du serveur cloud Microsoft, enregistrer une application et obtenir le jeton d'authentification de l'utilisateur ou du service, vous pouvez faire une demande à l'API Microsoft Graph.

Par défaut, DeltaLinks (Token) est une API à portée utilisateur qui peut être utilisée pour des comportements de synchronisation similaires. Par exemple, une énumération complète des autorisations peut être obtenue pour vérification. Delta tente de limiter la portée des modifications basées sur les autorisations aux modifications liées à l'appelant. Si les autorisations d'accès de l'appelant ne sont pas modifiées en raison des modifications d'autorisation, l'élément peut ne pas être inclus dans le résultat incrémentiel.

Prérequis pour l'obtention des autorisations:

Assurez-vous de suivre les recommandations dans aca.ms/scanguidance, sinon cela conduira à un rétrécissement de la portée des autorisations d'accès.

Méthode d'obtention de l'autorisation:

  • Utilisez l'authentification par application uniquement pour les sites.FullControl
  • Toutes les plages et transmettez l'en-tête "Preferred" = "deltashowsharingchanges, hierarchicalsharing"

Étapes de mise en œuvre:

  1. Créez une application dans AAD et disposez des autorisations suivantes telles que Sites.FullControl.

Développement Microsoft 365: comment obtenir un ensemble complet de modifications d'autorisation dans SPO

2. Utilisez le script PowerShell suivant pour générer un lien de jeton d'accès et de jeton Delta:

cls 

$host.Runspace.ThreadOptions = "ReuseThread" 
Write-Host "STARTED at" (Get-Date).ToString() -f Green 
$ClientID = "fa9737d5-5a3e-4fab-0000-000000000000" 
$ClientSecret = "1JOe:M8HBBUz-0000000000000000000" 
$scope= "https://graph.microsoft.com/.default" 
$POSTURI = "https://login.microsoftonline.com/d6f932a7-5f74-0000-0000-000000000000/oauth2/v2.0/token" 
$body = @{grant_type="client_credentials";client_id=$ClientID;client_secret=$ClientSecret;scope=$scope} 
$oauth = Invoke-RestMethod -Method Post -Uri $POSTURI -Body $body $graphAccessToken = $oauth.access_token 
Write-Host "Access token: $($graphAccessToken)" 
$requestHeader = @{ 
"Authorization" = "Bearer $graphAccessToken" 
"Content-Type" = "application/json" 
"Prefer" = "deltashowsharingchanges,hierarchicalsharing,deltatraversepermissiongaps,deltashowremovedasdeleted" 
} 
$Uri = "https://graph.microsoft.com/v1.0/sites/spotenant.sharepoint.com,df6ba610-b132-0000-0000-000000000000,e0dbcdc6-0637-4246-0000-000000000000/drive/root/delta?latest" 
$Result = (Invoke-RestMethod -Method Get -Headers $requestheader -Uri $Uri) 
$deltaUri = $Result.'@odata.deltaLink' 
Write-Host $deltaUri 
Write-Host "DONE at" (Get-Date).ToString() -f Green
  1. Copiez le jeton d'accès et la valeur deltaUri en sortie du script ci-dessus et utilisez-les dans l'exemple de script PowerShell ci-dessous pour récupérer l'ensemble complet des modifications d'autorisation
cls 
$host.Runspace.ThreadOptions = "ReuseThread" 
Write-Host "STARTED at" (Get-Date).ToString() -f Green 
$graphAccessToken = "copied from output of above sample powershell script" $requestHeader = @{ 
"Authorization" = "Bearer $graphAccessToken" 
"Content-Type" = "application/json" 
"Prefer" = "deltashowsharingchanges,hierarchicalsharing" 
} 
Write-Host 
$deltaUri = "copied from output of above sample powershell script" #should look like sample below: https://graph.microsoft.com/v1.0/sites/spotenant.sharepoint.com,df6ba610-b132-4fc7-0000-000000000000,e0dbcdc6-0637-4246-0000-000000000000/drive/root/delta?token=MzslMjM0OyUyMzE7Mzs3NDlhZjc4NC0zOWU0LTRlOTEtYmJkNy0wNzI5MjAxNTNlMGY7NjM3MzM2NDU1MzMyNDcwMDAwOzMxOTY4OTE4MjslMjM7JTIzOyUyMzA" $deltaResult = (Invoke-RestMethod -Method Get -Headers $requestheader -Uri $deltaUri) Write-Host $deltaResult.value 
Write-Host 
Write-Host "DONE at" (Get-Date).ToString() -f Green

Référence des informations connexes:

Je suppose que tu aimes

Origine blog.51cto.com/13969817/2545261
conseillé
Classement