适用于:  员工租户
 员工租户  外部租户(了解详细信息)
 外部租户(了解详细信息)
在本快速入门中,你将使用示例 Web 应用演示如何在员工租户中登录用户和调用 Microsoft Graph API。 示例应用使用 Microsoft身份验证库 来处理身份验证。
在开始之前,请使用此页面顶部的 “选择租户类型 选择器”来选择租户类型。 Microsoft Entra ID 提供两种租户配置:员工和外部。 员工租户配置适用于员工、内部应用和其他组织资源。 外部租户适用于面向客户的应用。
先决条件
- 拥有有效订阅的 Azure 帐户。 如果还没有帐户,请 免费创建帐户。
- Azure 帐户必须拥有管理应用程序的权限。 以下任何Microsoft Entra 角色都包含所需的权限:- 应用程序管理员
- 应用程序开发人员
 
- 工作人员租户。 可以使用默认目录或 设置新租户。
- Visual Studio Code 或其他代码编辑器。
- 在 Microsoft Entra 管理中心注册一个新应用,并配置为仅适用于此组织目录中的帐户。 有关更多详细信息 ,请参阅注册应用程序 。 在应用程序 概述 页中记录以下值供以后使用: - 应用程序(客户端)ID
- 目录(租户)ID
 
- 使用 Web 平台配置添加以下重定向 URI。 有关更多详细信息 ,请参阅如何在应用程序中添加重定向 URI 。
- 
              重定向 URI:http://localhost:3000/auth/redirect
- 
              前端通道注销 URL: https://localhost:5001/signout-callback-oidc
 
- 
              重定向 URI:
- 将客户端密码添加到应用注册。 不要 在生产应用中使用客户端机密。 请改用证书或联合凭据。 有关详细信息,请参阅 向应用程序添加凭据。
- Node.js
克隆或下载示例 Web 应用程序
若要获取示例应用程序,可以从 GitHub 克隆它或将其下载为 .zip 文件。
- 下载 .zip 文件,然后将其解压缩到名称长度少于 260 个字符的文件路径,或克隆存储库: 
- 若要克隆示例,请打开命令提示符并导航到要创建项目的位置,然后输入以下命令: - git clone https://github.com/Azure-Samples/ms-identity-node.git
配置示例 Web 应用
若要使用示例应用登录用户,需要使用应用和租户详细信息对其进行更新:
在 ms-identity-node 文件夹中,打开 App/.env 文件,然后替换以下占位符:
| Variable | Description | 示例 | 
|---|---|---|
| Enter_the_Cloud_Instance_Id_Here | 在其中注册应用程序的 Azure 云实例 | https://login.microsoftonline.com/(包括尾部正斜杠) | 
| Enter_the_Tenant_Info_here | 租户 ID 或主域 | contoso.microsoft.com或aaaabbbb-0000-cccc-1111-dddd2222eeee | 
| Enter_the_Application_Id_Here | 已注册的应用程序的客户端 ID | 00001111-aaaa-2222-bbbb-3333cccc4444 | 
| Enter_the_Client_Secret_Here | 注册的应用程序的客户端密码 | A1b-C2d_E3f.H4i,J5k?L6m!N7o-P8q_R9s.T0u | 
| Enter_the_Graph_Endpoint_Here | 应用调用的 Microsoft Graph API 云实例 | https://graph.microsoft.com/(包括尾部正斜杠) | 
| Enter_the_Express_Session_Secret_Here | 用于对 Express 会话 Cookie 进行签名的随机字符字符串 | A1b-C2d_E3f.H4... | 
进行更改后,文件应类似于以下代码片段:
CLOUD_INSTANCE=https://login.microsoftonline.com/
TENANT_ID=aaaabbbb-0000-cccc-1111-dddd2222eeee
CLIENT_ID=00001111-aaaa-2222-bbbb-3333cccc4444
CLIENT_SECRET=A1b-C2d_E3f.H4...
REDIRECT_URI=http://localhost:3000/auth/redirect
POST_LOGOUT_REDIRECT_URI=http://localhost:3000
GRAPH_API_ENDPOINT=https://graph.microsoft.com/
EXPRESS_SESSION_SECRET=6DP6v09eLiW7f1E65B8k
运行和测试示例 Web 应用
已配置示例应用。 可以继续运行并测试它。
- 若要启动服务器,请从项目目录中运行以下命令: - cd App npm install npm start
- 转到 - http://localhost:3000/。
- 选择“登录”以启动登录过程。 
首次登录时,系统会提示你提供同意,以允许应用程序登录和访问配置文件。 成功登录后,你将被重定向回应用程序主页。
应用的工作原理
该示例在 localhost 端口 3000 上托管 Web 服务器。 当 Web 浏览器访问此地址时,应用将呈现主页。 用户选择 “登录”后,应用将通过 MSAL 节点库生成的 URL 将浏览器重定向到 Microsoft Entra 登录屏幕。 用户同意后,浏览器会将用户重定向回应用程序主页,以及 ID 和访问令牌。
相关内容
- 了解如何在教程中生成 Node.js Web 应用以登录用户并调用 Microsoft Graph API :在 Node.js 和 Express Web 应用中登录用户并获取 Microsoft Graph 的令牌。
在本快速入门中,你将使用示例 Web 应用来演示如何在外部租户中登录用户。 示例应用使用 Microsoft身份验证库 来处理身份验证。
在开始之前,请使用此页面顶部的 “选择租户类型 选择器”来选择租户类型。 Microsoft Entra ID 提供两种租户配置:员工和外部。 员工租户配置适用于员工、内部应用和其他组织资源。 外部租户适用于面向客户的应用。
先决条件
- 拥有有效订阅的 Azure 帐户。 如果还没有帐户,请 免费创建帐户。
- Azure 帐户必须拥有管理应用程序的权限。 以下任何Microsoft Entra 角色都包含所需的权限:- 应用程序管理员
- 应用程序开发人员
 
- 外部租户。 若要创建一个,请从以下方法中进行选择:- 使用 Microsoft Entra 外部 ID 扩展 直接在 Visual Studio Code 中设置外部租户。 (推荐使用)
- 在 Microsoft Entra 管理中心创建新的外部租户。
 
- 一个用户流。 有关详细信息,请参阅 为外部租户中的应用创建自助服务注册用户流。 此用户流可用于多个应用程序。
- Visual Studio Code 或其他代码编辑器。
- 在 Microsoft Entra 管理中心注册一个新应用,并配置为仅适用于此组织目录中的帐户。 有关更多详细信息 ,请参阅注册应用程序 。 在应用程序 概述 页中记录以下值供以后使用: - 应用程序(客户端)ID
- 目录(租户)ID
 
- 使用 Web 平台配置添加以下重定向 URI。 有关更多详细信息 ,请参阅如何在应用程序中添加重定向 URI 。
- 
              重定向 URI:http://localhost:3000/auth/redirect
- 
              前端通道注销 URL: https://localhost:5001/signout-callback-oidc
 
- 
              重定向 URI:
- 将客户端密码添加到应用注册。 不要 在生产应用中使用客户端机密。 请改用证书或联合凭据。 有关详细信息,请参阅 向应用程序添加凭据。
- 将应用程序添加到用户流
- Node.js
克隆或下载示例 Web 应用程序
若要获取示例应用程序,可以从 GitHub 克隆它,也可以将其下载为 .zip 文件:
- 若要克隆示例,请打开命令提示符并导航到要创建项目的位置,然后输入以下命令: - git clone https://github.com/Azure-Samples/ms-identity-ciam-javascript-tutorial.git
- 或者, 下载示例 .zip 文件,然后将其提取到名称长度少于 260 个字符的文件路径。 
安装项目依赖项
- 打开控制台窗口,并更改为包含 Node.js 示例应用的目录: - cd 1-Authentication\5-sign-in-express\App
- 运行以下命令以安装应用依赖项: - npm install
配置示例 Web 应用
若要使用示例应用登录用户,需要使用应用和租户详细信息对其进行更新:
- 在代码编辑器中,打开 应用\authConfig.js 文件。 
- 查找占位符: - 
              查找 Enter_the_Application_Id_Here并将其替换为之前注册的应用的应用程序(客户端)ID。
- 
              Enter_the_Tenant_Subdomain_Here并将其替换为 Directory (tenant) 子域。 例如,如果租户主域名是contoso.onmicrosoft.com,请使用contoso。 如果没有租户名称,请了解如何 阅读租户详细信息。
- 
              查找 Enter_the_Client_Secret_Here并将其替换为之前复制的应用机密值。
 
- 
              查找 
运行和测试示例 Web 应用
现在可以测试示例 Node.js Web 应用。 你需要启动 Node.js 服务器,并通过浏览器访问它http://localhost:3000。
- 在终端中,运行以下命令: - npm start
- 打开浏览器,然后转到 - http://localhost:3000。 应会看到类似于以下屏幕截图的页面:  
- 页面完成加载后,在出现提示时选择 “登录 ”。 
- 在登录页上,键入你的“电子邮件地址”,选择“下一步”,键入你的“密码”,然后选择“登录”。 如果没有帐户,请选择“无帐户? 创建一个”链接,以启动注册流。 
- 如果选择注册选项,请在填写电子邮件、一次性密码、新密码和更多帐户详细信息后,完成整个注册流程。 你会看到类似于以下屏幕截图的页面。 如果选择登录选项,则会看到类似的页面。   
- 选择 “注销 ”以将用户从 Web 应用注销,或选择“ 查看 ID 令牌声明 ”以查看Microsoft Entra 返回的 ID 令牌声明。 
工作原理
当用户选择 “登录 ”链接时,应用将启动身份验证请求,并将用户重定向到Microsoft Entra 外部 ID。 在出现的登录或注册页上,用户成功登录或创建帐户后,Microsoft Entra 外部 ID 将 ID 令牌返回到应用。 应用验证 ID 令牌、读取声明,并向用户返回安全页。
当用户选择 “注销 ”链接时,应用将清除其会话,然后将用户重定向到Microsoft Entra External ID 注销终结点,以通知用户已注销。
如果要生成与运行的示例类似的应用,请在 自己的 Node.js Web 应用程序文章中完成登录用户 的步骤。
 
              
               
              
               
              
               
              
               
              
               
              
               
              
               
              
              