We have worked a lot on secure login in recent months including integration with NemLogin, PingFederate and AD FS and after having headaches with SAML assertions. We decided to create a simple module that hardens default Sitecore login with SMS token. It extends normal Sitecore login with extra step that asks you to give random code that is sent to your mobile phone. Mobile phone number is stored to your user profile. When you give right username and password the server will send unique key in SMS to your phone. This increases security on logins because no longer bad guys can guess your username+password and this way access to Sitecore. If you are using AD integration on your Sitecore instance you still can use this module (taken we can read your phone number).
Authentication workflow in Sitecore login
Step 1: Write your username and password
Step 2: Read SMS token from your phone
Step 3: Write SMS Code to Login Screen
Step 4: Login Notice that since I already know who user is after step 2 I can extend this very easily by choosing to scope User Interfaces, for example normally regular editors only use Page Editor and IMHO it is just confusing even show them anything else.
There will be a fee on the module and you will also need to have access to SMS gateway since SMS’s are not free. If you are not a developer we can install this for your Sitecore as long as you are running any version of Sitecore 7 or 6. For the SMS gateway we are right now supporting Twilio (REST) and generic SMS gateways (GET). If you like to get hint on the pricing take a look Twilio pricing. So far I have noticed that Twilio is slightly more expensive that others that I have seen but their API and Support (SLA) is good so you know what you are paying for. For more info on licensing contact me at @jpkeisala or call Addition +45 33 69 04 02.
Custom Login Page If you have even looked login screen of Sitecore you may have noticed it is not very customizable but fortunately we can replace it. We are changing login screen of Sitecore to “normal web page”, default look looks like Sitecore normal login screen. However, UI is customizable and uses Twitter Bootstrap.
What is Multi-factor authentication?
Multi-factor authentication (also MFA, two-factor authentication, two-step verification, TFA, T-FA or 2FA) is an approach to authentication which requires the presentation of two or more of the three authentication factors: aknowledge factor (“something only the user knows“), a possession factor (“something only the user has“), and an inherence factor (“something only the user is”). After presentation, each factor must be validated by the other party for authentication to occur. More about the concept in wikipedia.
When designing forms I have found out that it is good strategy to embrace autocomplete instead of disable it (autocomplete=off). This is especially relevant in order to give nice user experience for non-keyboard devices. However, I have not really find out any good documentation on what are the best practices to use Auto Complete on forms.
AutoComplete is enabled by default in all browsers and provides the following advantages:
Information is stored on the user’s computer.
User experience is simplified by helping the user fill out forms.
User information remains secure. While users can see their private information on a Web site, a Web site cannot see the list of personal information until one of the stored values is selected and the field is filled in.
How to name forms to have working autocomplete
Browser seems to collect information from the forms based on how they are named. Some developers use internal naming which makes it difficult but it seems to me that the most common format is vCard format. By looking vCard-naming conventions this patterns should be working on most of the cases.
This was video was very inspiring for me so I decided to share it.
This 9 minutes presentation of former nuclear submarine commander David Marquet explains how he took a nuclear submarine from the worst performing ship with the lowest moral in the US Navy and turned it into the highest graded ship ever. Simply by creating environment for thinking by giving control.
Just like Windows 8, Windows 2012 Server does not have start menu anymore. Therefore I have had to learn to memorize few commands to get around on the server. Here comes a list of Run and PowerShell Commands that I am using the most.
Run / Command Line Commands
cmd or cmd.exe
Opens download folder
Disk Parmelonion Manager
Group Policy Editor
On Screen Keyboard
System Configuration Utility
Open password manager
Internet Information Services (IIS) Manager 7
Internet Information Services (IIS) Manager 6
Remote Desktop Connection
Check computer up time
Stops a running service. i.e. net stop iisadmin /y
Connects a computer to or disconnects a computer from a shared resource, displays information about computer connections, or mounts a local share with different privileges
Run specific tools and programs with different permissions than the user’s current logon provides
Determine whether a remote computer is accessible over the network
terminate tasks by process id (PID) or image name
Starts a separate window to run a specified program or command.
opens the current directory in the Windows Explorer.
Just → npm search yeoman-generator for my own reference
calaxa calaxa ======
ft-wp Front-Trends WordPress generator
generator-angular Yeoman generator for AngularJS
generator-angular-silex Yeoman generator for Silex based upon AngularJS
generator-assemble Yeoman generator for Assemble
generator-aura Yeoman generator for Aura.js
generator-backbone Yeoman generator for Backbone.js
generator-backbone-amd generator-backbone-amd ======================
generator-barista Yeoman generator for Barista
generator-bbb Yeoman generator for Backbone Boilerplate
generator-bbproject Yeoman Generator for BB Project
generator-boilerplate Yeoman Generator for ...
generator-bookmarklet Yeoman Generator for bookmarklets
generator-bootstrap Yeoman generator for Twitter Bootstrap
generator-bootstrap-less Yeoman generator fo twitter bootstrap less
generator-breakpoint A Yeoman generator for starting a project with Breakpoint
generator-btapp BitTorrent btapp.js web app yeoman generator
generator-buster generator-buster ================
generator-cagspa A generator for Single Page Applications
generator-carlosypunto A generator for Yeoman. Generate simple require.js workfl
generator-charcoal Alternative Yeoman generator for Ember
generator-chrome-extension Yeoman generator for Chrome Extensions
generator-chromeapp Yeoman generator for Chrome App
generator-cityjs Yeoman generator for CityJS
generator-closure Generator for Closure Library
generator-component A Yeoman generator for components.
generator-cucumber Yeoman generator for Cucumber.js
generator-dotfiles Get started with your projects quickly using this generato
generator-ember Yeoman generator for Ember
generator-express A nodejs express generator for Yeoman
generator-firefoxos A Firefox OS app generator for Yeoman
generator-flask Yeoman generator for Flask project
generator-footguard Yeoman generator for single page application
generator-foundation Yeoman generator for Stylus themes, especially zurb founda
generator-frontend Scaffolds out a boilerplate for front-end development.
generator-generator Generator Generator for Yeoman
generator-genesis Yeoman Generator for Genesis Skeleton
generator-gpmd Modified Yeoman generator for scaffolding out a front-end
generator-gumby Yeoman generator for Gumby 2 Framework
generator-h5bp HTML5 Boilerplate generator
generator-heroku A heroku setup generator for Yeoman
generator-init A generator for generating generators in Yeoman
generator-jasmine Yeoman generator for Jasmine
generator-jquery-boilerplate Yeoman Generator for jQuery Boilerplate
generator-js-library Yeoman Generator for client-side JS Libraries, w/ Karma Ru
generator-karma Yeoman generator for Karma
generator-kissy-gallery kissy gallery generator
generator-kissy-pie kissy generator for kissypie
generator-knockout A generator for Yeoman
generator-lessapp Edited default Yeoman generator for scaffolding out a fron
generator-maria A generator for Yeoman
generator-mdpress A generator for Yeoman to create mdpress presentations.
generator-microlib A Yeoman generator for browser microlibs
generator-mobile-boilerplate H5BP Mobile Boilerplate generator
generator-mocha Yeoman generator for Mocha
generator-nodeapp A yeoman generator for a BDD node js application
generator-nodestrap Yeoman generator for a Heroku-ready, coffee-fueled web sta
generator-ozjs Scaffolding tool for OzJS which offers a packaging workflo
generator-pugpig Yeoman Generator for Pugpig
generator-requirejs A generator for Yeoman
generator-sails A Yeoman sails generator largley copied from generator-web
generator-server-configs Scaffolds out webserver configuration for various platf
generator-sharepoint Yeoman generator for scaffolding out SharePoint grunt buil
generator-silex Yeoman generator for scaffolding out a silex app
generator-skeleton Yeoman generator for Skeleton
generator-sp2010 Yeoman generator for projects using the SharePoint 2010 RE
generator-spboilerplate Yeoman Generator for rwd site with sharepoint boilerplat
generator-static Yeoman Generator for a basic front-end project workflow
generator-testacular Yeoman generator for Testacular
generator-topcoat A Topcoat generator for Yeoman
generator-travis-ci Yeoman generator that sets up travis-ci to do automated de
generator-ultimate ULTIMATE Yeoman generator for ultimate-seed - the ultimate
generator-webapp Default Yeoman generator for scaffolding out a front-end w
generator-wordpress A Yeoman generator for WordPress
generator-yaml4 Yeoman generator YAML4-Sass
generator-yo-wordpress Yeoman generator for WordPress project
generator-yui A YUI generator for Yeoman
generator-zurb-foundation Yeoman generator for Zurb Foundation 4
imatic-stack Imatic devel stack for single-page applications
yeoman-generator Rails-inspired generator system that provides scaffolding
I am big fan of IRC but I have not been using it for a while basically because I cannot use “screen” on any of my servers. Some time ago I saw IRCCloud.com and I subscribed to beta testing but I never got any invite but it opened my intrest for browser based IRC. That would be exactly what I need especially when I am jumping from PC to PC and often I am on Windows where terminal is a hassle. Finally I found something that covers my needs. It’s called Subway and you can find it from Github
Installing on Amazon EC2 Ubuntu 12.10 (Quantal Quetzal)
Once you have Ubuntu running open terminal on your server ssh -i YourCertificate.pem ubuntu@YourPublicIP
Upgrade the ubuntu image and install all dependecies for running Node, notice that Ubuntu default repos includes old useless version of Node and therefore you need extra repo. More info here. You will also need Git to clone Subway from Github .
Quoting Scott Hanselman: