C# 基于asp.net mvc和azure active directory安全组的授权

C# 基于asp.net mvc和azure active directory安全组的授权,c#,asp.net,azure,azure-active-directory,C#,Asp.net,Azure,Azure Active Directory,我正在寻找ASP.NET MVC应用程序的帮助。它对单个租户azure active directory用户进行身份验证,并可以使用active directory安全组对用户进行授权。i、 如果用户是该安全组的一部分,则只允许访问网站,否则访问被拒绝 Active directory身份验证可以由visual studio本身使用向导完成,但不确定如何通过AAD安全组执行授权 另外,我对ASP.NET安全性不熟悉当用户登录到应用程序时,一旦您适当修改应用程序的清单,来自Azure AD的传入令

我正在寻找ASP.NET MVC应用程序的帮助。它对单个租户azure active directory用户进行身份验证,并可以使用active directory安全组对用户进行授权。i、 如果用户是该安全组的一部分,则只允许访问网站,否则访问被拒绝

Active directory身份验证可以由visual studio本身使用向导完成,但不确定如何通过AAD安全组执行授权


另外,我对ASP.NET安全性不熟悉

当用户登录到应用程序时,一旦您适当修改应用程序的清单,来自Azure AD的传入令牌将包含组声明(有关步骤,请参阅下面的示例应用程序链接)。然后,您的应用程序代码可以读取这些声明,并根据它们做出授权决策

下面是一个基于组声明进行授权的示例应用程序-

执行授权逻辑时需要考虑的附加信息 >P>您已经明确地询问了组,但是您也应该考虑使用应用程序角色,这可以帮助您实现基于角色的授权逻辑。查看Microsoft文档链接。这里有一个指向另一个类似问题的链接,我在这里提供了有关应用程序角色和组的更详细信息,以及指向这两个应用程序的示例代码的链接。

一旦您了解了应用程序角色和组的用法/用途,您就完全有可能决定将授权逻辑建立在登录用户的角色和组信息的组合上,而不仅仅是一个

  • 如果用户是多个组(6个或更多AFAIK)的一部分,Azure AD token不会作为token的一部分直接跨“组”发送,而是发送一个超龄指示符,然后您可以在单独的调用中查询这些组。请参阅此处的令牌相关文档-


  • 如果应用程序表示希望在清单中包含组ID,则令牌将包含组ID。还要记住极限。不过,基于应用程序中的角色和基于组的分配(如果可用)的安全性通常是更好的选择。谢谢@junnas。我已经在与本主题相关的其他答案中提供了这些信息,但在这里添加这些信息也很有意义,只是为了提供更完整的图片,然后应用程序开发人员可以决定。。谢谢您的输入。@juunas我已经编辑了我的答案以包含这些信息。请随意建议您看到的任何其他相关内容。hi@Rohistaigal如果有更多组,则它包含graph api链接,我必须使用授权令牌从外部调用该链接。是@BhavyBut。。是的。。请参阅第2点的“附加信息考虑……”部分我的答案的细节…这就是团体超龄指标告诉你的。。