【问题标题】:asp.net mvc and azure active directory security group based authorizationasp.net mvc 和 azure 基于活动目录安全组的授权
【发布时间】:2018-09-23 20:16:11
【问题描述】:

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

Visual Studio 本身可以使用向导完成 Active Directory 身份验证,但不确定如何通过 AAD 安全组执行授权。

附:我是 ASP.NET 安全新手

【问题讨论】:

    标签: c# asp.net azure azure-active-directory


    【解决方案1】:

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

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

    Authorization in a web app using Azure AD groups & group claims

    Group claims

    实施授权逻辑时要考虑的其他信息

    1. 您已经特别询问了组,但您也应该考虑使用应用程序角色,它可以帮助您实现基于角色的授权逻辑。查看 Microsoft 文档链接 Application Roles。这是另一个类似问题的链接,其中我提供了有关应用程序角色和组的更详细信息以及两者的示例代码的链接。 Azure Active Directory Integration with Custom RBAC

      一旦您了解了应用程序角色和组的使用/用途,您就完全可以决定要基于登录用户的角色和组信息的组合而不是仅一个来确定您的授权逻辑。

    2. 如果用户属于多个组(6 个或更多 AFAIK),Azure AD 令牌不会作为令牌的一部分直接通过“组”发送,而是发送一个超额指示符,然后您可以在单独的呼叫中查询组。在此处查看令牌相关文档 - Claims in id_tokens

    【讨论】:

    • 令牌将包含组 ID 如果应用程序表明它需要它们在清单中。还记得极限。不过,基于应用程序中的角色和基于组的分配(如果可用)的安全性通常是更好的选择。
    • 谢谢@junnas。我已在与此主题相关的其他答案中提供了该信息,但在这里添加它也很有意义,只是为了提供更完整的图片,然后应用程序开发人员可以决定.. 感谢您的意见。跨度>
    • @juunas 我已经编辑了我的答案以包含该信息。请随时提出您认为相关的任何其他建议。
    • 嗨@RohitSaigal,如果有更多组,那么它包含我必须使用授权令牌从外部调用的图形 api 链接。
    • 是的@BhavyBhut .. 是正确的.. 请查看我的答案的“要考虑的其他信息...”部分中的第 2 点以了解详细信息...这就是组超龄指示器告诉您的内容。 .
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-03-01
    • 2011-12-04
    • 2017-10-02
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2016-02-20
    相关资源
    最近更新 更多