
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...
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
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
O próximo passo é permitir o compartilhamento externo ao site do Sharepoint:
Selecione o site, clique em Sharing e defina as propriedades conforme abaixo:
Agora acesse o site do Shrepoint para configurarmos as permissões:
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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"
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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" |
Executando o script
Entre com as credenciais quando solicitado e deixe que o script faça sua parte:Aceitando o convite e acessando o site do Sharepoint
Esse é o e-mail do convite. Ele está em HTML e pode ser personalizado.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.
Note que estamos acessando um site do Sharepoint com as credenciais de outra corporação.
Abaixo os usuários criados no Azure AD como convidados e adicionados no grupo
É 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:
Postar um comentário