2016-03-29 31 views
12

Sono amministratore titolare per la nostra distribuzione di Office 365. abbiamo il nostro sistema interno che deve accedere a tutti i siti OneDrive. Stiamo utilizzando le credenziali di amministratore tenant per ottenere il token OAuth e il tentativo di ottenere file da tutti i siti OneDrive utilizzando l'API REST SharePoint/OneDrive con quel token OAuth.Come ottenere l'accesso di amministratore ai file per tutti gli utenti di OneDrive

Con il token OAuth dell'amministratore del titolare, siamo in grado di ottenere i file di proprietà dell'amministratore del tenant o Condiviso con l'amministratore del tenant. non siamo in grado di ottenere i file da OneDrive di altri utenti.

Stesso risultato anche con Microsoft Graph API. possiamo solo ottenere i file di proprietà dell'amministratore del tenant o Condivisi con l'amministratore del tenant. non siamo in grado di ottenere i file da OneDrive di altri utenti.

Una soluzione per questo potrebbe essere aggiungendo admin titolare all'amministratore della raccolta siti per tutti i siti OneDrive, ma questa non è un'opzione fattibile per noi.

Esiste qualche API o un altro modo per ottenere tutto il file dell'utente di OneDrive utilizzando le credenziali di amministratore o amministratore di OneDrive?

Grazie, Abhi

+0

Penso che questa risposta e i relativi commenti ti aiuteranno http://stackoverflow.com/questions/33755470/onedrive-for-business-api-daemon-tenant-with-app-only-token. In pratica, si afferma che l'app deve disporre dell'autorizzazione "Leggi e scrivi elementi in tutte le raccolte siti", dopo di che è possibile utilizzare le modalità specifiche dell'API per accedere ai file di altri utenti. In OneDrive, puoi usare il prefisso url 'https: // {tenant} -my.sharepoint.com/_api/v2.0/drives/ {user email}' per accedere ai dati dell'utente, in SharePoint puoi usare 'https : // {tenant} -my.sharepoint.com/personal/ {parte specifica dell'utente}/_ api/web/' – dtheodor

risposta

0

È possibile eseguire questa operazione utilizzando delegato oi permessi di applicazione. Quale sceglierai dipende da come verrà eseguita la tua applicazione e da OAUTH Grant Flow che stai utilizzando.

Se l'applicazione viene eseguita con un utente interattivo (ad esempio, si è seduti di fronte mentre è in esecuzione), quindi si desidera utilizzare le autorizzazioni delegate e il Authorization Code Grant Flow.

Se l'applicazione viene eseguita come servizio (ovvero viene eseguita in background), sarà necessario utilizzare le autorizzazioni dell'applicazione e lo Client Credentials Grant Flow.

Indipendentemente dall'autorizzazione modello scelto, gli ambiti di autorizzazione e gli endpoint rimarranno gli stessi.

Avrete bisogno di uno dei seguenti ambiti di autorizzazione al fine di accedere ai file di altri utenti all'interno del conduttore: Files.Read.All, Files.ReadWrite.All, Sites.Read.All, Sites.ReadWrite.All.

Per visualizzare i file di un altro utente, è necessario indirizzare direttamente l'unità dell'utente. Questo viene fatto tramite l'utente userPrincipalName. Ad esempio, per visualizzare i file nella radice dell'unità di un utente, chiamare:

https://graph.microsoft.com/v1.0/users/{userPrincipalName}/drive/root/children 

Spero che questo aiuti.