Socket
Socket
Sign inDemoInstall

@azure/msal-node

Package Overview
Dependencies
3
Maintainers
3
Versions
104
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

@azure/msal-node


Version published
Weekly downloads
2.6M
decreased by-0.81%
Maintainers
3
Install size
2.61 MB
Created
Weekly downloads
 

Package description

What is @azure/msal-node?

The @azure/msal-node package is a Microsoft library that enables Node.js applications to authenticate users and access secured resources in the Microsoft identity platform, such as Microsoft 365, Azure, and other resources that rely on Microsoft accounts. It supports various OAuth 2.0 and OpenID Connect flows.

What are @azure/msal-node's main functionalities?

Authentication

This code sample demonstrates how to configure the MSAL client and get an authorization code URL, which is the first step in the OAuth 2.0 authorization code flow.

const msal = require('@azure/msal-node');

const config = {
  auth: {
    clientId: 'your_client_id',
    authority: 'https://login.microsoftonline.com/common',
    clientSecret: 'your_client_secret',
  }
};

const cca = new msal.ConfidentialClientApplication(config);

const authCodeUrlParameters = {
  scopes: ['user.read'],
  redirectUri: 'http://localhost:3000/redirect',
};

cca.getAuthCodeUrl(authCodeUrlParameters).then((response) => {
  console.log(response);
});

Acquiring Tokens

This code sample shows how to exchange an authorization code for an access token, which can be used to access secured resources.

const tokenRequest = {
  code: 'authorization_code_received_from_auth_code_url',
  scopes: ['user.read'],
  redirectUri: 'http://localhost:3000/redirect',
};

cca.acquireTokenByCode(tokenRequest).then((response) => {
  console.log(response);
}).catch((error) => {
  console.error(error);
});

Silent Token Acquisition

This code sample illustrates how to silently acquire an access token using a cached account, which is useful for renewing tokens without user interaction.

const silentTokenRequest = {
  account: cca.getAccountByHomeId('user_home_id'),
  scopes: ['user.read'],
};

cca.acquireTokenSilent(silentTokenRequest).then((response) => {
  console.log(response);
}).catch((error) => {
  if (error instanceof msal.InteractionRequiredAuthError) {
    // Fallback to interactive method if silent acquisition fails
  }
});

Other packages similar to @azure/msal-node

Readme

Source

Microsoft Authentication Library for Node (msal-node)

npm versionnpm versionCoverage Status

Getting StartedAAD DocsLibrary Reference

Currently msal-node is under development, please track the project progress here. This documentation is also in progress and will be changing as we release our alpha patches. We do not recommend using this in a production environment yet.

  1. About
  2. FAQ
  3. Releases
  4. Prerequisites
  5. Installation
  6. Usage
  7. Samples
  8. Build Library
  9. Security Reporting
  10. License
  11. Code of Conduct

About

MSAL Node enables applications to authenticate users using Azure AD work and school accounts (AAD), Microsoft personal accounts (MSA) and social identity providers like Facebook, Google, LinkedIn, Microsoft accounts, etc. through Azure AD B2C service. It also enables your app to get tokens to access Microsoft Cloud services such as Microsoft Graph.

OAuth2.0 grant types supported:

The current alpha version supports the following ways of acquiring tokens:

[Coming Soon] In the upcoming quarters we plan to add support for:

More details on different grant types supported by Microsoft authentication libraries in general can be found here.

Scenarios supported:

The scenarios supported with this library are:

  • Destop app that calls web APIs
  • Web app that calls web APIs (upcoming)
  • Web APIs that call web APIs (upcoming)
  • Daemon apps (upcoming)

More details on scenarios and the authentication flows that map to each of them can be found here.

FAQ

See here.

Releases

Expect us to detail our major and minor releases moving forward, while leaving out our patch releases. Patch release notes can be found in our change log.

DateReleaseAnnouncementMain features
July 13th, 2020 (Tentative)@azure/msal-node v1.0.0-alpha.1No release notes yetFull version of the @azure/msal-node package; relies on @azure/msal-common v1.0.0
July 6th, 2020@azure/msal-node v1.0.0-alpha.0No release notes yetFull version of the @azure/msal-node package; relies on @azure/msal-common v1.0.0-beta.4

Prerequisites

Before using @azure/msal-node you will need to register your app in the azure portal to get a valid clientId for configuration, and to register the routes that your app will accept redirect traffic on if applicable. Currently we support the below app registrations for @azure/msal-node:

Installation

Via NPM:

npm install @azure/msal-node

Usage

MSAL basics

Samples

There are multiple samples included in the repository that use MSAL Node to acquire tokens. These samples are currently used for manual testing, and are not meant to be a reference of best practices, therefore use judgement and do not blindly copy this code to any production applications.

  • auth-code: Express app using OAuth2.0 authorization code flow.
  • device-code: Command line app using OAuth 2.0 device code flow.
  • refresh-token: Command line app using OAuth 2.0 refresh flow.
  • silent-flow: Express app using OAuth2.0 authorization code flow to acquire a token and store in the token cache, and silent flow to use tokens in the token cache.
  • msal-node-extensions: Uses authorization code flow to acquire tokens then the msal-extensions library to write the MSAL in-memory token cache to disk.

Build and Test

  • If you don't have lerna installed, run npm install -g lerna
  • Run lerna bootstrap from anywhere within microsoft-authentication-library-for-js.git.
  • Navigate to microsoft-authentication-library-for-js/lib/msal-common and run npm run build
  • Navigate to microsoft-authentication-library-for-js/lib/msal-node and run npm run build
// to link msal-node and msal-common packages
lerna bootstrap

// Change to the msal-node package directory
cd lib/msal-common/

// To run build only for node package
npm run build

// Change to the msal-node package directory
cd lib/msal-node/

// To run build only for node package
npm run build

Local Development

Below is a list of commands you will probably find useful:

npm run build:modules:watch

Runs the project in development/watch mode. Your project will be rebuilt upon changes. TSDX has a special logger for you convenience. Error messages are pretty printed and formatted for compatibility VS Code's Problems tab. The library will be rebuilt if you make edits.

npm run build

Bundles the package to the dist folder. The package is optimized and bundled with Rollup into multiple formats (CommonJS, UMD, and ES Module).

lerna bootstrap

If you are running the project in development/watch mode, or have made changes in msal-common and need them reflecting across the project, please run lerna bootstrap to link all the symbols. Please note that npm install will unlink all the code, hence it is advised to run lerna bootstrap post installation.

npm run lint

Runs eslint with Prettier

npm test, npm run test:coverage, npm run test:watch

Runs the test watcher (Jest) in an interactive mode. By default, runs tests related to files changed since the last commit. Generate code coverage by adding the flag --coverage. No additional setup needed. Jest can collect code coverage information from entire projects, including untested files.

Security Reporting

If you find a security issue with our libraries or services please report it to secure@microsoft.com with as much detail as possible. Your submission may be eligible for a bounty through the Microsoft Bounty program. Please do not post security issues to GitHub Issues or any other public site. We will contact you shortly upon receiving the information. We encourage you to get notifications of when security incidents occur by visiting this page and subscribing to Security Advisory Alerts.

License

Copyright (c) Microsoft Corporation. All rights reserved. Licensed under the MIT License.

We Value and Adhere to the Microsoft Open Source Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Keywords

FAQs

Last updated on 21 Jul 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc