首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure WVD Rest API 8月份

Azure WVD Rest API 8月份
EN

Stack Overflow用户
提问于 2019-12-31 22:47:03
回答 2查看 1.3K关注 0票数 0

我有一个aspnetcore应用程序,我正在编写,并希望能够管理WVD资源。我遇到的问题是,我从Msal那里得到的更多的礼物是,当我试着给我401的时候

代码语言:javascript
复制
GET https://rdweb.wvd.microsoft.com/api/feeddiscovery/webfeeddiscovery.aspx

我想也许我需要在我的应用程序中添加一个API权限,但我已经添加了:

代码语言:javascript
复制
https://management.azure.com/user_impersonation

我似乎找不到任何可能对WVD有用的东西。

不过,也许我太离谱了。

我试过看消息来源:

https://github.com/Azure/RDS-Templates/tree/master/wvd-templates/wvd-management-ux/deploy

但是它已经被编辑和缩小了,所以这证明是困难的。

任何帮助获得一个有效的令牌调用WVD Rest将是非常感谢的。

得到令牌:

完整代码(减去Microsoft.Identity.Web内容)

代码语言:javascript
复制
var token = await TokenAcquisition.GetAccessTokenOnBehalfOfUserAsync(new[] { "https://mrs-Prod.ame.gbl/mrs-RDInfra-prod/user_impersonation" });
            var httpClient = new HttpClient();
            httpClient.BaseAddress = new Uri("https://rdweb.wvd.microsoft.com/");
            httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", $"{token}");
            var result = await httpClient.GetAsync("api/hubdiscovery/eventhubdiscovery.aspx");
            result = await httpClient.GetAsync("api/feeddiscovery/webfeeddiscovery.aspx");

此方法来自Microsoft.Identity.Web项目。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-04 17:47:32

天哪,我只是通过比较从msft应用程序获得的令牌,才发现这一点:

来自RDWeb应用程序:"aud":"https://mrs-prod.ame.gbl/mrs-RDInfra-prod",

我的应用程序:"aud":"https://mrs-Prod.ame.gbl/mrs-RDInfra-prod",

……是的,我用的是大写字母P。而msft应用程序在mrs中使用的是小写p。

我感到震惊,愤怒和兴奋的同时。

为了记录在案,我在应用程序api权限屏幕中直接从Azure复制了我的值。

票数 0
EN

Stack Overflow用户

发布于 2020-01-01 03:08:40

https://management.azure.com是用于Azure Service Management API的,在您的情况下,它是不正确的。

请导航到门户网站-> API permissions -> APIs my organization uses -> Windows Virtual Desktop中的AD应用程序,找到它并单击。

如果希望管理工具代表已登录到该工具的用户进行Windows管理调用,请选择Delegated permissions -> user_impersonation,完成屏幕截图等步骤。您也可以让用户自己同意权限,而不单击Grant admin consent按钮,这取决于您。

然后权限出现如下所示。

有关更多细节,请参见此教程:部署管理工具和此步骤

更新:

尝试使用powershell New-RdsRoleAssignment添加用户帐户作为RDS Owner角色,确保您已经安装了Microsoft.RDInfra.RDPowerShell模块,请参阅此链接

代码语言:javascript
复制
Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com"
Get-RdsTenant
New-RdsRoleAssignment -RoleDefinitionName "RDS Owner" -SignInName "xxxx@xxxx.onmicrosoft.com" -TenantName "joywvd"

然后我再次运行Get-RdsTenant命令,并使用fiddler捕获请求,获取令牌,在https://jwt.io/中解码,如下所示。

audscp应该和您的令牌相同,您也可以解码令牌来检查,然后我使用邮递员调用https://rdweb.wvd.microsoft.com/api/feeddiscovery/webfeeddiscovery.aspx,它可以工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59548948

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档