All Projects → s-KaiNet → Node Sp Auth

s-KaiNet / Node Sp Auth

Licence: mit
Unattended SharePoint http authentication with nodejs

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects

Projects that are alternatives of or similar to Node Sp Auth

Globalprotect Openconnect
A GlobalProtect VPN client (GUI) for Linux based on OpenConnect and built with Qt5, supports SAML auth mode.
Stars: ✭ 143 (+32.41%)
Mutual labels:  authentication, saml
Pac4j
Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 2,097 (+1841.67%)
Mutual labels:  authentication, saml
Gsts
Obtain and store AWS STS credentials to interact with Amazon services by authenticating via G Suite SAML.
Stars: ✭ 136 (+25.93%)
Mutual labels:  authentication, saml
Spring Webmvc Pac4j
Security library for Spring Web MVC: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 110 (+1.85%)
Mutual labels:  authentication, saml
Buji Pac4j
pac4j security library for Shiro: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 444 (+311.11%)
Mutual labels:  authentication, saml
Spring Security Pac4j
pac4j security library for Spring Security: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 231 (+113.89%)
Mutual labels:  authentication, saml
Spark Pac4j
Security library for Sparkjava: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 154 (+42.59%)
Mutual labels:  authentication, saml
Simplesamlphp
SimpleSAMLphp is an award-winning application written in native PHP that deals with authentication.
Stars: ✭ 832 (+670.37%)
Mutual labels:  authentication, saml
Play Pac4j
Security library for Play framework 2 in Java and Scala: OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...
Stars: ✭ 375 (+247.22%)
Mutual labels:  authentication, saml
Caddy Auth Portal
Authentication Plugin for Caddy v2 implementing Form-Based, Basic, Local, LDAP, OpenID Connect, OAuth 2.0 (Github, Google, Facebook, Okta, etc.), SAML Authentication
Stars: ✭ 291 (+169.44%)
Mutual labels:  authentication, saml
Spring Boot Security Saml Sample
SBS3 — A sample SAML 2.0 Service Provider built on Spring Boot.
Stars: ✭ 469 (+334.26%)
Mutual labels:  authentication, saml
Saml2.authentication.core
A SAML 2.0 middleware for ASP.NET Core
Stars: ✭ 66 (-38.89%)
Mutual labels:  authentication, saml
Pam tacplus
TACACS+ protocol client library and PAM module in C. This PAM module support authentication, authorization (account management) and accounting (session management)performed using TACACS+ protocol designed by Cisco.
Stars: ✭ 97 (-10.19%)
Mutual labels:  authentication
Freeradius Server
FreeRADIUS - A multi-protocol policy server.
Stars: ✭ 1,379 (+1176.85%)
Mutual labels:  authentication
Sp Client Custom Fields
Web Site: https://oliviercc.github.io/sp-client-custom-fields
Stars: ✭ 96 (-11.11%)
Mutual labels:  sharepoint
Appy Backend
A user system to bootstrap your app.
Stars: ✭ 96 (-11.11%)
Mutual labels:  authentication
Shareplum
Pythonic SharePoint
Stars: ✭ 106 (-1.85%)
Mutual labels:  sharepoint
Graphql devise
GraphQL interface on top devise_token_auth
Stars: ✭ 100 (-7.41%)
Mutual labels:  authentication
Spring Security React Ant Design Polls App
Full Stack Polls App built using Spring Boot, Spring Security, JWT, React, and Ant Design
Stars: ✭ 1,336 (+1137.04%)
Mutual labels:  authentication
Laravel Single Session
This package prevents a User from being logged in more than once. It destroys the previous session when a User logs in and thereby allowing only one session per user.
Stars: ✭ 95 (-12.04%)
Mutual labels:  authentication

node-sp-auth - nodejs to SharePoint unattended http authentication

NPM npm version

Need help on SharePoint with Node.JS? Join our gitter chat and ask question! Gitter chat


IMPORTANT: This module doesn't work in browser. The only supported environment is nodejs. If you have a need to use it in browser, probably you're looking for sp-rest-proxy - a nodejs proxy, which redirects calls to real SharePoint.


node-sp-auth allows you to perform SharePoint unattended (without user interaction) http authentication with nodejs using different authentication techniques. node-sp-auth also takes care about caching authentication data for performance (no need for you to think about how long authentication will be available, that's a task for node-sp-auth, as soon as authentication will be expired, node-sp-auth will renew it internally).

Versions supported:

  • SharePoint 2013 and onwards
  • SharePoint Online

Authentication options:

  • SharePoint 2013 and onwards:
    • Addin only permissions
    • User credentials through the http ntlm handshake
    • Form-based authentication (FBA)
    • Forefront TMG authentication
  • SharePoint Online:
    • Addin only permissions
    • SAML based with user credentials
  • ADFS user credentials (works with both SharePoint on-premise and Online)
  • On demand authentication. Uses interactive browser session for asking credentials. Supports third-party authentication providers for SharePoint Online and SharePoint on-premise. Doesn't support integrated windows authentication (NTLM).

Wiki contains detailed steps you need to perform in order to use any of authentication options as well as sample using.


How to use:

Install:

npm install node-sp-auth --save-dev

Create authentication headers and perform http request:

import * as spauth from 'node-sp-auth';
import * as request from 'request-promise';

//get auth options
spauth.getAuth(url, credentialOptions)
  .then(options => {

    //perform request with any http-enabled library (request-promise in a sample below):
    let headers = options.headers;
    headers['Accept'] = 'application/json;odata=verbose';

    request.get({
      url: 'https://[your tenant].sharepoint.com/sites/dev/_api/web',
      headers: headers
    }).then(response => {
      //process data
    });
  });

API:

getAuth(url, credentialOptions)

return value:

Promise resolving into object with following properties:

  • headers - http headers (normally contain Authorization header, may contain any other heraders as well)
  • options - any additional options you may need to include for succesful request. For example, in case of on premise user credentials authentication, you need to set agent property on corresponding http client

params:

  • url - required, string, url to SharePoint site, https://sp2013/sites/dev/ or https:/[your tenant].sharepoint.com/sites/dev/
  • credentialOptions - optional, object in a form of key-value. Each authentication option requires predefined credential object, depending on authentication type. Based on credentials provided, node-sp-auth automatically determines which authentication strategy to use (strategies listed in the top of the readme file).

Possible values for credentialOptions (depending on authentication strategy):

Please, use Wiki to see how you can configure your environment in order to use any of this authentication options.

setup(configuration)

params:

  • configuration - object accepting some configuration values for node-sp-auth. Currently it supports only configuration of underline request module via providing below code (for options available consider request repository):
spauth.setup({
   requestOptions: {... request options object}
 });

Development:

I recommend using VS Code for development. Repository already contains some settings for VS Code editor.

Before creating Pull Request you need to create an appropriate issue and reference it from PR.

  1. git clone https://github.com/s-KaiNet/node-sp-auth.git
  2. npm run build - runs linting and typescript compilation
  3. npm run dev - setup watchers and automatically runs typescript compilation, tslint and tests when you save files

Integration testing:

  1. Rename file /test/integration/config.sample.ts to config.ts.
  2. Update information in config.ts with appropriate values (urls, credentials).
  3. Run npm run test:integration.
  4. For tests debugging put a breakpoint and press F5 (works in VSCode only).
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].