Verwendung von Sharepoint (Anwendung)
NOTE: Bei Projekten, die den Sharepoint von Adobe verwenden, fahren Sie bitte fort. here.
Wenn Sie SharePoint als Inhaltsquelle verwenden, verwendet AEM eine registrierte Microsoft Azure-Anwendung, um auf Ihre Inhalte zuzugreifen. Diese Anwendung hat delegierte Berechtigungen definiert wurde, die den Zugriff des Dienstes auf SharePoint im Namen eines Benutzers ermöglichen. Dieser Benutzer muss bei dem Projekt registriert sein, das SharePoint verwendet.
Alternativ können die Dienste auch als Anwendung authentifiziert und Anwendungsberechtigungen , um auf die Sites zuzugreifen. Dies erfordert eine zusätzliche Einrichtung durch einen SharePoint-Site-Administrator, der die Berechtigungen für die Anwendung erteilen kann.
Die bevorzugte Einrichtung ist die Verwendung von Anwendungsberechtigungen, da dadurch der Zugriff des Dienstes auf eine bestimmte SharePoint-Site eingeschränkt wird und keine Geheimnisse für einen technischen Anwender freigegeben werden müssen. Außerdem werden die Probleme im Zusammenhang mit der Passwortrotation reduziert.
Im Folgenden wird beschrieben, wie Sie Anwendungsberechtigungen für Ihr Projekt. Wenn Sie einen technischen Benutzer einrichten möchten, fahren Sie bitte mit dem here.
Das Einrichten von SharePoint umfasst die folgenden Schritte:
- Erstellen oder Identifizieren einer Sharepoint-Site, die als Site für die dokumentbasierte Bearbeitung dient
- Erstellen Sie in SharePoint einen Ordner, der dem Website-Stamm entspricht.
- Konfigurieren Sie die
fstab.yaml
mit dem entsprechenden Ordner - Zugriff auf das Registrierungsportal
- Registrieren der Anwendung
- Wenden Sie die
sites.selected
Berechtigung für die SharePoint-Site
1. Erstellen oder Identifizieren einer Sharepoint-Site
Wenden Sie sich an Ihre IT-Abteilung, um eine Sharepoint-Site zu identifizieren oder zu erstellen, die für die dokumentbasierte Bearbeitung verwendet wird. Eine Site kann mehrere Websites (Projekte) "hosten". Diese Website erhält später die entsprechenden Berechtigungen, damit die Veröffentlichungsdienste darauf zugreifen können.
2. Erstellen des Stammordners der Website
Navigieren Sie zu Ihrem gewünschten Speicherort auf der oben erstellten oder identifizierten SharePoint-Site und erstellen Sie einen Stammordner für Ihre Website. Es empfiehlt sich, keinen SharePoint-Listenstamm direkt zu verwenden, damit Sie über einen freigegebenen Speicherplatz für Ihre Autoren verfügen, um Begleitdokumente wie beispielsweise einen Ordner "Entwürfe"oder eine Anleitungsdokumentation zu erstellen.
Eine Beispieldateistruktur könnte wie folgt aussehen, indem Sie die website
Ordner als Stamm:
3. Konfigurieren Sie fstab.yaml
Der nächste Schritt besteht darin, den Bereitstellungspunkt im fstab.yaml
, um auf den Website-Stamm zu verweisen. Sie hat normalerweise die Form
https://<tenant>.SharePoint.com/sites/<sp-site>/Shared%20Documents/website
Dies kann jedoch davon abhängen, wie Sie die SharePoint-Site und -Listen erstellen. Um die URL zu erhalten, ist die einfachste Möglichkeit, den ersten Teil aus der Browser-Adresse zu kopieren und einzufügen, z. B.:
Fügen Sie dann den Rest manuell hinzu (Beachten Sie, dass durch Kopieren des Sharelink über die Benutzeroberfläche unnötige Informationen hinzugefügt werden und es besser ist, eine kanonische Darstellung der URL zu verwenden). Nachdem Sie die URL erstellt haben, können Sie sie testen, indem Sie sie erneut im Browser eingeben. Sie sollten sich in der Ordneransicht Ihres Website-Stamms befinden.
Danach aktualisieren Sie die fstab.yaml
entsprechend.
Zum Beispiel:
mountpoints:
/: https://adobeenterprisesupportaem.SharePoint.com/sites/hlx-test-project/Shared%20Documents/website
Um die Konfiguration abzuschließen, müssen Sie die fstab.yaml
zurück zum Hauptzweig.
4. Zugriff auf das Registrierungsportal
Überblick
Damit der AEM-Dienst auf die erstellten Inhalte zugreifen kann, benötigt er einige Informationen und Konfigurationen. Der AEM-Dienst (eine Cloud-Funktion) greift auf die MS Graph-API im Namen einer Anwendung (oder eines konfigurierten Benutzers). Dazu muss sie sich zunächst im Kontext einer Anwendung. Dies ist wichtig, da die der Anwendung übergebenen Perimeter definieren, welche Berechtigung der Dienst für die MS Graph-API hat. Beispielsweise sollte es erlaubt sein, Dokumente zu lesen und zu schreiben, aber nicht die Zugriffskontrolle zu ändern.
Eine Anwendung wird im entsprechenden Active Directory eines Mandanten als "Enterprise Application"dargestellt. Die Berechtigungen, die dieser Unternehmensanwendung erteilt werden, definieren letztendlich, was der Dienst in den Ressourcen dieses Mandanten aufrufen kann. Bestimmte Berechtigungen müssen von einem Active Directory-Administrator genehmigt werden, bevor ein Benutzer die Anwendung verwenden kann. Diese so genannte "Admin-Zustimmung"ist ein Mechanismus zur Überprüfung und Kontrolle der Berechtigungen, die Apps haben können. Dadurch soll verhindert werden, dass zweifelhafte Apps Benutzer dazu verleiten, einer nicht offiziellen App zu vertrauen. Durch den zusätzlichen Schritt zur Admin-Zustimmung kann IT-Sicherheit steuern, welche Apps die Mitarbeiter verwenden können.
1. Anmelden im Registrierungsportal
Erstellen einer Anwendung mit MSGraph oder Powershell
Alternativ können Sie die Enterprise-Anwendung über MSGraph oder Powershell erstellen.
Um es in der Azure-Benutzeroberfläche sichtbar zu machen, müssen Sie auch die WindowsAzureActiveDirectoryIntegratedApp
-Tag. Dies kann direkt beim Erstellen der Anwendung erfolgen.
Verwenden des Graph-Explorer:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "e34c45c4-0919-43e1-9436-448ad8e81552",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Verwenden von powershell:
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId e34c45c4-0919-43e1-9436-448ad8e81552 -Tags WindowsAzureActiveDirectoryIntegratedApp
Hinzufügen des Franklin-Dienstes mit Anwendungsberechtigungen
Wie oben beschrieben, die Enterprise-Anwendung für die Franklin Service (83ab2922-5f11-4e4d-96f3-d1e0ff152856)
ist noch nicht in Azure vorhanden,
Verwenden Sie zum Hinzufügen den Graph-Explorer oder die Powershell, um ihn hinzuzufügen:
Verwenden des Graph-Explorer:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "83ab2922-5f11-4e4d-96f3-d1e0ff152856",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Verwenden von powershell:
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId 83ab2922-5f11-4e4d-96f3-d1e0ff152856 -Tags WindowsAzureActiveDirectoryIntegratedApp
Siehe auch:
Hinzufügen von Anwendungsrollen mit Powershell oder Graph Explorer
Alternativ können Sie die App-Rollen mit den folgenden Schritten hinzufügen:
- Suchen Sie den Dienstprinzipal der Unternehmensanwendung (
principalId
). Dies ist die, die Sie oben erstellt haben. - Suchen Sie den Dienstprinzipal der Microsoft Graph-API (
resourceId
) - Suchen Sie die ID für die
Sites.Selected
Anwendungsrolle (appRoleId
) - Zuweisen der Anwendungsrolle zur verwalteten Identität (der Unternehmensanwendung)
Verwenden powershell Dies kann folgendermaßen erfolgen:
$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
Verwenden Diagrammexplorer Es umfasst mehr Schritte:
- Suchen Sie den Prinzipal der Unternehmensanwendung:
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '83ab2922-5f11-4e4d-96f3-d1e0ff152856'
...
"value": [
{
"id": "6761ada0-733b-4a02-98b2-3db970834fe0",
...
Dies wird unser principalId
- Suchen des Dienstprinzipals der Microsoft Graph-API
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '00000003-0000-0000-c000-000000000000'
...
"value": [
{
"id": "5159db96-7193-414e-9730-b1d1e4448443",
...
Dies ist die resourceId
. (die Ressource, die die Anwendungsrolle definiert)
- Suchen Sie die ID der Anwendungsrolle.
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"
},
...
Diese ID ist die appRoleId
- Weisen Sie die Anwendungsrolle der verwalteten Identität zu. Die Anfrage hat das folgende Format:
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"
}
Berechtigungen zur Sharepoint Site hinzufügen
Um die Berechtigungen zur Sharepoint-Site hinzuzufügen, müssen wir dessen SiteId
.
Dies kann mithilfe des Diagrammexplorers erneut durchgeführt werden:
GET https://graph.microsoft.com/v1.0/sites/{host-name}:/{server-relative-path}
Beispiel:
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",
...
}
Verwenden der Id
können wir Berechtigungen festlegen:
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"
}
}
]
}