在v2端点中创建的应用程序,如何为我的租户中的所有用户授予管理员同意

时间:2017-10-28 01:38:12

标签: azure-active-directory

对于在门户网站中注册的v1应用程序,您可以“授予权限”以代表租户中的所有用户同意应用程序的委派权限。对于在v2端点中注册的应用程序,只能在“企业应用程序”选项卡中看到它,并且“权限”选项卡中没有“授予权限”选项。如何实现我不希望每个用户单独同意的目标?

修改:进行adminconsent调用后, 这很有用,(只有图表范围)

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=myappid&response_type=code&response_mode=query&scope=openid profile email offline_access https%3A%2F%2Fgraph.microsoft.com%2FCalendars.ReadWrite%20https%3A%2F%2Fgraph.microsoft.com%2FContacts.ReadWrite%20https%3A%2F%2Fgraph.microsoft.com%2FMail.ReadWrite%20https%3A%2F%2Fgraph.microsoft.com%2FUser.Read&state=12345&redirect_uri=redirecturl

这仍然给我一个AADSTS90094错误并要求管理员同意,(使用openid范围)

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=myappid&response_type=code&response_mode=query&scope=openid profile email offline_access https%3A%2F%2Fgraph.microsoft.com%2FCalendars.ReadWrite%20https%3A%2F%2Fgraph.microsoft.com%2FContacts.ReadWrite%20https%3A%2F%2Fgraph.microsoft.com%2FMail.ReadWrite%20https%3A%2F%2Fgraph.microsoft.com%2FUser.Read&state=12345&redirect_uri=redirecturl

修改

  

仅当我打开“需要用户分配”标志

时才会出现此问题

在azure portal中,如果该标志被禁用,用户将能够单独同意并登录,没有问题,但是我们需要此标志,因为我们不希望AD中的所有用户都能够使用该应用程序。

2 个答案:

答案 0 :(得分:0)

要请求Azure AD V2.0中租户中的所有用户同意,您的应用可以使用管理员同意端点:

GET https://login.microsoftonline.com/{tenant}/adminconsent?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&state=12345
&redirect_uri=http://localhost/myapp/permissions

请参阅docunment:Using the admin consent endpoint

答案 1 :(得分:0)

企业应用程序选项卡中的列表都是服务主体,而不是应用程序注册。这些是您的租户签署的应用程序&同意将服务主体提供给租户。

v2应用程序是通过App Registration Portal创建和管理的;但是,目前没有与Grant Permissions相同的功能。要在v2中执行管理员同意,您必须构建对Azure AD的请求。

只需转到您的浏览器并删除以下请求(填充您已注册的应用客户端/应用ID和重定向URI:

https://login.microsoftonline.com/{tenant}/adminconsent?client_id=<Client/App ID>&redirect_uri=<App's Redirect URI>&state=111