UNPKG

bc-adal-angular

Version:

Library wrapper for Angular 6+, development over Microsoft ADAL (Azure Active Directory Authentication Library) - [https://github.com/AzureAD/azure-activedirectory-library-for-js](https://github.com/AzureAD/azure-activedirectory-library-for-js) that helps

126 lines (94 loc) 4.17 kB
# BC Adal Angular Library ### Active Directory Authentication Library (ADAL) for Angular6 Library wrapper for Angular 6+, development over Microsoft ADAL (Azure Active Directory Authentication Library) - [https://github.com/AzureAD/azure-activedirectory-library-for-js](https://github.com/AzureAD/azure-activedirectory-library-for-js) that helps you integrate with Microsoft's AAD (Azure Active Directory). <!-- Demo: [https://github.com/manishrasrani/ms-adal-angular6-example](https://github.com/manishrasrani/ms-adal-angular6-example) --> --- For information on how to configure Azure Active Directory refer - [https://docs.microsoft.com/en-us/azure/app-service/app-service-mobile-how-to-configure-active-directory-authentication](https://docs.microsoft.com/en-us/azure/app-service/app-service-mobile-how-to-configure-active-directory-authentication) <h2>How to use library</h2> **Step 1: Install the package** ```bash npm i --save bc-adal-angular ``` **Step 2: Import BcAdalAngularModule and configure Adal Options** In the root module of your application, import the `BcAdalAngularModule` module. ```typescript import { BcAdalAngularModule } from 'bc-adal-angular'; ``` Configure Adal Options while importing the module. ```typescript @NgModule({ imports: [ BcAdalAngularModule.forRoot({ tenant: '[Enter your tenant]', clientId: '[Enter your client_id here, e.g. g075edef-0efa-453b-997b-de1337c29185]', redirectUri: window.location.origin, // ... }), // ... ], // ... }) ``` For a list of all available adal configuration options, refer: [https://github.com/AzureAD/azure-activedirectory-library-for-js/wiki/Config-authentication-context#configurable-options](https://github.com/AzureAD/azure-activedirectory-library-for-js/wiki/Config-authentication-context#configurable-options) **Step 3: Secure individual routes of Angular** Use the AdalAccessGuard to secure indivuadual routes in your application. Import AdalAccessGuard and add it as a provider in your root module. > Note: This step it's optional, because the BcAdalAngularModule > import the guard provider automatically ```typescript import { AdalAccessGuard } from 'bc-adal-angular'; ``` ```typescript @NgModule({ providers: [ // ... AdalAccessGuard, // ... ], // ... }) ``` In your routing module, add it to the routes you want to secure ```typescript const routes: Routes = [ { path: '', component: AppComponent, pathMatch: 'full', canActivate: [AdalAccessGuard] } ]; @NgModule({ imports: [RouterModule.forRoot(routes)], exports: [RouterModule] }) export class AppRoutingModule { /* ... */ } ``` **Step 4 (Optional): Generating resource tokens** To generate resource level tokens for APIs your website may consume, specify the resources in your endpoints array while injecting AdalOptions into BcAdalAngularModule via root. Then to generate token, use `getAccessToken()` of `BcAdalAngularService`: ```typescript constructor(private adalService: BcAdalAngularService) { this.adalService .getAccessToken( endpoint: string, callbacks: (message: string, token: string) => any) .subscribe((resToken: string) => { console.log(resToken); }); } ``` **Step 5 (Optional): Getting logged-in user info** At any point in you application, to get the logged-in user info, use: ```typescript this.adalService.userInfo; ``` With these steps your application should be up and running with ADAL. **Important links** 1. [Azure Active Directory Overview](https://docs.microsoft.com/en-us/azure/active-directory/active-directory-whatis) 2. [Configure Azure Active Directory](https://docs.microsoft.com/en-us/azure/app-service/app-service-mobile-how-to-configure-active-directory-authentication) 3. [Azure Active Directory Pricing](https://azure.microsoft.com/en-in/pricing/details/active-directory/) 4. [Active Directory Authentication Library (ADAL) for JavaScript](https://github.com/AzureAD/azure-activedirectory-library-for-js)