首页 > 解决方案 > 基于 Azure AD 组的登录和 MS 图形 API

问题描述

我有 Angular 4 SPA、Web API(.net core 2.0) 和 Azure AD

我的要求是:

1.将 SPA 的身份验证(登录)限制为仅某些 azure AD 组。例如,我有两个组“销售”和“营销”,如果用户是两个组中的任何一个组的成员,那么只有用户应该能够登录

2.一旦用户登录,他就可以使用Microsoft Graph API对其他用户进行某些管理操作

我的方法

问题

标签: azureazure-active-directorymicrosoft-graph-apiasp.net-core-2.0asp.net-core-webapi

解决方案


这就是我解决它的方法

我使用了 Azure AD V2.0 端点、Angular 和 .net core 2.0

  1. 使用隐式流从 Azure AD 获取 ID 和访问令牌。此时我没有用户的组信息
  2. 创建受 Azure AD保护的Web api 。它还识别从步骤 1 获得的访问令牌
  3. 将访问令牌传递给 API 并检索组信息以决定用户是否可以进入 SPA
  4. 实现了声明转换并将其缓存在 Web API 中
  5. 在 Web API 中创建策略以确保仅允许某些组的成员访问 API 端点
  6. Web API 设置为使用客户端凭据授予流与 Graph API 进行通信

推荐阅读