找出管理员是否同意使用Web应用程序Azure

时间:2016-04-22 22:14:34

标签: azure azure-active-directory

有没有办法找出管理员是否同意允许在其租户目录中使用Web应用程序?

基本上,我有一个Web应用程序,我只希望管理员代表所有用户同意。如果我在身份验证请求中使用prompt=admin_consent,则效果很好,只有管理员可以同意。

但是每次访问应用程序时,即使在应用程序在其目录中进行了配置后,相同的提示也会重新出现

我可以通过创建一个登录页面来解决这个问题,我从中收集租户ID并查看其是否已注册,如果是,则不要求再次提示,只需继续进行身份验证。

但是,无论如何这个东西是免费的,或者令牌中有什么东西可以告诉这个用户是否是管理员用户?

1 个答案:

答案 0 :(得分:0)

  

但无论如何这个东西是免费的还是有什么东西   告诉该用户是否为管理员用户的令牌?

我确信您可以使用图谱API找到用户角色但是我不认为这会对您的情况有所帮助,因为在将用户信息返回到您的应用程序之前,Azure AD本身就会出现同意部分。

我们的应用程序遇到了完全相同的问题,这是我们尝试解决它的方法。看看这种方法对你有意义。

我们的应用程序有两个不同的URL:一个用于注册,另一个用于登录。

在我们将用户发送到Azure AD进行身份验证的注册过程中,我们会将prompt=admin_consent附加到URL,以便只有管理员角色的用户才能注册。在他们注册后,我们会收到用户信息,然后我们将租户ID返回。我们所做的是将租户ID存储在我们的数据库中。在注册过程中,我们要求他们为自己的帐户选择一个名称,可以是任何名称。除了租户ID,我们也存储了这些信息。注册过程完成后,我们会为此帐户创建一个唯一的网址(例如https://my-app.com/{account-name}/sign-in),这是帐户管理员(已注册的人)可以向其团队成员提供的内容。

当团队成员使用登录URL访问应用程序时,我们从URL中提取团队名称,并根据该名称查找Azure AD租户ID,并将用户重定向到Azure AD租户(https://login.microsoftonline.com/{tenant-id})登录。目前,我们在网址中未包含prompt=admin_consent