Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • ​ [Hướng dẫn triển khai xác thực OIDC với Microsoft Entra ID trên Ubuntu]​


    Mọi người đang học về xác thực, OIDC, hoặc muốn tích hợp Microsoft Entra ID (Azure AD) vào app web thì đây là tutorial cơ bản, triển khai nội bộ trên Ubuntu nha!
    Nói sơ một chút về flow xác thực ( tham khảo hình nhé )
    • User → Web App: Người dùng truy cập ứng dụng web.
    • Web App → Entra ID: Ứng dụng chuyển hướng người dùng đến Microsoft Entra ID (Identity Provider) để đăng nhập.
    • User Authenticates: Người dùng nhập thông tin đăng nhập tại Entra ID.
    • Entra ID → Web App: Sau khi xác thực thành công, Entra ID trả về Authorization Code cho ứng dụng.
    • Web App → Token Endpoint: Ứng dụng gửi mã code này đến token endpoint của Entra ID để đổi lấy token.
    • Nhận Tokens: Entra ID trả về ID Token (xác định danh tính), Access Token (truy cập API), và có thể có Refresh Token.
    Click image for larger version

Name:	528379613_1415416532842400_4224507836233275788_n.jpg
Views:	16
Size:	26.2 KB
ID:	435044




    Yêu cầu:
    • Ubuntu (Server hoặc Desktop)
    • Node.js + npm
    • Tài khoản Azure (Entra ID)
    • SSL tự ký để chạy HTTPS
    Các bước thực hiện:
    Tạo App trên Azure
    → Vào portal.azure.com
    → App Registrations → New registration
    → Chọn kiểu: Single tenant
    → Redirect URI:
    https://<your-server-ip>:3000/auth/callback
    Lưu ý: bạn có thể dùng ngrok để host ra public IP.
    Lấy thông tin cấu hình
    → Lưu lại:
    • Client ID
    • Tenant ID
    • Client Secret
    Tạo project Node.js
    mkdir myentraapp && cd myentraapp
    npm init -y
    npm install express express-session passport passport-azure-ad

    Code app.js
    → Sử dụng Passport + OIDC Strategy
    → Cấu hình callback /auth/callback và login /login
    → Dùng HTTPS với cert tự ký (openssl)
    Tạo chứng chỉ tự ký
    mkdir certs && cd certs
    openssl req -nodes -new -x509 -keyout server.key -out server.cert -days 365

    CN nhập: localhost
    Test flow:
    • Mở https://<your-ip>:3000
    • Nhấn Login with Entra ID
    • Đăng nhập bằng tài khoản Microsoft (thuộc tenant) → OK
    • Vào Azure → Users → Sign-in logs để kiểm tra
    Click image for larger version

Name:	529202570_1415417089509011_3546716733767756596_n.jpg
Views:	19
Size:	40.8 KB
ID:	435045





    Đăng nhập tài khoản ngoài tenant → sẽ báo lỗi (vì chọn Single-tenant)​
    Click image for larger version

Name:	528371036_1415417376175649_2109614196289935195_n.jpg
Views:	17
Size:	34.8 KB
ID:	435046

    Attached Files
Working...
X