title: How to add additional header information to Azure B2C REST call?
body: <p>I am attempting to call an API with Azure B2C during a user journey. The API I'm calling requires two headers to be present -- a client ID and a client secret.</p>
  <p>When I define both the <code>client_id</code> and <code>client_secret</code> values within <code>&lt;CryptographicKeys&gt;</code>, I receive an error that only one key is expected for <code>ApiKeyHeader</code> authentication type. So it appears I cannot provide multiple headers this way.</p>
  <p>Is there a way to allow multiple headers in this way? Or alternatively, is there some other way I'm unaware of where I can provide the client ID as a header without referencing it as a key, since it doesn't need to be secured in my case?</p>
  <p>My technical profile currently looks like this (scrubbed of identifying information)</p>
  <pre class="lang-xml prettyprint-override"><code>&lt;TechnicalProfile Id=&quot;Call-Workflow-On-Registration&quot;&gt;
    &lt;DisplayName&gt;Call Workflow for User upon Registration&lt;/DisplayName&gt;
    &lt;Protocol Name=&quot;Proprietary&quot; Handler=&quot;Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&quot; /&gt;
    &lt;Metadata&gt;
      &lt;!-- TODO: Remove ngrok URL in favor of actual URL. The ngrok URL forwards to the listening developer's machine so we can examine calls. --&gt;
      &lt;Item Key=&quot;ServiceUrl&quot;&gt;http://scrubbed.ngrok.io/users/registrationRequests&lt;/Item&gt;
      &lt;Item Key=&quot;AuthenticationType&quot;&gt;ApiKeyHeader&lt;/Item&gt;
      &lt;Item Key=&quot;SendClaimsIn&quot;&gt;Body&lt;/Item&gt;
      &lt;Item Key=&quot;ClaimUsedForRequestPayload&quot;&gt;workflowRequestBody&lt;/Item&gt;
      &lt;Item Key=&quot;DefaultUserMessageIfRequestFailed&quot;&gt;Cannot process your request right now, please try again later. (Reference ID: 1827346)&lt;/Item&gt;
    &lt;/Metadata&gt;
    &lt;CryptographicKeys&gt;
      &lt;Key Id=&quot;client_id&quot; StorageReferenceId=&quot;B2C_1A_WorkflowClientIdNonProd&quot; /&gt;
      &lt;Key Id=&quot;client_secret&quot; StorageReferenceId=&quot;B2C_1A_WorkflowClientSecretNonProd&quot; /&gt;
    &lt;/CryptographicKeys&gt;
    &lt;InputClaimsTransformations&gt;
      &lt;!-- This generates the JSON body using the user's object ID --&gt;
      &lt;InputClaimsTransformation ReferenceId=&quot;GenerateWorkflowBody&quot; /&gt;
    &lt;/InputClaimsTransformations&gt;
    &lt;InputClaims&gt;
      &lt;!-- This claim is provided by the InputClaimsTransformation --&gt;
      &lt;InputClaim ClaimTypeReferenceId=&quot;workflowRequestBody&quot; /&gt;
    &lt;/InputClaims&gt;
    &lt;UseTechnicalProfileForSessionManagement ReferenceId=&quot;SM-Noop&quot; /&gt;
  &lt;/TechnicalProfile&gt;
  </code></pre>