Case Studies

Identity Server

Share this page

Technologies Used

Identity Server 3

100% 100% Complete

OAuth2

100% 100% Complete

OpenID Connect

100% 100% Complete

MVC

90% 90% Complete

WebApi

90% 90% Complete

EntityFramework

90% 90% Complete

HTML5

70% 70% Complete

CSS3

70% 70% Complete

SQL Server 2012

60% 60% Complete

Bootstrap

60% 60% Complete

Modernizr

60% 60% Complete

JQuery

60% 60% Complete

Autofac

80% 80% Complete

Glimpse

70% 70% Complete

NUnit

80% 80% Complete

Selenium

70% 70% Complete

Team City

80% 80% Complete

Identity Server

The Client

In 1978, James Dyson became frustrated with his vacuum cleaner’s diminishing performance. Taking it apart, he discovered that its bag was clogging with dust, causing suction to drop. He’d recently built an industrial cyclone tower for his factory that separated paint particles from the air using centrifugal force. But could the same principle work in a vacuum cleaner?

This is the seed of an idea that made Dyson into one of the global players on the world stage - a global market leader in consumer goods with a 20 year history of innovation and invention. Today, there are Dyson machines in over 70 countries around the world, and Dyson has grown from one man and one idea to a technology company with over 1,000 engineers and 4,000 employees worldwide.

Many consider Dyson more of a technology company than a traditional manufacturer, but Dyson is increasingly using their websites to reach new, and support existing customers. Enhanced Coding worked with Dyson at their headquarters in Malmesbury, England - placing staff onsite there to work with the Digital IT team on improving & maintaining Dyson's website and web presence.

The Problem

In recent years there had been a huge push to target new markets and new countries. This has necessitated the introduction of multiple different websites, web servers, and backend systems. As the number of systems has grown, the complexity of passing data between these systems has also increased – particularly in maintaining a single view of a customer.

The end result of this had been that customers often needed to have multiple passwords for different purposes – one for shopping, one for warranty registration, and one to connect their IoT product to the internet.

Not only was this really confusing for the consumer, but it also meant that there was often conflicting data, or siloed data, relating to a customer – thus reducing its value to the business.

The Solution

A new authentication server was introduced into the business that could be used across all systems. All customer logins are processed through this server, and the server acts as a broker for customer information.

Consistent Login

The server provided a consistent, reliable way of authenticating each user, and was designed from the off with security, globalisation, and scalability in mind. A customer can use a single recognisable login for any of their products or services, and it allows multiple website to appear seamlessly integrated.

Secure by design

Following industry recognised protocols, and with the smallest technological footprint possible – the possible attack surface for hackers was deliberately minimised to protect this most valuable of information. The server underwent a full set of PEN testing before its live release, and can be updated quickly as additional threats are identified and mitigated.

Scalable

As the server could be a single point of failure for customers to login, it was crucial to consider scalability from day one. The server is stateless, hosted in the cloud, and configured to auto-scale as demand grows.

The number and type of systems that connect to the server is also likely to change over time, so the process of adding (and authorising) new clients was made simple and secure. Integrated into the product is an adaptable, versioned, API that allows backend systems to lookup information and make changes programmatically. Combined with platform agnostic protocols for establishing and using identity this provides a strong foundation for future-proofing the business .

Backend Synchronisation

Finally, the server was designed from inception to facilitate future data synchronising across different backend platforms. The server is the authoritative source for customer identification, and is best placed to provide a common, de-duplicated, customer identifier and to broker information between systems.

This unique identifier, is the enabler for future work to share data between these systems and gain a more comprehensive picture of the customer, and their purchasing and usage habits – valuable information to help drive future marketing and product innovation.

The Technology

The server is an MVC application, with an accompanying WebApi, based on the Identity Server 3 architecture and fully supporting OAuth2 and OpenID Connect protocols. The front-end website uses HTML5 with Modernizr, Bootstrap, and JQuery. Data is housed using EntityFramework and SQL Server. The system was unit-tested with NUnit, integration tested with Selenium, and continuously deployed through Team City.

Testimonials

Working with Ed has been a great pleasure because he is one of those rare developers who truly spans the business/technical divide.

From a technical standpoint, Ed has taken on an unfamiliar and complex technology (access control and security) with great ease, and delivered a really high-quality result. I know I can rely on Ed to ""do the right thing"" without having to specify every minute detail.

In terms of his business understanding, Ed very quickly picked up the functional requirements and how they impact on the technical solution. His contributions to discussions have always been pertinent and valuable, and he is comfortable working with business users.When describing technical challenges he is able to frame them in terms of the business impact of different technical options.

If not for Ed's relocation I'm sure that we'd be extending his contract again, as he is a valuable member of our team.

Rich Tebb - Digital Architect

Ed immediately established a reputation within the team of being both knowledgeable and personable, and quickly made an impact on the project he was working on.

His technical skills are of a very high quality indeed, and he's naturally articulate and friendly - an asset to our team.

James Hobbs - Digital Development Lead