В Laravel 5.4 проблемы с получением прокси для работы в Microsoft AD

Я обновляю сайт Laravel 5.4, который скоро должен быть запущен в производство. На сайте используется аутентификация Azure AD для настраиваемого письменного механизма единого входа. Это прекрасно работает в среде разработки, в которой есть большой интерес к Интернету без каких-либо прокси. К сожалению, UAT и производственные серверы находятся за прокси, что вызывает проблемы. Код, на котором основана эта аутентификация, основан на примерах php для Microsoft Graph API REST.

В первом разделе извлекается токен от Microsoft с помощью клиента «phpleague» OAuth2 следующим образом

$provider = new \League\OAuth2\Client\Provider\GenericProvider([
'clientId'                => config('app.client_id'),
'clientSecret'            => config('app.client_secret'),
'redirectUri'             => 'https://egmbank.local/oauth',
'urlAuthorize'            => 'https://login.microsoftonline.com/'.config('app.tenant_id').'/oauth2/v2.0/authorize',
'urlAccessToken'          => 'https://login.microsoftonline.com/'.config('app.tenant_id').'/oauth2/v2.0/token',
'urlResourceOwnerDetails' => '',
'scopes'                  => 'openid mail.send'
]);

if (!$request->has('code')) {
return redirect($provider->getAuthorizationUrl());
} else {
try {
$accessToken = $provider->getAccessToken('authorization_code', [
'code' => $request->input('code')
]);
} catch (\League\OAuth2\Client\Provider\Exception\IdentityProviderException $e) {

// Failed to get the access token
exit($e->getMessage());

}
}

// The "me" endpoint should return the information about the signed in user
$client = new Client();

$response = $client->request('GET', 'https://graph.microsoft.com/v1.0/me', [
'headers' => [
'Authorization' => 'Bearer ' . $accessToken->getToken(),
'Content-Type' => 'application/json;odata.metadata=minimal;odata.streaming=true'
]
]);

$me = json_decode($response->getBody()->getContents());

// This is the name to display in the header of each page
$displayName = $me->displayName;

Как упомянуто выше, это прекрасно работает, когда не за прокси-сервером, и я возвращаю токен, а затем могу сделать дополнительные вызовы, чтобы получить сведения о пользователе и группе из AD.

Я посмотрел документацию OAuth2 лиги, такую, как она, а также код, и он предлагает использовать прокси, просто добавив

'proxy' => 'proxy_name',
'verify' => false

к списку параметров для построения провайдера. Я связал это, и запрос все еще блокируется. В документации сказано, что я должен «Убедитесь, что вы включили SSL-прокси в своем прокси». Я проверил с ребятами из сети, и они думают: «Мы обходим SSL-шифрование для этих сайтов Microsoft», и с этим ничего не поделаешь.

Я посмотрел на пакет fideloper / TrustedProxies, и мне трудно найти документацию, особенно для сайта Laravel 5.4.

У меня есть SSH на сервере UAT и я установил http_proxy из командной строки, и у меня нет проблем с запуском следующего

curl -v https://login.microsoftonline.com:443
curl -v microsoft.com

так что кажется, что я могу пройти через прокси, когда я говорю серверу UAT использовать прокси. Я бы подумал, что будет способ легко заставить проект Laravel использовать прокси для всего сетевого трафика.

Я нахожусь в тупике на этом этапе и был бы признателен, если бы этот проект использовал прокси

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]