注册应用程序和创建组的应用程序授权 - Azure AD

时间:2017-12-18 17:12:38

标签: azure azure-active-directory

我有一个在内部运行的Java应用程序,以便管理Azure应用程序注册和组。为此,我在Azure中注册了一个应用程序及其服务原则。我正在使用其中一个样本(https://github.com/Azure-Samples/aad-java-manage-users-groups-and-roles/)。我无法为我的应用程序提供正确的权限,以便它可以注册其他应用程序,创建组,将它们分配给组并执行客户端密钥操作。我收到403未经授权的回复。这些操作的Azure AD权限最少?我应该采取/遵循哪些步骤和选项来在门户中实现这些要求?

由于

更新1 赋予所有者权利是一个重大举措。所以这不是我想要的答案。这就是为什么我没有将它标记为我的问题的解决方案,但如果你愿意这样做肯定会有效。代码也有效。 我的部分问题是最不可能的权限。经过实验,我发现在app权限中:

  1. Windows Azure Active Directory->读写目录数据
  2. Windows Azure Active Directory-> Read Write All Applications
  3. Microsoft Graph->读写目录数据
  4. Microsoft Graph-> Read Write All Domains
  5. Microsoft Graph-> Read Read All Groups
  6. 解决了这个问题。 Active Directory允许我创建应用程序并创建组,图表允许我将应用程序添加到组。将应用程序添加为用户访问管理员而不是图表,也让我将应用程序分组。

    更新2 我试图用另一个应用程序重复相同的过程。这次虽然我给了Update 1相同的权限,但是这次将新的app添加到组失败了403.知道这是如何工作的吗?我真的很困惑......

1 个答案:

答案 0 :(得分:0)

您需要创建服务主体并为其订阅Owner角色。您可以检查代码,新创建的用户将被授予您的订阅CONTRIBUTOR。所以,你的sp需要Owner角色。

  // Assign role to AD user, it needs `Owner` role.

   RoleAssignment roleAssignment1 = authenticated.roleAssignments()
           .define(raName1)
            .forUser(user)
            .withBuiltInRole(BuiltInRole.READER)
            .withSubscriptionScope("3b4d41fa-e91d-4bc7-bc11-13d221b3b77d")
           .create();
   System.out.println("Created Role Assignment:");

您可以在Azure门户上执行此操作。

<your subscription>--><Access Control>--><Add>

enter image description here

有关此问题的详情,请参阅此official document

更新

我在我的实验室中进行测试,您不需要授予您的sp Graph权限,您只需要为您的sp订阅Owner角色。这是我的测试结果。

enter image description here

相关问题