building a licensing strategy for crm isv solutions

28
Connect + Learn = Grow Solution Licensing Marco Amoedo Martinez @marcoamoedo

Upload: marco-amoedo

Post on 21-May-2015

822 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

Solution Licensing

Marco Amoedo Martinez

@marcoamoedo

Page 2: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

Page 3: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

What are we going to cover?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for Cloud

http://crmlicensing.codeplex.com

Page 4: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

#1 Nothing is 100% safe. It can always be hacked

Page 5: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

#2 Don’t punish honest customers

Page 6: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

#3 Just make it good enough to avoid temptations

Page 7: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

In summary: Keep It Simple

Page 8: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

License Keys• Token to enable your solution• Only you should be able to generate

it• Tied to a specific customer /

deployment

Page 9: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

Public Key Cryptography• Cryptography -> Base for licensing• Private key is not good enough• Public Key encryption enables signing

Page 10: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

<License> <Payload> MyCrmInstance:1:04022015 </Payload> <Signature> YW55IGNhcm5hbCBwbGVhc3VyZQ== </Signature></License>

1. License Components:

CrmOrganization:[0,1]:TrialEndDate

Private Key

2. Hash & Cipher:

YW55IGNhcm5hbCBwbGVhc3VyZQ==

Generate a License

Page 11: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

<License> <Payload> MyCrmInstance:1:04022015 </Payload> <Signature> YW55IGNhcm5hbCBwbGVhc3VyZQ== </Signature></License>

1. Extract License

MyCrmInstance:1:04022012

Public Key

3. Hash :

YA66IfNhcm5ErTYubGVhc3MAMr==

1. Extract Signature

YW55IGNhcm5hbCBwbGVhc3VyZQ==

3. Decrypt Hash:

YA66IfNhcm5ErTYubGVhc3MAMr==

Validate a License

Valid Not Valid

Page 12: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

DEMO: LICENSE GENERATOR

Building our license generator

Page 13: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

What are we going to cover?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for Cloud

Page 14: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

How to validate the license in CRM?

• License storage/installation• Web Resource license checks• .Net code license checks

Page 15: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

Demo Scenario• The EU VAT Checker

Solution– Using the VIES

service from the EU– Allow to Check for

Valid VAT and Enrich Account data with addresses

Page 16: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

License Storage & Installation• Store the license as a web resource

– XML File containing the license– Clean & No need to create custom entities– Needs publishing

• Configuration page– Simple HTML Page– Create/update license

Page 17: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

Web Resource / UI License Checks

• JavaScript Library– Download License and Public Key– Validate the License using Public Key– Act on the results

• Web Resources / Forms– Include the JavaScript library

<script src="../Scripts/crmlicensing.lib.auto.min.js" type="text/javascript"></script>

Page 18: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

Plug-in Checks• Similar as JavaScript

– Validate the License using Public Key & Act on the results

• But– Cache the result to avoid

penalising plugins– Use a Abstract Class to

implement the plumbing

Page 19: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

DEMO: A LICENSED SOLUTION

Building a fictitious ISV add-on solution to validate EU VAT numbers and implementing the license checks

Page 20: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

What are we going to cover?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for Cloud

Page 21: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

Let’s forget the licenses• Generating licenses requires lots of

Work– Generate Licenses– Replace them– Support calls

• What if we use something easier?

Page 22: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

License Wallhttp(s)://isvsite.com/script.js

?orgname=acme

orgname=acme

CRM Web Resource

Script Resource

ISV Website

Page 23: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

Building a “License Wall” • Put part of your solution behind a

“License Wall”– Natural for Web Resources– Can be used for .Net code

• Only licensed CRM instances can access the resources

Page 24: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

DEMO: LICENSE WALL

How to create a license wall in 10 minutes using Windows Azure

Page 25: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

License Wall Pros & Cons• Pros– No requirement to generate license– Easier to maintain / update– Enables new license models

• Subscriptions, User based, etc.

• Cons– Requires internet access

Page 26: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

What have we covered?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for Cloud

http://crmlicensing.codeplex.com

Page 27: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

Marco AmoedoMicrosoft

@marcoamoedo

Thank You to all of our Sponsors and thank YOU for attending

eXtremeCRM 2013 Rome!

Session evaluation surveys are online! Check your email or to to:http://www.extremecrm.com/Pages/2013RomeSurvey.aspx

Complete prior to the closing session to be included in today’s drawing!

Page 28: Building a licensing strategy for CRM ISV Solutions

Connect + Learn = Grow

Find your online Surveys here:http://www.extremecrm.com/Pages/2013RomeSurvey.aspx