A critical vulnerability was discovered in React Server Components (Next.js). Our systems remain protected but we advise to update packages to newest version. Learn More

Tuan Anh Hoang
Nov 25, 2025
  317
(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?

Please login to comment.
Latest blogs
A day in the life of an Optimizely OMVP - OptiGraphExtensions v2.0: Enhanced Search Control with Language Support, Synonym Slots, and Stop Words

Supercharge your Optimizely Graph search experience with powerful new features for multilingual sites and fine-grained search tuning. As search...

Graham Carr | Dec 16, 2025

A day in the life of an Optimizely OMVP - Optimizely Opal: Specialized Agents, Workflows, and Tools Explained

The AI landscape in digital experience platforms has shifted dramatically. At Opticon 2025, Optimizely unveiled the next evolution of Optimizely Op...

Graham Carr | Dec 16, 2025

Optimizely CMS - Learning by Doing: EP09 - Create Hero, Breadcrumb's and Integrate SEO : Demo

  Episode 9  is Live!! The latest installment of my  Learning by Doing: Build Series  on  Optimizely Episode 9 CMS 12  is now available on YouTube!...

Ratish | Dec 15, 2025 |

Building simple Opal tools for product search and content creation

Optimizely Opal tools make it easy for AI agents to call your APIs – in this post we’ll build a small ASP.NET host that exposes two of them: one fo...

Pär Wissmark | Dec 13, 2025 |

CMS Audiences - check all usage

Sometimes you want to check if an Audience from your CMS (former Visitor Group) has been used by which page(and which version of that page) Then yo...

Tuan Anh Hoang | Dec 12, 2025

Data Imports in Optimizely: Part 2 - Query data efficiently

One of the more time consuming parts of an import is looking up data to update. Naively, it is possible to use the PageCriteriaQueryService to quer...

Matt FitzGerald-Chamberlain | Dec 11, 2025 |