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
Terhapus — Nilai Anda dihapus setelah 15 menit tanpa aktivitas. Ketik lagi untuk melanjutkan.
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 StatusCodeBersihkan dan keluar
Rahasia diketik di jendela ini, jadi hapuslah, lalu tutup PowerShell.
Remove-Variable Secret,tok,body
Disconnect-ExchangeOnlineUntuk 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".