我有一个aspnetcore应用程序,我正在编写,并希望能够管理WVD资源。我遇到的问题是,我从Msal那里得到的更多的礼物是,当我试着给我401的时候
GET https://rdweb.wvd.microsoft.com/api/feeddiscovery/webfeeddiscovery.aspx我想也许我需要在我的应用程序中添加一个API权限,但我已经添加了:
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内容)
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");发布于 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复制了我的值。
发布于 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模块,请参阅此链接。
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/中解码,如下所示。

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

https://stackoverflow.com/questions/59548948
复制相似问题