在试图访问政府云中的RateCard信息时,usgovvirgia地区,并在github:https://github.com/Azure-Samples/billing-dotnet-usage-api上工作。
GitHub示例引发未处理的异常: AADSTS65005 (参见下面的链接)
这里提到了这个错误,但是在重新处理过程中引用的部分时,我还没有找到纠正这个错误的方法,并且强烈怀疑这个问题是由于美国Gov中的差异造成的。(有关门户中的应用程序设置,请参见下图)。
我的RegisteredApp:
RateCardHM,appId/clientID: XXXXXXXX-4ba0-47a3-811e-ca0b0b74118a ->必需的权限->(委托- NoApplicationPermissionsAvailable)作为组织用户访问Azure服务管理(预览)
RequiresAdmin: No {"AADSTS65005:无效资源“。客户端请求访问未在客户端应用程序注册中请求的权限中列出的资源。客户端应用ID: XXXXXXXX-XXXX-47a3-811 e-ca0b0b74118a。请求中的资源值:https://management.usgovcloudapi.net/。资源应用ID: 40a69793-8fe6-4db1-9591-dbc5c57b17d8。应用程序注册的有效资源列表: 797f4846-ba00-4fd7-ba43-dac1f8f63013,00000002-0000-0000-c000-000000000000。跟踪ID: 6c1f3716-12ca-489e-b183-99cb6f730300相关ID: 57dbf637-8e01-42f2-873c-4723f1814254时间戳: 2018-03-14 18:43:33Z"}
既然对于usgovvirginia可能没有“2字母ISO代码”,那么应该使用什么呢?
https://msdn.microsoft.com/en-us/library/azure/mt219004.aspx表示:
·将{RegionInfo}设置为购买报价的2个字母的ISO代码。与usgovvirginia地区和解。
<appSettings>
<add key="ADALServiceURL" value="https://login.microsoftonline.us"/>
<add key="ADALRedirectURL" value="http://localhost"/>
<add key="ARMBillingServiceURL" value="https://management.usgovcloudapi.net"/>
<add key="TenantDomain" value="XXXXX.onmicrosoft.com"/>
<add key="SubscriptionID" value="XXXXXXXX-1293-4060-a2ed-0da3db612bcc"/>
<add key="ClientId" value="XXXXXXXX-4ba0-47a3-811e-ca0b0b74118a"/>
<add key="RegionInfo" value="usgovvirginia"/> <!-- WHAT to use here? -->
</appSettings> 我更希望能够访问PowerShell,但让C#示例应用程序工作可能就足够了,而且肯定是一个好的开始。

更新如下(更多信息):
使用PowerShell AzureRM (作为我自己)登录后的Microsoft.Commerce和RateCard API的“位置”为空:
(Get-AzureRmResourceProvider -ListAvailable | ? ProviderNamespace -eq Microsoft.Commerce)
# Outputs with LOCATION 'empty':
ProviderNamespace : Microsoft.Commerce
RegistrationState : Registered
ResourceTypes : {UsageAggregates, RateCard, operations}
Locations : {}
(Get-AzureRmResourceProvider -ListAvailable | ? ProviderNamespace -eq Microsoft.Commerce).ResourceTypes | ? ResourceTypeName -eq RateCard
# Outputs with LOCATION 'empty' also:
ResourceTypeName : RateCard
Locations : {}
ApiVersions : {2016-08-31-preview, 2015-06-01-preview, 2015-05-15}--可能这意味着美国政府云没有在任何地区提供这些API??
下面的图像显示了应用程序被添加为Reader的警告:


发布于 2018-03-15 16:54:38
首先,您需要确保在政府订阅中确实支持收费API。在互联网上,我似乎找不到关于可支持性的官方参考资料。你最好在这里问一下,https://azure.microsoft.com/en-us/global-infrastructure/government/contact/
如果它是支持的,通常您需要添加您注册到政府订阅的客户端应用程序。

在“访问控制”刀片下,单击“添加”。在角色下选择Reader(以防您只需要获得信息而不作任何更改)。在“选择”下,您可以查找客户端应用程序名称(与客户端ID相关联的应用程序名称),还可以复制客户端ID并粘贴到此字段。

如果没有适当的许可,您的注册客户端应用程序将无法通过REST向您的政府资源读取计费信息。
P/S:如果您想要显式控制访问,也有一个名为计费阅读器的角色。

发布于 2018-03-17 02:30:04
Microsoft现在已经证实,访问RateCard API在企业帐户(也不是在CSP帐户中)中是不可用的。
Azure资源RateCard API (预览)
感谢所有想帮忙的人。
https://stackoverflow.com/questions/49288225
复制相似问题