我的剧本
$azContext = Get-AzContext
$token = [Microsoft.Azure.Commands.Common.Authentication.AzureSession]::Instance.AuthenticationFactory.Authenticate(
$azContext.Account,
$azContext.Environment,
$azContext.Tenant.Id,
$null,
[Microsoft.Azure.Commands.Common.Authentication.ShowDialog]::Never,
$null,
"https://graph.microsoft.com"
)
$params = @{
Method = "GET"
Uri = "https://graph.microsoft.com/beta/reports/credentialUserRegistrationDetails"
Headers = @{
Authorization = "Bearer $($token.AccessToken)"
"Content-Type" = "application/json"
}
}
Invoke-RestMethod @params
回应
{
"error": {
"code":"Authentication_MSGraphPermissionMissing",
"message":"Calling principal does not have required MSGraph permissions Reports.Read.All",
"innerError": {
"date":"2021-10-19T01:18:36",
"request-id":"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"client-request-id":"6b8cc3a3-b93b-44bb-b1d4-190c618aa52a"
}
}
}
当我使用Graph Explorer时,只要我在修改权限(预览)选项卡上启用reports.read.all,它就能正常工作。
这是因为Microsoft Graph Explorer
是Microsoft的企业应用程序,每个Azure广告租户都有,只需通过提供所需的权限登录并使用即可。
但是在编写运行Powershell脚本时,它使用Microsoft Azure Powershell
。您可以通过检查JWT token中接收的access_token
来验证它。因此,您需要向您的租户中的相同应用程序提供reports.read.all
API权限,该租户具有appid:1950A258-227B-4E31-A9CF-717495945FC2
in Enterprise Application>>权限,并授予管理员同意。
另一种方法是创建应用程序注册,为其创建客户端机密,然后提供reports.read.all
API权限,并使用以下脚本:
$TenantName = "tenantname.onmicrosoft.com"
$clientID = "d344e3xxx-xxx-xxxx-xxxx-9c861d363244" # app registration clientId
$clientSecret = "fNc7Q~UNHBgv_xxxxxxxxxxxxxxxxxxxxxx-PD"
$Scope = "https://graph.microsoft.com/.default"
$Body = @{
Grant_Type = "client_credentials"
Scope = $Scope
client_Id = $clientID
Client_Secret = $clientSecret
}
$authUri = "https://login.microsoftonline.com/$TenantName/oauth2/v2.0/token"
$TokenResponse = Invoke-RestMethod -Uri $authUri -Method POST -Body $Body
$Headers = @{
"Authorization" = "Bearer $($TokenResponse.access_token)"
"Content-type" = "application/json"
}
$apiUri = "https://graph.microsoft.com/beta/reports/credentialUserRegistrationDetails"
$response = Invoke-RestMethod -Headers $Headers -Uri $apiUri -Method GET
$response.value
产出:
注意:在某些租户中,Microsoft Azure PowerShell可能无法从portal中看到,因此在这种情况下,请使用上面的解决方案会更容易。
我无法访问托管密钥库中的存储帐户密钥。下面是我的代码: 似乎$secret.secretValueText为空/null。如何正确检索存储帐户密钥?这就是出现的错误。
我的Google API有问题。我希望避免通过浏览器检索我的访问授权。我想将代码直接检索到一个变量中。这是我发送的URL:
我有一个Azure Web角色,有2个实例(注意PaaS角色,*不是Azure虚拟机)。我可以通过远程桌面连接到它们,但我不知道如何在Powershell中进行远程处理(Powershell远程处理),因为与Azure虚拟机云服务不同,无法为每个实例定义endpoint和端口,因为每个工作者角色没有单独的地址。 如何通过Powershell远程处理连接到单个PaaS工作者角色实例?我该如何使用:
问题内容: 我有一个页面,该页面向中的URL 发出JSONP ajax请求(使用jQuery的功能)。我以为(阅读:假定),其中的资源可以在服务器端访问该域中设置的任何cookie,但事实并非如此? 专门执行ajax调用以访问特定的cookie,进行一些数据操作并返回以cookie值为键的丰富信息集。原始域无法直接访问cookie值,因此我认为ajax请求将保持我需要的状态。 我会忽略关于Cook
有个关于 oauth2.0 的问题,我有一个 A公司的 app,里面嵌套一个 B公司 h5 页面,其中 h5 页面要用到A公司 app的用户信息,经过 oauth2.0 拿到App 的 access_token 后,理论上他能调用 A公司app 的全部接口(对于A公司后端来说就是一个普通的用户的token),这个可以预防吗,要怎么限制做到颁发给 A公司的 access_token 只能访问特定的接
问题内容: 我正在寻找一种在Java App(使用JDBC)中打开Access MDB文件的方法。 快速的Google搜索建议我为此需要JDBC-ODBC Bridge。 这是否意味着我需要配置要在其上运行应用程序的每个系统,以便为要打开的MDB提供ODBC DSN? 还有一个问题(因为我以前从未使用过ODBC):通信是通过某种套接字(以客户机/服务器方式)还是通过方法/函数调用(例如嵌入Derb