🔐 WordPress Plugin

SSO for Microsoft Entra

Plugin WordPress giúp tích hợp đăng nhập một lần (SSO) qua Microsoft Entra ID (Azure Active Directory). Cho phép người dùng đăng nhập WordPress bằng tài khoản Microsoft 365 doanh nghiệp.

Version 1.0.0 WordPress.org OpenID Connect + PKCE

👤 Hướng dẫn sử dụng

SSO for Microsoft Entra cho phép người dùng đăng nhập WordPress bằng tài khoản Microsoft 365 doanh nghiệp — không cần nhớ thêm mật khẩu.

Luồng đăng nhập

  1. Người dùng truy cập trang đăng nhập WordPress (/wp-login.php hoặc /login).
  2. Plugin tự động chuyển hướng đến Microsoft Entra ID để xác thực.
  3. Người dùng đăng nhập bằng tài khoản Microsoft 365 doanh nghiệp.
  4. Sau khi xác thực thành công, người dùng được chuyển hướng về WordPress với phiên đăng nhập hợp lệ.

Yêu cầu

  • WordPress 6.0+
  • PHP 8.0+
  • Microsoft 365 Business / Enterprise (có Microsoft Entra ID / Azure AD)
  • HTTPS (bắt buộc cho OpenID Connect)

Tính năng chính

🔑

Đăng nhập một lần (SSO)

Người dùng đăng nhập WordPress bằng tài khoản Microsoft 365 doanh nghiệp. Hỗ trợ OAuth 2.0 và OpenID Connect.

🔄

Đồng bộ người dùng tự động

Tự động tạo và đồng bộ người dùng WordPress từ Microsoft Entra ID. Phân quyền theo nhóm Azure AD.

🛡️

Bảo mật doanh nghiệp

Xác thực đa lớp (MFA), kiểm soát truy cập theo vai trò, audit log đầy đủ. Tuân thủ tiêu chuẩn bảo mật doanh nghiệp.

👥

Role Mapping

Ánh xạ nhóm Azure AD sang vai trò WordPress. Hỗ trợ phân quyền chi tiết theo nhóm bảo mật.

🔗

PKCE Flow

Hỗ trợ Proof Key for Code Exchange — giao thức xác thực an toàn nhất cho ứng dụng web.

📋

Audit Log

Ghi lại tất cả hoạt động đăng nhập, đồng bộ và thay đổi phân quyền. Tích hợp với WordPress Event Log.

⚙️ Hướng dẫn cài đặt & cấu hình

Hướng dẫn chi tiết cho Developer và System Admin.

1. Cài đặt Plugin

Phương thứcHướng dẫn
WordPress.orgVào Plugins → Add New, tìm "SSO for Microsoft Entra", cài đặt và kích hoạt.
Upload ZIPTải ZIP từ WordPress.org, vào Plugins → Add New → Upload Plugin.
Composercomposer require codetot/sso-for-microsoft-entra
WP-CLIwp plugin install sso-for-microsoft-entra --activate

2. Đăng ký ứng dụng trên Azure

  1. Truy cập Azure PortalMicrosoft Entra IDApp registrations.
  2. Chọn New registration.
  3. Đặt tên (vd: "WordPress SSO"), chọn Accounts in this organizational directory only.
  4. Mục Redirect URI: chọn Web và nhập https://your-site.com/wp-admin/admin-ajax.php?action=entra-sso-callback.
  5. Click Register.
  6. Ghi lại Application (client) IDDirectory (tenant) ID.

3. Cấu hình Plugin

Sau khi cài đặt, vào Settings → SSO for Microsoft Entra và nhập:

TrườngGiá trị
Tenant IDDirectory ID từ Azure Portal
Client IDApplication ID từ Azure Portal
Client SecretClient secret đã tạo trong Azure Portal
Redirect URITự động điền, kiểm tra khớp với Azure
Default RoleVai trò WordPress mặc định cho user mới (vd: subscriber)
Enable Auto-ProvisionBật để tự động tạo user WordPress khi đăng nhập lần đầu

4. Cấu hình qua WP-CLI

# Set tenant ID
wp option update entra_sso_tenant_id "your-tenant-id"

# Set client ID
wp option update entra_sso_client_id "your-client-id"

# Set client secret (được mã hóa khi lưu)
wp option update entra_sso_client_secret "your-client-secret"

# Kiểm tra trạng thái
wp option get entra_sso_settings

5. Cấu hình qua wp-config.php

define( 'ENTRA_SSO_TENANT_ID', 'your-tenant-id' );
define( 'ENTRA_SSO_CLIENT_ID', 'your-client-id' );
define( 'ENTRA_SSO_CLIENT_SECRET', 'your-client-secret' );
define( 'ENTRA_SSO_DEFAULT_ROLE', 'subscriber' );
define( 'ENTRA_SSO_AUTO_PROVISION', true );

Troubleshooting

🔴 Lỗi "Redirect URI mismatch"

Kiểm tra Redirect URI trong Azure Portal khớp chính xác với URI trong plugin. Chú ý HTTPS, không có dấu / ở cuối.

🟠 Lỗi "Invalid client secret"

Client secret có thể đã hết hạn. Tạo secret mới trong Azure Portal → Certificates & secrets.

🔴 User không được tạo tự động

Kiểm tra Auto-Provision đã được bật. Nếu dùng wp-config.php, đảm bảo ENTRA_SSO_AUTO_PROVISIONtrue.

🔒 Bảo mật

SSO for Microsoft Entra được thiết kế với các tiêu chuẩn bảo mật cao nhất cho doanh nghiệp.

Giao thức xác thực

  • OpenID Connect — Giao thức xác thực hiện đại dựa trên OAuth 2.0
  • PKCE (Proof Key for Code Exchange) — Ngăn chặn tấn công authorization code interception
  • MFA — Hỗ trợ xác thực đa lớp từ Microsoft Entra ID
  • Conditional Access — Tương thích với chính sách truy cập có điều kiện của Azure AD

Bảo mật dữ liệu

  • Client secret được mã hóa khi lưu trong database WordPress
  • Token phiên được lưu trữ an toàn, tự động hết hạn
  • Không lưu trữ mật khẩu người dùng — xác thực hoàn toàn qua Microsoft Entra ID
  • Audit log ghi lại tất cả hoạt động đăng nhập và thay đổi phân quyền

Role Mapping

Azure AD GroupWordPress Role
WordPress Administratorsadministrator
WordPress Editorseditor
WordPress Authorsauthor
WordPress Subscriberssubscriber (mặc định)

Có thể tùy chỉnh mapping qua filter entra_sso_role_mapping.

❓ Câu hỏi thường gặp

Các câu hỏi phổ biến về SSO for Microsoft Entra.

SSO for Microsoft Entra có miễn phí không?

Có. Plugin hoàn toàn miễn phí, tải từ WordPress.org. Bạn chỉ cần có Microsoft 365 Business/Enterprise để sử dụng Microsoft Entra ID.

Cần yêu cầu hệ thống gì?

WordPress 6.0+, PHP 8.0+, HTTPS. Tài khoản Microsoft 365 Business hoặc Enterprise có Microsoft Entra ID (Azure AD).

Plugin có hỗ trợ nhiều site không?

Có. Plugin hỗ trợ WordPress Multisite. Bạn có thể cấu hình SSO cho toàn bộ mạng lưới site hoặc từng site riêng lẻ.

Có thể tùy chỉnh giao diện trang đăng nhập không?

Có. Plugin cung cấp filter entra_sso_login_button_html để tùy chỉnh HTML nút đăng nhập, và action entra_sso_login_form để thêm nội dung vào form đăng nhập.

Làm thế nào để test trước khi bật cho toàn bộ người dùng?

Bạn có thể bật chế độ Maintenance Mode trong cài đặt plugin, chỉ cho phép admin IP được chỉ định đăng nhập bằng SSO trong quá trình test.

Plugin có hỗ trợ Azure AD B2C không?

Hiện tại plugin hỗ trợ Microsoft Entra ID (Azure AD) cho doanh nghiệp. Hỗ trợ Azure AD B2C đang được phát triển.