【问题标题】:Is there anyway we can fetch the App permissions and consent?无论如何我们可以获取应用程序的权限和同意吗?
【发布时间】:2020-12-04 08:22:57
【问题描述】:

我想在不登录或不接受的情况下获取这些应用权限。

必填网址: https://docs.microsoft.com/en-us/azure/active-directory/develop/application-consent-experience

https://login.microsoftonline.com/common/adminconsent?client_id={ApplicationId}&state=12345&redirect_uri={应用的重定向网址}

请帮忙

【问题讨论】:

  • 如果您是全局管理员,您可以通过门户或 PowerShell 批准这些权限。这就是你所追求的吗?
  • 你是对的...一旦获得批准,我就可以获取权限...但是无法手动批准数千个应用程序。
  • 您可以使用带有 AzureAD 模块的 PowerShell 脚本来进行同意。您基本上需要为每个应用程序所需的每个应用程序权限(每个权限一个)创建应用程序角色分配,并为每个所需的委托权限集(每个目标 API 一个)授予 OAuth2 权限。参考:docs.microsoft.com/en-us/graph/api/resources/…docs.microsoft.com/en-us/graph/api/resources/…。创建这些是运行管理员同意所做的。
  • @Junnas 感谢您的回复,您的回答帮助了我。我找到了另一种方法来解决这个问题。

标签: azure-active-directory microsoft-graph-api


【解决方案1】:

Azure CLI 中有一个命令az ad app permission admin-consent,它可以通过 admin-consent 为应用授予Application & Delegated 权限。

因此,在您的情况下,您可以使用循环来运行命令以授予权限。确保您已安装 Azure CLI,并在 AAD 租户中以管理员身份使用 az login 登录,然后运行以下命令。

我的示例授予我租户中所有应用的权限,它适用于 Windows,如果您想在 Linux 中运行它,请使用loop syntax for bash,或者您可以根据您的要求进行修改。

$apps = az ad app list --all --query '[].appId' -o tsv
foreach($app in $apps){
    az ad app permission admin-consent --id $app
}

【讨论】:

  • 感谢您的回答,但这不是我的要求。我想根据 id(appId、ObjectID 等)获取权限,无论它是否存在于我的租户中。我的想法就像当我点击 Url (login.microsoftonline.com/common/adminconsent?client_id={Application Id}&state=12345&redirect_uri={redirect url of app}) 时,它要求我接受我试图添加到租户中的应用程序的权限(如在上面的屏幕截图中)。所以我试图找出我们是否可以通过权限获得该响应,那么我是否可以获取无限的应用程序。
  • @AshishGautam 我的理解是您想在不登录的情况下从您的租户或其他租户批量同意应用程序?如果是这样,我认为这是不可能的。管理员同意 url 也需要登录,此外,用于同意权限的图形 api 都是基于租户 id 的,没有租户 id 不能使用它们。您可以在网址中使用common 登录。
  • 感谢您的回复,您的回答帮助了我。我找到了另一种方法来解决这个问题。
  • @AshishGautam 如果是这样,你可以在这里分享它,它可能会帮助其他人。
  • 根据我的想法,我已经通过 selenium 使用 Web 抓取并获取权限。
猜你喜欢
  • 2014-08-21
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多