Microsoft Identity Platform JavaScript 教程
项目介绍
ms-identity-javascript-tutorial
是一个由 Azure-Samples 提供的开源项目,旨在帮助开发者通过一系列章节化的教程,掌握使用 Microsoft Identity Platform 进行现代身份验证的基础知识。该项目使用 Vanilla JavaScript 和 Microsoft Authentication Library for JavaScript (MSAL.js) 来实现用户登录、获取访问令牌以及调用 API 等功能。
项目快速启动
环境准备
在开始之前,请确保你已经安装了以下工具:
- Node.js
- Visual Studio Code (VS Code)
- Azure Tools Extension (可选,用于 Azure 资源管理)
- 现代 Web 浏览器
克隆项目
首先,克隆项目到本地:
git clone https://github.com/Azure-Samples/ms-identity-javascript-tutorial.git
cd ms-identity-javascript-tutorial
安装依赖
进入项目目录后,安装所需的依赖:
npm install
运行项目
启动开发服务器:
npm start
打开浏览器,访问 http://localhost:3000
,你将看到应用的登录页面。
示例代码
以下是一个简单的示例代码,展示了如何使用 MSAL.js 进行用户登录:
import * as msal from "@azure/msal-browser";
const msalConfig = {
auth: {
clientId: "YOUR_CLIENT_ID",
authority: "https://login.microsoftonline.com/YOUR_TENANT_ID",
redirectUri: "http://localhost:3000"
}
};
const msalInstance = new msal.PublicClientApplication(msalConfig);
function login() {
msalInstance.loginPopup()
.then(response => {
console.log("User logged in:", response);
})
.catch(error => {
console.error("Login error:", error);
});
}
document.getElementById("loginButton").addEventListener("click", login);
应用案例和最佳实践
应用案例
- 单页应用 (SPA) 身份验证:使用 MSAL.js 实现用户登录和注销功能,确保用户在单页应用中的身份验证。
- 访问令牌获取:通过 MSAL.js 获取访问令牌,用于调用 Microsoft Graph API 或其他受保护的 API。
- 多租户应用:支持多个 Azure AD 租户的用户登录,适用于 SaaS 应用。
最佳实践
- 使用 PKCE 流:在 SPA 中使用 PKCE (Proof Key for Code Exchange) 流来增强安全性。
- 令牌缓存:利用 MSAL.js 的令牌缓存机制,减少令牌刷新请求的频率。
- 错误处理:在身份验证过程中,处理可能出现的错误,如网络问题、用户取消登录等。
典型生态项目
- Microsoft Graph API:用于访问 Microsoft 365 数据,如用户信息、日历、邮件等。
- Azure Active Directory B2C:用于管理面向消费者的身份验证,支持社交和本地账户。
- Azure App Service:用于托管和部署 Web 应用,支持与 Azure AD 集成。
- Azure Functions:用于构建无服务器应用,可以与 Azure AD 集成以实现身份验证。
通过这些模块的学习和实践,你将能够掌握如何在 JavaScript 应用中集成 Microsoft Identity Platform,实现现代身份验证功能。