自动授予对 Azure Active Directory Web 应用程序的权限

Granting permissions to Azure Active Directory Web Application automatically

我们公司正在开发一个基于 Azure 组件的系统和一个连接到 Azure 的客户端桌面应用程序。我们的设置代码通过 Azure API 和 Azure 部署自动化自动部署 Azure 组件。正在部署的这些组件之一是我们在 Azure Active Directory 中注册的 Web 应用程序/API。我们的部署代码通过 Azure API 在 Azure 中创建此应用程序,并在 Azure 中为此应用程序设置 "Required permissions"。所需的权限是:

使用 Azure 设置应用程序后,我们便拥有了客户端桌面应用程序。在我们的客户端桌面应用程序中,用户可以登录到 Azure,然后我们想要访问创建的应用程序。所以我们的客户端桌面应用程序基本上显示 Azure 登录框以登录到 Azure,然后它尝试访问 Azure 中的 Web 应用程序,我们得到了这个:

好的,所以我可以手动解决它:如果我以管理员身份登录 Azure 并通过单击 "Grant Permissions" 按钮手动授予权限,上面显示的消息将不再显示,一切正常顺利。我点击的"Grant Permissions"按钮是这样的:

但不幸的是,我们不能采用这种手动授予权限的方式,我们需要找到一种以编程方式执行此操作的方法 - 通过 C# 代码。这是我们的业务需求。所以现有的 C# 代码在 Azure AD 中创建应用程序,为其设置所需的权限,缺少的部分是一个 C# 代码片段,它将自动授予权限——这样用户就不会看到上面的警告消息。 我一直在研究各种在线资源,但还没有找到一种通过 C# 代码来完成它的方法 - 不幸的是。有没有办法自动授予权限?任何 C# 片段? Azure API 调用?电源外壳?任何事物?

关于我们的应用程序请求的权限的详细信息: 对于 Microsoft Graph,我们需要这些权限作为应用程序权限:

以及委托权限:

对于 Windows Azure Active Directory,所需的权限是:

@Saca 和@Nan Yu 上面已经回答了这个问题。现在可以关闭了。基于为正在创建的应用程序的 ServicePrincipal 创建 OAuth2PermissionGrant 和 AppRoleAssignment 对象的解决方案是解决问题的正确方法,我已经设法通过这种方式解决了问题。