Använda Sharepoint (program)

ANMÄRKNING: för projekt där Adobe’s Sharepoint används ska du fortsätta här.

Om du använder SharePoint som innehållskälla använder AEM ett registrerat Microsoft Azure-program för att komma åt ditt innehåll. Programmet har delegerad behörighet som gör att tjänsten kan komma åt SharePoint för en användares räkning. Användaren måste registreras för det projekt som använder SharePoint.

Alternativt kan tjänsterna också autentiseras som program och använda programbehörigheter för att få tillgång till webbplatserna. Detta kräver ytterligare konfigurering av en SharePoint-webbplatsadministratör som kan ge behörighet för programmet.

Standardinställningen är att använda programbehörigheter, eftersom detta minskar åtkomsten till en viss SharePoint-webbplats och inte kräver att någon teknisk användares hemligheter delas. Dessutom minskar det problemen med lösenordsrotation.

Följande beskriver hur du konfigurerar programbehörigheter för ditt projekt. Om du vill konfigurera en teknisk användare fortsätter du här.

Så här konfigurerar du SharePoint:

  1. Skapa eller identifiera en Sharepoint-webbplats som ska fungera som webbplats för dokumentbaserad redigering
  2. Skapa en mapp i SharePoint som ska vara webbplatsens rot.
  3. Konfigurera fstab.yaml med respektive mapp
  4. Gå till registreringsportalen
  5. Registrera programmet
  6. Använd sites.selected behörighet till SharePoint webbplats

1. Skapa eller identifiera en Sharepoint-webbplats

Tala med IT-avdelningen för att antingen identifiera eller skapa en Sharepoint-webbplats som ska användas för dokumentbaserad redigering. En webbplats kan vara värd för flera webbplatser (projekt). Den här webbplatsen får senare de behörigheter som krävs för att publiceringstjänsterna ska kunna komma åt den.

2. Skapa webbplatsens rotmapp

Navigera till önskad plats på den SharePoint-webbplats som skapas eller identifieras ovan och skapa en rotmapp som blir webbplatsens rot. Det är bäst att inte använda en SharePoint-listrot direkt, så att du har ett delat utrymme där författarna kan skicka ut sammansatta dokument, till exempel en utkastmapp eller instruktioner-för-skribent-dokument.

En exempelfilstruktur kan se ut så här med website mapp som rot:

3. Konfigurera fstab.yaml

Nästa steg är att konfigurera monteringspunkten i fstab.yaml för att peka på webbplatsens rot. Det har vanligtvis formen av

https://<tenant>.SharePoint.com/sites/<sp-site>/Shared%20Documents/website

Men detta kan variera beroende på hur du skapar SharePoint webbplats och listor. För att få fram URL:en är det enklaste sättet att kopiera över den första delen från webbläsaradressen, t.ex.:

Lägg sedan till resten manuellt (Observera att om du kopierar den skarpa länken via användargränssnittet läggs onödig information till och att det är bättre att använda en kanonisk representation av url-adressen). När du har skapat webbadressen kan du testa den genom att ange den igen i webbläsaren. Du bör hamna i mappvyn för webbplatsens rot.

Uppdatera sedan fstab.yaml i enlighet med detta.

Till exempel:

mountpoints:
  /: https://adobeenterprisesupportaem.SharePoint.com/sites/hlx-test-project/Shared%20Documents/website

Slutför konfigurationen genom att implementera fstab.yaml tillbaka till huvudgrenen.

4. Gå till registreringsportalen

Ökning

För att AEM ska kunna komma åt det innehåll som skrivits behöver den information och inställningar. AEM (en molnfunktion) får åtkomst till MS Graph API för ett program (eller konfigurerad användare). För att kunna göra det måste det först autentiseras i samband med en Program. Detta är viktigt eftersom de omfång som ges till programmet definierar vilken behörighet tjänsten har för MS Graph API. Det bör till exempel vara tillåtet att läsa och skriva dokument, men inte att ändra åtkomstkontrollen.

Ett program representeras som ett"företagsprogram" i respektive Active Directory för en klientorganisation. Behörigheterna som ges till det företagsprogrammet definierar slutligen vad tjänsten kan få åtkomst till i innehavarens resurser. Vissa behörigheter måste godkännas av en Active Directory-administratör innan en användare kan använda programmet. Detta så kallade"administratörsmedgivande" är en mekanism för att verifiera och kontrollera vilka behörigheter appar kan ha. Detta för att förhindra att tveksamma appar lurar användare att lita på en app som inte är officiell. Med det extra steget för administratörsgodkännande kan IT-säkerheten styra vilka appar medarbetarna kan använda.

1. Logga in i registreringsportalen

Kolumner (inneslutna)

<h3>Visa företagsprogram i Azure Portal</h3>

Anta att det ännu inte finns några Franklin Enterprise-program i Azure (Microsoft Entra Id)

<h3>Åtkomst till Franklin Registration Portal</h3>

Gå till https://admin.hlx.page/register, ange projektets github-URL

<h3>Logga in som icke-admin-användare</h3>

Logga in som en användare som inte har administratörsbehörighet för att visa ett fel som behöver godkännas, d.v.s. att programmet behöver administratörsgodkännande.

Problem: Enterprise Application registreras inte om en användare aldrig loggar in.

<h3>Logga in som administratörsanvändare</h3>

En lösning är att logga in som en användare som gör har administratörsbehörighet:

(Observera att Enterprise Application ännu inte är registrerat i Azure)

<h3>Franklin Registration Service visas i användargränssnittet</h3>

Enterprise-programmet finns om administratören loggar in (utan att markera kryssrutan och godkänner för alla).

Skapa program med MSGraph eller PowerShell

Du kan också skapa Enterprise-programmet via MSGraph eller PowerShell.

För att den ska synas i azure-gränssnittet måste du också lägga till WindowsAzureActiveDirectoryIntegratedApp -tagg. Detta kan du göra direkt när du skapar programmet.

Använda diagramutforskaren:

POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
    "appId": "e34c45c4-0919-43e1-9436-448ad8e81552",
    "tags": [
        "WindowsAzureActiveDirectoryIntegratedApp"
    ]
}

Använda powershell:

PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId e34c45c4-0919-43e1-9436-448ad8e81552 -Tags WindowsAzureActiveDirectoryIntegratedApp
Kolumner (inneslutna)

Därefter måste du fortfarande ge administratörsgodkännande om du vill att en icke-admin-användare ska logga in.

Se även:

<h3>Granska behörigheter</h3>

Observera att Franklin Registration Service (e34c45c4-0919-43e1-9436-448ad8e81552) programmet behövs bara under registreringen för att verifiera att användaren har läsåtkomst till SharePoint. Den har följande delegerad behörighet:

  • Openid
    Tillåter användare att logga in i appen med sina arbets- eller skolkonton och låter appen visa grundläggande information om användarprofiler.
  • Profile
    Tillåter att appen kan se användarnas grundläggande profil (t.ex. namn, bild, användarnamn, e-postadress)
  • Files.ReadWrite.All
    Tillåter programmet att läsa, skapa, uppdatera och ta bort alla filer som den inloggade användaren har åtkomst till.

<h3>Användaren är inloggad på registreringsportalen</h3>

När det här initiala steget är klart loggas användaren in på registreringsportalen

Lägga till Franklin-tjänsten med programbehörigheter

Kolumner (inneslutna)

<h3>Lägg till företagsprogram</h3>

När du är inloggad på registreringsportalen måste innehållskällan som används av projektet vara ansluten till ett autentiseringsbidrag för Franklin Service program. Detta behövs för att systemet ska kunna komma åt dokumenten i sharepoint och konvertera dem till ett internt format (markdown) och lagra dem i Adobe (S3/R2) för snabb leverans.

Använda program sites.selected behörigheter är säkrare eftersom de begränsar omfattningen till en enda sharepoint-webbplats. För att ansluta klickar du på Connect Application -knappen.

Om du aldrig har registrerat ett program eller en användare tidigare visas förmodligen följande fel:

code language-none
Unable to validate access: Either scp or roles claim need to be present in the token.

Samma som ovan gäller Enterprise-programmet för Franklin Service (83ab2922-5f11-4e4d-96f3-d1e0ff152856) finns inte i Azure ännu,

Om du vill lägga till den använder du diagramutforskaren eller powershell för att lägga till den:

Använda diagramutforskaren:

POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
    "appId": "83ab2922-5f11-4e4d-96f3-d1e0ff152856",
    "tags": [
        "WindowsAzureActiveDirectoryIntegratedApp"
    ]
}

Använda powershell:

PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId 83ab2922-5f11-4e4d-96f3-d1e0ff152856 -Tags WindowsAzureActiveDirectoryIntegratedApp

Se även:

Kolumner (inneslutna)

<h3>Lägg till programroller</h3>

Nu kan företagsapplikationen Franklin Service är synligt i azure. Men den har inga Sites.Selected programbehörigheter.

Problem: Med hjälp av gränssnittet för administratörsgodkännande kan du bevilja alla program- och delegeringsbehörigheter som vi inte vill ha.

Ett enkelt sätt är att godkänna alla behörigheter och sedan ta bort de delegerade igen.

Lägg till programroller med PowerShell eller Graph Explorer

Du kan även lägga till approllerna på följande sätt:

  1. Sök efter tjänstens huvudnamn i företagsprogrammet (principalId). Det här är den du skapade ovan.
  2. Hitta tjänstens huvudnamn i Microsoft Graph API (resourceId)
  3. Hitta ID:t för Sites.Selected Programroll (appRoleId)
  4. Tilldela programrollen till den hanterade identiteten (företagsprogrammet)

Använda powershell detta kan göras med:

$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

Använda diagramutforskaren omfattar fler steg:

  1. Hitta huvudpersonen för företagsapplikationen:
  GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '83ab2922-5f11-4e4d-96f3-d1e0ff152856'
...
  "value": [
        {
            "id": "6761ada0-733b-4a02-98b2-3db970834fe0",
...

Det här är vår principalId

  1. Hitta tjänstens huvudnamn i 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",
...

Det här är resourceId. (resursen som definierar programrollen)

  1. Hitta ID:t för programrollen.
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"
        },
...

Detta ID är appRoleId

  1. Tilldela programrollen till hanterad identitet. Begäran har följande 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"
}
Kolumner (inneslutna)

<h3>Validera behörigheter</h3>

Slutligen bör du se den beviljade programbehörigheten i användargränssnittet.

Tillbaka i registreringsportalen bör de ha ändrats till:

code language-none

The resource specified in the fstab.yaml does either not exist, or you do not have permission to access it. Please make sure that the url is correct, the enterprise application: "Franklin Service (83ab2922-5f11-4e4d-96f3-d1e0ff152856)" is consented for the required scopes, and that the logged in user has permissions to access it.

(Observera att detta meddelande inte är särskilt korrekt när det skrivs, det ska vara:

Resursen som anges i fstab.yaml finns inte eller så har du inte behörighet att komma åt den. Kontrollera att URL:en är korrekt. Företagsprogrammet: "Franklin Service (83ab2922-5f11-4e4d-96f3-d1e0ff152856)" beviljas åtkomst till den konfigurerade sharepoint-webbplatsen via behörigheten "Sites.Selected".


Lägg till behörigheter till SharePoint-webbplatsen

Om du vill lägga till behörigheterna till SharePoint-webbplatsen måste vi hitta dess SiteId.

Detta kan du göra med diagramutforskaren:

GET https://graph.microsoft.com/v1.0/sites/{host-name}:/{server-relative-path}

Exempel:

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",
...
}

Använda Id kan vi ange behörigheter:

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"
            }
        }
    ]
}
Kolumner (inneslutna)
Efter det bör registreringsportalen visas canRead: ok
recommendation-more-help
10a6ce9d-c5c5-48d9-8ce1-9797d2f0f3ec