29
Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Embed Size (px)

Citation preview

Page 1: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 1

NEXPLORE AG

Stefan von Niederhäusern

Einfache Anwendung der SuisseID durch das Software Development KIT

09.09.2010

Page 2: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 2

Inhalt

• Was ist das SuisseID SDK /.NET• Funktionalität• Unterstützte Anwendungsfälle• Demos

09.09.2010

Page 3: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 3

Was ist das SuisseID SDK/.NET?

• Ein Software Development Kit (SDK) ist eine Sammlung von Werkzeugen und Anwendungen, um eine Software zu erstellen.

• Toolkit … (englisch für „Werkzeugsatz“) ist ein Begriff aus der elektronischen Datenverarbeitung. Er bezeichnet allgemein eine Sammlung von Bibliotheken, Klassen und Schnittstellen, die das Erstellen von Computerprogrammen vereinfachen sollen. Ziel eines Toolkits ist es, einem Programmierer das Entwickeln von Anwendungen zu erleichtern, indem Standardfunktionen zur Verfügung gestellt werden.

09.09.2010

Page 4: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 4

Was ist das SuisseID SDK/.NET?

09.09.2010

SuisseID SDK / .NET:Einfach einsetzbare Klassenbibliothek für die Integration von Webapplikationen (ASP.NET) mit der SuisseID Kern-Infrastruktur

Page 5: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 5

09.09.2010

Positionierung des SuisseID SDK/.NET

Wir befinden uns hier!

Page 6: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 6

Funktionalität

• Abwicklung der Kommunikation zwischen SuisseID-enabled Applikation und IdP• Erstellen von SAML 2.0 Requests• Signieren von Requests• Verarbeiten von Antworten des IdP• Überprüfung der Signatur der Antworten

• Zugriff auf SuisseID Zertifikat

09.09.2010

Page 7: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 7

09.09.2010

Page 8: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 8

09.09.2010

Page 9: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 9

09.09.2010

UC1: Zertifikatsbasierte Authentifizierung

Page 10: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 10

09.09.2010

UC2: Abfrage von Attributen beim IdP

Page 11: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 11

09.09.2010

UC 3: Authentifizierung und Attributabfrage

Page 12: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 12

Links

09.09.2010

• http://develop.suisseid.ch• Wiki• Download SDKs + Demoapps• Whitepaper

• http://cashback.suisseid.ch/

Page 13: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 13

Fragen

09.09.2010

Page 14: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 14

Backup

09.09.2010

Page 15: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 15

• What is the SuisseID SDK/.NET?• Supported Use Cases• API of the SuisseID SDK/.NET• Code-Examples• Extensions

09.09.2010

Page 16: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 16

API Goals

• Easy to use• No SAML for the user• Prepared for IoC / Dependency Injection• Expandability possible• Good testability through IoC-Concept• Exception based

09.09.2010

Page 17: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 17

09.09.2010

API (Certificate)

Page 18: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 18

09.09.2010

API (IdP Communication)

Page 19: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 19

09.09.2010

API (Helpers)

Page 20: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 20

• What is the SuisseID SDK/.NET?• Supported Use Cases• API of the SuisseID SDK/.NET• Code-Examples• Extensions

09.09.2010

Page 21: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 21

Example Code 1: Build an AuthnRequest (1)

09.09.2010

var request = SuisseIdSdkObjectFactory.GetAuthenticationRequest();

// add claims neededrequest.Claims.Add(

new ClaimDescriptor { Name = CoreClaimTypes.GivenName,

IsRequired = true });

request.Claims.Add(new ClaimDescriptor { Name = CoreClaimTypes.Surname, IsRequired=true });

request.Claims.Add(new ClaimDescriptor { Name = CoreClaimTypes.DateOfBirth, IsRequired = true });

Page 22: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 22

Example Code 1: Build an AuthnRequest (2)

09.09.2010

// set the endpoint URI from the IdP selectorrequest.Destination = new Uri("http://SelectedIdP");

request.PrivacyNoticeAddress = new Uri("http://PrivacyUrl");

// set return urlrequest.AssertionConsumerServiceUrl =

new Uri("http://DestinationUrl");

 

Page 23: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 23

Example Code 2: Sending the request to the IdP

09.09.2010

// send the request with the request sendervar requestSender =

SuisseIdSdkObjectFactory.GetRequestSender();

requestSender.UserLanguage = Thread.CurrentThread.CurrentUICulture;

requestSender.SendRequest(request, new HttpContextWrapper(HttpContext.Current)

);

Page 24: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 24

Example Code 3: Handling the response from the IdP (1)

09.09.2010

// get the responsevar responseHandler = SuisseIdSdkObjectFactory.GetResponseHandler();

// handle responsevar response = responseHandler.HandleResponse(

this.ControllerContext.HttpContext);

 

// get the requested claimsvar claim = response.AllClaims[CoreClaimTypes.IsOver18].Value;

// MISSING: some checks and exception handling

Page 25: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 25

• What is the SuisseID SDK/.NET?• Supported Use Cases• API of the SuisseID SDK/.NET• Code-Examples• Extensions

09.09.2010

Page 26: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 26

SuisseID SDK Extensions

• Once authenticated, a user remains authenticated within the application until he explicitly logs out.

• The set of claims is persisted until the user explicitly logs out.

• Developers can use the familiar Principal and Identity objects.

Codesamples and further explanation available in the Microsoft Whitepaper (http://develop.suisseid.ch)

09.09.2010

Page 27: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 27

SuisseID SDK Extensions

09.09.2010

Page 28: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 28

Example Code 3: Handling the response from the IdP (1)

09.09.2010

// get the responsevar responseHandler = SuisseIdSdkObjectFactory.GetResponseHandler(); 

try

{

// handle response var response = responseHandler.HandleResponse(

this.ControllerContext.HttpContext); 

// get the requested claims var claim = response.AllClaims[CoreClaimTypes.IsOver18];

 

Page 29: Making people work together! Folie 1 NEXPLORE AG Stefan von Niederhäusern Einfache Anwendung der SuisseID durch das Software Development KIT 09.09.2010

Making people work together!

Folie 29

Example Code 3: Handling the response from the IdP (2)

09.09.2010

// use claim data

if (claim != null)

{

var value = (bool)claim.Value;

}

catch (StatusAbortedByUserException ex)

{

return this.View("ErrorUserAborted");

}