Utilisation de SharePoint (application)
REMARQUE: pour les projets qui utilisent SharePoint d’Adobe, continuez. here.
Si vous utilisez SharePoint comme source de contenu, AEM utilise une application Microsoft Azure enregistrée pour accéder à votre contenu. Cette application comporte autorisations déléguées défini qui permet 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 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 autorisations d’application, car cela limite l’accès du service à un site SharePoint spécifique et n’a pas besoin de partager les secrets d’un utilisateur technique. Cela permet également de réduire les problèmes liés à la rotation des mots de passe.
La section suivante décrit la configuration autorisations d’application pour votre projet. Si vous souhaitez configurer un utilisateur technique, continuez. here.
La configuration de SharePoint comprend les étapes suivantes :
- Créer ou identifier un site SharePoint qui servira de site pour la création basée sur les documents
- Créez un dossier dans SharePoint qui sera la racine du site web.
- Configurez la variable
fstab.yaml
avec le dossier correspondant - Accès au portail d’enregistrement
- Enregistrement de l’application
- Appliquez la variable
sites.selected
autorisation d’accès au 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 les documents. Un site peut "héberger" plusieurs sites web (projets). Ce site recevra ultérieurement les autorisations respectives pour 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 ayez un espace partagé permettant aux auteurs de placer des documents collatéraux, par exemple un dossier brouillons ou des documentations pratiques de création.
Un exemple de structure de fichier peut ressembler à ceci, en utilisant la variable website
dossier en tant que racine :
3. Configurez fstab.yaml
L’étape suivante consiste à configurer le point de montage dans la variable fstab.yaml
pour pointer vers la racine du site web. Il a généralement la forme de
https://<tenant>.SharePoint.com/sites/<sp-site>/Shared%20Documents/website
Cela peut toutefois varier en fonction de la manière dont vous créez le site et les 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 d’accentuation 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 que vous avez composé l’URL, vous pouvez la tester en la saisissant à nouveau dans le navigateur. Vous devriez finir dans la vue de dossier de la racine de votre site web.
Ensuite, mettez à jour la variable fstab.yaml
en conséquence.
Par exemple :
mountpoints:
/: https://adobeenterprisesupportaem.SharePoint.com/sites/hlx-test-project/Shared%20Documents/website
Pour finaliser la configuration, validez la fstab.yaml
revenez à la branche principale.
4. Accès au portail d’enregistrement
Vue d’ensemble
Pour que le service AEM puisse accéder au contenu créé, il a besoin de quelques informations et d’une configuration. Le service AEM (une fonction cloud) accède à la variable API MS Graph pour le compte d’une application (ou d’un utilisateur configuré). Pour ce faire, il doit d’abord s’authentifier dans le contexte d’une Application. C’est important, car les portées données à l’application définissent l’autorisation du service sur l’API MS Graph. 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 respectif 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 pour qu’un utilisateur puisse utiliser l’application. Ce soi-disant "consentement de l’administrateur" est un mécanisme permettant de vérifier et de contrôler les autorisations que les applications peuvent posséder. Cela permet d’éviter que des applications douteuses n’incitent les utilisateurs à faire confiance à une application qui n’est pas officielle. L’étape de consentement de l’administrateur supplémentaire permet à la sécurité informatique de contrôler les applications que les employés peuvent utiliser.
1. Connexion au portail d’enregistrement
Création d’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 Azure, vous devez également ajouter la variable WindowsAzureActiveDirectoryIntegratedApp
balise . 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 Enterprise pour la variable Franklin Service (83ab2922-5f11-4e4d-96f3-d1e0ff152856)
n’est pas encore présent 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 aussi :
Ajout de rôles d’application à l’aide de PowerShell ou de l’Explorateur graphique
Vous pouvez également ajouter les rôles de l’application en procédant comme suit :
- Recherche du principal de service de l’application d’entreprise (
principalId
). C'est celui que vous avez créé ci-dessus. - Recherchez l’entité de service de l’API Microsoft Graph (
resourceId
) - Recherchez l’identifiant pour le
Sites.Selected
Rôle de l’application (appRoleId
) - Attribution du rôle de l’application à l’identité gérée (l’application d’entreprise)
Utilisation 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
Utilisation explorateur de graphiques elle comprend d’autres étapes :
- Recherchez l’entité de sécurité de l’application d’entreprise :
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
- Recherche de l’entité 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",
...
Il s’agit de la variable resourceId
. (la 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/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 identifiant correspond à la variable appRoleId
- Affectez le rôle de l’application à l’identité gérée. La requête a 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"
}
Ajout d’autorisations à SharePoint Site
Pour ajouter les autorisations au site sharepoint, nous devons trouver ses SiteId
.
Vous pouvez le faire à nouveau à l’aide de 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",
...
}
En utilisant la variable 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"
}
}
]
}