Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Salve Salve pessoal!
Hoje vamos falar sobre como enviar convites personalizados do Azure B2B para um site do Sharepoint Online usando Powershell.

Vamos lá então.

O que é o Azure B2B?

O Azure B2B  permite que qualquer organização que use o Azure AD trabalhe com segurança com usuários de outra organização (essa organização pode ou não usar o Azure B2B), podendo fornecer acesso a documentos, aplicativos, etc mantendo o controle e segurança dos seus dados.
O B2B funciona por meio de convites via e-mail: o usuário clica no link que recebeu, faz o processo de registro e pronto.
No portal clássico do Azure existia a opção de se criar um arquivo CSV com os dados do usuário e o recurso no qual ele iria utilizar - no caso o Sharepoint, porém essa opção desapareceu...

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell
 Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Usando um script Powershell


A ideia do script é utilizar um arquivo CSV que contenha o nome e o e-mail dos usuários que irão receber o convite.
Em resumo o que o script irá fazer:
- Ler o arquivo CSV e importar os usuários para o Azure AD
- Adicionar a um grupo de segurança que estará ligado diretamente ao site do Sharepoint
- Enviar um e-mail com o link do convite e a mensagem personalizada.

Arquivo CSV

 O arquivo CSV é bem simples, segue um exemplo abaixo que iremos utilizar:

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell


 Sharepoint Online

O próximo passo é criar um grupo de segurança e adiciona-lo a permissão específica do Sharepoint.
No Azure AD acesse Usuários e Grupos > Todos os grupos > Novo Grupo

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

O próximo passo é permitir o compartilhamento externo ao site do Sharepoint:
Selecione o site, clique em Sharing e defina as propriedades conforme abaixo:

Sharepoint Online e Azure B2B - envio de convites personalizados usando PowershellSharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Agora acesse o site do Shrepoint para configurarmos as permissões:


Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Powershell

O primeiro passo é instalar o Azure AD PS module.
Esse modulo é um pré-requisito para executar vários comandos presentes no script.
https://www.powershellgallery.com/packages/AzureADPreview/2.0.0.137

Script

Abaixo o script powershell.
Faça as alterações conforme a necessidades.


#Variáveis
$groupname = 'B2B'
$project = 'Sharepoint B2B Powershell'
$projecturl = 'https://test90102030.sharepoint.com/sites/azureb2b'
$filecsv = 'C:\temp\b2b.csv'
clear
#Verifica se o arquivo CSV existe no caminho informado
if (-NOT (Test-Path $filecsv) )
{
Write-Host 'Arquivo CSV não encontrado, verifique...'
Write-Host 'Caminho informado: '$filecsv
break
}
Import-Module AzureADPreview
$cred = Get-Credential
Connect-AzureAD -Credential $cred
#Usuario Externo e Grupo de Segurança ID
$group = get-azureadgroup -SearchString $groupname | where {$_.dirsyncenabled -eq $null}
if ($group.count -ne 1) {echo "Not Exactly One Group Found"; break}
#importa as informações do arquivo CSV
Write-Host 'Adicionando os usuarios ao grupo: '$groupname
write-host "`n"
$invitations = import-csv $filecsv
foreach ($email in $invitations) {
$result= New-AzureADMSInvitation -InvitedUserEmailAddress $email.InvitedUserEmailAddress -InvitedUserDisplayName $email.Name -InviteRedirectUrl $projecturl -InvitedUserMessageInfo $messageInfo -SendInvitationMessage $false
$inviteurl = $result.InviteRedeemUrl
$userid = $result.InvitedUser.Id
try
{
#Adiciona o usuario no grupo de segurança
Add-AzureADGroupMember -objectid $group.objectid -RefObjectId $userid
Write-Host 'Adicionado: '$email.Name' - '$email.InvitedUserEmailAddress
#envia o e-mail com o convite
try
{
Send-MailMessage -To $result.InvitedUserEmailAddress -from admin@test90102030.onmicrosoft.com -Subject ‘Convite para acessar site do Sharepoint’ -Body “<h1>Convite B2B</h1><br><strong>Convite para o B2B Sharepoint</strong><br><br>Clique aqui:<br>$inviteurl <br><strong>Para qualquer ajuda</strong>, contacte: admin@test90102030.onmicrosoft.com” -BodyAsHtml -smtpserver smtp.office365.com -usessl -Credential $cred -Port 587
Write-Host 'e-mail enviado para: '$email.InvitedUserEmailAddress
write-host "`n"
} catch {
Write-Host 'Erro ao enviar o e-mail para: '$email.InvitedUserEmailAddress -ForegroundColor Red
}
} catch {
Write-Host 'O e-mail: '$email.Name' - '$email.InvitedUserEmailAddress 'já existe no grupo' -ForegroundColor Red
}
}
write-host "`n"
view raw b2b.ps1 hosted with ❤ by GitHub
 

Executando o script 

Entre com as credenciais quando solicitado e deixe que o script faça sua parte:

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

 

Aceitando o convite e acessando o site do Sharepoint

Esse é o e-mail do convite. Ele está em HTML e pode ser personalizado.

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell


Clicando no link você será redirecionado para a pagina abaixo.
Repare na nota que diz que você será redirecionado para o endereço do site do Sharepoint.
Clique em next e depois entre com as credenciais.

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell


 Note que estamos acessando um site do Sharepoint com as credenciais de outra corporação.

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Abaixo os usuários criados no Azure AD como convidados e adicionados no grupo

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell



Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

Sharepoint Online e Azure B2B - envio de convites personalizados usando Powershell

É isso pessoal.
Segue um link para complementar: https://docs.microsoft.com/pt-br/azure/active-directory/active-directory-b2b-what-is-azure-ad-b2b

Um grande abraço,
Breno Padovan






Nenhum comentário: