SMTP OAuth autentizace

Od verze 5.7.10 je podporována OAuth autentizace při odesílání pomocí SMTP serveru.
V tento okamžik je podporován pouze neinteraktivní způsob autentizace OAuth pomocí předsdíleného secretu.

Konfigurace na straně Azure

V prostředí Entra ID je nutno pro potřeby Team assistantu zaregistrovat aplikaci s oprávněním Office 365 Exchange Online / SMTP.SendAsApp v režimu Admin Consent. K této aplikaci musí následně vzniknout Service Account, který bude mít přidělené oprávnění na plné řízení e-mailové schránky, jejíž identitou má Team assistant odesílat e-mailové zprávy.

  1. Registrace aplikace

  1. Nastavení permissions

  1. Vytvoření secretu
  1. Získání Object ID a Client ID

Pro další kroky je nutno použít Client (Application) ID a Object ID. Tyto hodnoty je nutno získat z Managed/Enterprise Application, nikoli z registrace aplikace.

Pro další konfiguraci je nutné si také poznamenat Tenant ID.

  1. Vytvoření servisního účtu v Exchange a přidělení oprávnění pro odesílání identitou konkrétní schránky

Spárování nově vytvořené aplikace s konkrétní schránkou lze provést pomocí PowerShell skriptu. Pro jeho provedení jsou potřebné identifikátory získané z aplikace v předchozích krocích.

Import-Module ExchangeOnlineManagement
Connect-ExchangeOnline -UserPrincipalName "<EXCHANGE_ADMIN_ACCOUNT>"

New-ServicePrincipal -AppId "<ENTRA_APPLICATION_ID>" -ServiceId "<ENTRA_OBJECT_ID>" -DisplayName "TAS SMTP OAuth"

Add-MailboxPermission -Identity "<SENDING_USER_EMAIL>" -User "<ENTRA_OBJECT_ID>" -AccessRights FullAccess

Změna konfigurace backendu Team assistant

V konfiguraci všech backendů (standardní deployment, i cron deployment), v souborulocal.js, je nutné rozšířit konfiguraci pro odesílání e-mailů o atributy, které souvisejí sOAuth autentizací. Nad rámec základní konfigurace jde o atributy mail.smtp.type amail.smtp.oauth2 (který obsahuje další vnořené atributy).

Konfigurace využívající Exchange Office365 může vypadat například takto:

mail: {
smtp: {
type: 'oauth2',
host: 'smtp.office365.com',
port: 587,
auth: {
user: process.env.TAS_SMTP_AUTH_USER,
},
oauth2: {
host:`https://login.microsoftonline.com/${process.env.TAS_SMTP_OAUTH_TENANT_ID}/oauth2/v2.0/token`,
grantType: 'client_credentials',
clientSecret: process.env.TAS_SMTP_OAUTH_CLIENT_SECRET,
clientId: process.env.TAS_SMTP_OAUTH_CLIENT_ID,scope: 'https://outlook.office365.com/.default',
},
},
},

V příkladu jsou použity následující environment variables:

  • TAS_SMTP_AUTH_USER - uživatelské jméno pro autentizaci. Ve většině případů se bude shodovat s e-mailovou adresou, kterou má TAS využívat pro odesílání e-mailů
  • TAS_SMTP_OAUTH_TENANT_ID – Azure Tenant, ve kterém je vytvořena aplikace s oprávněním odesílat pomocí SMTP
  • TAS_SMTP_OAUTH_CLIENT_SECRET – secret pro aplikaci s oprávněním odesílat pomocí SMTP
  • TAS_SMTP_OAUTH_CLIENT_ID – Client ID aplikace s oprávněním odesílat pomocí SMTP

Kromě této konfigurace je nutno zohlednit také adresu odesílatele, kterou má TAS používat při odesílání e-mailových zpráv. Tato adresa se konfiguruje pomocí atributu mail.from, který lze nastavit jak v local.js, tak v GUI administračním rozhraní Team assistant.

Frantisek Brych Updated by Frantisek Brych

Active Directory Connector

Contact

Team assistant (opens in a new tab)

Powered by HelpDocs (opens in a new tab)