I am attempting to establish a connection between two tenants that belong to different Azure accounts.
I followed the post: https://stackoverflow.com/a/78437433/4373243
My objective is to utilize the web API of Tenant B, but with the client ID and client secret from Tenant A. However, I am currently using the tenant_id associated with Tenant B, as well as the scope (web API endpoint) of Tenant B.
Tenant B web api endpoint: https://org8885b353.api.crm.dynamics.com/
$response = $this->client->post("https://login.microsoftonline.com/{tenantB_id}/oauth2/v2.0/token", [
'timeout' => 30,
'form_params' => [
'client_id' => 'tenantA_clientId',
'client_secret' => 'tenantA_clientSecret',
'scope' => 'https://org8885b353.api.crm.dynamics.com/.default',
'grant_type' => 'client_credentials',
],
]);
When I call the URL below to get the list of all entities with the access token from $response, it throws me an error:
https://org8885b353.api.crm.dynamics.com/api/data/v9.2
"error": {
"code": "0x80072560",
"message": "The user is not a member of the organization."
}
The error "The user is not a member of the organization" usually occurs if the Application user is not created by adding Application ID
of Microsoft Entra ID application in the Power Platform admin center.
In TenantA
, created an application and granted API permission like below:
In TenantB
, the application is added as Enterprise application like below:
Generated access token by using parameters like below:
GET https://login.microsoftonline.com/TenantBID/oauth2/token
client_id:TenantAAppID
client_secret:TenantASecret
scope: https://orgxxxxxx.crm.dynamics.com
grant_type:client_credentials
And got the same error:
GET
https://orgXXX.api.crm.dynamics.com/api/data/v9.2
To resolve the error, create Application user by adding Application ID
of Microsoft Entra ID application.
Go to Power Platform admin center -> Environments -> Select your organization -> Settings -> Users + permissions -> Select Application users
Click on New app user -> Add an app -> Search the application with the Application ID -> Add
Under Business Unit
, select your organization and assign System Administrator role and select create:
Regenerate the access token again, and I am able to get the response successfully like below:
GET
https://orgXXX.api.crm.dynamics.com/api/data/v9.2