Utilisation de SharePoint (application)
REMARQUE : pour les projets utilisant Adobe Sharepoint, veuillez continuer ici.
Si vous utilisez SharePoint comme source de contenu, AEM utilise une application Microsoft Azure enregistrée pour accéder à votre contenu. Des autorisations déléguées sont définies pour cette application afin de permettre au service d’accéder à SharePoint au nom d’un utilisateur. Cet utilisateur doit être enregistré dans le projet qui utilise SharePoint.
Les services peuvent également s’authentifier en tant qu’application et utiliser les autorisations d’application pour accéder aux sites. Cela nécessite une configuration supplémentaire par un administrateur de site SharePoint qui peut accorder les autorisations pour l’application.
La configuration recommandée consiste à utiliser les autorisations d’application, car cela permet de réduire l’accès du service à un site SharePoint spécifique et ne nécessite pas de partager les secrets d’un utilisateur technique. Cela réduit également les problèmes liés à la rotation des mots de passe.
La section suivante décrit comment configurer les autorisations d’application pour votre projet. Si vous souhaitez configurer un utilisateur technique, veuillez continuer ici.
La configuration de SharePoint implique les étapes suivantes :
- Créez ou identifiez un site SharePoint qui servira de site pour la création de documents
- Créez un dossier dans SharePoint qui sera la racine du site web.
- Configurez le
fstab.yamlavec le dossier correspondant - Accès au portail d’enregistrement
- Enregistrer l’application
- Application de l’autorisation
sites.selectedau site SharePoint
1. Créer ou identifier un site SharePoint
Contactez votre service informatique pour identifier ou créer un site SharePoint qui sera utilisé pour la création basée sur des documents. Un site peut « héberger » plusieurs sites web (projets). Ce site recevra ultérieurement les autorisations correspondantes afin que les services de publication puissent y accéder.
2. Créez le dossier racine du site web
Accédez à l’emplacement souhaité sur le site SharePoint créé ou identifié ci-dessus et créez un dossier racine qui sera la racine de votre site web. Il est préférable de ne pas utiliser directement une racine de liste SharePoint, de sorte que vous disposiez d’un espace partagé pour que vos auteurs puissent placer des documents collatéraux, par exemple un dossier de brouillons, ou des documents de création.
Voici un exemple de structure de fichier, en utilisant le dossier website comme racine :
3. Configuration du fichier fstab.yaml
L’étape suivante consiste à configurer le point de montage dans le fstab.yaml pour qu’il pointe vers la racine du site web. Il se présente généralement sous la forme de
https://<tenant>.SharePoint.com/sites/<sp-site>/Shared%20Documents/website
Cela peut varier en fonction de la création du site et des listes SharePoint. Pour obtenir l’URL, la méthode la plus simple consiste à copier-coller la première partie à partir de l’adresse du navigateur, par exemple :
Ajoutez ensuite le reste manuellement (notez que la copie du lien partagé via l’interface utilisateur ajoute des informations inutiles et qu’il est préférable d’utiliser une représentation canonique de l’URL). Une fois l’URL composée, vous pouvez la tester en la saisissant à nouveau dans le navigateur. Vous devriez vous retrouver dans l’affichage des dossiers de la racine de votre site web.
Ensuite, mettez à jour le fstab.yaml en conséquence.
Par exemple :
mountpoints:
/: https://adobeenterprisesupportaem.SharePoint.com/sites/hlx-test-project/Shared%20Documents/website
Pour finaliser la configuration, validez à nouveau le fstab.yaml dans la branche principale.
4. Accéder au portail d’enregistrement
Vue d’ensemble
Pour que le service AEM puisse accéder au contenu créé, quelques informations et une configuration sont nécessaires. Le service AEM (une fonction cloud) accède à l’API Graph MS au nom d’une application (ou d’un utilisateur configuré). Pour ce faire, il doit d’abord s’authentifier dans le contexte d’une Application. Ce point est important, car les portées fournies à l’application définissent l’autorisation dont dispose le service sur l’API Graph MS. Par exemple, il doit être autorisé à lire et à écrire des documents, mais pas à modifier le contrôle d’accès.
Une application est représentée sous la forme d’une « application d’entreprise » dans l’annuaire Active Directory correspondant d’un client. Les autorisations accordées à cette application d’entreprise définissent finalement ce à quoi le service peut accéder dans les ressources de ce client. Certaines autorisations doivent être approuvées par un administrateur Active Directory avant qu'un utilisateur puisse utiliser l'application. Ce que l’on appelle le « consentement administrateur » est un mécanisme permettant de vérifier et de contrôler les autorisations dont peuvent bénéficier les applications. Cela permet d’empêcher les applications douteuses d’amener les utilisateurs à faire confiance à une application qui n’est pas officielle. Disposer de l’étape de consentement administrateur supplémentaire permet à la sécurité informatique de contrôler les applications que les employés peuvent utiliser.
1. Connectez-vous au portail d’inscription
Créer une application à l'aide de MSGraph ou Powershell
Vous pouvez également créer l’application d’entreprise via MSGraph ou Powershell.
Pour le rendre visible dans l’interface utilisateur d’Azure, vous devez également ajouter la balise WindowsAzureActiveDirectoryIntegratedApp . Vous pouvez le faire directement lors de la création de l’application.
Utilisation de l’explorateur de graphiques :
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "e34c45c4-0919-43e1-9436-448ad8e81552",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Utilisation de PowerShell :
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId e34c45c4-0919-43e1-9436-448ad8e81552 -Tags WindowsAzureActiveDirectoryIntegratedApp
Ajout du service Franklin avec des autorisations d’application
Comme ci-dessus, l’application d’entreprise pour le Franklin Service (83ab2922-5f11-4e4d-96f3-d1e0ff152856) n’est pas encore présente dans Azure,
Pour l’ajouter, utilisez l’explorateur de graphiques ou powershell :
Utilisation de l’explorateur de graphiques :
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "83ab2922-5f11-4e4d-96f3-d1e0ff152856",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Utilisation de PowerShell :
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId 83ab2922-5f11-4e4d-96f3-d1e0ff152856 -Tags WindowsAzureActiveDirectoryIntegratedApp
Voir également :
Ajouter des rôles d'application à l'aide de Powershell ou de l'explorateur Graph
Vous pouvez également ajouter des rôles d’application en procédant comme suit :
- Recherchez le principal de service de l’application d’entreprise (
principalId). Il s’agit de celui que vous avez créé ci-dessus. - Recherchez le principal de service de l’API Microsoft Graph (
resourceId) - Rechercher l'ID du
Sites.Selectedrôle d'application (appRoleId) - Affectez le rôle d'application à l'identité gérée (application d'entreprise)
Avec powershell cela peut être effectué avec :
$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
L’utilisation de l’explorateur graphe implique d’autres étapes :
- Recherchez le principal de l’application d’entreprise pour
Franklin Service:
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '83ab2922-5f11-4e4d-96f3-d1e0ff152856'
...
"value": [
{
"id": "6761ada0-733b-4a02-98b2-3db970834fe0",
...
Ce sera notre principalId
- Recherchez le principal de service de l’API 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",
...
C'est le resourceId. (ressource qui définit le rôle de l'application)
- Recherchez l’identifiant du rôle d’application.
GET https://graph.microsoft.com/v1.0/servicePrincipals/${resourceId}/appRoles
Remplacez resourceId par le principal de service de l’API Microsoft Graph obtenu à l’étape précédente.
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"
},
...
Cet ID est le appRoleId
- Affectez le rôle d'application à l'identité gérée. La requête présente le format suivant :
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"
}
Ajouter des autorisations au site SharePoint
Pour ajouter les autorisations au site SharePoint, nous devons trouver son SiteId.
Pour ce faire, utilisez à nouveau l’explorateur de graphiques :
GET https://graph.microsoft.com/v1.0/sites/{host-name}:/{server-relative-path}
Exemple :
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",
...
}
À l’aide de l’Id , nous pouvons définir les autorisations :
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"
}
}
]
}
Remarque : si vous obtenez une erreur « Accès refusé » lors de l’exécution du de requête ci-dessus vous devez disposer des autorisations « Administration du site » pour exécuter l’étape ci-dessus. Vous devrez peut-être également donner votre « consentement » supplémentaire à partir du panneau « Modifier les autorisations » de l’Explorateur de graphiques pour d’autres portées de « Sites ».