cis14: building a plug-in with the pingaccess sdk
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
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