Azure active directory 企业应用程序中基于组角色的授权

Azure active directory 企业应用程序中基于组角色的授权,azure-active-directory,azure-web-app-service,microsoft-identity-platform,Azure Active Directory,Azure Web App Service,Microsoft Identity Platform,我已使用Azure应用程序注册来注册我的应用程序。在清单中,我添加了批准。然后,我使用Azure企业应用程序将用户和组添加到我创建的批准中。我是否需要更新清单中的“groupMembershipClaims”:“SecurityGroup”,因为我在企业应用程序中添加了组?我可以在企业应用程序中对组使用基于角色的声明吗 您可能混淆了两个完全不同的概念。我将在下面给出关于每一项的详细信息,然后您可以决定您的申请是否真的需要团体索赔 我的猜测是,您对角色声明感兴趣,因此无需更新应用程序清单以包含“g

我已使用Azure应用程序注册来注册我的应用程序。在清单中,我添加了批准。然后,我使用Azure企业应用程序将用户和组添加到我创建的批准中。我是否需要更新清单中的“groupMembershipClaims”:“SecurityGroup”,因为我在企业应用程序中添加了组?我可以在企业应用程序中对组使用基于角色的声明吗

您可能混淆了两个完全不同的概念。我将在下面给出关于每一项的详细信息,然后您可以决定您的申请是否真的需要团体索赔

我的猜测是,您对角色声明感兴趣,因此无需更新应用程序清单以包含
“groupMembershipClaims”:“SecurityGroup”
,但您是应用程序需求的最佳判断者

应用程序角色

您可以通过编辑应用程序清单和添加批准来定义应用程序角色。现在,您可以将这些角色分配给单个用户,甚至是Azure广告组

  • 为单个用户分配角色

    通过转到企业应用程序,然后使用门户UI,可以将角色分配给各个用户。看起来您已经为您的应用程序完成了此操作。当用户登录到您的应用程序时,传入的访问令牌包含该用户的角色声明。e、 g.
    “角色”:[“MyAppCustomRole1”]

  • 为Azure广告组分配角色

    您可以将应用程序角色分配给Azure AD组(如果您有Azure AD Premium)。这非常方便,尤其是在与大量用户打交道时。通过这种方式,您不需要将appRole分配给单个用户,但可以凭借其组成员身份进行批量分配

    如果这是您希望执行的操作,则无需更新应用程序清单以包含
    “GroupMembershipClaimes”:“SecurityGroup”

样本代码-

Microsoft文档-

集团索赔

通过编辑应用程序的清单(可直接在Azure Portal中完成),并根据需要将
“groupMembershipClaims”
属性设置为
“All”
“SecurityGroup”
,可以使组声明成为应用程序访问令牌的一部分

一旦应用程序清单如前所述更新,您就可以将组Id作为声明的一部分。下面是一个解码的JWT令牌的快速示例。请注意,与前面解释的角色声明相比,这是一个完全不同的声明

样本代码-

组v/s角色

请务必了解Azure广告组及其成员资格完全独立于任何单个应用程序

Azure广告组的生存期也可能不同,即在删除应用程序或不再需要应用程序后,组可能会继续存在很长时间

另一方面,应用程序角色与一个特定的应用程序密切相关

对于某些应用程序,授权策略是检查用户的组成员身份,而不是特定于应用程序的角色。我还看到过应用程序根据特定于应用程序的角色和用户所属组的组合做出授权决策的情况


另一方面,为了确保令牌大小不超过HTTP头大小限制,Azure AD限制了它在groups声明中包含的ObjectID的数量。如果用户是超过超龄限制的组的成员(SAML令牌为150,JWT令牌为200),则Azure AD不会在令牌中发出组声明。相反,它在令牌中包含一个overage声明,指示应用程序查询Graph API以检索用户的组成员资格

其他相关SO员额: