Giter VIP home page Giter VIP logo

spnego's Introduction

spnego

This provides a Common Lisp implementation of SPNEGO authentication protocol, also known as Negotiate. Essentially this is a wrapper around the NTLM and Kerberos protocols, with an initial negotiation phase between client and server to decide which method can be used.

1. Introduction

The SPNEGO authentication system provides a pseduo-authentication system which resolves to either NTLM or Kerberos as dictated by an initial negotiation phase between client and server. As a result, it can require multiple exhanges before authentication completes. See rfc4178 for more information.

2. Usage

Use the various generic functions from glass.

2.1 Client

The client calls are implemented and have been shown to work.

;; get a credential handle
(glass:acquire-credentials :spnego "service/[email protected]")

;; generate the initial buffer
(glass:initialize-security-context *creds*)

;; possibly feed the buffer back into the initial context (if several negotiation steps required)
(glass:initialize-security-context context :buffer buffer)

2.2 Server

The equivalent to the client calls, but with ACCEPT-SECURITY-CONTEXT.

;; get a credential handle
(glass:acquire-credentials :spnego nil)

;; accept an input buffer
(glass:accept-security-context creds buffer)

;; possibly generate another buffer if multiple steps required (mutual authentication)
(glass:accept-security-context context buffer)

3. Notes

The underlying NTLM and Kerberos implementations are ntlm and cerberus. See those for more information in the relevant details.

4. License

Licensed under the terms of the MIT license.

Frank James June 2015.

spnego's People

Contributors

fjames86 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.