Skip to content

A small proxy that enables applications that do not support SPNEGO to use proxies that require SPNEGO authentication

License

Notifications You must be signed in to change notification settings

montag451/spnego-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

Say that you work for a company that limits internet access through a proxy that requires SPNEGO authentication, if you want to use an application that does not support this authentication mechanism, then you are out of luck. spnego-proxy enables those applications to access internet by handling the authentication on behalf of the client. It sits between the application and the real proxy and acts as a normal HTTP proxy. It forwards requests made by the client to the real proxy by adding a Proxy-Authorization header to the requests. It does not alter nor does it inspects traffic between the client and the real proxy.

Installation

Just copy one of the pre-compiled binary available here on your machine (preferably in a location contained in your PATH) and you are done. If you feel adventurous or you don't like using binaries not compiled by you, you can compile the binary from sources. To do so, you need to install the Go toolchain. Once the go toolchain is installed on your machine, execute go install github.com/montag451/spnego-proxy@latest. The binary will be installed in the bin directory of your GOPATH (use go env GOPATH to find out the value of GOPATH on your machine)

Usage

Type spnego-proxy -h to find out the options that the command understands. The required options are:

  • addr
  • config
  • user
  • realm
  • proxy

The addr flag specifies the listening address of the proxy.

The config flag specifies the location of a file which contains Active Directory or Kerberos configuration information required to authenticate with SPNEGO. The format of the file is specified here.

The user flag specifies the user name used to authenticate with the real proxy.

The realm flag specifies the Kerberos realm or the Active Directory domain to which the user belongs.

The proxy flag specifies the address of the real proxy.