Siuntimo per MS365 administravimas

Šios instrukcijos aktualios tuomet, kai elektroniniai laiškai iš Rivile GAMA siunčiami tiesiogiai per pašto serverį, jungiantis per "Microsoft 365" (Microsoft Graph API).

  1. Prisijungiame prie administratoriaus portalo (Microsoft Entra) administratoriaus vardu.

Užregistruojame naują aplikaciją, skirtą laiškų siuntimui (“App registrations” -> “New registration”).

ms365_admin1

  1. Atidarius aplikaciją, matoma informacija reikalinga MS365_INIT funkcijai: Client ID ir Tenant ID.

    ms365_admin2

    Aplikacijos registracijos metu nenurodžius, reikia nurodyti patvirtinimo gavimo nuorodos adresą.

  2. Į šį adresą po patvirtinimo bus grąžintas leidimas siųsti el. laiškus. Standartiškai reikia nurodyti (Authentication): http://localhost:55110/

ms365_admin3

  1. Jei vartotojai naudos šią aplikaciją ir jungsis naudodami Authorizatino Code Flow metodą, tuomet suteikiame teises (API Permissions):

ms365_admin4_client

  1. Jei vartotojai naudos šią aplikaciją ir jungsis naudodami Client Credentials Flow metodą, tuomet suteikiame teises (Certificates & Secrets):

ms365_admin5_auth

Reikia įkelti naudojamą sertifikatą. Leidimas siųsti laiškus galios tiek, kiek galios sertifikatas. Maksimalus terminas 10 metų.

Įkėlus sertifikatą galima matyti šio sertifikato antspaudą (Thumbprint), kuris naudojamas kaip parametras MS365_INIT funkcijoje.

Norint MS365_INIT funkcijoje naudoti tik antspaudą, nenurodžius sertifikato failo ir slaptažodžio, šį sertifikatą reikia įkelti į „Windows Certificate Store“. Tuomet galima naudoti tik antspaudą (Thumbprint).

Reikalingi Microsoft Graph API leidimai

Aplikacijai reikalingi leidimai priklauso nuo pasirinkto prisijungimo tipo (žr. MS365_INIT).

Prisijungimo tipas Leidimas Leidimo tipas Administratoriaus sutikimas (Grant admin consent)
Auth_Code Mail.Send, offline_access Delegated (deleguotasis) Nebūtinas. Sutikimą pirmo prisijungimo metu duoda pats vartotojas
Cred_Secret Mail.Send Application (programos) Būtinas
Cred_Cert Mail.Send Application (programos) Būtinas

Naudojant Auth_Code, laiškai siunčiami prisijungusio vartotojo vardu ir tik iš jo pašto dėžutės. Naudojant Cred_Secret arba Cred_Cert, aplikacija veikia be vartotojo, todėl Application tipo leidimas Mail.Send standartiškai leidžia siųsti iš bet kurios organizacijos pašto dėžutės. Kaip tai apriboti, aprašyta kitame skyriuje.

Siuntimo apribojimas viena pašto dėžute

Rekomenduojama Application tipo leidimą apriboti taip, kad aplikacija galėtų siųsti tik iš tam skirtos pašto dėžutės (pvz., bendros dėžutės info@imone.lt).

Apribojimas nustatomas Exchange Online pusėje, Microsoft priemonėmis:

  1. Exchange administratoriaus centre sukuriame "mail-enabled security group" ir į ją įtraukiame pašto dėžutę (ar dėžutes), iš kurių aplikacijai leidžiama siųsti.
  2. Exchange Online PowerShell aplinkoje sukuriame prieigos politiką:
New-ApplicationAccessPolicy -AppId <Client ID> -PolicyScopeGroupId <grupės el. pašto adresas> -AccessRight RestrictAccess -Description "Rivile GAMA laiškų siuntimas tik iš nurodytos dėžutės"
  1. Patikriname, ar politika veikia:
Test-ApplicationAccessPolicy -AppId <Client ID> -Identity vartotojas@imone.lt

Politika pradeda veikti ne iš karto, tai gali užtrukti iki valandos. Pabandžius siųsti iš neleistos dėžutės, Microsoft Graph grąžins HTTP 403 klaidos kodą.

Rivile GAMA pusėje siuntimo dėžutė nurodoma parametre SS_SMTP_VART.

Secret ir sertifikato galiojimas bei keitimas

Microsoft leidžia: Secret raktui iki 2 metų, sertifikatui iki 10 metų. Tai yra maksimalios ribos, o ne rekomendacija. Konkretų galiojimo terminą įmonė renkasi pagal savo saugumo politiką. Dažna praktika: nuo 6 mėnesių iki 2 metų.

Keitimo (rotacijos) eiga, kurią galima atlikti be siuntimo pertraukos:

  1. Entra portale, aplikacijos skiltyje "Certificates & Secrets", sukuriame naują Secret raktą arba įkeliame naują sertifikatą. Senasis lieka galioti.
  2. Sistemos INIT'e atnaujiname MS365_INIT parametrus: naują Secret reikšmę arba naują sertifikato antspaudą (Thumbprint). Jei sertifikatas naudojamas iš „Windows Certificate Store“, naują sertifikatą įkeliame ir ten.
  3. Patikriname siuntimą.
  4. Entra portale pašaliname senąjį Secret raktą arba sertifikatą.

Rekomenduojama Entra portale stebėti galiojimo pabaigos datas ir keitimą suplanuoti iš anksto. Pasibaigus galiojimui laiškų siuntimas nustoja veikti.

Architektūra ir duomenų srautai

Informacija saugos auditui:

  • Laiškų siuntimas vykdomas kliento darbo vietoje, iš Rivile GAMA programos. Jungiamasi tiesiogiai prie Microsoft adresų: login.microsoftonline.com (autentifikacija) ir graph.microsoft.com (siuntimas). Naudojamas HTTPS.
  • Rivile ar kitų trečiųjų šalių serveriai siuntime nedalyvauja. Laiškų turinys ir prisijungimo duomenys per juos nekeliauja.
  • SMTP protokolas nenaudojamas. Vartotojų pašto slaptažodžiai sistemoje nesaugomi, naudojamas oAuth2.
  • Prisijungimo raktai (access ir refresh token) saugomi pagal MS365_INIT parametrą tlnTokenStorage: „Windows Credential Manager“ saugykloje darbo vietoje arba Rivile GAMA duomenų bazėje. Raktų galima nesaugoti, tuomet vartotojas jungiasi kiekvieno seanso metu.