Q01 - Question
A custom connector calls an API that is implemented with the default Azure Functions template. The service expects the key in a query string parameter named code. You configure API Key authentication on the Security tab. Which configuration should you use?
Domain: Extend the platform (40–45%) Type: Single choice
- A. Parameter label: Function key; Parameter name: code; Parameter location: Header
- B. Parameter label: Function key; Parameter name: code; Parameter location: Query
- C. Parameter label: code; Parameter name: Function key; Parameter location: Query
- D. Basic authentication with User and Password parameter labels
B is correct.
Explanation: API Key authentication uses a parameter label, name, and location. The name must be code because it carries the key in each request, and the location must be Query so the URL contains code. This lets the connector send the key as the service expects.
A is incorrect: Header sends the key as a request header, such as X-API-Key, but this API expects code in the query string instead.
C is incorrect: The label is only the prompt text shown to users, while the parameter name must match code, so swapping them sends the wrong parameter.
D is incorrect: Basic authentication collects a user name and password, not an API key, so it does not send code in the query.
Q02 - Question
You secure a custom service on Azure App Service with Microsoft Entra ID and a custom connector. You registered both apps, delegated permissions, entered the client ID, secret, and resource URL, and added the redirect URLs. The service uses Cross-Origin Resource Sharing (CORS). What should you do next?
Domain: Extend the platform (40–45%) Type: Single choice
- A. Add the service domain to the redirect URLs on the connector app registration
- B. Change the connector authentication type to Basic authentication
- C. Remove the resource URL from the connector definition
- D. Allow list the Azure API Management domains, usually azure-apim.net, for CORS on the service
D is correct.
Explanation: When the service uses Cross-Origin Resource Sharing, the Azure API Management domains, usually azure-apim.net, should be on its CORS allow list. The other Microsoft Entra ID steps are already done, so the remaining documented step is the CORS setting on the service. This lets the service accept requests that come through the connector.
A is incorrect: Redirect URLs are added to the connector app registration, not to the service, and that step is already complete here.
B is incorrect: Basic authentication would remove Microsoft Entra ID identity pass-through and does not address the CORS configuration on the service.
C is incorrect: The resource URL is a required connector parameter for the service. Removing it does not configure CORS on the service.
Q03 - Question
You register an application in Microsoft Entra ID for a connector that calls Microsoft Graph. You add delegated permissions and create a new client secret. You must complete the Client secret field when you create the connector. What should you do?
Domain: Extend the platform (40–45%) Type: Single choice
- A. Copy the secret Value immediately after you create it, because it is not shown again
- B. Copy the secret Description and retrieve the Value later from Certificates & secrets
- C. Copy the Application (client) ID and paste it into both the Client id and Client secret fields
- D. Copy the Redirect URI and paste it into the Client secret field
A is correct.
Explanation: The client secret Value is displayed only when you create it, so you must copy and save it before leaving the page. You then paste it into the Client secret field, and paste the Application (client) ID into Client id when you create the connector. The Description is only a label.
B is incorrect: The Description is only a name for the secret, and the Value is not shown again, so it cannot be retrieved later.
C is incorrect: The client ID identifies the app and belongs in the Client id field. It is a different value from the client secret.
D is incorrect: The Redirect URI is entered when registering the app. It is not a credential for the connector.
Q04 - Question
A custom connector and a cloud flow that uses it are developed in one environment. You must move both to a test environment as part of the application life cycle. Test users must use their own connection there. What should you do?
Domain: Extend the platform (40–45%) Type: Single choice
- A. Include the connection in the solution so it is imported with the connector
- B. Share the connector on the Share tab with the test users before import
- C. Include a connection reference in the solution and provide a connection for it during import
- D. Delete the connector in the source environment so its connections move with it
C is correct.
Explanation: Connections can't be included in a solution. A connection reference can be included, and it points to a connection outside the solution. During import to the target environment, the user is prompted to provide a connection, and can create one if needed. The solution's apps and flows then use that connection.
A is incorrect: Connections can't be within a solution. Only a connection reference can be included, which points to a connection outside the solution.
B is incorrect: Sharing applies to standalone connectors. Access to connectors and connection references in solutions is controlled by Dataverse role-based security instead of sharing.
D is incorrect: Deleting a shared connector deletes all associated connections. It does not move connections to another environment.
Q05 - Question
A custom connector must call an API that runs on-premises and requires Windows authentication. You are using the online connector wizard. Which configuration meets the requirement?
Domain: Extend the platform (40–45%) Type: Single choice
- A. Select Windows authentication on the Security tab without changing the General tab
- B. Set Connect via on-premises data gateway on the General tab, then select Windows authentication
- C. Select OAuth 2.0 and use the Generic OAuth 2.0 identity provider
- D. Select API Key and set the parameter location to Header
B is correct.
Explanation: Windows authentication is available only for connections that use an on-premises data gateway. Set Connect via on-premises data gateway on the General tab, then select Windows authentication. No extra information is needed, and the user provides Windows credentials and selects an installed gateway when creating the connection.
A is incorrect: Windows authentication is available only with the on-premises data gateway, so the General tab gateway check box must be set first.
C is incorrect: OAuth 2.0 is only available for online connectors, so it does not fit an on-premises API reached through the gateway.
D is incorrect: API Key authentication sends a key in a header or query string. It is not the Windows authentication scheme that this API requires.
Q06 - Question
A custom connector has a List Invoices action that takes fromAmount. You need a List Big Invoices action with a default fromAmount. Both actions currently point to /ListInvoices, which causes an error. Which approach should you use?
Domain: Extend the platform (40–45%) Type: Single choice
- A. Apply Set host URL to List Big Invoices and use a different host
- B. Define List Big Invoices with path /ListBigInvoices and apply Route request to /ListInvoices
- C. Apply Set property to List Big Invoices to change its path
- D. Apply Set query string parameter with Append to rename the path
B is correct.
Explanation: Two actions cannot point to the same path. Give the new action a path that does not exist on the API, such as /ListBigInvoices. Then use the Route request policy template to send these action calls to /ListInvoices. Route request modifies the path, so both actions work without conflict.
A is incorrect: Set host URL changes the host, not the path, so it does not resolve the duplicate path conflict.
C is incorrect: Set property adds or updates properties on an object or collection in the body, not the action path.
D is incorrect: Set query string parameter adds or updates query parameters and cannot change the request path to /ListInvoices.
Q07 - Question
A connector action must send $top with a default value of 50. If a maker supplies a $top value, the maker's value must be kept. You use the Set query string parameter policy template. Which action should you select for when the parameter exists?
Domain: Extend the platform (40–45%) Type: Single choice
- A. Override
- B. Append
- C. Skip
- D. Replace
C is correct.
Explanation: The Skip option ensures that the existing value is not replaced. The policy therefore applies the value of 50 only when the maker does not provide a $top value. This configuration gives you control over when the value is used, making it the correct approach for providing default values.
A is incorrect: Override replaces the existing value, so the maker's $top value would be discarded and replaced with 50.
B is incorrect: Append adds the policy value to the existing value, which would change the maker's value instead of preserving it.
D is incorrect: Replace is not a listed option for this policy. The documented options are Override, Skip, and Append.
Q08 - Question
The Get Invoice response includes a semicolon-separated tags string. Makers find it hard to use in flows. You want the response to include a new array named taglist. Which policy template and run setting should you configure?
Domain: Extend the platform (40–45%) Type: Single choice
- A. Convert an array to an object, run on request
- B. Convert an object to an array, run on response
- C. Convert delimited string into an array of objects, run on request
- D. Convert delimited string into an array of objects, run on response
D is correct.
Explanation: Because the tags string is in the API output, the policy must run on the response. The Convert delimited string into an array of objects template parses the string and adds a new array, such as taglist, to the response. This improves usability for apps and flows.
A is incorrect: Convert an array to an object does not parse a delimited string, and the request does not carry this data.
B is incorrect: Convert an object to an array starts from an object, not a delimited string, so it does not create taglist from tags.
C is incorrect: The template is correct, but running on the request shapes data sent to the API, not the response output.
Q09 - Question
A connector must send a billing code that each user enters when creating a connection. You want to use the value in a policy template. What should you configure?
Domain: Extend the platform (40–45%) Type: Single choice
- A. Add a billingCode connection parameter in apiProperties.json and use @connectionParameters('billingCode')
- B. Add billingCode to the response and use @body().billingCode
- C. Add a billingCode header and use @headers('billingCode') in the connection dialog box
- D. Add a billingCode query parameter and use @queryParameters('billingCode') in the connection dialog box
A is correct.
Explanation: Connection parameters configured in the apiProperties.json file build the connection dialog box that users fill out. After you manually add the billingCode input field there, the @connectionParameters('billingCode') expression accesses the value entered when the connection was created. You can then use this value in your policy template configurations.
B is incorrect: The @body() function reads the request or response body at runtime and does not collect values from the connection dialog box.
C is incorrect: The @headers expression reads header values at runtime. It does not define an input field that users complete when creating a connection.
D is incorrect: The @queryParameters expression reads request query values. It does not add a field to the connection dialog box for user input.
Q10 - Question
You applied a policy template to all actions and triggers of a custom connector. Some actions now return runtime errors. The policy parameters use a data path that exists only in some responses. What should you do?
Domain: Extend the platform (40–45%) Type: Single choice
- A. Disable the policy in the connector designer and keep the actions
- B. Reimport the API definition so it overwrites the policy
- C. Move the policy to the top of the policy list
- D. Apply the policy only to actions where the data path is valid
D is correct.
Explanation: When configuring a policy to run on all actions and triggers, you must ensure that any data paths used in the policy parameters are valid for all of them. Limiting the template to specific actions where the data path is valid prevents the runtime errors from occurring.
A is incorrect: The evidence does not support disabling a policy in the designer, and removing the policy would not fix the scope problem.
B is incorrect: API properties are stored separately from the API definition, so importing an updated definition does not overwrite configured policies.
C is incorrect: Policy order controls the sequence of application when using multiple templates. It does not make an invalid data path valid.