Ошибка прокси ADAL при подключении через Rake Task - PullRequest
0 голосов
/ 09 октября 2018

Я слежу за этим веб-сайтом для подключения к Microsoft Graph для получения токена доступа с использованием ADAL gem.Я написал задачу Rake, чтобы выполнить это.Это прекрасно работает в открытой сети, но не работает в корпоративной сети.

Я установил учетные данные прокси-сервера в профиле bash и в файле bashrc на моем терминале

export http_proxy=http://username:pwd@proxy.corporate.com:8080/
export HTTP_PROXY=http://username:pwd@proxy.corporate.com:8080/
export https_proxy=http://username:pwd@proxy.corporate.com:8080/
export HTTPS_PROXY=http://username:pwd@proxy.corporate.com:8080/

Я получаю

SocketError: Не удалось открыть TCP-соединение с login.microsoftonline.com:443 (имя хоста неизвестно: login.microsoftonline.com)

1 Ответ

0 голосов
/ 01 января 2019

Решение с помощью OP.

Проблема устранена после настройки файла user_credential.rb в ADAL gem

Файл для редактирования: / azure-activedirectory-library-for-ruby-24e1b7f0dc37 / lib / adal / user_credential.rb

def realm_discovery_response
  @realm_discovery_response ||=
    JSON.parse(Net::HTTP.get(realm_discovery_uri))
end

Замените приведенный выше код следующим, поскольку Net :: HTTP.get не использует системный прокси и только Net :: HTTP.Get.new работает

    def realm_discovery_response
      uri = URI.parse(realm_discovery_uri.to_s)
      puts "URI #{uri}"
      http = Net::HTTP.new(uri.host, uri.port)
      http.use_ssl = true if uri.scheme == 'https'
      req = Net::HTTP::Get.new(uri.request_uri)
      res = http.request(req)
      @realm_discovery_response ||= JSON.parse(res.body)
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...