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

时间:2017-09-08 23:52:07

标签: azure azure-active-directory azure-ad-graph-api

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

enter image description here

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

enter image description here

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

enter image description here

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

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

enter image description here

那些作为委托权限:

enter image description here

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

enter image description here

1 个答案:

答案 0 :(得分:0)

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