3. 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
4. #1 Nothing is 100% safe. It can always
be hacked
Connect + Learn = Grow
8. License Keys
• Token to enable your solution
• Only you should be able to generate it
• Tied to a specific customer / deployment
Connect + Learn = Grow
9. Public Key Cryptography
• Cryptography -> Base for licensing
• Private key is not good enough
• Public Key encryption enables signing
Connect + Learn = Grow
13. What are we going to cover?
# Licensing Challenges
# License Key Strategies for CRM Solutions
# License “Key” Strategies for Cloud
Connect + Learn = Grow
14. How to validate the license in CRM?
• License storage/installation
• Web Resource license checks
• .Net code license checks
Connect + Learn = Grow
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 addresses
Connect + Learn = Grow
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 license
Connect + Learn = Grow
17. 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
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 plumbing
Connect + Learn = Grow
19. Building a fictitious ISV add-on solution to validate EU VAT
numbers and implementing the license checks
DEMO: A LICENSED SOLUTION
Connect + Learn = Grow
20. What are we going to cover?
# Licensing Challenges
# License Key Strategies for CRM Solutions
# License “Key” Strategies for Cloud
Connect + Learn = Grow
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
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 resources
Connect + Learn = Grow
24. How to create a license wall in 10 minutes using Windows Azure
DEMO: LICENSE WALL
Connect + Learn = Grow
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 access
Connect + Learn = Grow
26. What have we covered?
# Licensing Challenges
# License Key Strategies for CRM Solutions
# License “Key” Strategies for Cloud
http://crmlicensing.codeplex.com
Connect + Learn = Grow
27. Marco Amoedo
Microsoft
@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
7 minutesStart WPF AppAdd the UIThen add code to generate the license keysAdd the encrypt codeVerify
15 minutesConfiguration PageCheck for .lic fileUpload .licPublish request (using guid)Licensed Web ResourceExplain the setup with the minimiserExplain the issue about RSA.JSShow the code for the auto checkerExplain how to customiseLicensed PluginExplain basic ideaWhy needs a base class and hold the result in memory