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

OSCHINA-MIRROR/mirrors-sohop

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 5.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 23:50 05a873a

Со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 )

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

1
https://api.gitlife.ru/oschina-mirror/mirrors-sohop.git
git@api.gitlife.ru:oschina-mirror/mirrors-sohop.git
oschina-mirror
mirrors-sohop
mirrors-sohop
main