Azure Active Directory SSO using Visual Studio 2015

 

Here is the instruction on using Visual Studio 2015 preview to add Azure Active Directory SSO to an existing MVC Application.

1. Create an Azure Active Directory

2. Add user(s) to directory

3. Right-click the project and click “Configure Azure AD Authentication”

image

4. Enter your Active Directory Domain Name e.g. yourid.onmicrosoft.com  This will integrate an Application to the Active Directory

image

5. Click the Application Link and click the Configure Tab and change the “Reply Url” to your webiste’s Url so Azure AD know where to send the SAML authentication tokens after successfully authenticated the Users.

e.g. https://mywebapp.azurewebsites.net/

6. optional update the [Authorize] attribute in the controllers

7. optional add the login/logout/username html to the view. e.g. add @Html.Partial(“_LoginPartial”) to _layout.cshtml

8. Finally publish the WebApp to Azure. Right click on project and click “Publish…”

Katana–OWIN implementation from Microsoft

Katana Architecture

The Katana component architecture divides an application into four logical layers, as depicted below: host, server, middleware, and application. The component architecture is factored in such a way that implementations of these layers can be easily substituted, in many cases, without requiring recompilation of the application.

image

An example of components from different layers
  • Host: IIS/ASP.NET, OwinHost.exe, Self-Host/Custom-Host(e.g. Windows Service)
  • Server: SystemWeb(ASP.NET pipeline), HttpListener (OwinHost/Self-Host/Custom-Host)
  • Middleware: Web API, SignalR, Nancy
  • Application: Your Application.

http://www.asp.net/aspnet/overview/owin-and-katana

Documentation: http://katanaproject.codeplex.com/documentation

 

owin

Azure Scheduler–run jobs on simple or complex recurring schedules

image

Scheduler

Run your jobs on simple or complex recurring schedules
  • Call services inside or outside of Azure
  • Run jobs on any schedule—now, later, or recurring
  • Use Azure Storage queues for long-running or offline jobs
  • Management REST API

Get Started using Scheduler MSDN

Videos:

Using Visual Studio to build Cross Platform JavaScript Native Apps using Cordova

 

image

Demo (Build Android, iOS app. Deploy to Ripple, Xcode iPhone Simulator on Mac, Android Device): http://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Multi-Device-Hybrid-Apps

MSDN: http://msdn.microsoft.com/en-us/vstudio/dn722381

Documentation: http://msdn.microsoft.com/en-us/library/dn771545.aspx

Stackoverflow: http://stackoverflow.com/questions/tagged/multi-device-hybrid-apps

Samples:

Cordova: http://cordova.apache.org/

Azure Mobile Service

 

image

Windows Azure Mobile Services:

  • A turnkey backend solutions to power your mobile apps on any platforms – iOS, Andrioid, Windows(Store/Phone) or Mac and tools like C#, Java, JavaScript, Xamarin, PhoneGap.
  • Accelerate your mobile app development. Incorporate structured storage in the cloud, user authentication(Facebook, Google, Microsoft, Twitter, Active Directory account)/authorization and push notifications to millions (Notification Hubs) in minutes. Add your custom backend logic in C# or Node.js
  • Introduction to Azure Mobile Service – Scott Guthrie

Below are some tutorials that walkthrough common authentication/authorization/push scenarios you can do with Windows Azure Mobile Services:

Azure WebJobs

 

 

Resources:

Enabling Cross-Origin Requests in ASP.NET Web API

Introduction

This tutorial demonstrates CORS support in ASP.NET Web API. We’ll start by creating two ASP.NET projects – one called “WebService”, which hosts a Web API controller, and the other called “WebClient”, which calls WebService. Because the two applications are hosted at different domains, an AJAX request from WebClient to WebService is a cross-origin request.


What is “Same Origin”?

Two URLs have the same origin if they have identical schemes, hosts, and ports. (RFC 6454)

These two URLs have the same origin:

These URLs have different origins than the previous two:

Internet Explorer does not consider the port when comparing origins.

for more:  http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api

Also from Microsoft Web-API: http://www.asp.net/web-api/overview