单页应用程序:应用注册
要在 Microsoft 标识平台中注册单页应用程序 (SPA),请完成以下步骤。 注册步骤在支持隐式授权流的 MSAL.js 1.0 和支持使用 PKCE 的授权代码流的 MSAL.js 2.0 之间有所不同。 如果使用的是 MSAL.js 1.0,建议迁移到 MSAL.js 2.0,以利用更安全的 PKCE 授权代码流。
创建应用注册
提示
本文中的步骤可能因开始使用的门户而略有不同。
对于基于 MSAL.js 1.0 和 2.0 的应用程序,请先完成以下步骤以创建初始应用注册。
- 登录 Microsoft Entra 管理中心。
- 如果你有权访问多个租户,请使用顶部菜单中的“设置”图标 ,通过“目录 + 订阅”菜单切换到你希望在其中注册应用程序的租户。
- 转到“标识”>“应用程序”>“应用注册”,然后选择“新建注册”。
- 输入应用程序的名称。 应用的用户可能会看到此名称,你稍后可对其进行更改。
- 选择应用程序支持的帐户类型。 请勿输入“重定向 URI”。 有关不同帐户类型的说明,请参阅注册应用程序。
- 选择“注册”以创建应用注册。
接下来,使用“重定向 URI”配置应用注册,以指定 Microsoft 标识平台应将客户端与任何安全令牌重定向到的位置。 按照适用于将在应用程序中使用的 MSAL.js 版本的步骤操作:
请记住,MSAL.js 2.0+ 支持使用 PKCE 的授权代码流,这比隐式授权流更安全。 如果使用的是 MSAL.js 1.0,请考虑迁移到 MSAL.js 2.0,以利用 PKCE 的授权代码流。
重定向 URI:采用身份验证代码流的 MSAL.js 2.0
按照以下步骤为使用 MSAL.js 2.0 或更高版本的应用添加重定向 URI。 MSAL.js 2.0+ 支持使用 PKCE 和 跨域资源共享 (CORS) 的授权代码流,以响应浏览器第三方 Cookie 限制。 MSAL.js 2.0+ 中不支持隐式授权流。
- 在 Microsoft Entra 管理中心,选择在“创建应用注册”中创建的应用注册。
- 在“管理”下,选择“身份验证”>“添加平台”。
- 在“Web 应用程序”下,选择“单页应用程序”磁贴。
- 在“重定向 URI”下,输入重定向 URI。 请勿选中“隐式授权和混合流”下的任一复选框 。
- 选择“配置”以添加重定向 URI。
SPA 现已注册到重定向 URI。 通过使用“添加平台”窗格中的“单页应用程序”磁贴来配置重定向 URI,应用程序注册配置支持使用 PKCE 和 CORS 的授权代码流。
重定向 URI:采用隐式流的 MSAL.js 1.0
请按照以下步骤为使用 MSAL.js 1.3 或更早版本的 SPA 和隐式授权流添加重定向 URI。 使用 MSAL.js 1.3 或更早版本的应用程序不支持身份验证代码流。
- 在 Microsoft Entra 管理中心,选择在“创建应用注册”中创建的应用注册。
- 在“管理”下,选择“身份验证”>“添加平台”。
- 在“Web 应用程序”下,选择“单页应用程序”磁贴。
- 在“重定向 URI”下,输入重定向 URI。
- 启用“隐式授权和混合流”:
- 选择“配置”以添加重定向 URI。
SPA 现已注册到重定向 URI。 通过选择“ID 令牌”和“访问令牌”中的一个或选择两个,即表示应用程序注册支持隐式授权流。
关于授权流的注意事项
默认情况下,使用 SPA 平台配置创建的应用注册会启用授权代码流。 要利用此流,你的应用程序必须使用 MSAL.js 2.0 或更高版本。
使用 MSAL.js 1.3 的 SPA 仅限于隐式授权流。 当前的 OAuth 2.0 最佳做法建议为 SPA 使用授权代码流而非隐式流。 拥有使用期有限的刷新令牌还可以帮助你的应用适应 Safari ITP 之类的新式浏览器 cookie 隐私限制。
当应用注册代表的所有生产 SPA 都使用 MSAL.js 2.0 和授权代码流时,请取消选中 Microsoft Entra 管理中心中应用注册的“身份验证”窗格上的隐式授权设置。 如果仍让 SPA 使用 MSAL.js 1.x,请启用隐式流(选中)。
后续步骤
配置应用代码,以使用在应用的代码配置中创建的应用注册。