How # (sharp) is Your Katana (Ciprian Jichici)

32
Premium community conference on Microsoft technologies itcampro @ itcamp14 # How # (sharp) is your Katana? Ciprian Jichici General Manager, Genisoft Chief Architect, High-Tech Systems & Software Microsoft Regional Director, Romania MVP, Microsoft Azure Roxana Goidaci Chief Architect, Genisoft

description

The Internet of Things is coming upon us bringing a whole range of fundamental changes in the way we imagine, understand, and write services. One of the major trends we’re wittnessing is the breakdown of monoliths, and Microsoft’s web stack is among the candidates. With the new .NET framework and standards like OWIN, the world of web development is changing significantly. We’re going to cover in this session some advanced scenarios involving ASP.NET MVC 5, WebAPI 2, OWIN, Katana (Microsoft’s implementation of OWIN), and, of course, Windows Azure (Windows Azure Active Directory to be more specific). And to make things more real, we’re going to demonstrate everything using a solution used by our team at HTSS-Genisoft in real-life production.

Transcript of How # (sharp) is Your Katana (Ciprian Jichici)

Page 1: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

How # (sharp) is your Katana?

Ciprian JichiciGeneral Manager, GenisoftChief Architect, High-Tech Systems & SoftwareMicrosoft Regional Director, RomaniaMVP, Microsoft Azure

Roxana GoidaciChief Architect, Genisoft

Page 2: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

Huge thanks to our sponsors & partners!

Page 3: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

We’re proud to be Platinum sponsors!

Page 4: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

A new world for web stacks

A real-world business scenario

#ening your Katana

Security, security, security

Agenda

Page 5: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

A NEW WORLD FOR WEB STACKS

Page 6: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

The Internet of Things is Here!

Page 7: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

OWINOpen Web Interface for .NET

Page 8: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

OWINFunc<IDictionary<string, object>, Task>

Func<IDictionary<string, object>, Task>;

Page 9: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

The Role of OWIN

Page 10: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

KATANA

Page 11: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

Traditional Japanese sword

Microsoft’s implementation of OWIN

KATANA

Page 12: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

A REAL-WORLD BUSINESS SCENARIO

Page 13: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

The Sensiblu Mobile App

Datacenter

https://mobile.htss.ro/sensiblu

Page 14: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

Service Availability is Critical

Datacenter

https://mobile.htss.ro/sensiblu

Microsoft Azure

REST endpoint tester

Page 15: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

The Architecture

Page 16: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

DEMO

A “Simple” REST tester

Page 17: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

#ENING YOUR KATANA

Page 18: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

Portable – substitute components

Modular/Flexible – small, focused components, giving great control over use

Lightweight/Performant/Scalable – break the monolith, consume fewer resources, scale better

The KATANA Project – High Level Goals

Page 19: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

Common wisdom says it has a direct dependency on the complexity of the solution

Intermezzo – About Software Scalability

Page 20: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

So…..

A piece of software that does absolutely nothing will scale infinitely

- Scot Hanselman

Intermezzo – About Software Scalability

Page 21: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

IAppBuilder is the core concept

Enables the chaining of middleware components

The KATANA Project

Page 22: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

The KATANA Project

Page 23: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

Use an Azure Worker Role

Use Web API for the management endpoint

Use a lightweight web stack based on OWIN / KATANA

Use Windows Azure Active Directory for authentication

Our Technical Approach

Page 24: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

DEMO

Bootstrapping KATANA in an Azure Worker Role

Page 25: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

SECURITY, SECURITY, SECURITY

Page 26: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

Our problem:

The management endpoint cannot be called by anyone

Secure, but how?

Page 27: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

KATANA makes it all “simple”:

1. Register your service with WAAD

2. Call UseWindowsAzureActiveDirectoryBearerAuthentication

when bootstrapping

Believe it or not, that’s all you need to do

Windows Azure Active Directory @ work

Page 28: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

But…

There a LOT going on behind the scenes…

Windows Azure Active Directory @ work

Page 29: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

We use the Bearer token approach

- No need to prove possession of a cryptographic key

- Protect in storage and transport (that’s why we need HTTPS)

The Rich Client Story

Page 30: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

DEMO

Implementing a secure Web API endpoint with KATANA and WAAD

Page 31: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

We needed a small, flexible, and secure web stack in an Azure worker role

We used OWIN / KATANA integrated with Windows Azure Active Directory

Our solution demonstrates how the new modular web stack of the future works in a real, cloud-based scenario

In an nutshell…

Page 32: How # (sharp) is Your Katana (Ciprian Jichici)

Premium community conference on Microsoft technologies itcampro@ itcamp14#

Q & A