代码之家  ›  专栏  ›  技术社区  ›  Vaethin

我的AzureAD注册申请没有做任何事情的权利。。。?

  •  0
  • Vaethin  · 技术社区  · 8 年前

    我现在正在编写一个c程序,它试图通过Azure进行身份验证,以发出一个通用http请求。我终于让代码正常工作了,我想测试功能,但对于我提出的每个请求,我都会得到以下错误代码作为响应:

    {"error":{"code": "AuthorizationFailed", "message":"The client "(id of the app I registered in AzureAD)" with object id "(same value as before)" does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/read' over scope '/subscriptions/(mysubscriptionid)'."}}.

    (在Windows Azure Active Directory API中有8个应用程序权限和9个委派权限,在Windows Azure服务管理API中有1个委派权限,但我不知道为什么Azure服务管理没有更多可能的权限)

    相关的代码是相当基本的,但它的工作,所以我不觉得我需要张贴它,我只是说,我获得令牌使用微软。标识模型。客户。ActiveDirectory。AcquireTokenAsync()与

    authorityUri = "https://login.windows.net/(mytenantid)",
    string resourceUri = "https://management.azure.com/";
    AuthenticationContext authContext = new AuthenticationContext(authorityUri);
    var res = authContext.AcquireTokenAsync(resourceUri, new 
    ClientCredential(clientId,clientSecret));
    return res.Result;
    

    https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Authorization/roleAssignments?api-version=2016-03-01&$filter=atScope()

    尝试了几种不同类型的GET请求到不同的URI,都给出了类似的错误。

    我认为这可能不是代码的问题,而是AzurePortal中的设置问题,但我发现那里的一切似乎都设置正确(或者更确切地说是“通用访问”)。

    1 回复  |  直到 8 年前
        1
  •  0
  •   Shui shengbao    8 年前

    根据您的描述,您忘记授予您的服务本金。你可以将其添加到Azure门户上。你可以同意 Contributor or Owner role

    link:Assign application to role