Active Directory中的管理员同意

时间:2016-11-03 15:01:11

标签: asp.net azure active-directory

我想我对Azure AD下的开发过程缺乏了解。我开发了一个Web应用程序,通过我们公司网络中的AD进行身份验证,并使用我们的一些服务(如Sharepoint和PowerBI)。

似乎对于Sharepoint的某些功能,我需要管理员同意(在应用程序权限中我必须设置Admin:Required)。当我尝试转到我的应用程序(位于localhost上)时,会显示以下内容:

this application requires application permissions to another application. 
Consent for application permissions can only be performed by an administrator. 
Sign out and sign in as an administrator or
         contact one of your organization's administrators.

据我所知,全局管理员需要登录一次应用程序,所以其他用户(比如我)可以登录。但是这个工作流程听起来有问题,我不能要求我们的管理员去我的电脑并登录(我在localhost上有一个web应用程序,所以我无法向他发送链接)。此外,如果他位于另一个地方而且不能去我的电脑怎么办呢?由于这个原因,他还没准备好给我全球管理员权限。

这听起来很奇怪,我觉得我只是遗漏了一些明显的东西。人们如何实际开发这样的东西,而不是让他们每次在auth逻辑中改变某些东西时都要去他们的PC?

1 个答案:

答案 0 :(得分:2)

我同意用户体验在这一方面并不现象。

仅以管理员身份登录是不够的。您必须使用设置为 admin_consent 提示查询参数登录。至少在使用OAuth端点时。

因此,您需要点击https://login.microsoftonline.com/common/oauth2/authorize?client_id=your-client-id&redirect_uri=your-encoded-reply-url&response_mode=form_post&response_type=code+id_token&prompt=admin_consent等网址。

your-client-id 替换为您应用的客户端ID,并使用您的应用的有效回复网址 your-encoded-reply-url 。如果您的应用不是多租户,也可以将 common 替换为您的租户ID /域名。

如果你想以简单的方式做到这一点,请在his blog使用Vittorio的漂亮表格。只需输入租户ID(或常用),回复网址和应用的客户端ID,勾选“管理员同意”复选框,然后点击“开始”。

是的,您需要成为Azure AD中的管理员才能执行此操作,因此请您的管理员执行此操作。

编辑:随着Azure门户的最新更新,能够直接从门户网站授予权限。

如果您转到新门户网站中的Azure Active Directory,请在那里找到您的应用注册,然后单击所需权限刀片下的授予权限

New Grant Permissions button