Я попробовал метод, описанный здесь: https://learn.microsoft.com/en-us/graph/sdks/national -clouds?tabs=PHP
Это, похоже, не имеет никакого эффекта. Я не могу подключиться и получить данные с помощью Graph.
Я убедился, что могу подключиться к своему клиенту с помощью методов PHP + Curl. Я могу извлечь информацию. Если я попытаюсь подключиться и получить данные, скажем, учетную запись пользователя, то лучшее, что я могу получить, это эта ошибка: AADSTS900382: Конфиденциальный клиент не поддерживается в запросе Cross Cloud.
Мне бы очень хотелось. использовать Graph SDK напрямую, а не пытаться работать с прямыми вызовами Graph REST API.
Пример сценария выглядит следующим образом:
Код: Выделить всё
Я также пытался разработать правильный синтаксис для определения пользовательской конечной точки. Но я не могу определите правильный синтаксис с помощью адаптера запроса:
Код: Выделить всё
$graphClient = GraphServiceClient::createWithRequestAdapter($adapter);
Код: Выделить всё
$testauthprovider = new GraphPhpLeagueAuthenticationProvider (
$tokenRequestContext, $scopes, NationalCloud::US_GOV
);
echo "
";
print_r($testauthprovider);
echo "";
$testtokenprovider = new GraphPhpLeagueAccessTokenProvider (
$tokenRequestContext, $scopes, NationalCloud::US_GOV
);
echo "";
print_r($test);
echo "";
Я обнаружил, что если я введу правильные параметры в GraphPHPLeagueAccessTokenProvider, то выходные данные будут правильными в что я вижу отражение моей базы данных для NationalCloud::US_GOV. Важные части выглядят так:
Код: Выделить всё
urlAuthorize:League\OAuth2\Client\Provider\GenericProvider:private] => https://login.microsoftonline.us/MY TENANT ID/oauth2/v2.0/authorize
[urlAccessToken:League\OAuth2\Client\Provider\GenericProvider:private] => https://login.microsoftonline.us/MY TENANT ID/oauth2/v2.0/token
[urlResourceOwnerDetails:League\OAuth2\Client\Provider\GenericProvider:private] => https://graph.microsoft.us/oidc/userinfo
Подробнее здесь: https://stackoverflow.com/questions/792 ... ph-php-sdk