Schritt-für-Schritt-Anleitung zur Bereitstellung von AccessPoint in Ihrer Microsoft 365- und Azure-Umgebung
Last updated: August 09, 2026 by Steve
Bereitstellungshandbuch
AccessPoint verwendet ein geteiltes Bereitstellungsmodell: ein schlankes SPFx Web Part in SharePoint, eine Teams-App, die dasselbe Web Part als persönliche Registerkarte hostet, und ein Azure-Backend, das die API ausführt und alle Daten speichert. Jede Komponente landet in Ihrem eigenen Microsoft 365-Mandanten und Azure-Abonnement — nichts wird vom Herausgeber gehostet, und keine Kundendaten verlassen Ihre Umgebung.
Überblick
| Komponente | Bezugsquelle | Landet in |
|---|---|---|
SPFx Web Part (accesspoint.sppkg) |
Microsoft AppSource oder direkter Upload in Ihren App-Katalog | Ihr SharePoint Online-Mandant |
Teams-App (accesspoint-teams.zip) |
Microsoft AppSource oder Upload in das Teams Admin Center | Ihr Teams-App-Katalog |
| Azure-Backend (App Service, SQL, Blob Storage, Application Insights) | Bicep/ARM-Vorlage mit einem Klick aus dem Azure-Portal (empfohlen) oder skriptbasiertes Bicep + PowerShell | Ihr Azure-Abonnement |
Für souveräne/Regierungs-Clouds, Versionsfixierung oder skriptbasierte Bereitstellungen werden alle Artefakte zusätzlich unter https://get.realizer.io/public/accesspoint/latest/ veröffentlicht.
Die Installationsreihenfolge ist wichtig. Installieren Sie die SharePoint-Lösung, bevor ein Benutzer die persönliche Teams-Registerkarte öffnet. Die Teams-App lädt das SPFx Web Part aus SharePoint in einem iframe — ohne dieses sehen Benutzer innerhalb von Teams einen SharePoint-404-Fehler.
Voraussetzungen
- Ein aktives AccessPoint-Abonnement (AccessPoint beziehen) — die API aktiviert ihre Lizenz automatisch über ihre Entra-Identität, sodass kein Lizenzschlüssel erforderlich ist, es sei denn, der Realizer-Support stellt Ihnen einen für Ihren Mandanten bereit
- Ein Azure-Abonnement mit Contributor-Rechten (oder höher) für die Ziel-Ressourcengruppe
- Ein in Ihrem Mandanten bereitgestellter SharePoint-App-Katalog sowie SharePoint Administrator-Rechte
- Global Administrator oder Application Administrator in Entra ID für die Erteilung von Graph-Berechtigungen und die Administratoreinwilligung
- Teams Administrator (oder Global Admin) zum Veröffentlichen der Teams-App
- Für skriptbasierte oder manuelle Bereitstellungen: Azure CLI (angemeldet mit
az loginals Benutzer, nicht als Dienstprinzipal) und das PnP.PowerShell-Modul
Es besteht keine Abhängigkeit von einer bestimmten Microsoft 365-Lizenzstufe, von Power Platform oder Dataverse — jeder Benutzer mit SharePoint- oder Teams-Zugriff kann AccessPoint verwenden.
Schritt 1: Azure-Ressourcen bereitstellen
Dieser Schritt stellt das Backend bereit: einen App Service unter Linux (die API), eine Azure SQL-Datenbank, Blob Storage und Application Insights mit Log Analytics. Die Ressourcen werden nach dem Schema {type}-accesspoint-{tenantName} benannt (zum Beispiel app-accesspoint-contoso) und sind standardmäßig gehärtet (TLS 1.3, reine Entra-SQL-Authentifizierung, FTPS und Basisauthentifizierung deaktiviert, Microsoft Defender for SQL standardmäßig aktiviert). Der SQL-Server wird Entra-first erstellt: Der bereitstellende Benutzer wird zum anfänglichen Entra-Administrator, und es existiert nie eine SQL-Anmeldeinformation — es gibt nichts zu rotieren oder zu deaktivieren.
Wöchentliche E-Mails „Sicherheitsrisikobewertung abgeschlossen" zeigen fehlgeschlagene Prüfungen, aber im Portal ist nichts zu sehen? Bei einer frischen Bereitstellung zu erwarten, keine Schwachstelle. Microsoft Defender for SQL führt die klassische (speicherbasierte) Sicherheitsrisikobewertung aus, doch die Defender-Kachel des Azure-Portals zeigt inzwischen standardmäßig die neuere Ansicht Express-Konfiguration, sodass der Link „Ergebnisse anzeigen" in der E-Mail auf einer Ansicht ohne Scans landen kann. Die fehlgeschlagenen Prüfungen sind Baseline-Prüfungen, die so lange fehlschlagen, bis der aktuelle Zustand als Baseline genehmigt wird — die Vorlage genehmigt die deterministische Prüfung VA2065 (Firewallregeln) im Voraus, doch eine mandantenspezifische Prüfung mit niedrigem Schweregrad zur Benutzerverfolgung auf der Anwendungsdatenbank lässt sich nicht im Voraus deklarieren. Beheben Sie dies einmalig: Öffnen Sie den SQL-Server (nicht die Datenbank) → Microsoft Defender for Cloud → Sicherheitsrisikobewertung → öffnen Sie die fehlgeschlagene Prüfung → Als Baseline genehmigen → erneut Scannen; nachfolgende wöchentliche E-Mails melden dann, dass alle Prüfungen bestanden wurden.
Option A: Azure-Portal (empfohlen). Stellen Sie die AccessPoint-Bicep/ARM-Vorlage mit einem Klick aus dem Azure-Portal bereit (die Schaltfläche In Azure bereitstellen). Das Bereitstellungsformular erfasst Ihr Abonnement und Ihre Ressourcengruppe, den Mandantennamen (z. B. contoso aus contoso.sharepoint.com) sowie einen verpflichtenden Bereitstellungstyp ohne Vorgabewert: Wählen Sie Neuinstallation für eine Erstbereitstellung oder Upgrade einer bestehenden Installation, wenn Sie über ein laufendes AccessPoint erneut bereitstellen — die Upgrade-Haltung bewahrt vom Betreiber hinzugefügte Anwendungseinstellungen und lässt den Datenbankzugriff unverändert. Wählen Sie optional eine App Service-SKU (B1 für die Evaluierung, S1 für die Standardproduktion, P1v3 als Standard), eine E-Mail-Adresse für Warnungen sowie die unten beschriebenen optionalen KI-Funktionen. Lassen Sie den Lizenz-API-Schlüssel leer — AccessPoint aktiviert seine Lizenz automatisch über die Entra-Identität der App; geben Sie nur dann einen Wert ein, wenn der Realizer-Support Ihnen einen für Ihren Mandanten bereitstellt. Das API-Paket wird automatisch im App Service bereitgestellt — nach der Bereitstellung besteht keine Laufzeitabhängigkeit von externen Diensten.
Einrichtung abschließen (Graph-Berechtigungen). Die Vorlage selbst erteilt niemals Graph-Berechtigungen. Öffnen Sie nach der Bereitstellung den Link finishSetupUrl aus den Outputs der Bereitstellung und melden Sie sich als Global Administrator an — die Seite „Einrichtung abschließen" des Herausgebers erteilt in einem einzigen idempotenten Durchlauf alle Graph-Berechtigungen, die die verwaltete Identität benötigt. Rufen Sie denselben Link nach einem Upgrade erneut auf, um neu hinzugekommene Berechtigungen zu übernehmen. Führen Sie anschließend einen vollständigen Stopp/Start-Zyklus des App Service durch (nicht Neustart), damit die Berechtigungen wirksam werden.

Option B: Bicep + PowerShell. Führen Sie für benutzerdefinierte Pipelines oder eine strenge Änderungskontrolle das Bereitstellungsskript mit der veröffentlichten ARM-Vorlage aus:
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
Das Skript erkennt den Bereitstellungstyp automatisch (Neuinstallation oder Upgrade) und führt bis zu sieben Schritte aus — Infrastruktur, reine Entra-SQL-Authentifizierung (ein Backstop: aktuelle Vorlagen erstellen den Server bereits Entra-first), Erteilung von Graph-Berechtigungen (das skriptbasierte Äquivalent zur Seite „Einrichtung abschließen"), einen Stopp-/Startzyklus des App Service, die optionale SharePoint-Speicherentität (API-URL), Genehmigungen der SPFx-API-Berechtigungen und optionale App-Installationen. Jeder Schritt ist einzeln überspringbar (-SkipInfrastructure, -SkipGraphPermissions, -SkipSharePoint). Fixieren Sie eine Version mit -ArtifactBaseUrl "https://get.realizer.io/public/accesspoint/2.0.67" für reproduzierbare, integritätsgeprüfte Bereitstellungen (das Skript prüft den veröffentlichten SHA-256-Hash und bricht bei Abweichung ab).
Um die Infrastrukturkomponenten stattdessen selbst auszuführen:
$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
# Backstop only: current templates create the SQL server Entra-first, so
# Entra-only auth is already in force and no SQL credential ever exists
az sql server ad-only-auth enable --resource-group $ResourceGroup `
--server-name $deployment.properties.outputs.sqlServerName.value
Erteilung von Graph-Berechtigungen. Die verwaltete Identität des App Service benötigt diese Microsoft Graph-Anwendungsberechtigungen: Mail.Send, User.ReadBasic.All, TeamsAppInstallation.ReadForUser.All, Application.Read.All, AppCatalog.Read.All sowie (standardmäßig aktiviert, abwählbar) AiEnterpriseInteraction.Read.All für die Copilot-Erfassung. Der einfachste Weg ist die Seite Einrichtung abschließen — der Bereitstellungsoutput finishSetupUrl —, die sie alle in einem einzigen idempotenten Durchlauf über die delegierte Anmeldung eines Global Administrators erteilt. Um sie stattdessen per CLI zu erteilen:
$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" }
# Copilot capture (tenant-wide) — granted by default; remove this line to opt out:
@{ Name = "AiEnterpriseInteraction.Read.All"; Id = "839c90ab-5771-41ee-aef8-a562e8487c1e" }
)
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
Überprüfung: Rufen Sie https://<api-url>/api/health auf und bestätigen Sie eine fehlerfreie Antwort.
Optionale KI-Funktionen
Die Vorlage stellt vier optionale Funktionen bereit, von denen keine für den Betrieb von AccessPoint erforderlich ist. AI Assist, AI Search und Document Intelligence sind deaktiviert, sofern Sie sie nicht zum Zeitpunkt der Bereitstellung aktivieren; die Copilot-Erfassungsberechtigung wird standardmäßig erteilt, kann jedoch abgewählt werden (das Formular Deploy to Azure, -p name=value bei az deployment oder die unten genannten Schalter von Deploy-AccessPoint.ps1 steuern alle vier). Alle KI-Ressourcen werden in Ihrem eigenen Azure-Abonnement mit ausschließlicher Authentifizierung über verwaltete Identität bereitgestellt — keine Kundendaten verlassen Ihre Mandantenumgebung, und Microsoft trainiert keine Modelle damit.
- AI Assist bereitstellen (Azure OpenAI) — fügt Ihrem Abonnement eine Azure-OpenAI-Ressource mit Authentifizierung per verwalteter Identität hinzu (keine API-Schlüssel). Die Abrechnung erfolgt nutzungsbasiert, sodass ein untätiger Mandant etwa 0 $ zahlt und eine ausgelastete Abteilung in der Regel einen einstelligen Dollarbetrag pro Monat ausgibt. Die Bereitstellung aktiviert die AI Assist-Funktionen, die jeweils einzeln unter Einstellungen > Funktionen umschaltbar sind. Jede KI-Ausgabe ist ein Vorschlag oder ein bearbeitbarer Entwurf — eine Person entscheidet immer.
- AI Search bereitstellen (
deployAiSearch=true) — fügt Azure AI Search hinzu, sodass das Suchfeld auf der Registerkarte Dokumente zusätzlich zu Namen, Typen und Tags auch Wörter innerhalb von Dokumenten (extrahierter PDF-Text) findet; wenn zusätzlich AI Assist bereitgestellt ist, unterstützt es die semantische Suche. Neue Dokumente werden automatisch indiziert, und ein Administrator-Durchlauf (Einstellungen > Einrichtung > Dokumentinhaltssuche) indiziert alle, die davor entstanden sind. - Document Intelligence bereitstellen (
deployDocumentIntelligence=true) — fügt Azure AI Document Intelligence für OCR hinzu: Der Text gescannter, reiner Bilddokumente wird gelesen, sodass sie wie jedes andere Dokument an der Inhaltssuche, der Duplikaterkennung, den KI-Zusammenfassungen und den Schwärzungsvorschlägen teilnehmen. Die Abrechnung erfolgt pro Seite (etwa 1,50 USD pro 1.000 Seiten). Ohne diese Komponente werden gescannte Dokumente weiterhin anhand von Name, Typ und Tags abgeglichen. - Copilot-Erfassungsberechtigung (
AiEnterpriseInteraction.Read.All) — diese mandantenweite Graph-Berechtigung wird standardmäßig erteilt, sodass Custodians den Copilot-Interaktionsverlauf über Dokumente > Aus Microsoft 365 hinzufügen von Anfang an erfassen können. Mandanten nach dem Least-Privilege-Prinzip können sie mit-DisableCopilotCaptureim BereitstellungsskriptDeploy-AccessPoint.ps1(oder mitgrantCopilotCapturePermission=falsein der ARM/Bicep-Vorlage) abwählen und die App-Rolle jederzeit in Entra ID widerrufen. Sie ist ausschließlich anwendungsbasiert (Microsoft Graph bietet keine delegierte Variante), doch AccessPoint liest immer nur den eigenen Copilot-Verlauf des angemeldeten Benutzers; die fünf oben genannten Standard-Graph-Berechtigungen bleiben davon unberührt.
Schritt 2: Die AccessPoint-Apps installieren
Installieren Sie zuerst die SharePoint-Lösung, dann die Teams-App.
SharePoint-Lösung. Klicken Sie im AppSource-Eintrag auf Get it now und genehmigen Sie sie mandantenweit in Ihrem SharePoint-App-Katalog. Alternativ können Sie sie manuell hochladen (SharePoint Admin Center > Weitere Features > Apps > Hochladen, das Kontrollkästchen „Diese Lösung für alle Websites verfügbar machen" aktivieren) oder das Skript dies erledigen lassen.

Teams-App. Klicken Sie im AppSource-Eintrag auf Get it now und genehmigen Sie sie im Teams Admin Center, oder installieren Sie beide Apps über das Skript (der angemeldete Benutzer benötigt SharePoint-Administrator- sowie Teams-Administrator- oder Global-Admin-Rechte):
.\Deploy-AccessPoint.ps1 `
-SharePointSiteUrl "https://contoso.sharepoint.com/sites/accesspoint" `
-SkipInfrastructure -SkipGraphPermissions `
-DeploySharePointApp -DeployTeamsApp
Verwenden Sie NICHT die SharePoint-Funktion „Sync to Teams". Sie überschreibt stillschweigend die
webApplicationInfo.iddes Manifests, wodurch die Benachrichtigungen im Teams-Aktivitätsfeed nicht mehr funktionieren. Laden Sie die Teams-App direkt in das Teams Admin Center hoch.
Überprüfung: Die Lösung erscheint fehlerfrei im App-Katalog, und AccessPoint wird unter Teams Admin Center > Apps verwalten als Zulässig angezeigt.
Schritt 3: API-Berechtigungen genehmigen
Das SPFx-Paket fordert delegierte Berechtigungen an, die ein SharePoint-Administrator genehmigen muss. Wechseln Sie im SharePoint Admin Center zu Erweitert > API-Zugriff und genehmigen Sie jede ausstehende AccessPoint-Anforderung: access_as_user für die AccessPoint-API sowie Graph-Bereiche für die Personenauswahl und die Erfassungsquellen von „Aus Microsoft 365 hinzufügen" — User.Read.All, Sites.Read.All, Files.Read.All, Mail.Read und Mail.Read.Shared (eigene sowie gemeinsame/Aufnahme-Postfächer), Calendars.Read und Calendars.Read.Shared, Chat.Read, ChannelMessage.Read.All, Team.ReadBasic.All, Channel.ReadBasic.All (Teams-Chats und -Kanäle) sowie Notes.Read und Notes.Read.All (OneNote). Die .Shared-Bereiche erweitern den Zugriff niemals von sich aus — Graph setzt weiterhin die bestehenden Exchange-Postfachberechtigungen jedes Benutzers durch.


Oder genehmigen Sie über 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" }
@{ Resource = "Microsoft Graph"; Scope = "Mail.Read.Shared" }
@{ Resource = "Microsoft Graph"; Scope = "Calendars.Read" }
@{ Resource = "Microsoft Graph"; Scope = "Calendars.Read.Shared" }
@{ Resource = "Microsoft Graph"; Scope = "Chat.Read" }
@{ Resource = "Microsoft Graph"; Scope = "ChannelMessage.Read.All" }
@{ Resource = "Microsoft Graph"; Scope = "Team.ReadBasic.All" }
@{ Resource = "Microsoft Graph"; Scope = "Channel.ReadBasic.All" }
@{ Resource = "Microsoft Graph"; Scope = "Notes.Read" }
@{ Resource = "Microsoft Graph"; Scope = "Notes.Read.All" }
)
foreach ($perm in $spfxPermissions) {
Grant-PnPTenantServicePrincipalPermission -Scope $perm.Scope -Resource $perm.Resource
}
Abschließend erteilt ein Global Administrator die Administratoreinwilligung für die Mehrmandanten-App des Herausgebers, indem er https://login.microsoftonline.com/common/adminconsent?client_id=ed19c96c-a7c5-4dca-8b47-0899c406329f in einem Browser öffnet.
Überprüfung: Die Seite für den API-Zugriff zeigt keine ausstehenden AccessPoint-Anforderungen mehr an.
Schritt 4: AccessPoint in SharePoint oder Teams verwenden
SharePoint: Bearbeiten oder erstellen Sie eine Seite, klicken Sie auf +, suchen Sie nach AccessPoint, fügen Sie das Web Part hinzu und veröffentlichen Sie die Seite.
Teams: Benutzer finden AccessPoint unter Apps > Built for your org (die Suchindizierung kann nach der Erstinstallation 15 Minuten bis mehrere Stunden dauern). Optional können Sie es über Teams Admin Center > App-Setuprichtlinien für alle anheften, indem Sie AccessPoint zu Installierte Apps und Angeheftete Apps hinzufügen.
Schritt 5: API-URL-Konfiguration (in der Regel automatisch)
Das Web Part ermittelt die API-URL automatisch. Die AccessPoint-API registriert ihre Adresse selbst bei der Realizer-Plattform, sobald sie ihre Lizenz validiert — innerhalb weniger Minuten nach dem Start des App Service — und das Web Part ruft sie von dort ab. In den meisten Bereitstellungen ist hier nichts zu tun.
Überprüfung: Laden Sie das Web Part neu — das Dashboard wird anstelle der Einrichtungsaufforderung geladen. Wenn die API gerade erst bereitgestellt wurde, gelingt die Ermittlung beim nächsten Laden der Seite nach der ersten erfolgreichen Lizenzvalidierung.
Die API-URL manuell festlegen (optional)
Dies benötigen Sie nur, um die automatische Ermittlung außer Kraft zu setzen — beispielsweise, um das Web Part an eine benutzerdefinierte Domäne zu binden.
Option A — Einrichtungsbereich. Öffnen Sie das Web Part, wechseln Sie zu Einstellungen > Einrichtung, geben Sie die API-URL ein (die App Service-URL aus Schritt 1, z. B. https://app-accesspoint-contoso.azurewebsites.net) und klicken Sie auf Speichern. Der Bereich validiert HTTPS vor dem Speichern, und eine manuell festgelegte URL hat Vorrang vor der automatischen Ermittlung.

Option B — Speicherentität (PowerShell). Fixieren Sie die URL in einer AccessPoint_ApiUrl-Speicherentität, die Vorrang vor der automatischen Ermittlung hat. Seit Januar 2026 blockiert SharePoint Schreibzugriffe auf den Property Bag des No-Script-App-Katalogs (Message Center MC1186368), sodass ein SharePoint-Administrator diese einmalig mandantenweit zulassen muss, bevor die Speicherentität geschrieben werden kann:
# One-time (SharePoint admin): allow property-bag updates on no-script sites
Set-SPOTenant -AllowWebPropertyBagUpdateWhenDenyAddAndCustomizePagesIsEnabled $true
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
Schritt 6: Ein Rechtsordnungspaket importieren
Wechseln Sie zu Einstellungen > Rechtsordnungspakete, wählen Sie das Paket für Ihre Rechtsordnung (Canada ATIA, US FOIA, EU GDPR und weitere) und klicken Sie auf Importieren. Das Paket erstellt Antragstypen, Verlängerungsgründe, Auswahlfelder, Benachrichtigungsvorlagen und Übersetzungen. Überprüfen und passen Sie die importierten Elemente anschließend an.
Schritt 7: Benutzerrollen zuweisen
Dem ersten Benutzer, der AccessPoint öffnet, wird automatisch die Rolle Administrator zugewiesen — die einzige integrierte Rolle, die stets jede Berechtigung auflöst. Jede andere Rolle ist mandantendefiniert: Der Import eines Rechtsordnungspakets sät fertige Rollen (wie Request Coordinator, die faktische Rolle des Beauftragten für Informationszugang und Datenschutz), und Sie können diese unter Einstellungen > Rollen & Berechtigungen umbenennen oder umgestalten. Wechseln Sie zu Einstellungen > Benutzer verwalten, klicken Sie auf Benutzer hinzufügen, durchsuchen Sie Ihr Verzeichnis und weisen Sie mindestens einen Administrator und einen Coordinator zu; der Zugriff als Custodian, Contributor, Reviewer und Reader ergibt sich automatisch aus der Arbeit, die Sie den Personen zuweisen.
AccessPoint ist jetzt einsatzbereit.
AccessPoint aktualisieren
AccessPoint zeigt an, wenn eine neuere Version verfügbar ist — es gibt nichts zu abonnieren oder manuell abzufragen:
- Während der routinemäßigen Lizenzvalidierung meldet die Realizer-Plattform die zuletzt veröffentlichte AccessPoint-Version (die Version, die zuletzt in den Kunden-Releasekanal übernommen wurde). Bei dieser Prüfung sind keine Nutzungs- oder Falldaten beteiligt.
- Wenn die veröffentlichte Version neuer ist als die, auf der Ihre API läuft, sehen Administratoren einen Hinweis Update verfügbar im Dashboard und unter Einrichtung, mit der aktuellen und der neuesten Versionsnummer.
- Wenn Sie aktuell sind (oder eine Vorabversion ausführen, die neuer als die veröffentlichte Version ist), zeigt die Einrichtung „Ihre AccessPoint-API ist aktuell."
So wenden Sie ein Update an:
- Klicken Sie unter Einstellungen > Einrichtung auf Update in Azure bereitstellen. Dies öffnet das Azure-Portal mit der neuesten ARM-Vorlage — derselben Vorlage, die für die Erstbereitstellung verwendet wird.
- Wählen Sie den Bereitstellungstyp Upgrade einer bestehenden Installation. Dies bewahrt vom Betreiber hinzugefügte Anwendungseinstellungen und lässt den Datenbankzugriff unverändert; das Datenbankschema wird beim API-Start automatisch aktualisiert (DacPac-Migration).
- Aktualisieren Sie das SPFx-Paket: Laden Sie das neueste
accesspoint.sppkgin Ihren App-Katalog hoch (Schritt 2 oben). Aktualisieren Sie das Teams-App-Paket im Teams Admin Center, falls ein neuesaccesspoint-teams.zipveröffentlicht wurde. - Rufen Sie nach dem Upgrade erneut die Seite Einrichtung abschließen auf — sie erteilt idempotent alle Graph-Berechtigungen, die seit Ihrer ursprünglichen Bereitstellung neu hinzugekommen sind.
Beispieldaten für Evaluierungsmandanten. Für Demo- und Evaluierungsumgebungen kann ein separates Web Part AccessPoint DevTools (
accesspoint-devtools.sppkg) einen Mandanten zurücksetzen und rechtsraumgerechte Beispieldaten einspielen — Testbenutzer, Anträge, Zuweisungen und generierte Dokumente — mit einem Klick auf Demo neu aufbauen. Es verwendet die API-Verbindung der Hauptanwendung wieder und deklariert eigene API-Berechtigungen (einmalig genehmigen unter SharePoint Admin > Erweitert > API-Zugriff). Nicht für die Produktion: Die destruktiven Zurücksetzungs-Endpunkte werden nur aktiviert, wenn die App Service-EinstellungDevTools:Enabled=truegesetzt ist — stellen Sie das Paket ausschließlich in Entwicklungs-/Demo-Mandanten bereit.
Teams-Datenschutz bei Benachrichtigungen (optional)
Alle Antragsdatensätze, PII der Antragsteller, Dokumente und der Audit-Verlauf leben ausschließlich in Ihrem eigenen Mandanten. Benachrichtigungen respektieren das ebenso. AccessPoint stellt jede Benachrichtigung auf bis zu drei Kanälen zu, und zwei davon verlassen Ihren Mandanten niemals: der In-App-Feed (bereitgestellt von Ihrer eigenen API) und E-Mail/Outlook (gesendet aus Ihrem eigenen freigegebenen Postfach über Mail.Send). Der Teams-Aktivitätsfeed ist der einzige Kanal, der in seinem Standardmodus eine kleine Nutzlast per POST an die Realizer-Plattform-API sendet — was nur deshalb existiert, weil Microsoft Graph verlangt, dass eine Aktivitätsbenachrichtigung von der App gesendet wird, die das Teams-Manifest besitzt. Der Herausgeber speichert nichts davon und protokolliert nur die Empfänger- + Mandanten-GUIDs, und dieselben Benachrichtigungen treffen weiterhin per E-Mail und in der App ein. Zwei Steuerelemente schränken selbst dies weiter ein oder entfernen es:
Minimieren (ein Umschalter). Aktivieren Sie unter Einstellungen > Einrichtung > Teams-Benachrichtigungen die Option Inhalt von Teams-Benachrichtigungen minimieren (Datenschutz). Die weitergeleitete Nutzlast ersetzt dann den Benachrichtigungstitel/-vorschautext und den Namen der handelnden Person durch neutrale Platzhalter, sodass keine Zuweisungs-/Aufgabennamen, kein Benachrichtigungstext und keine Personennamen den Mandanten verlassen — nur der Aktivitätstyp, die Antragsnummer und die Datensatzkennungen werden weiterhin übertragen, damit der Toast geroutet werden und verlinken kann. Der vollständige Text wird weiterhin im In-App-Feed angezeigt. Keine Manifeständerung erforderlich. (Im Hintergrund: die Mandanteneinstellung Notifications:TeamsMinimalPayload.)
Eliminieren (die Weiterleitung selbst hosten). Ein Mandant, der keine Benachrichtigungsdaten an den Herausgeber senden darf, kann seine eigene API Graph direkt mit ihrer verwalteten Identität aufrufen lassen, sodass nichts bei api.realizer.io ankommt:
- Erteilen Sie
TeamsActivity.Send(Anwendung) an die verwaltete Identität der API und erteilen Sie die Administratoreinwilligung — Graph erlaubt nur der App, die das Teams-Manifest besitzt, Aktivitätsbenachrichtigungen zu senden, sodass die sendende Identität mit derwebApplicationInfo.iddes Manifests übereinstimmen muss. - Richten Sie das Teams-Manifest auf Ihre eigene App aus. Setzen Sie in
manifest.jsonwebApplicationInfo.idauf die Client-ID Ihrer API-App-Registrierung / verwalteten Identität (anstelle der App-ID des Herausgebers) und belassen SiewebApplicationInfo.resourceals die SharePoint-Website-Domäne. Laden Sie die bearbeitete ZIP-Datei direkt im Teams Admin Center hoch — verwenden Sie nicht die SharePoint-Funktion „Sync to Teams" (sie überschreibtwebApplicationInfo). - Stellen Sie die API auf Direktweiterleitung um — fügen Sie die App Service-Einstellung
Notifications__TeamsRelayMode=Directhinzu (Standard/nicht gesetzt =Publisher) und starten Sie neu. Die API ruftsendActivityNotificationnun selbst auf; die Erteilung für die Unternehmensanwendung des Herausgebers wird für Benachrichtigungen nicht mehr benötigt. - Erneut validieren — senden Sie eine Testbenachrichtigung (bestätigen Sie den Deep Link) und bestätigen Sie, dass sich die persönliche Teams-Registerkarte weiterhin anmeldet, da Sie
webApplicationInfo.idgeändert haben.
Die Direktweiterleitung hält 100 % des Benachrichtigungsinhalts mandantenintern, bedeutet jedoch, ein angepasstes Teams-Manifest zu pflegen und die Einwilligung erneut zu erteilen, wenn sich die App-ID ändert. Die meisten Mandanten, die lediglich Freitext und Personennamen unterdrücken müssen, sollten stattdessen den Umschalter Minimieren verwenden — keine Manifeständerung, und die Benachrichtigung verlinkt weiterhin per Deep Link.
Mehrmandanten-Bereitstellung
Verwenden Sie dieses Muster, wenn das Azure-Backend in einem anderen Entra ID-Mandanten liegt als Ihr Microsoft 365-Mandant — etwa bei einem Shared-Services-Team, das mehrere Geschäftsbereiche bedient, einem MSP, der für Kunden hostet, oder getrennten Azure-/M365-Mandanten aus Governance-Gründen. Eine einzelne Bereitstellung kann mehrere M365-Mandanten bedienen: Die API isoliert Daten anhand der Mandanten-ID im Token jedes Benutzers, mit mandantenbezogenen Datenbankabfragefiltern und mandantenpräfixierten Blob-Pfaden. Jeder M365-Mandant benötigt dennoch eine eigene Lizenz, eine eigene SPFx-Bereitstellung und API-Berechtigungsgenehmigungen sowie eigene Graph-Anmeldeinformationen und ein eigenes Benachrichtigungspostfach.
Graph-App-Registrierung. Eine verwaltete Identität funktioniert nur in ihrem Heimatmandanten. Erstellen Sie daher eine App-Registrierung für einen einzelnen Mandanten (Single-Tenant) im M365-Mandanten (z. B. AccessPoint Graph Connector), erteilen Sie ihr mit Administratoreinwilligung dieselben Graph-Anwendungsberechtigungen aus Schritt 1, erstellen Sie dann ein Clientgeheimnis und verbinden Sie es über Key Vault mit dem App Service:
# 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
Speichern Sie das Geheimnis niemals direkt in den App Service-Einstellungen; die verwaltete Identität des App Service benötigt die Rolle Key Vault Secrets User für den Tresor. Wenn alle drei Graph__*-Einstellungen vorhanden sind, verwendet die API die App-Registrierung; fehlen sie, greift sie für Bereitstellungen im selben Mandanten auf die verwaltete Identität zurück.
Freigegebenes Postfach und Anwendungszugriffsrichtlinie. Erstellen Sie im M365-Mandanten ein nicht lizenziertes freigegebenes Postfach für E-Mail-Benachrichtigungen und begrenzen Sie Mail.Send so, dass die App nur aus diesem einen Postfach senden kann:
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
Jeder M365-Mandant wiederholt anschließend die Schritte 2–5 (Apps, Genehmigungen, API-URL — dieselbe API-URL bedient alle Mandanten). Teams-Aktivitätsfeed-Benachrichtigungen erfordern zusätzlich die Administratoreinwilligung für die Realizer-Unternehmensanwendung und die für Benutzer installierte Teams-App; Einzelheiten finden Sie unter Erste Einrichtung.
Rollback und Betrieb
Standardmäßige Azure-Mechanismen decken das Rollback ab: Stellen Sie ein vorheriges API-Paket aus dem Verlauf des App Service-Bereitstellungscenters erneut bereit, stellen Sie Azure SQL per Zeitpunktwiederherstellung (bis zu 35 Tage) wieder her und laden Sie eine frühere versionierte .sppkg erneut in den App-Katalog hoch. Importe von Rechtsordnungspaketen sind additiv und werden über eine Datenbankwiederherstellung rückgängig gemacht. Für das vollständige Betriebsrunbook — detaillierte Rollback-Verfahren, Überwachung und Wartungsaufgaben — wenden Sie sich an unser Support-Team.