Come utilizzare Sharepoint (applicazione)
NOTA: per i progetti che utilizzano Adobe’s Sharepoint, continua qui.
Se si utilizza SharePoint come origine di contenuto, l'AEM utilizza un'applicazione Microsoft Azure registrata per accedere al contenuto. Questa applicazione ha autorizzazioni delegate definite che consentono al servizio di accedere a SharePoint per conto di un utente. Questo utente deve essere registrato nel progetto che utilizza SharePoint.
In alternativa, i servizi possono anche eseguire l’autenticazione come applicazione e utilizzare autorizzazioni dell’applicazione per accedere ai siti. È necessaria una configurazione aggiuntiva da parte di un amministratore del sito SharePoint che può concedere le autorizzazioni per l'applicazione.
La configurazione preferita è quella di utilizzare autorizzazioni dell’applicazione, poiché questo limita l’accesso del servizio a un sito SharePoint specifico e non richiede la condivisione di segreti di un utente tecnico. Inoltre, riduce i problemi relativi alla rotazione delle password.
Di seguito viene descritto come impostare autorizzazioni dell’applicazione per il tuo progetto. Se desideri configurare un utente tecnico, continua qui.
La configurazione di SharePoint prevede i seguenti passaggi:
- Creare o identificare un sito di SharePoint da utilizzare come sito per l'authoring basato su documenti
- Crea una cartella in SharePoint che fungerà da directory principale del sito web.
- Configurare
fstab.yaml
con la rispettiva cartella - Accedere al portale di registrazione
- Registra l'applicazione
- Applica
sites.selected
autorizzazione per il sito SharePoint
1. Creare o identificare un sito di Sharepoint
Rivolgersi al reparto IT per identificare o creare un sito di Sharepoint che verrà utilizzato per l'authoring basato su documenti. Un sito può ospitare più siti web (progetti). Questo sito riceverà in seguito le rispettive autorizzazioni in modo che i servizi di pubblicazione possano accedervi.
2. Creare la cartella principale del sito web
Passa alla posizione desiderata nel sito SharePoint creato o identificato in precedenza e crea una cartella principale che fungerà da directory principale del sito. È consigliabile non utilizzare direttamente una directory principale dell’elenco di SharePoint, in modo da disporre di uno spazio condiviso per consentire agli autori di inserire documenti collaterali, ad esempio una cartella delle bozze o documenti descrittivi.
Un esempio di struttura del file potrebbe essere simile al seguente, utilizzando website
cartella principale:
3. Configurare fstab.yaml
Il passaggio successivo consiste nel configurare il punto di montaggio nel fstab.yaml
per puntare alla directory principale del sito web. Di solito ha la forma di
https://<tenant>.SharePoint.com/sites/<sp-site>/Shared%20Documents/website
Tuttavia, la procedura potrebbe variare a seconda della modalità di creazione del sito SharePoint e degli elenchi. Per ottenere l’URL, il modo più semplice è copiare la prima parte dall’indirizzo del browser, ad esempio:
Quindi aggiungi il resto manualmente (tieni presente che copiare il collegamento condiviso tramite l’interfaccia utente aggiunge informazioni non necessarie ed è meglio utilizzare una rappresentazione canonica dell’URL). Una volta composto l’URL, puoi testarlo immettendolo nuovamente nel browser. Dovresti trovarti nella vista a cartelle della directory principale del tuo sito web.
In seguito, aggiorna il fstab.yaml
di conseguenza.
Ad esempio:
mountpoints:
/: https://adobeenterprisesupportaem.SharePoint.com/sites/hlx-test-project/Shared%20Documents/website
Per finalizzare la configurazione, esegui il commit della fstab.yaml
torna al ramo principale.
4. Accedere al portale di registrazione
Panoramica
Per consentire al servizio AEM di accedere ai contenuti creati, è necessario disporre di alcune informazioni e procedere alla configurazione. Il servizio AEM (una funzione cloud) accede al API di MS Graph per conto di un'applicazione (o di un utente configurato). Per farlo, deve innanzitutto autenticarsi nel contesto di un Applicazione. Questo è importante perché gli ambiti assegnati all’applicazione definiscono l’autorizzazione di cui dispone il servizio sull’API di MS Graph. Ad esempio, dovrebbe essere consentito leggere e scrivere documenti, ma non modificare il controllo degli accessi.
Un'applicazione è rappresentata come "applicazione enterprise" nel rispettivo Active Directory di un tenant. Le autorizzazioni concesse a tale applicazione enterprise definiscono in ultima analisi ciò a cui il servizio può accedere nelle risorse di tale tenant. Per poter utilizzare l'applicazione, è necessario che un amministratore di Active Directory approvi alcune autorizzazioni. Questo cosiddetto "consenso dell’amministratore" è un meccanismo per verificare e controllare quali autorizzazioni possono avere le app. In questo modo si evita che app di dubbia affidabilità inducano gli utenti a fidarsi di un'app che non è ufficiale. Il passaggio di consenso aggiuntivo dell’amministratore consente alla sicurezza IT di controllare quali app possono essere utilizzate dai dipendenti.
1. Accesso al portale di registrazione
Creare un'applicazione tramite MSGraph o Powershell
In alternativa, è possibile creare l'applicazione Enterprise tramite MSGraph o Powershell.
Per renderlo visibile nell’interfaccia utente di Azure, devi aggiungere anche WindowsAzureActiveDirectoryIntegratedApp
tag. Questa operazione può essere eseguita direttamente durante la creazione dell’applicazione.
Utilizzo di Esplora grafico:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "e34c45c4-0919-43e1-9436-448ad8e81552",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Utilizzo di PowerShell:
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId e34c45c4-0919-43e1-9436-448ad8e81552 -Tags WindowsAzureActiveDirectoryIntegratedApp
Aggiunta del servizio Franklin con autorizzazioni dell’applicazione
Come sopra, l'applicazione Enterprise per Franklin Service (83ab2922-5f11-4e4d-96f3-d1e0ff152856)
non è ancora presente in Azure,
Per aggiungerlo, utilizzare l'Explorer grafico o PowerShell:
Utilizzo di Esplora grafico:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "83ab2922-5f11-4e4d-96f3-d1e0ff152856",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Utilizzo di PowerShell:
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId 83ab2922-5f11-4e4d-96f3-d1e0ff152856 -Tags WindowsAzureActiveDirectoryIntegratedApp
Vedi anche:
Aggiunta di ruoli dell'applicazione mediante Powershell o Graph Explorer
In alternativa, puoi aggiungere i ruoli dell’app seguendo questi passaggi:
- Individuare l'entità servizio dell'applicazione enterprise (
principalId
). Questo è quello creato in precedenza. - Trova l’entità principale del servizio dell’API di Microsoft Graph (
resourceId
) - Trova l’ID per
Sites.Selected
Ruolo applicazione (appRoleId
) - Assegnare il ruolo dell'applicazione all'identità gestita (l'applicazione enterprise)
Utilizzo di powershell questa operazione può essere eseguita con:
$ObjectId = "abcdef-1234-49b6-b660-cc85b34fe516" <<------ replace with your enterprise app id
$AAD_SP = Get-AzureADServicePrincipal -SearchString "Microsoft Graph";
$AAD_SP
$MSI = Get-AzureADServicePrincipal -ObjectId $ObjectId
if($MSI.Count -gt 1)
{
Write-Output "More than 1 principal found, please find your principal and copy the right object ID. Now use the syntax $MSI = Get-AzureADServicePrincipal -ObjectId <your_object_id>"
Exit
}
$AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "Sites.Selected"}
New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId -PrincipalId $MSI.ObjectId -ResourceId $AAD_SP.ObjectId[0] -Id $AAD_AppRole.Id
Utilizzo di esplora grafico comporta più passaggi:
- Individuare l'entità principale dell'applicazione enterprise:
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '83ab2922-5f11-4e4d-96f3-d1e0ff152856'
...
"value": [
{
"id": "6761ada0-733b-4a02-98b2-3db970834fe0",
...
Questo sarà il nostro principalId
- Trovare l’entità servizio dell’API di Microsoft Graph
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '00000003-0000-0000-c000-000000000000'
...
"value": [
{
"id": "5159db96-7193-414e-9730-b1d1e4448443",
...
Questo è il resourceId
. (risorsa che definisce il ruolo dell’applicazione)
- Trova l’ID del ruolo dell’applicazione.
GET https://graph.microsoft.com/v1.0/servicePrincipals/5159db96-7193-414e-9730-b1d1e4448443/appRoles
...
{
"allowedMemberTypes": [
"Application"
],
"description": "Allow the application to access a subset of site collections without a signed in user. The specific site collections and the permissions granted will be configured in SharePoint Online.",
"displayName": "Access selected site collections",
"id": "883ea226-0bf2-4a8f-9f9d-92c9162a727d",
"isEnabled": true,
"origin": "Application",
"value": "Sites.Selected"
},
...
Questo ID è il appRoleId
- Assegnare il ruolo dell'applicazione all'identità gestita. La richiesta ha il formato:
POST https://graph.microsoft.com/v1.0/servicePrincipals/${principalId}/appRoleAssignedTo
Content-Type: application/json
{
"principalId": "${principalId}",
"resourceId": "${resourceId}",
"appRoleId": "${appRoleId}"
}
https://graph.microsoft.com/v1.0/servicePrincipals/6761ada0-733b-4a02-98b2-3db970834fe0/appRoleAssignedTo
Content-type: application/json
{
"principalId": "6761ada0-733b-4a02-98b2-3db970834fe0",
"resourceId": "5159db96-7193-414e-9730-b1d1e4448443",
"appRoleId": "883ea226-0bf2-4a8f-9f9d-92c9162a727d"
}
Aggiungere autorizzazioni al sito di SharePoint
Per aggiungere le autorizzazioni al sito di SharePoint, è necessario trovare le relative SiteId
.
Questa operazione può essere eseguita utilizzando nuovamente Esplora grafico:
GET https://graph.microsoft.com/v1.0/sites/{host-name}:/{server-relative-path}
Esempio:
GET https://graph.microsoft.com/v1.0/sites/adobeenterprisesupportaem.sharepoint.com:/sites/hlx-test-project
{
...
"id": "adobeenterprisesupportaem.sharepoint.com,03cc3587-0e4d-405e-b06c-ffb0a622b7ac,5fbc1df5-640c-4780-8b59-809e3193c043",
...
}
Utilizzo di Id
possiamo impostare le autorizzazioni:
POST https://graph.microsoft.com/v1.0/sites/adobeenterprisesupportaem.sharepoint.com,03cc3587-0e4d-405e-b06c-ffb0a622b7ac,5fbc1df5-640c-4780-8b59-809e3193c043/permissions
Content-type: application/json
{
"roles": [
"write"
],
"grantedToIdentities": [
{
"application": {
"id": "83ab2922-5f11-4e4d-96f3-d1e0ff152856",
"displayName": "Franklin Service"
}
}
]
}