使用Azure AD

问题描述

嗨,我正在研究Angular SPA和Web API核心。我正在尝试实施身份验证和授权。我现在已经完成了以下操作。

  1. 为我的前端应用程序注册一个应用程序,并添加了必需的重定向uri和修改的清单文件以启用隐式流程。还为其分配了一些角色。
  2. 又为我的后端注册一个应用程序。我以api / clientid的形式添加了作用域。然后添加在步骤1中创建的客户端应用程序ID。
  3. 用户可以成功登录到应用程序。
  4. 现在,我的JWT令牌已在索赔中起作用。在我的API中,我添加了[Authorize(Roles =“ Engineers,Admins”)]
  5. 因此,如果用户在JWT令牌中具有任何工程师或管理员角色,那么他们将被允许访问我的API。
  6. 到目前为止,我的授权正常。但是进入身份验证部分,当前我的azure AD租户的所有用户都可以登录用户可以点击我的前端url并添加用户名和密码,然后它将询问MFA,他们将进入应用程序主页)。
  7. 如果用户是上述任何角色的一部分,那么只有他们才能在主页上看到数据,因为在主页上我正在调用一些API,并且添加了[Authorize(Roles =“ Engineers,Admins”)]。
  8. 如果假设用户不是上述角色的一部分,他们仍然可以登录登录意味着他们可以添加用户名,密码和MFA),他们将进入首页,但是他们看不到任何数据,因为api仅当他们是Engineers,Admins角色的一部分时才能访问。
  9. 我的问题是,如果用户不属于Engineers,Admins角色,为什么他们能够登录并进入首页。应该在登录步骤本身中对其进行限制。
  10. 我不太确定自己在这里问对了事,还是只是在身份验证与授权之间混淆了自己。
  11. 目前,我正在根据角色进行授权。我也可以使用网上论坛来完成同样的事情。在声明中,我可以返回组并创建策略并进行授权。如果用户是该组的成员,那么我可以授权。我试图了解在各个小组中使用角色将获得什么优势。
  12. 目前,我有开发,生产和非生产环境。但是Azure AD是通用的,因为没有适用于Azure AD的环境。因此,在环境之间在azure广告中注册单独的应用程序是一个好主意,还是在环境之间在azure AD中使用注册的同一应用程序?如果我为每种环境创建单独的应用程序,我将获得什么优势?

我真的是在试图理解上述概念,有人可以给我一些关于以上事情的见解吗?如果有人帮助我理解这个概念,那对我真的很有帮助。任何帮助将不胜感激。谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)