Panduan interaktif

Penyiapan Anda, sudah terisi

Ketik nilai Anda sekali dan setiap perintah di bawah menulis ulang dirinya sendiri — nama aplikasi, kebijakan akses, uji verifikasi, dan email pra-terbang. Salin setiap blok langsung ke PowerShell.

Tujuh nilai Anda

Nilai dihapus dalam 15:00

Host tempat Matomo Anda berjalan. Darinya diturunkan nama aplikasi Entra dan deskripsi rahasia.

Dari halaman Ikhtisar pendaftaran aplikasi Anda. Sebuah pengenal, bukan rahasia.

Dari halaman Ikhtisar yang sama.

Kolom Nilai, ditampilkan sekali saat rahasia dibuat — bukan ID Rahasia. Hanya dipakai di blok pra-terbang di bawah; tidak pernah muncul di ringkasan.

Kotak surat bersama yang akan dipakai Matomo untuk mengirim.

Domain bawaan tenant Anda — terisi dari alamat pengirim; ubah jika milik Anda berbeda.

Akun yang Anda pakai di admin.microsoft.com — sering kali akun admin@…onmicrosoft.com, bukan email harian Anda.

Nama turunan

Nama aplikasi Entra
missivus-matomo-analytics.example.com
Deskripsi rahasia klien
missivus-matomo-analytics.example.com
Alamat grup keamanan
noreply-apps@yourcompany.onmicrosoft.com

Pasang modul dan masuk

Jendela peramban terbuka; masuk dengan akun admin. Windows sudah memiliki PowerShell bawaan; di macOS jalankan `brew install --cask powershell`, lalu `pwsh`.

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

Buat grupnya

Satu-satunya anggotanya adalah kotak surat bersama Anda. Catat PrimarySmtpAddress yang dicetak PowerShell — biasanya pada domain bawaan tenant, dan itulah yang persis dibutuhkan perintah berikutnya.

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

Kunci aplikasi ke grup

Satu baris. Inilah langkah yang mengubah "aplikasi yang bisa mengirim sebagai siapa saja" menjadi "aplikasi yang hanya bisa mengirim sebagai satu alamat".

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

Verifikasi — tunggu 5 menit dulu

Baris pertama harus menampilkan AccessCheckResult Granted, baris kedua harus menampilkan Denied. Baris kedua memakai placeholder — ganti dengan kotak surat nyata lain di tenant Anda, alamat Anda sendiri pun cukup. Jangan lanjut sampai tertulis Denied.

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

Pra-terbang, kirim satu email nyata dari PowerShell

Opsional tetapi sangat disarankan — ini membuktikan tenant, aplikasi, rahasia, dan kebijakan dari ujung ke ujung sebelum Matomo terlibat. Jika bagian pertama mencetak 20 karakter, autentikasi bekerja. StatusCode 202 ditambah email di kotak masuk Anda berarti sisi Microsoft selesai. Ganti placeholder penerima dengan kotak masuk Anda sendiri.

$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

Bersihkan dan keluar

Rahasia diketik di jendela ini, jadi hapuslah, lalu tutup PowerShell.

Remove-Variable Secret,tok,body
Disconnect-ExchangeOnline

Untuk pengelola kata sandi Anda

Salin blok ini ke catatan sebuah entri pengelola kata sandi. Isinya adalah pengenal yang Anda perlukan saat merotasi rahasia — rahasianya sendiri sengaja tidak disertakan.

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

{{summaryExpiry}}

Lalu selesaikan di Matomo

Masukkan ID tenant, ID klien, rahasia, dan pengirim di Administrasi → Sistem → Pengaturan umum → Missivus, centang "Kirim email melalui Microsoft Graph", simpan, lalu tekan "Kirim email uji".

Referensi konfigurasi plugin