Como usar o Sharepoint (aplicativo)
NOTA: para projetos que usam o Sharepoint do Adobe, continue aqui.
Se você usar o SharePoint como fonte de conteúdo, o AEM usará um aplicativo registrado do Microsoft Azure para acessar o conteúdo. Este aplicativo tem permissões delegadas definidos que permitem que o serviço acesse o SharePoint em nome de um usuário. Este usuário precisa ser registrado no projeto que está usando o SharePoint.
Como alternativa, os serviços também podem se autenticar como um aplicativo e usar permissões de aplicativo para acessar os sites. Isso precisa de uma configuração adicional por um administrador de site do SharePoint que possa conceder as permissões para o aplicativo.
A configuração preferida é usar permissões de aplicativo, já que isso restringe o acesso que o serviço tem a um site específico da SharePoint e não requer o compartilhamento de segredos de um usuário técnico. Além disso, reduz os problemas relacionados à rotação de senhas.
A tabela a seguir descreve como configurar permissões de aplicativo para o seu projeto. Se quiser configurar um usuário técnico, continue aqui.
A configuração do SharePoint envolve as seguintes etapas:
- Criar ou identificar um site do Sharepoint que servirá como site para a criação baseada em documento
- Crie uma pasta no SharePoint que será a raiz do site.
- Configure o
fstab.yaml
com a respectiva pasta - Acessar o Portal de Registro
- Registrar o aplicativo
- Aplique o
sites.selected
permissão para o site do SharePoint
1. Criar ou identificar um site do Sharepoint
Fale com o departamento de TI para identificar ou criar um site do Sharepoint que será usado para criação baseada em documentos. Um site pode "hospedar" vários sites (projetos). Este site receberá posteriormente as respectivas permissões para que os serviços de publicação possam acessá-lo.
2. Criar a pasta raiz do site
Navegue até o local desejado no site do SharePoint criado ou identificado acima e crie uma pasta raiz que será a raiz do site. É melhor não usar uma raiz de lista do SharePoint diretamente, para que você tenha um espaço compartilhado para que seus autores coloquem documentos complementares, por exemplo, uma pasta de rascunhos ou documentações de instruções.
Um exemplo de estrutura de arquivo pode ter esta aparência, usando o website
como raiz:
3. Configure o fstab.yaml
A próxima etapa é configurar o ponto de montagem no fstab.yaml
para apontar para a raiz do site. Geralmente tem a forma de
https://<tenant>.SharePoint.com/sites/<sp-site>/Shared%20Documents/website
Mas isso pode variar dependendo de como você cria o site e as listas do SharePoint. Para obter o url, a maneira mais simples é copiar a primeira parte do endereço do navegador, por exemplo:
Em seguida, adicione o restante manualmente (Observe que copiar o sharelink pela interface do usuário adiciona informações desnecessárias e é melhor usar uma representação canônica do url). Depois de compor o url, você pode testá-lo inserindo-o novamente no navegador. Você deve chegar à exibição de pasta da raiz do site.
Depois disso, atualize o fstab.yaml
em conformidade.
Por exemplo:
mountpoints:
/: https://adobeenterprisesupportaem.SharePoint.com/sites/hlx-test-project/Shared%20Documents/website
Para finalizar a configuração, confirme o fstab.yaml
de volta à ramificação principal.
4. Acessar o Portal de Registro
Visão geral
Para que o serviço AEM acesse o conteúdo criado, ele precisa de algumas informações e configurações. O serviço AEM (uma função na nuvem) acessa a API MS Graph em nome de um aplicativo (ou usuário configurado). Para fazer isso, é necessário primeiro autenticar no contexto de um Aplicativo. Isso é importante porque os escopos fornecidos ao aplicativo definem qual permissão o serviço tem na API do MS Graph. Por exemplo, deve ser permitido ler e gravar documentos, mas não alterar o controle de acesso.
Um aplicativo é representado como um "Aplicativo corporativo" no respectivo Ative Diretory de um locatário. As permissões concedidas a esse aplicativo corporativo definem o que o serviço pode acessar nos recursos desse locatário. Determinadas permissões precisam ser aprovadas por um administrador do Ative Diretory antes que um usuário possa usar o aplicativo. Esse chamado "consentimento administrativo" é um mecanismo para verificar e controlar quais permissões os aplicativos podem ter. Isso evita que aplicativos duvidosos enganem os usuários para que eles confiem em um aplicativo que não é oficial. Ter a etapa de consentimento administrativo extra permite que a segurança de TI controle quais aplicativos os funcionários podem usar.
1. Fazer logon no Portal de Registro
Criar aplicativo usando MSGraph ou Powershell
Como alternativa, você pode criar o aplicativo empresarial por meio do MSGraph ou do Powershell.
Para torná-lo visível na interface do usuário do Azure, também é necessário adicionar o WindowsAzureActiveDirectoryIntegratedApp
tag. Isso pode ser feito diretamente ao criar o aplicativo.
Usando o explorador de gráficos:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "e34c45c4-0919-43e1-9436-448ad8e81552",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Usando o PowerShell:
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId e34c45c4-0919-43e1-9436-448ad8e81552 -Tags WindowsAzureActiveDirectoryIntegratedApp
Adicionando o serviço Franklin com permissões de aplicativo
O mesmo que acima, o aplicativo corporativo para o Franklin Service (83ab2922-5f11-4e4d-96f3-d1e0ff152856)
ainda não está presente no Azure,
Para adicioná-lo, use o gerenciador de gráficos ou o powershell para adicioná-lo:
Usando o explorador de gráficos:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "83ab2922-5f11-4e4d-96f3-d1e0ff152856",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Usando o PowerShell:
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId 83ab2922-5f11-4e4d-96f3-d1e0ff152856 -Tags WindowsAzureActiveDirectoryIntegratedApp
Consulte também:
Adicionar Funções de Aplicativo usando o Powershell ou o Graph Explorer
Como alternativa, a adição das funções de aplicativo pode ser feita com as seguintes etapas:
- Localizar a entidade de serviço do aplicativo corporativo (
principalId
). Este é o que você criou acima. - Localize a entidade de serviço da API do gráfico do Microsoft (
resourceId
) - Localizar a ID da
Sites.Selected
Função do aplicativo (appRoleId
) - Atribuir a Atribuição de Aplicação à Identidade Gerenciada (A Aplicação Enterprise)
Usar powershell isso pode ser feito com:
$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
Usar explorador de gráficos envolve mais etapas:
- Localize o principal da aplicação empresarial:
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '83ab2922-5f11-4e4d-96f3-d1e0ff152856'
...
"value": [
{
"id": "6761ada0-733b-4a02-98b2-3db970834fe0",
...
Este será o nosso principalId
- Localizar a entidade de serviço da API gráfica do Microsoft
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '00000003-0000-0000-c000-000000000000'
...
"value": [
{
"id": "5159db96-7193-414e-9730-b1d1e4448443",
...
Este é o resourceId
. (o recurso que define a função do aplicativo)
- Localize a ID da função de aplicativo.
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"
},
...
Essa ID é a appRoleId
- Atribua a Atribuição de Aplicação à Identidade Gerenciada. A solicitação tem o 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"
}
Adicionar permissões ao Site do Sharepoint
Para adicionar as permissões ao site do SharePoint, precisamos encontrar suas SiteId
.
Isso pode ser feito usando novamente o explorador de gráficos:
GET https://graph.microsoft.com/v1.0/sites/{host-name}:/{server-relative-path}
Exemplo:
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",
...
}
Usar o Id
podemos definir as permissões:
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"
}
}
]
}