Request and Response Objects

April 3, 2026 ยท View on GitHub

First, please read about how to initialize the PublicClientApplication object, login and acquire tokens.

The MSAL Browser library has a set of configuration options that can be used to customize the behavior of your authentication flows. Some of these options can be set in the constructor of the PublicClientApplication object, and most of them can be set on a per-request basis. The table below details the configuration objects that can be passed to the login and acquireToken APIs, and the objects returned representing the response.

APIRequest ObjectResponse Object
acquireTokenPopupPopupRequestAuthenticationResult
acquireTokenRedirectRedirectRequestAuthenticationResult (via handleRedirectPromise)
acquireTokenSilentSilentRequestAuthenticationResult
loginPopupPopupRequestAuthenticationResult
loginRedirectRedirectRequestAuthenticationResult (via handleRedirectPromise)
logoutRedirectEndSessionRequestvoid
logoutPopupEndSessionPopupRequestvoid
ssoSilentSsoSilentRequestAuthenticationResult

Request Parameters for Brokered Authentication

skipBrokerClaims

When set to true on a request that also specifies an embeddedClientId, the clientCapabilities configured on the application (e.g. ["CP1", "CP2"]) will be excluded from the claims parameter sent to the /authorize and /token endpoints. This is intended for brokered authentication flows where the embedded (child) application should not inherit the broker (parent) application's client capabilities.

Both conditions must be met for capabilities to be excluded:

  • skipBrokerClaims is true on the request
  • embeddedClientId is set on the request (which results in the brk_client_id parameter being present)

If only one condition is met, clientCapabilities are included as normal.

Example

const request = {
    scopes: ["User.Read"],
    embeddedClientId: "child-app-client-id",
    skipBrokerClaims: true,
};

// clientCapabilities from config will NOT be sent in the claims parameter
const response = await msalInstance.acquireTokenSilent(request);

Behavior Summary

skipBrokerClaimsbroker param setclientCapabilities included in claims
false / not setYesYes
false / not setNoYes
trueNoYes
trueYesNo