Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Solution Licensing    Marco Amoedo Martinez    @marcoamoedoConnect + Learn = Grow
Connect + Learn = Grow
What are we going to cover?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for ...
#1 Nothing is 100% safe. It can alwaysbe hacked  Connect + Learn = Grow
#2 Don’t punish honest customers Connect + Learn = Grow
#3 Just make it good enough to avoidtemptations Connect + Learn = Grow
In summary: Keep It SimpleConnect + Learn = Grow
License Keys• Token to enable your solution• Only you should be able to generate it• Tied to a specific customer / deploym...
Public Key Cryptography• Cryptography -> Base for licensing• Private key is not good enough• Public Key encryption enables...
1. License Components:               Generate a LicenseCrmOrganization:[0,1]:TrialEndDate                                 ...
1. Extract LicenseValidate a License                      MyCrmInstance:1:04022012<License>  <Payload>                    ...
Building our license generator DEMO: LICENSE GENERATORConnect + Learn = Grow
What are we going to cover?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for ...
How to validate the license in CRM?• License storage/installation• Web Resource license checks• .Net code license checksCo...
Demo Scenario• The EU VAT Checker  Solution   – Using the VIES service     from the EU   – Allow to Check for Valid     VA...
License Storage & Installation• Store the license as a web resource   – XML File containing the license   – Clean & No nee...
Web Resource / UI LicenseChecks• JavaScript Library   – Download License and Public Key   – Validate the License using Pub...
Plug-in Checks• Similar as JavaScript   – Validate the License using     Public Key & Act on the     results• But   – Cach...
Building a fictitious ISV add-on solution to validate EU VAT numbers and implementing the license checks DEMO: A LICENSED ...
What are we going to cover?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for ...
Let’s forget the licenses• Generating licenses requires lots of Work   – Generate Licenses   – Replace them   – Support ca...
License Wall http(s)://isvsite.com/script.js?orgname=acme              orgname=acme                                       ...
Building a “License Wall”• Put part of your solution behind a “License  Wall”   – Natural for Web Resources   – Can be use...
How to create a license wall in 10 minutes using Windows Azure DEMO: LICENSE WALLConnect + Learn = Grow
License Wall Pros & Cons• Pros   – No requirement to generate license   – Easier to maintain / update   – Enables new lice...
What have we covered?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for Cloudh...
Marco Amoedo                              Microsoft                            @marcoamoedoThank You to all of our Sponsor...
Find your online Surveys here:                         http://www.extremecrm.com/Pages/                                  2...
Upcoming SlideShare
Loading in …5
×

Building a licensing strategy for CRM ISV Solutions

1,937 views

Published on

  • Thanks for the comment Ed. I am much in favour of the 'License Wall' approach, but I wanted to build the whole story around protecting your solutions for this presentation. The 'License Wall' also enables easy to implement subscription models which is one of my favourite reasons to use it. I'll try to do a follow up
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Thanks for the advice. Only comment is I wish you had mentioned the license wall first, it's the easiest and most straight forward. A simple gif with the .gif in a public read access site would suffice to validate a paid license.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Building a licensing strategy for CRM ISV Solutions

  1. 1. Solution Licensing Marco Amoedo Martinez @marcoamoedoConnect + Learn = Grow
  2. 2. Connect + Learn = Grow
  3. 3. What are we going to cover?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for Cloudhttp://crmlicensing.codeplex.comConnect + Learn = Grow
  4. 4. #1 Nothing is 100% safe. It can alwaysbe hacked Connect + Learn = Grow
  5. 5. #2 Don’t punish honest customers Connect + Learn = Grow
  6. 6. #3 Just make it good enough to avoidtemptations Connect + Learn = Grow
  7. 7. In summary: Keep It SimpleConnect + Learn = Grow
  8. 8. License Keys• Token to enable your solution• Only you should be able to generate it• Tied to a specific customer / deploymentConnect + Learn = Grow
  9. 9. Public Key Cryptography• Cryptography -> Base for licensing• Private key is not good enough• Public Key encryption enables signingConnect + Learn = Grow
  10. 10. 1. License Components: Generate a LicenseCrmOrganization:[0,1]:TrialEndDate <License> Private <Payload> Key MyCrmInstance:1:04022015 </Payload> <Signature> YW55IGNhcm5hbCBwbGVhc3VyZQ== </Signature> </License>2. Hash & Cipher:YW55IGNhcm5hbCBwbGVhc3VyZQ==Connect + Learn = Grow
  11. 11. 1. Extract LicenseValidate a License MyCrmInstance:1:04022012<License> <Payload> 3. Hash : MyCrmInstance:1:04022015 </Payload> YA66IfNhcm5ErTYubGVhc3MAMr== <Signature> YW55IGNhcm5hbCBwbGVhc3VyZQ== </Signature> Not</License> Valid Valid1. Extract SignatureYW55IGNhcm5hbCBwbG Public 3. Decrypt Hash: Key YA66IfNhcm5ErTYubGVhc3MAMr==Vhc3VyZQ== Connect + Learn = Grow
  12. 12. Building our license generator DEMO: LICENSE GENERATORConnect + Learn = Grow
  13. 13. What are we going to cover?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for CloudConnect + Learn = Grow
  14. 14. How to validate the license in CRM?• License storage/installation• Web Resource license checks• .Net code license checksConnect + Learn = Grow
  15. 15. 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 addressesConnect + Learn = Grow
  16. 16. 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 licenseConnect + Learn = Grow
  17. 17. Web Resource / UI LicenseChecks• 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
  18. 18. 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 plumbingConnect + Learn = Grow
  19. 19. Building a fictitious ISV add-on solution to validate EU VAT numbers and implementing the license checks DEMO: A LICENSED SOLUTIONConnect + Learn = Grow
  20. 20. What are we going to cover?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for CloudConnect + Learn = Grow
  21. 21. 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
  22. 22. License Wall http(s)://isvsite.com/script.js?orgname=acme orgname=acme ISV Website Script Resource CRM Web ResourceConnect + Learn = Grow
  23. 23. 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 resourcesConnect + Learn = Grow
  24. 24. How to create a license wall in 10 minutes using Windows Azure DEMO: LICENSE WALLConnect + Learn = Grow
  25. 25. 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 accessConnect + Learn = Grow
  26. 26. What have we covered?# Licensing Challenges# License Key Strategies for CRM Solutions# License “Key” Strategies for Cloudhttp://crmlicensing.codeplex.comConnect + Learn = Grow
  27. 27. Marco Amoedo Microsoft @marcoamoedoThank 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
  28. 28. Find your online Surveys here: http://www.extremecrm.com/Pages/ 2013RomeSurvey.aspxConnect + Learn = Grow

×