1

我有一個.NET Web API,用於與Microsoft Graph和Azure AD進行一些交互。但是,當我嘗試在用戶上創建擴展時,它會返回「拒絕訪問」。通過使用客戶端證書的圖形API創建自定義擴展auth

我知道它可以從文檔here然而,它似乎不適用於我。

對於API,我使用的是客戶端憑據。因此,我的web應用使用用戶憑證對API進行身份驗證,然後從API到使用客戶端的圖形進行身份驗證。

我在Azure AD上的應用程序將應用程序權限Read and Write Directory Data設置爲true,因爲它聲明它需要位於用戶擴展的文檔中。

我知道我的令牌是有效的,因爲我可以用它檢索數據。

這是我檢索它的代碼:

private const string _createApprovalUrl = "https://graph.microsoft.com/beta/users/{0}/extensions"; 
    public static async Task<bool> CreateApprovalSystemSchema(string userId) 
    { 
     using(var client = new HttpClient()) 
     { 
      using(var req = new HttpRequestMessage(HttpMethod.Post, _createApprovalUrl)) 
      { 
       var token = await GetToken(); 
       req.Headers.Add("Authorization", string.Format("Bearer {0}", token)); 
       req.Headers.TryAddWithoutValidation("Content-Type", "application/json"); 
       var requestContent = JsonConvert.SerializeObject(new { extensionName = "<name>", id = "<id>", approvalLimit = "0" }); 
       req.Content = new StringContent(requestContent, Encoding.UTF8, "application/json"); 

       using(var response = await client.SendAsync(req)) 
       { 
        var content = await response.Content.ReadAsStringAsync(); 
        ApprovalSystemSchema schema = JsonConvert.DeserializeObject<ApprovalSystemSchema>(content); 
        if(schema.Id == null) 
        { 
         return false; 
        } 
        return true; 
       } 
      } 
     } 
    } 

是否有任何人誰可能對解決類似的問題,或資料的時候,這將是可行的?

感謝,

+0

我們會調查並回復您。感謝您報告這一點。 –

回答

1

我們接過來一看,它看起來像你缺少一個bug /代碼行。你似乎是使這個確切要求:

POST https://graph.microsoft.com/beta/users/{0}/extensions 

看起來你缺少的代碼與實際用戶ID替換{0}。請修復此問題,並告訴我們您現在是否可以在用戶上創建擴展程序。

+0

知道我一定錯過了一些愚蠢的東西。謝謝 :) – DaRoGa

相關問題