All Projects → antiduh → nsspi

antiduh / nsspi

Licence: BSD-2-Clause license
A C# / .Net interface to the Win32 SSPI authentication API

Programming Languages

C#
18002 projects

Projects that are alternatives of or similar to nsspi

proxyplease
Cross-platform proxy selection with optional native authentication negotiation
Stars: ✭ 37 (-38.33%)
Mutual labels:  ntlm, kerberos, sspi
go-spnego
Wraps gokrb5 and sspi libraries to provide cross-platform way to make HTTP calls with Kerberos authentication
Stars: ✭ 20 (-66.67%)
Mutual labels:  sso, kerberos, sspi
active-directory-integration2
WordPress plug-in "Next Active Directory Integration"
Stars: ✭ 51 (-15%)
Mutual labels:  ntlm, sso, kerberos
NTLM-SSP
本项目是一篇NTLM中高级进阶进阶文章,后续我也会在Github和Gitbook对此文进行持续性的更新NTLM以及常见的协议中高级进阶并计划开源部分协议调试工具,望各位issue勘误。
Stars: ✭ 97 (+61.67%)
Mutual labels:  ntlm, sspi
OpenAM
OpenAM is an open access management solution that includes Authentication, SSO, Authorization, Federation, Entitlements and Web Services Security.
Stars: ✭ 476 (+693.33%)
Mutual labels:  sso, kerberos
WatchAD
AD Security Intrusion Detection System
Stars: ✭ 967 (+1511.67%)
Mutual labels:  ntlm, kerberos
Demo Project
存放学习过程中的demo项目,别光fork,顺便点下⭐哦
Stars: ✭ 198 (+230%)
Mutual labels:  sso
Nginx Sso
SSO authentication provider for the auth_request nginx module
Stars: ✭ 195 (+225%)
Mutual labels:  sso
Ssowat
A simple SSO for NGINX, written in Lua
Stars: ✭ 190 (+216.67%)
Mutual labels:  sso
go-http-ntlm
NTLM authenticated http request for Go
Stars: ✭ 43 (-28.33%)
Mutual labels:  ntlm
Nginx Http Shibboleth
Shibboleth auth request module for nginx
Stars: ✭ 168 (+180%)
Mutual labels:  sso
burp-ntlm-challenge-decoder
Burp extension to decode NTLM SSP headers and extract domain/host information
Stars: ✭ 28 (-53.33%)
Mutual labels:  ntlm
Arkid
一账通是一款开源的统一身份认证授权管理解决方案,支持多种标准协议(LDAP, OAuth2, SAML, OpenID),细粒度权限控制,完整的WEB管理功能,钉钉、企业微信集成等
Stars: ✭ 217 (+261.67%)
Mutual labels:  sso
php-ntlm
Message encoder/decoder and password hasher for the NTLM authentication protocol
Stars: ✭ 14 (-76.67%)
Mutual labels:  ntlm
nginx-ntlm-module
A nginx module to allow proxying requests with NTLM Authentication.
Stars: ✭ 32 (-46.67%)
Mutual labels:  ntlm
Home
Welcome to Janssen: the world's fastest cloud native identity and access management platform
Stars: ✭ 176 (+193.33%)
Mutual labels:  sso
mail
golang send mail with SSL,TLS and support NTLM,LOGIN,PLAIN AUTH...
Stars: ✭ 29 (-51.67%)
Mutual labels:  ntlm
PwnedPasswordsChecker
Search (offline) if your password (NTLM or SHA1 format) has been leaked (HIBP passwords list v8)
Stars: ✭ 52 (-13.33%)
Mutual labels:  ntlm
token-cli
Command line utility for interacting with OAuth2 infrastructure to generate tokens
Stars: ✭ 19 (-68.33%)
Mutual labels:  sso
requests auth
Authentication classes to be used with requests
Stars: ✭ 28 (-53.33%)
Mutual labels:  ntlm

Downloads

The latest release of NSspi is v0.3.1, released 5-Aug-2019.

Version 0.3.1 adds support to obtain an IIdentity/WindowsPrinciple representing the remote connection. This is useful for servers that wish to query the properties on the principle, such as claims.

You can also browse the list of releases.

Introduction

This project provides a C# / .Net interface to the Windows Integrated Authentication API, better known as SSPI (Security Service Provider Interface). This allows a custom client / server system to authenticate users using their existing logon credentials. This allows a developer to provide Single-Sign-On in their application.

Overview

The API provides raw access to authentication tokens so that authentication can be easily integrated into any networking system - you can send the tokens over a socket, a remoting interface, or heck even a serial port if you want; they're just bytes. Clients and servers may exchange encrypted and signed messages, and the server can perform client impersonation.

The project is provided as a .Net 4.0 assembly, but can just as easily be upgraded to .Net 4.5 or later. The solution file can be opened by Visual Studio 2010 SP1, Visual Studio 2012, or later Visual Studio editions.

The SSPI API provides an interface for real authentication protocols, such as Kerberos or NTLM, to be invoked transparently by client and server code in order to perform authentication and message manipulation. These authentication protocols are better known as 'security packages'.

The SSPI API exposes these packages using a common API, and so a program may invoke one or the other with only minor changes in implementation. SSPI also supports the 'negotiate' 'meta' package, that allows a client and server to decide dynamically which real security provider to use, and then itself provides a passthrough interface to the real package.

Usage

Typically, a client acquires some form of a credential, either from the currently logged on user's security context, by acquiring a username and password from the user, or by some other means. The server acquires a credential in a similar manner. Each uses their credentials to identify themselves to each other.

A client and a server each start with uninitialized security contexts. They exchange negotiation and authentication tokens to perform authentication, and if all succeeds, they create a shared security context in the form of a client's context and a server's context. The effectively shared context agrees on the security package to use (kerberos, NTLM), and what parameters to use for message passing. Every new client that authenticates with a server creates a new security context specific to that client-server pairing.

From the software perspective, a client security context initializes itself by exchanging authentication tokens with a server; the server initializes itself by exchanging authentication tokens with the client.

This API provides raw access to the authentication tokens created during the negotiation and authentication process. In this manner, any application can integrate SSPI-based authentication by deciding for themselves how to integrate the tokens into their application protocol.

The project is broken up into 3 chunks:

  • The NSspi library, which provides safe, managed access to the SSPI API.
  • NsspiDemo, a quick demo program to show how to exercise the features of NSspi locally.
  • UI demo programs TestClient and TestServer (that have a common dependency on TestProtocol) that may be run on separate machines, that show how one might integrate SSPI into a custom application.

More information

If you would like to understand the SSPI API, feel free to browse the following references:

MSDN documentation on the SSPI API:
      http://msdn.microsoft.com/en-us/library/windows/desktop/aa374731(v=vs.85).aspx

MSDN article on SSPI along with a sample Managed C++ SSPI library and UI client/servers.
      http://msdn.microsoft.com/en-us/library/ms973911.aspx

Relevant StackOverflow questions:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].