CIS14: Building a Plug-in with the PingAccess SDK

Post on 15-Jan-2015

89 views 4 download

Tags:

description

Hands-on opportunity to build your own plug-in, using the PingAccess 3.0 SDK, to solve your Web Application/API Access Management challenges, and walk away with a an evaluation copy of the Ping Identity WAM solution and the custom plug-in that you built.

Transcript of CIS14: Building a Plug-in with the PingAccess SDK

BUILDING A PLUG-IN WITH THE PINGACCESS SDK

Jason Musgrave

Senior Software Engineer

Copyright © 2014 Ping Identity Corp. All rights reserved. 2

Me

Copyright © 2014 Ping Identity Corp. All rights reserved. 3

Image: Apple II tranparent 800 / CC-BY-SA-2.0-fr / Devin Cook (editing) Rama & Musée Bolo - Own work

Web & API Access Management

Copyright © 2014 Ping Identity Corp. All rights reserved. 4

APIs vs SDKs

Copyright © 2014 Ping Identity Corp. All rights reserved. 5

APIs vs SDKs

Copyright © 2014 Ping Identity Corp. All rights reserved. 6

Tooling

Copyright © 2014 Ping Identity Corp. All rights reserved. 7

• Java 7 (or 8)

• Git 1.8.x

• Maven 3.x

Via Maven http://maven.pingidentity.com/release/

Copyright © 2014 Ping Identity Corp. All rights reserved. 8

How to access?

Via the Install {PA-INSTALL-PATH}/sdk/samples/README.md

<dependency> <groupId>com.pingidentity.pingaccess</groupId> <artifactId>pingaccess-sdk</artifactId> <version>3.0.0</version>

</dependency>

Flashdrive

Copyright © 2014 Ping Identity Corp. All rights reserved. 9

•  Clone of Git Repo –  Markdown Instructions –  Sample

•  PingAccess –  SDK

•  License •  demo-simple-webapp

Git repo before / after

Copyright © 2014 Ping Identity Corp. All rights reserved. 10

https://github.com/pingidentity/CIS-2014-PingAccess-3.0-SDK-Demo

• Branches – master

– BEGIN

– RENDERUI

– CONFIGURE

What’s in the SDK?

Copyright © 2014 Ping Identity Corp. All rights reserved. 11

SDKTransactional

Rule Site Authenticator

UI

Render HttpConfig UserData

Http?

Copyright © 2014 Ping Identity Corp. All rights reserved. 12

What about

javax.servlet.http.HttpServletRequest?

Copyright © 2014 Ping Identity Corp. All rights reserved. 13

com.pingidentity.pa.sdk.http

Request

Response

Exchange

Header

HeaderFields

Body

Header

HeaderFields

Body

What’s A Rule?

Copyright © 2014 Ping Identity Corp. All rights reserved. 14

What’s A Rule?

Copyright © 2014 Ping Identity Corp. All rights reserved. 15

What

Copyright © 2014 Ping Identity Corp. All rights reserved. 16

Describe

Copyright © 2014 Ping Identity Corp. All rights reserved. 17

Save

Copyright © 2014 Ping Identity Corp. All rights reserved. 18

Describe / Configure / Validate

Copyright © 2014 Ping Identity Corp. All rights reserved. 19

•  Describe à Annotations or Builder –  com.pingidentity.pa.sdk.ui.UIElement –  com.pingidentity.pa.sdk.ui.ConfigurationBuilder

•  Configure à Jackson Mapping and Lifecycle methods.

•  Validate à javax.validation.Constraint

Describe / Configure / Validate

Copyright © 2014 Ping Identity Corp. All rights reserved. 20

Execute: handleRequest / handleResponse

Copyright © 2014 Ping Identity Corp. All rights reserved. 21

DEMO PingAccess SDK

Copyright © 2014 Ping Identity Corp. All rights reserved. 22

git checkout BEGIN

Copyright © 2014 Ping Identity Corp. All rights reserved. 23

Annotate Rule

Copyright © 2014 Ping Identity Corp. All rights reserved. 24

Build Configuration Class

Copyright © 2014 Ping Identity Corp. All rights reserved. 25

ConfigurationBuilder from()

Copyright © 2014 Ping Identity Corp. All rights reserved. 26

Expected Configuration

Copyright © 2014 Ping Identity Corp. All rights reserved. 27

Configure & Initialization

Copyright © 2014 Ping Identity Corp. All rights reserved. 28

Handle Request

Copyright © 2014 Ping Identity Corp. All rights reserved. 29

Error Callback

Copyright © 2014 Ping Identity Corp. All rights reserved. 30