Cómo usar Sharepoint (aplicación)
NOTA: para proyectos que utilizan SharePoint de Adobe, continúe aquí.
Si usa SharePoint AEM como fuente de contenido, utiliza una aplicación registrada de Microsoft Azure para acceder a su contenido, ya que, a su vez, se utiliza una aplicación registrada de esta aplicación. Esta aplicación tiene permisos delegados se definen en que permiten que el servicio acceda a SharePoint en nombre de un usuario. Este usuario debe estar registrado en el proyecto que utiliza SharePoint.
Alternativamente, los servicios también pueden autenticarse como una aplicación y utilizar permisos de aplicación para acceder a los sitios. Esto necesita una configuración adicional por parte de un administrador del sitio de SharePoint que pueda conceder los permisos para la aplicación.
La configuración preferida es utilizar permisos de aplicación, ya que esto reduce el acceso que el servicio tiene a un sitio SharePoint específico y no requiere compartir ningún secreto de un usuario técnico. Además, reduce los problemas relacionados con la rotación de contraseñas.
A continuación se describe cómo configurar permisos de aplicación para su proyecto. Si desea configurar un usuario técnico, continúe aquí.
La configuración de SharePoint implica los siguientes pasos:
- Cree o identifique un sitio de Sharepoint que sirva como sitio para la creación basada en documentos
- Cree una carpeta dentro de SharePoint que sea la raíz del sitio web.
- Configure las variables
fstab.yaml
con la carpeta correspondiente - Acceso al portal de registro
- Registrar la aplicación
- Aplique la variable
sites.selected
permiso para acceder al sitio de SharePoint
1. Crear o identificar un sitio de Sharepoint
Hable con su departamento de TI para identificar o crear un sitio de Sharepoint que se utilizará para la creación basada en documentos. Un sitio puede "alojar" varios sitios web (proyectos). Este sitio recibirá más adelante los respectivos permisos para que los servicios de publicación puedan acceder a él.
2. Cree la carpeta raíz del sitio web
Vaya a la ubicación que desee en el sitio de SharePoint creado o identificado arriba y cree una carpeta raíz que sea la raíz del sitio web. Es mejor no utilizar una raíz de lista de SharePoint directamente, de modo que tenga un espacio compartido para que los autores coloquen los documentos de garantía, por ejemplo, una carpeta de borradores o la documentación de procedimientos de creación.
Una estructura de archivos de ejemplo podría tener este aspecto, con la variable website
carpeta como raíz:
3. Configurar fstab.yaml
El siguiente paso es configurar el punto de montaje en fstab.yaml
para señalar a la raíz del sitio web. Normalmente tiene la forma de
https://<tenant>.SharePoint.com/sites/<sp-site>/Shared%20Documents/website
Sin embargo, esto puede variar según cómo cree el sitio y las listas de SharePoint. Para obtener la dirección URL, la forma más sencilla es copiar y pegar la primera parte de la dirección del explorador, por ejemplo:
Y luego añada el resto manualmente (tenga en cuenta que copiar el vínculo compartido a través de la interfaz de usuario agrega información innecesaria y es mejor utilizar una representación canónica de la dirección URL). Una vez redactada la dirección URL, puede probarla introduciéndola de nuevo en el explorador. Debe terminar en la vista de carpetas de la raíz del sitio web.
Después, actualice el fstab.yaml
en consecuencia.
Por ejemplo:
mountpoints:
/: https://adobeenterprisesupportaem.SharePoint.com/sites/hlx-test-project/Shared%20Documents/website
Para finalizar la configuración, confirme el fstab.yaml
de vuelta a la rama principal.
4. Acceder al portal de registro
Información general
AEM Para que el servicio de acceda al contenido creado, necesita un par de información y configuración. AEM El servicio de (una función de nube de ) accede al API de MS Graph en nombre de una aplicación (o usuario configurado). Para ello, debe autenticarse primero en el contexto de una Aplicación. Esto es importante porque los ámbitos asignados a la aplicación definen qué permiso tiene el servicio en la API de MS Graph. Por ejemplo, debería permitirse leer y escribir documentos, pero no alterar el control de acceso.
Una aplicación se representa como una "aplicación empresarial" en el respectivo Active Directory de un inquilino. Los permisos otorgados a esa aplicación empresarial definen finalmente a qué puede acceder el servicio en los recursos de ese inquilino. Es necesario que un administrador de Active Directory apruebe ciertos permisos para que un usuario pueda utilizar la aplicación. Este llamado "consentimiento de administrador" es un mecanismo para verificar y controlar qué permisos pueden tener las aplicaciones. Esto sirve para evitar que aplicaciones dudosas engañen a los usuarios para que confíen en una aplicación que no es oficial. Tener el paso de consentimiento de administrador adicional permite que la seguridad de TI controle qué aplicaciones pueden utilizar los empleados.
1. Iniciar sesión en el portal de registro
Crear una aplicación mediante MSGraph o Powershell
También puede crear la aplicación Enterprise mediante MSGraph o Powershell.
Para que sea visible en la interfaz de usuario de Azure, también debe agregar WindowsAzureActiveDirectoryIntegratedApp
etiqueta. Esto se puede hacer directamente al crear la aplicación.
Uso del explorador de gráficos:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "e34c45c4-0919-43e1-9436-448ad8e81552",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Uso de powershell:
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId e34c45c4-0919-43e1-9436-448ad8e81552 -Tags WindowsAzureActiveDirectoryIntegratedApp
Adición del servicio Franklin con permisos de aplicación
Igual que arriba, la aplicación Enterprise para Franklin Service (83ab2922-5f11-4e4d-96f3-d1e0ff152856)
aún no está presente en Azure,
Para agregarlo, utilice el explorador de gráficos o powershell para agregarlo:
Uso del explorador de gráficos:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "83ab2922-5f11-4e4d-96f3-d1e0ff152856",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Uso de powershell:
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId 83ab2922-5f11-4e4d-96f3-d1e0ff152856 -Tags WindowsAzureActiveDirectoryIntegratedApp
Consulte también:
Agregar funciones de aplicación mediante Powershell o el Explorador de gráficos
Como alternativa, para agregar las funciones de la aplicación, siga estos pasos:
- Buscar la entidad de seguridad de servicio de la aplicación empresarial (
principalId
). Este es el que creó anteriormente. - Busque la entidad de servicio de la API de Microsoft Graph ( )
resourceId
) - Buscar el ID de
Sites.Selected
Función de aplicación (appRoleId
) - Asignar el Rol de la Aplicación a la Identidad Gestionada (la Aplicación de Empresa)
Uso de PowerShell esto se puede hacer con:
$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
Uso de explorador de gráficos implica más pasos:
- Busque el principal de la aplicación empresarial:
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '83ab2922-5f11-4e4d-96f3-d1e0ff152856'
...
"value": [
{
"id": "6761ada0-733b-4a02-98b2-3db970834fe0",
...
Esta será nuestra principalId
- Búsqueda de la entidad de servicio de la API de 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",
...
Este es el resourceId
. (el recurso que define la función de la aplicación)
- Busque el ID de la función de aplicación.
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"
},
...
Este ID es el appRoleId
- Asigne la función Aplicación a la identidad gestionada. La solicitud tiene el formato:
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"
}
Agregar permisos al sitio de Sharepoint
Para agregar los permisos al sitio de SharePoint, debemos encontrar su SiteId
.
Esto se puede hacer utilizando de nuevo el explorador de gráficos:
GET https://graph.microsoft.com/v1.0/sites/{host-name}:/{server-relative-path}
Ejemplo:
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",
...
}
Uso del Id
podemos establecer los permisos:
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"
}
}
]
}