Hi
In an oauth scenario I am working on I am getting the issue when the flow hits the Oauth2.0 policy.
"{"ErrorCode" : "invalid_client", "Error" :"Client identifier is required"}
Spent several days trying to figure this out and reading all the community post that looked similar but without success.
Flow:
1. Shared Flow Callout: Verify JWT token.
- Works fine, we dont have the JWT policies in our on prem install yet so we are using the old community version.
2. Oauth Policy: Generate token and associate details from JWT token to it.
-
It find the the client_id, can see it in the flow.
-
Works fine if I disable all the policies before it.
-
From documentation …by default the policy should look for the client id in the formparam x-www-form… , however since I had some issues I have added in the policy to be sure:
-
The proxy is connected to a products and my app.
<ClientId>request.formparam.client_id</ClientId>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<OAuthV2 async="false" continueOnError="false" enabled="true" name="OAuthV2-GenerateAccessToken-CG-MB">
<DisplayName>OAuthV2-GenerateAccessToken-CG-MB</DisplayName>
<Properties/>
<Attributes/>
<ExpiresIn>1200000</ExpiresIn>
<ExternalAuthorization>false</ExternalAuthorization>
<Operation>GenerateAccessToken</Operation>
<ReuseRefreshToken>true</ReuseRefreshToken>
<SupportedGrantTypes>
<GrantType>client_credentials</GrantType>
</SupportedGrantTypes>
<GenerateResponse enabled="true"/>
<Tokens/>
<GrantType>request.header.grant_type</GrantType>
<AppEndUser>jwt_claim_upn</AppEndUser>
<ClientId>request.formparam.client_id</ClientId>
<Attributes>
<Attribute name="grant_type" ref="request.header.grant_type" display="true"/>
<Attribute name="jwt" ref="request.header.client_assertion" display="true"/>
<Attribute name="claim_upn" ref="jwt_claim_upn" display="true"/>
</Attributes>
</OAuthV2>
In some of the earlier posts that I found about this issue they tried to put back the client_id after the callout and before the Oauth policy, like this:
-
Callout
-
Assign Message: Take clientid from request and put back in the expected place
-
Oauth policy
This did not make any difference for me and the policy finds the clientid in the correct place as I can confirm by looking in the flow.
At this time I am quite stuck and getting no response from support, so any help around this would be appriciated.

