我有一个在内部运行的Java应用程序,以便管理Azure应用程序注册和组。为此,我在Azure中注册了一个应用程序及其服务原则。我正在使用其中一个样本(https://github.com/Azure-Samples/aad-java-manage-users-groups-and-roles/)。我无法为我的应用程序提供正确的权限,以便它可以注册其他应用程序,创建组,将它们分配给组并执行客户端密钥操作。我收到403未经授权的回复。这些操作的Azure AD权限最少?我应该采取/遵循哪些步骤和选项来在门户中实现这些要求?
由于
更新1 赋予所有者权利是一个重大举措。所以这不是我想要的答案。这就是为什么我没有将它标记为我的问题的解决方案,但如果你愿意这样做肯定会有效。代码也有效。 我的部分问题是最不可能的权限。经过实验,我发现在app权限中:
解决了这个问题。 Active Directory允许我创建应用程序并创建组,图表允许我将应用程序添加到组。将应用程序添加为用户访问管理员而不是图表,也让我将应用程序分组。
更新2 我试图用另一个应用程序重复相同的过程。这次虽然我给了Update 1相同的权限,但是这次将新的app添加到组失败了403.知道这是如何工作的吗?我真的很困惑......
答案 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>
。
有关此问题的详情,请参阅此official document。
更新
我在我的实验室中进行测试,您不需要授予您的sp Graph
权限,您只需要为您的sp订阅Owner
角色。这是我的测试结果。