Get in touch
or send us a question?
CONTACT

LẤY THÔNG TIN NGƯỜI DÙNG TỪ AZURE ACTIVE DIRECTORY VỚI ỨNG DỤNG AZURE SSO CỦA MICROSOFT

Khi làm việc với tính năng Azure SSO (single-sign-on) đăng nhập một lần của microsoft thông qua Azure Active Directory (AAD ) việc cần thiết của mỗi developer chúng ta là lấy được thông tin của user thông qua AAD để hiện thị các thông tin lên site của chúng ta cũng như các thông tin như ngày giờ hết hạn của thông tin đăng nhập, có thể hiểu là những thông tin liên quan đến user đã login thông qua AAD.

Để sử dụng được userinfo endpoint của microsoft trong AAD bạn cần lấy được access token để truy cập vào thông tin user, sau đây mình hướng dẫn lấy thông tin user trong AAD

Cách lấy TOKEN (V1)

Đầu tiên bạn phải lấy được auth code

Trên trình duyệt bạn gửi request như sau:

  1. Gửi request với tham số như sau:
    https://login.microsoftonline.com/{tenant}/oauth2/authorize?client_id={appid}&scope=openid%20offline_access%20profile&redirect_uri={redirect_uri}&response_type=code

Trong đó:

client_id: là id của application trong AAD

redirect_uri: là uri mà kết quả trả về sẽ redirect đến

Kết quả trả về:
https://localhost:44555/?code=AQABAAIAAAAP0wLlqdLVToOpA4kwzSnx6BjceMnEMcvAOdHgnHs3FJWDCqJbpVc5kQWtNUD8X-bUSCT1iiYd_vmY-G6nA2RPJK7C1GnSclx3UmUvIQWrANdZfoEZGY_sfTOvZ5Y6S3FVZExIue-vj89JAcJ40nMRBN…

Kết quả trả về:

CALL USER ENDPOINT

Sau khi có các thông tin về token thì chúng ta dùng các token đó để gọi API để lấy thông tin user (https://login.microsoftonline.com/common/openid/userinfo) bằng cách sử dụng access token, cách call api như sau:

Kết quả:

CÁCH KIỂM TRA THÔNG TIN USER BẰNG ID_TOKEN DỰA VÀ JWT TOKEN

Bạn có thể check thông tin user dựa vào id_token bằng https://jwt.ms/ , bạn chỉ cần paste id_token vào ô textbox bên trên thì thông tin user sẽ hiện bên dưới như ví dụ sau.

Các ENDPOINT CỦA MICROSOFT

Thông tin user endpoint phụ thuộc vào version.

 MetadataUserInfo
V1https://login.microsoftonline.com/{tenant}/.well-known/openid-configurationhttps://login.microsoftonline.com/common/openid/userinfo (Azure AD UserInfo)
V2https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configurationhttps://graph.microsoft.com/oidc/userinfo
(MS Graph UserInfo)

Nguồn:

Tham khảo các endpoint của Microsoft

Microsoft identity platform UserInfo endpoint