Tuan Anh Hoang
Optimizely
Nov 25, 2025
visibility 719
star star star star star
(3 votes)

How to setup Entra ID (formerly Azure AD) for CMS 12 site

Recently, I created a doc about configuring AAD with CMS 12, but it has been posted internally only

So today, I would like to introduce it again in the World Site and hope that it can be seen by everyone

https://support.optimizely.com/hc/en-us/articles/20767067525773-How-to-setup-Entra-ID-formerly-Azure-AD-for-CMS-12-site

If you have any questions or problems, please send feedback to support@optimizely.com and cc my email address anhtuan.hoang@optimizely.com

Nov 25, 2025

Comments

Sunil
Sunil Nov 26, 2025 08:23 AM

Great article! 💡 The step-by-step explanation for configuring Entra ID (Azure AD) with CMS 12 is really clear and practical.

This will be super useful for teams modernizing their authentication setup.

Thanks for sharing this

Jonas Boman
Jonas Boman Nov 28, 2025 12:40 PM

Great sum-up. 

Some feedback:

  1. Step 1.4: Note: If you run a CMS site on non-local env, just replace localhost:8000 by your server’s name, for example: https://10.120.18.249:8080/
    Can I suggest changing "localhost:8000" in the text with "localhost:5000" since that is stated in the list of urls.

  2. Step 1.9: How would it look with role names a little more custom, since in the example is quite simplified, and similar to what is used in the CMS!?
    I e; MyWebSite_CMS_Administrator, MyWebSite_CMS_Visitor, MyWebSite_CMS_Editor 

  3. Step 2.3 Update in the ‘Configure’ method - should the controller be DefaultPage (I do not have a Controller nor pagetype with that name) or just anyone that that utilizes PageControllerBase?
  4. Do I need to configure role mapping in the application?

error Please login to comment.
Latest blogs
Surviving a Dirty Feed. Part 3: Error Handling and Event Batching

Committing a 250,000-row Optimizely catalog import row by row, returning a per-row failure report, and coalescing catalog events into one per batch.

Stanisław Szołkowski | Oct 16, 2026 |

Building UI Extensions for Optimizely SaaS CMS

Introduction Developers have been extending the functionality of Optimizely PaaS CMS for years using addons built in C# and deployed as NuGet...

Mark Stott | Oct 15, 2026

Cheapskate AI Translator: Because Translation Should Not Require a Second Mortgage

There is a particular kind of software project that begins with a detailed architecture document, a product roadmap, and a carefully assembled...

Linh Doan Cuu | Oct 15, 2026

Computed Fields in CMS 13 Content Contracts with Optimizely Graph

Content Contracts in Optimizely CMS 13 allow different content types to share a common structure when querying Optimizely Graph. But what if the...

Mardy | Oct 14, 2026