对于在门户网站中注册的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中的所有用户都能够使用该应用程序。
答案 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