0
  1. 我在前端有 React 应用程序,我已在 Azure AD 中将其注册为 REACT_AZURE,并使用 @azure/msal-react npm 包对用户进行身份验证。

  2. 为了保护我的 Express 路由,我在 Azure AD 中将另一个应用程序注册为 API_AZURE,并在“公开 API”部分添加了范围“access_as_user”。

  3. 在“API 权限”部分的 REACT_AZURE 应用程序中,我添加了“access_as_user”的权限。现在我可以获取“access_as_user”范围的访问令牌并对我的快速服务器进行 API 调用。

  4. 在我的受保护路线中,我使用 passport-azure-ad BearerStrategy 来验证访问令牌,如果它有效,我有权获取资源。

这是正确的流程吗?我是否必须向 Azure AD 注册两个应用程序?如果没有,我该怎么做?

4

1 回答 1

2

这是正确的流程吗?我是否必须向 Azure AD 注册两个应用程序?如果没有,我该怎么做?

当然,你的过程是绝对正确的。您需要在 Azure 中注册两个应用程序,一个代表客户端应用程序,另一个代表 api 应用程序。然后暴露api应用的api,将客户端应用添加到api应用中。然后让用户登录客户端应用完成鉴权并获取token,并使用token调用api。我之前回答过类似的问题,你可以参考一下。

但是我不确定是否要根据用户角色控制哪些用户可以访问 api。如果您只希望租户中的某些用户访问 api,那么您可以添加一个步骤,即创建应用角色并授予您希望访问 api 的用户。那么租户中没有被授予app 角色的用户将没有访问 api 的权限。查看更详细的答案

于 2021-06-09T07:34:23.757 回答