Interactieve gids

Uw installatie, vooraf ingevuld

Typ uw waarden één keer en elke opdracht hieronder herschrijft zichzelf — de naam van de app, het toegangsbeleid, de verificatietests en de pre-flight-mail. Kopieer elk blok rechtstreeks naar PowerShell.

Uw zeven waarden

Waarden worden gewist over 15:00

De host waarop uw Matomo draait. Daaruit worden de naam van de Entra-app en de omschrijving van het geheim afgeleid.

Van de pagina Overview van uw app-registratie. Een identificator, geen geheim.

Van dezelfde pagina Overview.

De kolom Value, die één keer wordt getoond wanneer het geheim wordt aangemaakt — niet de Secret ID. Wordt alleen gebruikt in het pre-flight-blok hieronder; hij verschijnt nooit in de samenvatting.

De gedeelde postbus waarvandaan Matomo verstuurt.

Het ingebouwde domein van uw tenant — vooraf ingevuld op basis van het afzenderadres; pas het aan als dat van u afwijkt.

Het account dat u gebruikt op admin.microsoft.com — vaak een admin@…onmicrosoft.com-account, niet uw dagelijkse e-mailadres.

Afgeleide namen

Naam van de Entra-app
missivus-matomo-analytics.example.com
Omschrijving van het clientgeheim
missivus-matomo-analytics.example.com
Adres van de beveiligingsgroep
noreply-apps@yourcompany.onmicrosoft.com

Installeer de module en meld u aan

Er opent een browservenster; meld u aan met het beheerdersaccount. Windows heeft PowerShell ingebouwd; voer op macOS `brew install --cask powershell` uit en daarna `pwsh`.

Install-Module -Name ExchangeOnlineManagement -Scope CurrentUser
Connect-ExchangeOnline -UserPrincipalName {{admin}}

Maak de groep aan

Het enige lid is uw gedeelde postbus. Noteer het PrimarySmtpAddress dat PowerShell afdrukt — dat staat meestal op het ingebouwde domein van de tenant, en het is precies wat de volgende opdracht nodig heeft.

New-DistributionGroup -Name "NoReply Apps" -Alias noreply-apps -Type Security -Members "{{sender}}"

Zet de app vast op de groep

Eén regel. Dit is de stap die "een app die namens iedereen zou kunnen versturen" verandert in "een app die namens precies één adres kan versturen".

New-ApplicationAccessPolicy -AppId "{{clientId}}" -PolicyScopeGroupId "{{group}}" -AccessRight RestrictAccess -Description "Missivus (Matomo) may only send as {{sender}}"

Verifieer — wacht eerst 5 minuten

De eerste regel moet AccessCheckResult Granted tonen, de tweede moet Denied tonen. De tweede regel gebruikt een tijdelijke aanduiding — vervang die door een andere echte postbus in uw tenant; uw eigen adres volstaat. Ga niet verder voordat er Denied staat.

Test-ApplicationAccessPolicy -Identity "{{sender}}" -AppId "{{clientId}}"
Test-ApplicationAccessPolicy -Identity "{{other}}" -AppId "{{clientId}}"

Pre-flight, verstuur één echte e-mail vanuit PowerShell

Optioneel maar sterk aanbevolen — het bewijst tenant, app, geheim en beleid van begin tot eind, nog voordat Matomo erbij komt. Drukt het eerste deel 20 tekens af, dan werkt de authenticatie. StatusCode 202 plus een e-mail in uw inbox betekent dat de Microsoft-kant klaar is. Vervang de tijdelijke aanduiding voor de ontvanger door uw eigen inbox.

$TenantId = "{{tenantId}}"
$ClientId = "{{clientId}}"
$Secret   = "{{secret}}"

$tok = Invoke-RestMethod -Method Post -Uri "https://login.microsoftonline.com/$TenantId/oauth2/v2.0/token" -Body @{ client_id=$ClientId; client_secret=$Secret; scope="https://graph.microsoft.com/.default"; grant_type="client_credentials" }
$tok.access_token.Substring(0,20)
$body = '{"message":{"subject":"Missivus pre-flight","body":{"contentType":"Text","content":"Graph app-only send OK"},"toRecipients":[{"emailAddress":{"address":"{{other}}"}}]},"saveToSentItems":false}'
Invoke-WebRequest -Method Post -Uri "https://graph.microsoft.com/v1.0/users/{{sender}}/sendMail" -Headers @{ Authorization = "Bearer $($tok.access_token)" } -ContentType "application/json" -Body $body | Select-Object StatusCode

Ruim op en meld u af

Het geheim is in dit venster ingetypt, dus wis het en sluit daarna PowerShell.

Remove-Variable Secret,tok,body
Disconnect-ExchangeOnline

Voor uw wachtwoordmanager

Kopieer dit blok naar de notities van een item in uw wachtwoordmanager. Het bevat de identificatoren die u nodig hebt wanneer u het geheim roteert — het geheim zelf staat er bewust niet in.

{{summaryAppName}}: {{appName}}
{{summaryTenantId}}: {{tenantId}}
{{summaryClientId}}: {{clientId}}
{{summaryGroup}}: {{group}}
{{summarySender}}: {{sender}}

{{summaryExpiry}}

Rond daarna af in Matomo

Voer de tenant-ID, de client-ID, het geheim en de afzender in bij Administration → System → General settings → Missivus, vink "Send email through Microsoft Graph" aan, sla op en klik op "Send test email".

Naslagwerk voor de pluginconfiguratie