Guía interactiva

Su configuración, prerrellenada

Escriba sus valores una sola vez y cada comando de abajo se reescribe solo — el nombre de la aplicación, la política de acceso, las pruebas de verificación y el correo de comprobación previa. Copie cada bloque directamente en PowerShell.

Todo queda en su navegador. Nada de lo que escriba aquí se guarda ni se envía a ninguna parte — sin cookies, sin localStorage, sin peticiones de red. Los valores desaparecen al recargar la página y se borran tras 15 minutos sin actividad.

Esta página replica la Parte 5 de la guía de instalación completa, que recorre antes los clics necesarios en el portal de Entra.Guía de instalación completa en GitHub

Sus siete valores

Los valores se borran en 15:00

El host en el que se ejecuta su Matomo. De él se derivan el nombre de la aplicación de Entra y la descripción del secreto.

De la página de información general de su registro de aplicación. Es un identificador, no un secreto.

De la misma página de información general.

La columna Value, que se muestra una sola vez al crear el secreto — no el Secret ID. Solo se usa en el bloque de comprobación previa de abajo; nunca aparece en el resumen.

El buzón compartido desde el que enviará Matomo.

El dominio integrado de su tenant — prerrellenado a partir de la dirección del remitente; edítelo si el suyo es distinto.

La cuenta que utiliza en admin.microsoft.com — a menudo una cuenta admin@…onmicrosoft.com, no su correo diario.

Nombres derivados

Nombre de la aplicación de Entra
missivus-matomo-analytics.example.com
Descripción del secreto de cliente
missivus-matomo-analytics.example.com
Dirección del grupo de seguridad
noreply-apps@yourcompany.onmicrosoft.com

1 — Instale el módulo e inicie sesión

Se abrirá una ventana del navegador; inicie sesión con la cuenta de administrador. Windows incluye PowerShell de serie; en macOS ejecute `brew install --cask powershell` y después `pwsh`.

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

2 — Cree el grupo

Su único miembro es su buzón compartido. Anote la PrimarySmtpAddress que imprime PowerShell — suele estar en el dominio integrado del tenant y es exactamente lo que necesita el siguiente comando.

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

3 — Limite la aplicación al grupo

Una sola línea. Este es el paso que convierte "una aplicación que podría enviar como cualquiera" en "una aplicación que puede enviar exactamente como una sola dirección".

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

4 — Verifique — espere antes 5–10 minutos

La primera línea debe mostrar AccessCheckResult Granted y la segunda debe mostrar Denied. La segunda línea utiliza un marcador de posición — sustitúyalo por cualquier otro buzón real de su tenant; su propia dirección sirve. No continúe hasta que devuelva Denied.

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

5 — Comprobación previa — envíe un correo real desde PowerShell

Opcional pero muy recomendable — demuestra tenant, aplicación, secreto y política de extremo a extremo antes de que Matomo entre en juego. Si la primera parte imprime 20 caracteres, la autenticación funciona. Un StatusCode 202 más un correo en su bandeja de entrada significa que el lado de Microsoft está terminado. Sustituya el marcador de posición del destinatario por su propia bandeja.

$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

6 — Limpie y cierre la sesión

El secreto se ha tecleado en esta ventana, así que bórrelo y cierre PowerShell.

Remove-Variable Secret,tok,body
Disconnect-ExchangeOnline

Para su gestor de contraseñas

Copie este bloque en las notas de una entrada de su gestor de contraseñas. Contiene los identificadores que necesitará al rotar el secreto — el secreto en sí, deliberadamente, no está incluido.

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

{{summaryExpiry}}

Después, termine en Matomo

Introduzca el ID de tenant, el ID de cliente, el secreto y el remitente en Administration → System → General settings → Missivus, marque "Send email through Microsoft Graph", guarde y pulse "Send test email".

Referencia de configuración del plugin