1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-sohop

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Соhop

Это программа — обратный прокси-сервер, который может ограничивать доступ для пользователей, прошедших аутентификацию с помощью OAuth (в настоящее время поддерживает авторизацию членов указанной организации Github). Также он предоставляет конечную точку проверки работоспособности, которая сообщает о доступности вышестоящих служб.

Я использую его, чтобы сделать внутренние приложения доступными для публичного интернета, продолжая ограничивать доступ и не настраивая аутентификацию / авторизацию в самих внутренних приложениях. Они устанавливаются так, как будто они всё ещё находятся за брандмауэром, а sohop обрабатывает аутентификацию и авторизацию. Это конфигурация, которая сильно смещена к удобству использования в спектре удобства использования / безопасности и может не подходить для вашего случая использования.

Предположения

  • Весь исходящий трафик использует HTTPS (HTTP-запросы перенаправляются на эквивалентный URL HTTPS).
  • Каждый вышестоящий сервер доступен через поддомен того же домена (без перезаписи пути).
  • Вышестоящие серверы доступны только через доверенную сеть. ВНИМАНИЕ: поскольку многие службы в моём случае использования используют самозаверяющие сертификаты, проверка SSL отключена при общении с проксируемыми службами.
  • Субдомены health и oauth зарезервированы:
    • health./check предоставляет конечную точку проверки работоспособности для всех проксируемых служб.
    • oauth./authorize используется в качестве обратного вызова oauth.
    • oauth./session показывает пользователю значения в его сеансе.

Функции

  • Простая аутентификация с OAuth.
  • Автоматические TLS-сертификаты через Let's Encrypt.
  • Проксирование WebSocket-соединений.
  • Поддержка HTTP/2 при компиляции с Go >= 1.6.
  • Замена заголовков, которые пересылаются с использованием файлов cookie сеанса и шаблонов Go.
  • Простой, разветвляемый код (возможно, пока нет, но я хотел бы этого добиться). Настройте свой веб-сервер на Go!

Установка

go get github.com/davars/sohop/cmd/sohop

Использование

Usage of sohop:
  -config string
    Config file (default "config.json")
  -httpAddr string
    Address to bind HTTP server (default ":80")
  -httpsAddr string
    Address to bind HTTPS server (default ":443")

Примеры конфигураций

{
  "Domain": "example.com",
  "Cookie": {
    "Name": "exampleauth",
    "Secret": "3c0767ada2466a92a59c1214061441713aeafe6d115e29aa376c0f9758cdf0f5"
  },  
  "Auth" : {
    "Type": "github-org",
    "Config": {
	  "ClientID": "12345678",
	  "ClientSecret": "12345678",
	  "OrgID": 12345678
	}
  },
  "TLS": {
    "CertFile": "cert.pem",
    "CertKey": "key.pem"
  },
  "Upstreams": {
    "intranet": {
      "URL": "http://10.0.0.16:8888",
      "HealthCheck": "http://10.0.0.16:8888/login",
      "WebSocket": "ws://10.0.0.16:8888",
      "Auth": true,
      "Headers": { "X-WEBAUTH-USER":["{{.Session.Values.user}}"] }
    },
    "public": {
      "URL": "http://10.0.0.16:8111",
      "HealthCheck": "http://10.0.0.16:8111/login.html",
      "WebSocket": "ws://10.0.0.16:8111",
      "Auth": false
    }
  }
}

Конфигурационный файл демаршалируется в структуру sohop.Config, описанную здесь: https://godoc.org/github.com/davars/sohop#Config

Тестирование

go test ./...

Вклад

Вклады приветствуются! Пожалуйста, создайте форк репозитория и откройте запрос на вытягивание с вашими изменениями.

Лицензия

Это бесплатное программное обеспечение, лицензированное по лицензии ISC.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

sohop — это обратный прокси, который может выборочно ограничивать доступ пользователей, проходящих аутентификацию с помощью OAuth. Развернуть Свернуть
Go и 2 других языков
ISC
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://gitlife.ru/oschina-mirror/mirrors-sohop.git
git@gitlife.ru:oschina-mirror/mirrors-sohop.git
oschina-mirror
mirrors-sohop
mirrors-sohop
main