@extends('layouts.app') @section('header')
Checks the client ID, secret and tenant against Entra and throws the token away. Read-only: nothing is sent and no message is posted.
It cannot check Graph access. Every call this integration makes is delegated — made as the sending account — so those permissions only exist once that account has signed in and consented.
@unless ($configured) Client ID, tenant ID and secret must all be saved first. @endunlessOn the customer's app registration, under API permissions — all delegated, none needing admin consent:
openid, profile, email — sign the account inoffline_access — keep it signed in without a person presentUser.Read — read the sending account's own profileUser.ReadBasic.All — resolve a recipient by email addressChat.Create, Chat.ReadWrite, ChatMessage.Read,
ChatMessage.Send — open a 1:1 chat and post to it
No application permissions, and specifically not
User.Read.All. An app-only token cannot post to a 1:1 chat
as a person, which is the entire point of sending as the bot account.