A developer is configuring a Copilot Studio agent that must access a user's Microsoft 365 calendar to book meetings on their behalf. The agent should use the signed-in user's identity rather than a service account, and the user should only have to authenticate once per session. Which authentication configuration achieves this?
Select an answer to reveal the explanation.
Short Explanation and Infographic
Delegated OAuth is the 'act as the user' pattern — like a hotel concierge who can book your room only when you hand them your room key. The agent holds the user's token for the session, making calendar changes on their behalf without ever knowing (or sharing) a password.
Full explanation below image
Full Explanation
When an agent needs to access user-specific resources in Microsoft 365 — like a user's calendar — the correct pattern is delegated OAuth authentication using Azure Active Directory. In this model, the user authenticates with Azure AD through the agent's sign-in prompt, grants consent for the specified scopes (such as Calendars.ReadWrite on Microsoft Graph), and the agent receives an access token that represents that specific user. All subsequent API calls to Graph use this delegated token, so the calendar changes are attributed to and limited to that user's account.
Configuring 'Require users to sign in' in Copilot Studio's authentication settings ensures the user authenticates at the start of the session and the token is reused throughout — the user only signs in once per session, satisfying the requirement.
Option B is incorrect and a security anti-pattern. Storing shared credentials in environment variables means all users' calendar actions would be performed by the service account identity. This creates audit trail issues, grants excessive access, and violates least-privilege principles. Environment variables are also not a secure secrets store.
Option C is incorrect because Microsoft Graph does not support API key authentication. Graph requires OAuth tokens (either delegated user tokens or application tokens with admin-granted application permissions). An API key would be rejected.
Option D is incorrect because managed identity is an application-identity mechanism, not a delegated user-identity mechanism. Even if granted Calendars.ReadWrite over all mailboxes, the agent would be acting as the application rather than as the individual user. This is the application-permission pattern, which is appropriate for background services but not for user-context operations like booking meetings on someone's behalf.
Exam tip: Know the difference between delegated permissions (user token, user consents, acts as the user) and application permissions (app token, admin consents, acts as the application). Exam scenarios will tell you which is required through phrases like 'on behalf of the user' or 'service account.'