在azure上配置公司应用程序,并允许用户撤销访问权限

在azure上配置公司应用程序,并允许用户撤销访问权限,azure,Azure,这是我的设想: 作为Azure上的管理员,我想为我的同事添加一个应用程序。此应用程序将访问Microsoft Graph API以访问其日历或OneDrive文件等。我正在使用PHP应用程序进行概念验证。 用户必须能够做三件事:查看此应用程序所需的权限、给予同意,然后才能撤销同意 我已经使用微软的图形浏览器网站对此进行了测试。它正确地请求同意(以其他用户身份登录时!)。当用户登录到portal.office.com时,可以撤消对图形浏览器的访问 然而,我似乎无法让它为我自己构建的应用程序工作。在

这是我的设想: 作为Azure上的管理员,我想为我的同事添加一个应用程序。此应用程序将访问Microsoft Graph API以访问其日历或OneDrive文件等。我正在使用PHP应用程序进行概念验证。 用户必须能够做三件事:查看此应用程序所需的权限、给予同意,然后才能撤销同意

我已经使用微软的图形浏览器网站对此进行了测试。它正确地请求同意(以其他用户身份登录时!)。当用户登录到portal.office.com时,可以撤消对图形浏览器的访问

然而,我似乎无法让它为我自己构建的应用程序工作。在Azure中,我转到“应用程序注册”并设置密钥等。在权限中,我确保未选择任何需要管理员同意的选项。我在“委派权限”类别中选择了一些

PHP应用程序不会在Azure IaaS/PaaS上运行,而是托管在其他地方

令我惊讶的是两件事: -在我的PHP应用程序中,我必须要求出现一个同意屏幕。如果我没有要求,应用程序将跳过它。奇怪。 -在“我的帐户”中,它仍然表示管理员已授予访问权限

我已经看了下面的答案,但这也没有帮助。

因此,基本上,我在寻找与构建应用程序以访问谷歌联系人(Google Contacts)时相同的场景。我构建了这种集成,并按照上述预期和概述工作


有人有什么想法吗?

好的,在与微软商议后,我想到了这个

问题是某些权限/作用域需要管理员同意。在这种情况下,会发生以下情况:

  • 用户不会被迫给予个人同意
  • 用户无法通过portal.office.com门户(我的帐户-->应用程序)撤销同意
  • 如果删除了需要管理员同意的权限,则上述两种情况都不会改变
  • 因此,如果您设置了一个应用程序,并且意外地选择了一个需要管理员同意的范围,那么您就有麻烦了

    此外,您应该启用一个全局设置,以便最终用户可以看到一个同意屏幕

    PS C:\Users\xxxx> Connect-MsolService -credential $msolcred
    PS C:\Users\xxxx> Get-MsolCompanyInformation | fl DisplayName,UsersPermissionToUserConsentToAppEnabled
    
    DisplayName                              : <your domain>
    UsersPermissionToUserConsentToAppEnabled : False 
    
    PS C:\Users\xxxx>Connect-MsolService-credential$msolcred
    PS C:\Users\xxxx>获取MsolCompanyInformation | fl DisplayName,UsersPermissionUserApprovementAppeabled
    显示名称:
    UsersPermissionUserApprovementAppeabled:False
    
    看看这个

    在选择权限/范围时,新Azure门户提供了一个更好的列表。在第二列中,v1门户中缺少“管理员同意”的指示器。因此,切换到新门户,不要使用需要管理员同意的权限