Guide étape par étape pour déployer AccessPoint dans votre environnement Microsoft 365 et Azure
Last updated: July 12, 2026 by Steve
Guide de déploiement
AccessPoint utilise un modèle de déploiement fractionné : un composant web SPFx léger dans SharePoint, une application Teams qui héberge ce même composant web comme onglet personnel, et un backend Azure qui exécute l'API et stocke toutes les données. Chaque composant est déployé dans votre propre locataire Microsoft 365 et votre propre abonnement Azure — rien n'est hébergé par l'éditeur, et aucune donnée client ne quitte votre environnement.
Aperçu
| Composant | Où l'obtenir | Emplacement de déploiement |
|---|---|---|
Composant web SPFx (accesspoint.sppkg) |
Microsoft AppSource ou téléversement direct dans votre catalogue d'applications | Votre locataire SharePoint Online |
Application Teams (accesspoint-teams.zip) |
Microsoft AppSource ou téléversement dans le Centre d'administration Teams | Votre catalogue d'applications Teams |
| Backend Azure (App Service, SQL, Blob Storage, Application Insights) | Modèle Bicep/ARM en un clic depuis le portail Azure (recommandé) ou Bicep scripté + PowerShell | Votre abonnement Azure |
Pour les clouds souverains/gouvernementaux, l'épinglage de version ou les déploiements scriptés, tous les artefacts sont également publiés à l'adresse https://get.realizer.io/public/accesspoint/latest/.
L'ordre d'installation compte. Installez la solution SharePoint avant qu'un utilisateur n'ouvre l'onglet personnel Teams. L'application Teams charge le composant web SPFx depuis SharePoint dans un iframe — sans cela, les utilisateurs voient une erreur 404 SharePoint à l'intérieur de Teams.
Prérequis
- Un abonnement AccessPoint actif et une clé API de licence (obtenir AccessPoint)
- Un abonnement Azure avec des droits Contributeur (ou supérieurs) sur le groupe de ressources cible
- Un catalogue d'applications SharePoint provisionné dans votre locataire, ainsi que des droits Administrateur SharePoint
- Administrateur général ou Administrateur d'application dans Entra ID pour l'octroi des autorisations Graph et le consentement de l'administrateur
- Administrateur Teams (ou administrateur général) pour publier l'application Teams
- Pour les déploiements scriptés ou manuels : Azure CLI (connecté avec
az loginen tant qu'utilisateur, et non en tant que principal de service) et le module PnP.PowerShell
Il n'existe aucune dépendance à un niveau de licence Microsoft 365, à Power Platform ou à Dataverse — tout utilisateur ayant accès à SharePoint ou à Teams peut utiliser AccessPoint.
Étape 1 : Déployer les ressources Azure
Cette étape provisionne le backend : un App Service Linux (l'API), une base de données Azure SQL, un espace Blob Storage et Application Insights avec Log Analytics. Les ressources sont nommées {type}-accesspoint-{tenantName} (par exemple, app-accesspoint-contoso) et sont durcies par défaut (TLS 1.3, authentification SQL Entra uniquement, FTPS et authentification de base désactivés).
Option A : Portail Azure (recommandé). Déployez le modèle Bicep/ARM d'AccessPoint en un clic depuis le portail Azure (le bouton Déployer sur Azure). Le formulaire de déploiement recueille votre abonnement et votre groupe de ressources, le nom du locataire (par exemple, contoso tiré de contoso.sharepoint.com), la clé API de licence, le SKU App Service (B1 pour l'évaluation, S1 pour la production standard, P1v3 par défaut), une adresse courriel d'alerte facultative, ainsi qu'un commutateur Accorder les autorisations Graph (activé par défaut ; nécessite le rôle Administrateur d'application). Le paquet de l'API se déploie automatiquement dans l'App Service — après le déploiement, il n'existe aucune dépendance d'exécution envers des services externes.

Option B : Bicep + PowerShell. Pour les pipelines personnalisés ou un contrôle des changements strict, exécutez le script de déploiement à partir du modèle ARM publié :
Invoke-WebRequest -Uri "https://get.realizer.io/public/accesspoint/latest/Deploy-AccessPoint.ps1" -OutFile "Deploy-AccessPoint.ps1"
# End-to-end: infrastructure, configuration, and both apps
.\Deploy-AccessPoint.ps1 `
-SharePointSiteUrl "https://contoso.sharepoint.com/sites/accesspoint" `
-TemplateUri "https://get.realizer.io/public/accesspoint/latest/main.json" `
-DeploySharePointApp -DeployTeamsApp
Le script exécute jusqu'à sept étapes — infrastructure, authentification SQL Entra uniquement, octroi des autorisations Graph, un cycle d'arrêt/démarrage de l'App Service, l'entité de stockage SharePoint (URL de l'API), l'approbation des autorisations API du SPFx et l'installation facultative des applications. Chacune peut être omise indépendamment (-SkipInfrastructure, -SkipGraphPermissions, -SkipSharePoint). Épinglez une version avec -ArtifactBaseUrl "https://get.realizer.io/public/accesspoint/1.0.0" pour des déploiements reproductibles et à intégrité vérifiée (le script vérifie le SHA-256 publié et s'interrompt en cas de non-correspondance).
Pour exécuter vous-même les éléments d'infrastructure :
$TenantName = "contoso"
$ResourceGroup = "rg-accesspoint-$TenantName"
az group create --name $ResourceGroup --location "canadacentral"
$deployment = az deployment group create `
--resource-group $ResourceGroup `
--template-uri "https://get.realizer.io/public/accesspoint/latest/main.json" `
--parameters tenantName=$TenantName appServiceSku=P1v3 `
--output json | ConvertFrom-Json
$appName = $deployment.properties.outputs.appServiceName.value
$apiUrl = $deployment.properties.outputs.appServiceUrl.value
$principalId = $deployment.properties.outputs.appServicePrincipalId.value
# Disable SQL password auth — Entra ID (managed identity) only
az sql server ad-only-auth enable --resource-group $ResourceGroup `
--server-name $deployment.properties.outputs.sqlServerName.value
Octroi des autorisations Graph. L'identité managée de l'App Service a besoin de cinq autorisations d'application Microsoft Graph : Mail.Send, User.ReadBasic.All, TeamsAppInstallation.ReadForUser.All, Application.Read.All et AppCatalog.Read.All. Le modèle les accorde automatiquement (grantGraphPermissions=true, valeur par défaut) lorsque l'utilisateur qui effectue le déploiement dispose du rôle Administrateur d'application ou de l'autorisation AppRoleAssignment.ReadWrite.All. Sinon, accordez-les par la suite :
$graphSpId = az ad sp show --id "00000003-0000-0000-c000-000000000000" --query id -o tsv
$permissions = @(
@{ Name = "Mail.Send"; Id = "b633e1c5-b582-4048-a93e-9f11b44c7e96" }
@{ Name = "User.ReadBasic.All"; Id = "97235f07-e226-4f63-ace3-39588e11d3a1" }
@{ Name = "TeamsAppInstallation.ReadForUser.All"; Id = "9ce09611-f4f7-4abd-a629-a05450422a97" }
@{ Name = "Application.Read.All"; Id = "9a5d68dd-52b0-4cc2-bd40-abcf44ac3a30" }
@{ Name = "AppCatalog.Read.All"; Id = "e12dae10-5a57-4817-b79d-dfbec5348930" }
)
foreach ($perm in $permissions) {
$bodyFile = [System.IO.Path]::GetTempFileName()
@{ principalId = $principalId; resourceId = $graphSpId; appRoleId = $perm.Id } |
ConvertTo-Json | Set-Content -Path $bodyFile -Encoding utf8
az rest --method POST `
--uri "https://graph.microsoft.com/v1.0/servicePrincipals/$principalId/appRoleAssignments" `
--body "@$bodyFile" --headers "Content-Type=application/json" --output none
Remove-Item $bodyFile
}
# Full stop/start (NOT restart) clears the managed identity token cache
az webapp stop --name $appName --resource-group $ResourceGroup
Start-Sleep -Seconds 10
az webapp start --name $appName --resource-group $ResourceGroup
Vérification : accédez à https://<api-url>/api/health et confirmez une réponse saine.
Étape 2 : Installer les applications AccessPoint
Installez d'abord la solution SharePoint, puis l'application Teams.
Solution SharePoint. Depuis la fiche AppSource, cliquez sur Get it now et approuvez-la dans votre catalogue d'applications SharePoint, déployée à l'échelle du locataire. Vous pouvez aussi la téléverser manuellement (Centre d'administration SharePoint > Plus de fonctionnalités > Applications > Téléverser, cochez « Rendre cette solution disponible pour tous les sites ») ou laisser le script s'en charger.

Application Teams. Depuis la fiche AppSource, cliquez sur Get it now et approuvez-la dans le Centre d'administration Teams, ou installez les deux applications via le script (l'utilisateur connecté doit disposer des droits d'administrateur SharePoint ainsi que d'administrateur Teams ou d'administrateur général) :
.\Deploy-AccessPoint.ps1 `
-SharePointSiteUrl "https://contoso.sharepoint.com/sites/accesspoint" `
-SkipInfrastructure -SkipGraphPermissions `
-DeploySharePointApp -DeployTeamsApp
N'utilisez PAS « Synchroniser vers Teams » de SharePoint. Cette fonction remplace silencieusement le
webApplicationInfo.iddu manifeste, ce qui casse les notifications du fil d'activité Teams. Téléversez l'application Teams directement dans le Centre d'administration Teams.
Vérification : la solution apparaît dans le catalogue d'applications sans erreur, et AccessPoint s'affiche comme Autorisée dans le Centre d'administration Teams > Gérer les applications.
Étape 3 : Approuver les autorisations API
Le paquet SPFx demande des autorisations déléguées qu'un administrateur SharePoint doit approuver. Dans le Centre d'administration SharePoint, allez dans Avancé > Accès API et approuvez chaque demande AccessPoint en attente (access_as_user sur l'API AccessPoint, ainsi que des portées Graph telles que User.Read.All, Sites.Read.All, Files.Read.All, Mail.Read).

Ou approuvez-les via PnP PowerShell :
Connect-PnPOnline -Url "https://contoso-admin.sharepoint.com" -Interactive
$spfxPermissions = @(
@{ Resource = "ed19c96c-a7c5-4dca-8b47-0899c406329f"; Scope = "access_as_user" }
@{ Resource = "Microsoft Graph"; Scope = "User.Read.All" }
@{ Resource = "Microsoft Graph"; Scope = "Sites.Read.All" }
@{ Resource = "Microsoft Graph"; Scope = "Files.Read.All" }
@{ Resource = "Microsoft Graph"; Scope = "Mail.Read" }
)
foreach ($perm in $spfxPermissions) {
Grant-PnPTenantServicePrincipalPermission -Scope $perm.Scope -Resource $perm.Resource
}
Finalement, un administrateur général accorde le consentement de l'administrateur pour l'application multilocataire de l'éditeur en ouvrant https://login.microsoftonline.com/common/adminconsent?client_id=ed19c96c-a7c5-4dca-8b47-0899c406329f dans un navigateur.
Vérification : la page d'accès API n'affiche plus aucune demande AccessPoint en attente.
Étape 4 : Utiliser AccessPoint dans SharePoint ou Teams
SharePoint : modifiez ou créez une page, cliquez sur +, recherchez AccessPoint, ajoutez le composant web, puis publiez.
Teams : les utilisateurs trouvent AccessPoint sous Applications > Conçues pour votre organisation (l'indexation de la recherche peut prendre de 15 minutes à plusieurs heures après la première installation). Vous pouvez aussi l'épingler pour tout le monde via Centre d'administration Teams > Stratégies de configuration des applications, en ajoutant AccessPoint aux Applications installées et aux Applications épinglées.
Étape 5 : Configurer l'URL de l'API
Ouvrez le composant web et allez dans Paramètres > Configuration. Saisissez l'URL de l'API (l'URL de l'App Service issue de l'étape 1, par exemple https://app-accesspoint-contoso.azurewebsites.net) et l'ID client de l'inscription d'application Entra ID de l'API, puis cliquez sur Enregistrer. Le panneau valide le format HTTPS et le format GUID avant l'enregistrement.

Le script de déploiement configure l'entité de stockage SharePoint sous-jacente à votre place. Pour la configurer manuellement :
Connect-PnPOnline -Url "https://contoso.sharepoint.com" -Interactive
$appCatalogUrl = Get-PnPTenantAppCatalogUrl
Connect-PnPOnline -Url $appCatalogUrl -Interactive # storage entities live on the App Catalog site
Set-PnPStorageEntity -Key "AccessPoint_ApiUrl" -Value $apiUrl -Description "AccessPoint API base URL"
Get-PnPStorageEntity -Key "AccessPoint_ApiUrl" # verify
Vérification : rechargez le composant web — le tableau de bord se charge à la place de l'invite de configuration.
Étape 6 : Importer un pack de configuration
Allez dans Paramètres > Packs de configuration, choisissez le pack correspondant à votre juridiction (Canada ATIA, États-Unis FOIA, UE GDPR, et autres), puis cliquez sur Importer. Le pack crée des types de demande, des motifs de prolongation, des champs de choix, des modèles de notification et des traductions. Révisez et personnalisez les éléments importés par la suite.
Étape 7 : Attribuer les rôles utilisateur
Le premier utilisateur à ouvrir AccessPoint se voit automatiquement attribuer les rôles Administrateur et SAO. Allez dans Paramètres > Gérer les utilisateurs, cliquez sur Ajouter un utilisateur, recherchez dans votre annuaire, puis attribuez les rôles : au moins un Administrateur et un SAO, ainsi que les rôles Dépositaire, Contributeur, Réviseur et Lecteur au besoin.
AccessPoint est maintenant prêt à l'emploi.
Déploiement multilocataire
Utilisez ce modèle lorsque le backend Azure réside dans un locataire Entra ID différent de votre locataire Microsoft 365 — par exemple une équipe de services partagés desservant plusieurs unités d'affaires, un fournisseur de services gérés (MSP) hébergeant pour des clients, ou des locataires Azure/M365 distincts pour des raisons de gouvernance. Un déploiement unique peut desservir plusieurs locataires M365 : l'API isole les données selon l'ID du locataire présent dans le jeton de chaque utilisateur, avec des filtres de requête de base de données propres à chaque locataire et des chemins de blob préfixés par locataire. Chaque locataire M365 nécessite tout de même sa propre licence, son propre déploiement SPFx et ses propres approbations d'autorisations API, ainsi que ses propres identifiants Graph et sa propre boîte aux lettres de notification.
Inscription d'application Graph. Une identité managée ne fonctionne que dans son locataire d'origine ; créez donc une inscription d'application monolocataire dans le locataire M365 (par exemple, AccessPoint Graph Connector), accordez-lui les cinq mêmes autorisations d'application Graph énumérées à l'étape 1 avec le consentement de l'administrateur, puis créez un secret client et reliez-le à l'App Service via Key Vault :
# In the M365 tenant: create the client secret
$secret = az ad app credential reset --id $appId --display-name "AccessPoint" --years 2 --query password -o tsv
# In the Azure subscription: store the secret and reference it from the App Service
az keyvault secret set --vault-name $vaultName --name "GraphClientSecret" --value $secret
az webapp config appsettings set --resource-group $ResourceGroup --name $appName --settings `
"Graph__TenantId=$m365TenantId" `
"Graph__ClientId=$appId" `
"Graph__ClientSecret=@Microsoft.KeyVault(SecretUri=https://$vaultName.vault.azure.net/secrets/GraphClientSecret)"
az webapp restart --resource-group $ResourceGroup --name $appName
Ne stockez jamais le secret directement dans les paramètres de l'App Service ; l'identité managée de l'App Service a besoin du rôle Key Vault Secrets User sur le coffre. Lorsque les trois paramètres Graph__* sont présents, l'API utilise l'inscription d'application ; lorsqu'ils sont absents, elle se rabat sur l'identité managée pour les déploiements dans le même locataire.
Boîte aux lettres partagée et stratégie d'accès des applications. Créez une boîte aux lettres partagée non licenciée dans le locataire M365 pour les notifications par courriel, et limitez Mail.Send afin que l'application ne puisse envoyer que depuis cette seule boîte aux lettres :
Connect-ExchangeOnline -Organization "contoso.onmicrosoft.com"
New-Mailbox -Name "AccessPoint Notifications" -Alias "accesspoint-noreply" -Shared
New-DistributionGroup -Name "AccessPoint Mail Senders" -Type Security -ManagedBy "admin@contoso.com"
Add-DistributionGroupMember -Identity "AccessPoint Mail Senders" -Member "accesspoint-noreply@contoso.com"
New-ApplicationAccessPolicy -AppId $appId -PolicyScopeGroupId "AccessPoint Mail Senders" `
-AccessRight RestrictAccess -Description "AccessPoint may send only from the shared mailbox"
# Verify (propagation can take up to 30 minutes)
Test-ApplicationAccessPolicy -AppId $appId -Identity "accesspoint-noreply@contoso.com" # expect: Granted
Test-ApplicationAccessPolicy -AppId $appId -Identity "someother@contoso.com" # expect: Denied
Chaque locataire M365 répète ensuite les étapes 2 à 5 (applications, approbations, URL de l'API — la même URL d'API dessert tous les locataires). Les notifications du fil d'activité Teams exigent en outre le consentement de l'administrateur pour l'application d'entreprise Realizer et l'application Teams installée pour les utilisateurs; consultez Configuration initiale pour plus de détails.
Retour arrière et exploitation
Les mécanismes Azure standard couvrent le retour arrière : redéployez un paquet API précédent depuis l'historique du Centre de déploiement de l'App Service, restaurez Azure SQL par restauration à un point dans le temps (jusqu'à 35 jours), et retéléversez une version antérieure du .sppkg dans le catalogue d'applications. Les importations de packs de configuration sont additives et s'annulent par restauration de la base de données. Pour le guide opérationnel complet — procédures de retour arrière détaillées, surveillance et tâches de maintenance — contactez notre équipe de soutien.