building a licensing strategy for crm isv solutions
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