Problem using PnP Core GetAzureADAppOnlyAuthenticatedContext() with Azure Functions runtime.

I was working on an Azure Function recently that used the OfficeDevPnPCore AuthenticationManager() class with the GetAzureADAppOnlyAuthenticatedContext() method to get an app only authentication context.

new AuthenticationManager().GetAzureADAppOnlyAuthenticatedContext();

I was running into the very helpful error message of “Object reference not set to the instance of an object”.

After a little digging around I came across the following GitHub issue when pointed me in the right direction.

The problem seems to be with the latest runtime. I was running version 1.0.9 of the Azure Functions Core Tools to locally debug the function.

If you look at the app settings for your function in the portal, you will see that there is a setting called “FUNCTIONS_EXTENSION_VERSION” and this will be set to the value ~1 which means use the latest runtime.

The solution to being able to run this above code on Azure was to force the runtime to use a particular version. I set mine to 1.0.11388 which got everything working again.



However I still needed to debug the function locally so I needed to update my local version of the core tools.

If you open a command prompt and type


you will see which runtime you have installed.


As you can see I had version 1.0.9 installed. I looked through the releases on GitHub at and decided to downgrade my tools to version 1.0.7.

After downgrading to version 1.0.7 I found that the above app only auth call started to work again.



How to use Office UI Fabric in your Web Applications

The Office UI Fabric framework is a easy to use UI framework that provides you with CSS and JavaScript components allowing you to style your web applications, making them seamlessly integrate with the Office 365 and SharePoint Online user experience.

You can fine out more at on the Office UI Fabric site and you can visit the Office UI JS GitHub site here to find out how to use the JavaScript components.

In my video here I show a quick demo of how to include the components in your own web application.

Azure AD JavaScript authentication tutorial series (Part 1)

I have put together a video tutorial series that goes through step by step a full end to end solution that shows how to authenticate an Azure AD Web API application from JavaScript code using the adal.js library.

Now days I am finding myself designing my applications to use a web service layer to serve up data from data stores.  Providing REST API endpoints on top of your data gives alot of benefits when it comes to integrating your data across different client applications. JavaScript runs pretty much everywhere now and it’s the to go to language to build client side apps so accessing your REST endpoints from JavaScript is a really appealing solution and this is why pretty much everyone is doing JavaScript and REST now.

The JavaScript ecosystem today is massive with libraries to help you build pretty comprehensive applications. When I am building SharePoint Add-Ins I tend to expose the data using Web API and stick to using JavaScript in the application to render the data and build out the UI. Most if the time there is no need for server side code inside my client application.

Inevitably you will want to secure your web service layer at some point and if your are building on the Azure platform, then Azure AD is a great OAuth solution.

It is especially a good solution if you are building SharePoint Add-Ins in Office 365. When you are logged into your Office 365 SharePoint site you have already authenticated against your Azure AD and as long as you deploy your applications to the same Azure AD instance then you get automatically authenticated when accessing your Web API layer.

When building these apps I found that there was plenty of examples on authenticating from C# code but I found the examples lacking if I just wanted to use JavaScript to authenticate against my Web API.

The adal.js library comes in very handy here but I found all the examples were based around using it with Angular. Although Angular is a great framework for building client side apps I found most of the time it was overkill for what I wanted to do.  So these set of videos show how you might want to design and build a client side application and in this case a SharePoint Add-In that uses Azure AD authentication, Web API, JavaScript and TypeScript.

The general architecture looks like this.



The first video is up and it shows how to create a SQL Azure database, create a Web API layer and how to model and scaffold the data using Entity Framework.