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:
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.
Metadata | UserInfo | |
V1 | https://login.microsoftonline.com/{tenant}/.well-known/openid-configuration | https://login.microsoftonline.com/common/openid/userinfo (Azure AD UserInfo) |
V2 | https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration | https://graph.microsoft.com/oidc/userinfo (MS Graph UserInfo) |
Nguồn:
Tham khảo các endpoint của Microsoft
Microsoft identity platform UserInfo endpoint
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE