我正在与一个禁用了Azure应用程序用户同意的组织合作。 “用户可以同意应用程序代表他们访问公司数据” 在Azure门户中设置为否。
我希望开发人员能够天蓝色地同意他们自己的应用程序,而无需将上述设置设置为“是”。 (应用程序需要“ 登录并读取用户配置文件”委派权限Azure AD)。
1:唯一的其他方法是将开发人员分配给具有以下权限之一的Azure AD角色之一吗:应用程序开发人员,应用程序管理员或云应用程序管理员?
2:我还想在AzureDevOps版本pineline期间自动执行此过程。当前,发布管道通过ARM模板创建了所有必需的Azure资源。
但是如何在不访问门户的情况下自动执行应用注册? 以及如何确保发布管道具有正确的Azure AD权限以给予同意? 我可以强制管道以“我具有上述角色的Azure AD服务用户”身份运行吗?
更新1
似乎可以使用powershell进行Azure AD注册。 http://blog.octavie.nl/index.php/2017/09/13/creating-azure-ad-app-registration-with-powershell-part-1
由于AzureAD使用MFA,该脚本在运行时将显示一个交互式凭据对话框。不确定是否可以抑制这种情况。
更新2
并使用powershell同意应用。 https://www.mavention.nl/blogs-cat/create-azure-ad-app-registration-with-powershell-part-2/?cn-reloaded=1
更新3
因此,要使整个过程自动化,我在考虑是否可以使用 Azure DevOps Service Connection 在发布管道中执行这些powershell脚本?
不确定Azure DevOps服务连接需要什么权限吗?
它还应该隐藏MFA凭据对话框。
答案 0 :(得分:1)
唯一的其他方法是将开发人员分配给具有此权限的Azure AD角色之一吗:应用程序开发人员,应用程序管理员或云应用程序管理员?
这取决于应用程序所请求的权限,以及您希望开发人员同意的人员(他们自己或整个组织):
User.Read
的委托,那么这将起作用。User.Read
,肯定不会。但是如何在不访问门户的情况下自动进行应用注册?
使用Microsoft Graph API,您可以通过creating an Application object注册应用。截至2018年12月5日,它仍处于Microsoft Graph的测试版中。
如果您需要生产就绪的端点the Azure AD Graph API supports this,则这是各种命令行和PowerShell选项所使用的端点:New-AzureADApplication
,az ad app create
和New-AzureRmADApplication
要在没有用户参与的情况下执行此操作,客户端应用程序(创建应用程序注册的应用程序)至少需要Application.ReadWrite.OwnedBy
应用程序许可。
又如何确保发布管道具有正确的Azure AD权限以表示同意?
这是使事情变得复杂的地方。尽管可以如上所述创建应用程序注册(应用程序对象),但是当前没有应用程序许可,这些许可将允许一个应用程序同意另一个应用程序。尽管正在进行允许“普通”应用程序权限的工作,以允许一个应用程序向其他应用程序授予某些权限,但目前只有授权这些权限的目录角色成员才能执行此操作。