Building a licensing strategy for CRM ISV Solutions

Post on 21-May-2015

823 views 0 download

Tags:

transcript

Connect + Learn = Grow

Solution Licensing

Marco Amoedo Martinez

@marcoamoedo

Connect + Learn = Grow

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

Connect + Learn = Grow

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

Connect + Learn = Grow

#2 Don’t punish honest customers

Connect + Learn = Grow

#3 Just make it good enough to avoid temptations

Connect + Learn = Grow

In summary: Keep It Simple

Connect + Learn = Grow

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

it• Tied to a specific customer /

deployment

Connect + Learn = Grow

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

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

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

Connect + Learn = Grow

DEMO: LICENSE GENERATOR

Building our license generator

Connect + Learn = Grow

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

Connect + Learn = Grow

How to validate the license in CRM?

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

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

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

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>

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

Connect + Learn = Grow

DEMO: A LICENSED SOLUTION

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

Connect + Learn = Grow

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

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?

Connect + Learn = Grow

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

?orgname=acme

orgname=acme

CRM Web Resource

Script Resource

ISV Website

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

Connect + Learn = Grow

DEMO: LICENSE WALL

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

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

Connect + Learn = Grow

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

http://crmlicensing.codeplex.com

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!

Connect + Learn = Grow

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