All Projects → davidjrh → Dnn.azureadprovider

davidjrh / Dnn.azureadprovider

The DNN Azure Active Directory Provider is an Authentication provider for DNN Platform (formerly DotNetNuke) that uses Azure Active Directory OAuth2 authentication to authenticate users.

Projects that are alternatives of or similar to Dnn.azureadprovider

Actionpacks
Public PowerShell script gallery for ScriptRunner.
Stars: ✭ 118 (+461.9%)
Mutual labels:  azure, active-directory
Automatedlab
AutomatedLab is a provisioning solution and framework that lets you deploy complex labs on HyperV and Azure with simple PowerShell scripts. It supports all Windows operating systems from 2008 R2 to 2019, some Linux distributions and various products like AD, Exchange, PKI, IIS, etc.
Stars: ✭ 1,194 (+5585.71%)
Mutual labels:  azure, active-directory
Adaz
🔧 Automatically deploy customizable Active Directory labs in Azure
Stars: ✭ 197 (+838.1%)
Mutual labels:  azure, active-directory
Powershell
PowerShell functions and scripts (Azure, Active Directory, SCCM, SCSM, Exchange, O365, ...)
Stars: ✭ 1,302 (+6100%)
Mutual labels:  azure, active-directory
Orgkit
Provision a brand-new company with proper defaults in Windows, Offic365, and Azure
Stars: ✭ 490 (+2233.33%)
Mutual labels:  azure, active-directory
Intro Starwars App
Repositório responsável pela artigo escrito no dev.to AQUI em como desenvolver a intro do Star Wars com Node.js & Express.js.
Stars: ✭ 18 (-14.29%)
Mutual labels:  azure
Azure Sdk For Go
Microsoft Azure SDK for Go
Stars: ✭ 847 (+3933.33%)
Mutual labels:  azure
Azure Core Concepts Book
A curated guide to get going fast on the Azure platform. Links, best-practices, explanations and comments, I wish I had known before I started using Azure.
Stars: ✭ 17 (-19.05%)
Mutual labels:  azure
Azure Pipelines Template
template for your azure pipelines
Stars: ✭ 17 (-19.05%)
Mutual labels:  azure
Angular Ssr Swa
Stars: ✭ 15 (-28.57%)
Mutual labels:  azure
Active Directory Exploitation Cheat Sheet
A cheat sheet that contains common enumeration and attack methods for Windows Active Directory.
Stars: ✭ 870 (+4042.86%)
Mutual labels:  active-directory
Dnn.platform.samples.mvc
DNN Sample MVC and SPA (Single Page Application) Modules
Stars: ✭ 26 (+23.81%)
Mutual labels:  dnn
Opshell
DevOps Toolkit for Every Cloud on Every Cloud
Stars: ✭ 19 (-9.52%)
Mutual labels:  azure
Dnncommunity.home
This it the home for all DNN Community Projects
Stars: ✭ 9 (-57.14%)
Mutual labels:  dnn
Azure Openshift
RedHat Openshift Origin cluster on Azure
Stars: ✭ 17 (-19.05%)
Mutual labels:  azure
Altium Library
Open source Altium Database Library with over 147,000 high quality components and full 3d models.
Stars: ✭ 875 (+4066.67%)
Mutual labels:  azure
Serverlessazurefriday
Serverless geo-replicated event-based architecture sample for Azure Friday
Stars: ✭ 17 (-19.05%)
Mutual labels:  azure
Vscode Azurelogicapps
Azure Logic Apps extension for VS Code
Stars: ✭ 25 (+19.05%)
Mutual labels:  azure
Dnn.appinsights
A module to use Visual Studio Application Insights with the DNN Platform (formerly DotNetNuke) CMS
Stars: ✭ 12 (-42.86%)
Mutual labels:  dnn
Gab2019sciencelab
This project contains instructions to deploy the Global Azure Bootcamp 2019 Science Lab
Stars: ✭ 25 (+19.05%)
Mutual labels:  azure

DNN Azure Active Directory provider

Latest release Latest release

Looking for the DNN Azure AD B2C provider? Go to https://github.com/intelequia/dnn.azureadb2cprovider

Contents

Overview

The DNN Azure Active Directory Provider is an Authentication provider for DNN Platform that uses Azure Active Directory OAuth2 authentication to authenticate users.

alt text

alt text

alt text

Requirements

  • DNN Platform 9.4.3 or later

Installation and configuration guide

This guide has two parts:

  • How to setup Azure Active Directory
  • How to install the authorization provider in our DNN deployment and how to setup the AD parameters we created before

Following this two steps, you will give access to all your Azure AD users to register and sign-in into your DNN application. You can go later and harden your security settings like only allow to access the DNN Web Application to certain users on the Azure portal. Also note that depending on whether you have "Public" or "Private" user account registration on your DNN portal, you will need to approve the registered user before allowing him to access the site.

Azure Active Directory setup

  1. Go to https://portal.azure.com to setup the required applications on your Azure Active Directory. You need to use the user credentials of a user with at least "Service Admin" role.
  2. In the left-hand navigation pane, click the Azure Active Directory service, click App registrations, and click New application registration.
  3. When the Create page appears, enter your application's registration information:
    • Name: Enter a meaningful application name. This can be any name you want and is simply how you will identify the application in your Azure Active Directory (i.e. "My DNN Web Application").
    • Application type: Select "Web app / API" (notice that Web Applications and Web API’s are considered the same type of application as far as Azure AD is concerned)
    • Sign-On URL: This is the URL where user can sign in and use your app. In a typical DNN site, this should be something like "http://mysite.com/Login". You can change this URL later.
  4. When finished, click Create. Azure AD assigns a unique Application ID to your application, and you're taken to your application's main registration page.
  5. Click on the name of the app we've just created and then on "All settings" > "Required permissions" > "Windows Azure Active Directory". Ensure that the app has, at least, Sign in and read user profile checked, in the Delegated permissions section. Optionally, if as an administrator you want to avoid your users to consent access after login in the first time, you can click on the Grant permissions button. NOTE: starting with v4.0, you need to setup the following API permissions: Azure Active Directory Graph API, Directory.Read.All, Type=Application; Microsoft Graph API, User.Read, Type=Delegated; Microsoft Graph API, User.Read.All, Type=Application
  6. Now on the Settings page, under the keys section, create a new key with the desired expiration. Click on Save and then copy the key to a secure location. IMPORTANT: you won't be able to copy this key later, so copy it now or generate a new one when needed.

DNN provider installation and configuration

It's important to remember that you need a DNN deployment with version 7.4.1 or later for v1.0.1 and version 9.0.0 or later for v3.0 to continue.

  1. Download the DNN Azure AD provider from the Releases folder (i.e. AzureADProvider_03.00.00_Install.zip) https://github.com/davidjrh/dnn.azureadprovider/releases
  2. Login into your DNN Platform website as a host user and install the provider from the "Host > Extensions" page
  3. Use the Install Extension Wizard to upload and install the file you downloaded on step 1. Once installed, you can setup the provider from the new settings page, under the section Azure Active Directory on the Persona Bar: alt text

The settings page is very straightforward. It only requires three parameters from your Azure AD application:

  • Directory Tenant ID: You can get this parameter from the Properties section of your active directory (it's the value of the field Directory ID)
  • App ID: This is the Application ID of the application you created in step 4 of the previous section of this guide
  • Secret: This is the Key that you generated in step 6 of the previous section
  • Enabled: Use this switch to enable/disable the provider
  • Auto-Redirect: This option allows you to automatically redirect your login page to the Azure AD login page alt text

Building the solution

Requirements

Configure local npm to use the DNN public repository

From the command line, the following command must be executed:

   npm config set registry https://www.myget.org/F/dnn-software-public/npm/

Install package dependencies

From the comman line, enter the <RepoRoot>\DotNetNuke.Authentication.Azure\AzureAD.Web and run the following commands:

  npm install -g webpack
  npm install

Build the module

Now you can build the solution by opening the RedisCachingProvider.sln file on Visual Studio 2017. Building the solution in "Release", will generate the React bundle and package it all together with the installation zip file, created under the "\releases" folder.

On the Visual Studio output window you should see something like this:

1>------ Rebuild All started: Project: DotNetNuke.Authentication.Azure, Configuration: Release Any CPU ------
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Bin\Microsoft.Common.CurrentVersion.targets(2106,5): warning MSB3277: Found conflicts between different versions of "Newtonsoft.Json" that could not be resolved.  These reference conflicts are listed in the build log when log verbosity is set to detailed.
1>  DotNetNuke.Authentication.Azure -> C:\Dev\dnn.azureadprovider\DotNetNuke.Authentication.Azure\bin\DotNetNuke.Authentication.Azure.dll
1>  Hash: 96cf8fcd3ef2c4a72565
1>  Version: webpack 1.13.0
1>  Time: 4922ms
1>         Asset    Size  Chunks             Chunk Names
1>  bundle-en.js  345 kB       0  [emitted]  main
1>      + 43 hidden modules
1>  
1>  WARNING in bundle-en.js from UglifyJs
1>  Condition always false [./~/style-loader/addStyles.js:24,0]
1>  Dropping unreachable code [./~/style-loader/addStyles.js:25,0]
1>  Condition always true [./src/containers/Root.js:2,4]
1>  Dropping unreachable code [./src/containers/Root.js:5,4]
1>  Condition always false [./~/style-loader!./~/css-loader!./~/less-loader!./src/components/general/generalSettings.less:10,0]
1>  Dropping unreachable code [./~/style-loader!./~/css-loader!./~/less-loader!./src/components/general/generalSettings.less:12,0]
1>  Side effects in initialization of unused variable update [./~/style-loader!./~/css-loader!./~/less-loader!./src/components/general/generalSettings.less:7,0]
1>  Condition always false [./~/style-loader!./~/css-loader!./~/less-loader!./src/components/style.less:10,0]
1>  Dropping unreachable code [./~/style-loader!./~/css-loader!./~/less-loader!./src/components/style.less:12,0]
1>  Side effects in initialization of unused variable update [./~/style-loader!./~/css-loader!./~/less-loader!./src/components/style.less:7,0]
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

References

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].