[ 'name' => env('SIGNATURE_TENANT_NAME', 'CA Béziers Méditerranée'), 'entra_tenant_id' => env('ENTRA_TENANT_ID'), ], // App Registration « back-office » (confidentielle) : connexion admin + synchro Graph. 'graph' => [ 'client_id' => env('GRAPH_CLIENT_ID'), 'client_secret' => env('GRAPH_CLIENT_SECRET'), 'base_url' => 'https://graph.microsoft.com/v1.0', // Seuls les groupes dont le nom commence par ce préfixe sont synchronisés // (signature_mail_* pour les templates, signature_role_* pour les rôles). 'group_prefix' => env('SIGNATURE_GROUP_PREFIX', 'signature_'), 'timeout' => 30, ], // App Registration « add-in » (SPA + NAA) : audience des jetons reçus par l'API. 'addin' => [ 'client_id' => env('ADDIN_CLIENT_ID'), // Audiences acceptées (client id et/ou Application ID URI). 'audiences' => array_filter(array_map('trim', explode(',', (string) env('ADDIN_API_AUDIENCES', env('ADDIN_CLIENT_ID', ''))))), 'required_scope' => env('ADDIN_API_SCOPE_NAME', 'access_as_user'), 'jwks_cache_seconds' => 86400, 'leeway_seconds' => 120, ], // Rôles du back-office : nom exact du groupe AD synchronisé -> rôle. // Un utilisateur membre de plusieurs groupes reçoit le rôle le plus élevé. 'roles' => [ 'superadmin' => env('SIGNATURE_ROLE_SUPERADMIN_GROUP', 'signature_role_superadmin'), 'admin' => env('SIGNATURE_ROLE_ADMIN_GROUP', 'signature_role_admin'), 'editor' => env('SIGNATURE_ROLE_EDITOR_GROUP', 'signature_role_editeur'), ], // Variante utilisée en réponse / transfert quand l'agent n'a rien choisi : short | full | none 'default_reply_variant' => env('SIGNATURE_DEFAULT_REPLY_VARIANT', 'short'), // URL publique (images, liens). 'public_url' => rtrim((string) env('APP_URL', 'https://signature.beziers-mediterranee.fr'), '/'), // Réseaux autorisés pour /admin (vide = pas de filtrage). Ex. "10.0.0.0/8,192.168.0.0/16" 'admin_allowed_cidrs' => array_filter(array_map('trim', explode(',', (string) env('SIGNATURE_ADMIN_ALLOWED_CIDRS', '')))), ];