Deep Dive – Entendendo o Send On Behalf
-
O que é o Send On Behalf ?
R: É uma permissão concedida a um usuário para que ele envie um e-mail em nome de outra pessoa. Em outras palavras, se eu Denis, concedo permissão de Send On Behalf no meu usuário, delegando o usuário “John” a enviar em meu nome, ele poderá enviar mensagens a qualquer destinatário apenas alterando o campo De/From do Outlook ou OWA, e os destinatários que receberem verão que o envio foi realizado pelo John, mas em nome de Denis.
-
Como conceder a permissão?
R: O Send On Behalf é uma permissão que pode-se aplica-la de três maneiras; através do EAC, através do Powershell ou através do próprio Outlook do usuário que deseja conceder a permissão. Logo após a permissão concedida, basta alterarmos o campo De/From do Outlook. Vejamos o passo a passo abaixo
Através do Exchange Server 2010:
Através do Exchange Server 2013/2016:
Através do Exchange Management Shell:
Você pode usar o parâmetro GrantSendOnBehalfTo em mailboxes e grupos. O cmdlet sempre serà um Set- mas irá depender de qual objeto iremos manipular:
- Set-Mailbox
- Set-DistributionGroup: grupos de distribuição e grupos de segurança habilitados para email (mail-enabled).
- Set-DynamicDistributionGroup
A sintaxe básica para esse cmdlet é:
<Cmdlet> -Identity <MailboxOrGroupIdentity> -GrantSendOnBehalfTo <Delegate>
O parâmetro GrantSendOnBehalfTo tem as seguintes opções para valores de “Delegate”:
Substituir delegates existentes: <DelegateIdentity> ou “<DelegateIdentity1>”,”<DelegateIdentity2>”,…
Adicionar ou remover delegates sem afetar outros delegates: @{Add=”\<value1\>”,”\<value2\>”…; ou Remove=”\<value1\>”,”\<value2\>”…}
Remover todos os delegates: Use o valor $null.
Exemplo, para adicionar permissoes para 3 usuarios:
Set-Mailbox "Contoso Executives" -GrantSendOnBehalfTo @{Add="user1@contoso.com","user2@contoso.com","user3@contoso.com"}
Através do Outlook:
-
Como enviar uma mensagem como Send On Behalf?
Alterar o campo De/From do Outlook:
Ao abrir o campo De/From, selecione na GAL o endereço de quem fara o Send On Behalf:
Alterar campo De/From no OWA:
Após a alteração do campo “De/From”, quando um usuário enviar um e-mail a outro usuário, o mesmo ira aparecer exatamente da seguinte maneira:
-
O Outlook pode ter duas reações diferentes em caso falha no Send On Behalf
Ambas dependeram de como o Outlook está configurado, se o mesmo está em modo cache ou modo online. Exemplificamos ambas as opções:
Modo cache
Será retornada uma NDR, dizendo que o usuário não tem permissão de envio:
É uma boa pratica que se pesque o usuário de uma Address List para poder fazer o Send On Behalf. O Exchange necessita de um nome resolvido para poder fazer o Send On Behalf. Podem se perguntar como funciona então mesmo quando não pescamos o usuário da GAL? Simples, o Outlook sempre tenta resolver o nome utilizando a GAL, mesmo quando não fazemos nós. Notem que ao enviar um e-mail, por mais que escrevemos manualmente no campo “De”, ao clicar em enviar o Outlook resolve o nome colocando-o sublinhado. Por isso mesmo sem pescar o usuário da GAL, muitas vezes funciona. O porém dessa história é quando o usuário que faremos o Send On Behalf não está na GAL. Logo após o Exchange ver que o nome não foi resolvido, o Send On Behalf já será recusado com uma NDR.
Modo Online
Logo após inserir o emitente no campo De/From, o outlook mostrará um pop-up dizendo que o usuário não tem permissão para realizar o Send On Behalf:
-
Send On Behalf por trás das cenas
O Send On Behalf é uma permissão a nível de Active Directory, validada diretamente no Store Driver do Exchange. O Exchange Server confirma que o usuário pode enviar em nome de outro usuário em base ao PublicDelegatesBL, que é o atributo backlink do PublicDelegates.
Portanto, se a usuária Dafne da permissão de Send On Behalf ao usuário Denis, a usuária Dafne irá possuir o atributo PublicDelegates populado com o DN do usuário Denis:
Em base ao atributo PublicDelegates, é criado seu backlink chamado PublicDelegatesBL. Esse não é um atributo visível dentro do objeto, na realidade é um calculo que o Active Directory irá fazer a cada requisição:
-
Enviar cópia da mensagem para os itens enviados da mailbox com Send On Behalf no Exchange 2010:
Imaginem o seguinte cenário:
1 – Usuário “Ricardo” cede permissão de Send On Behalf para a usuária “Flavia”.
2 – Flavia envia e-mails em nome do “Ricardo” através da permissão de Send On Behalf.
3 – E-mail é enviado, porem “Ricardo” não sabe que aquele e-mail foi enviado, porque a mensagem permanece apenas nos itens enviados da “Flavia”.
Por padrão, um usuário com Send On Behalf não recebe uma mensagem que foi enviada através de outro usuário. O usuário que enviou a mensagem em nome de outro, permanece com o e-mail na pasta “Itens Enviados”. Entretanto o usuário que cede o Send On Behalf não possui essas mensagens nos “Itens Enviados”. É possível alterar isso realizando o comando abaixo no mailbox que possui Send On Behalf:
Set-MailboxSentItemsConfiguration "Ricardo" - SendOnBehalfOfItemsCopiedTo:SenderAndFrom
Dessa forma, os itens enviados por qualquer pessoa que tenha permissão de Send On Behalf no usuário do “Ricardo”, serão também enviados a pasta “Itens Enviados” do usuário “Ricardo”, assim como na pasta “Itens Enviados” de quem enviou a mensagem em nome do “Ricardo”.
-
Enviar cópia da mensagem para os itens enviados da mailbox com Send On Behalf no Exchange 2013, 2016, 2019 e Exchange Online:
Da mesma forma que o Exchange 2010, podemos fazer isso também no Exchange 2013/2016 e Exchange Online. A Microsoft veio a introduzir essa função apenas a partir do CU9 do Exchange 2013. Portanto, por obrigação devemos possuir uma versão igual ou superior. Além das versões on-premises, podemos realizar também essa configuração no Exchange Online.
Set-Mailbox “Ricardo” -MessageCopyForSendOnBehalfEnabled $true
OBS: A feature funciona também em modo coexistente da seguinte forma:
Mailbox Flavia | Mailbox Ricardo | Itens Enviados |
Exchange 2010 | Exchange 2010 | Funciona normalmente conforme o KB2632409 |
Exchange 2010 | Exchange 2013 (Qualquer Versão) | Funciona normalmente conforme o KB2632409 |
Exchange 2013 CU9 (ou superiores) e Office 365 | Exchange 2010 | A mensagem será enviada para a “Caixa de Entrada” do Ricardo como um e-mail em anexo*, e para a Flavia será gerada a cópia em “Itens Enviados”. |
Exchange 2013 CU9 (ou superiores) e Office 365 | Exchange 2013 CU9 (ou superiores) e Office 365 | A mensagem será enviada para os “Itens Enviados” de ambos os usuários. |
*Segue um exemplo do anexo citado:
Nota: A Microsoft introduziu um modo pratico de habilitar essa opção no Exchange Online diretamente através da console de Admin Center, porém é disponível apenas para Shared Mailboxes (caixas compartilhadas), para usuários normais é apenas possivel através do powershell conforme mencionado anteriormente:
-
Enviar cópia da mensagem para os itens enviados da mailbox com Send On Behalf no Outlook:
Mencionamos acima exemplos de como configurar a função de enviar uma copia da mensagem enviada através de Send On Behalf para os “Itens Enviados/Sent Itens” de quem originalmente enviou o e-mail. Apesar de ser muito mais fácil o controle disso diretamente através do Exchange, é possível também habilitar essa função diretamente no Outlook, através de uma chave no regedit. Contudo é necessário atenção ao fato que se foi feito a opção de envio de copia dos itens enviados diretamente no Exchange, essa chave jamais deverá ser habilitada, caso contrário poderá ocorrer o envio duplicado dos e-mails.
Perguntas aleatórias
- Send On Behalf funciona em modo Cross-premises – um usuário no Exchange Online e outro On-Premises?
R: Sim, contudo existe um requisito. É necessário haver ao menos a versão 1.1.553.0 do Azure AD Connect ou superiores.
- Posso utilizar Send As e Send On Behalf juntos para o mesmo usuário?
R: Não, pode até ser possível adicionar o usuário com ambas as permissões. Todavia o Send As sempre terá a preferência no caso, o que torna uma configuração sem sentido.
- Posso utilizar Send On Behalf para uma mailbox que está escondida na GAL (Hidden Mailbox) ?
R: A Microsoft diz que não é suportado. Entretanto existem sim um modo de conseguir fazer isso. Basta que se adicione como contato do Outlook o usuário no qual quer fazer o Send On Behalf antes de esconde-lo na GAL. Após isso, pesque o endereço do usuário somente dos seus contatos locais.
- Uma pessoa pode enviar usando Send On Behalf em nome de um grupo ?
R: Sim, basta adicionar a permissão de Send On Behalf no grupo através do Powershell.
- Ao invés de conceder permissão de Send On Behalf para muitos usuários, é possível adicionar esses usuários em um grupo e conceder a permissão ao grupo ?
R: Sim, é possível conceder permissão a um grupo através do Powershell, contudo deve ser um Security group e ser mail-enabled.