我有一個.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;
}
}
}
}
是否有任何人誰可能對解決類似的問題,或資料的時候,這將是可行的?
感謝,
我們會調查並回復您。感謝您報告這一點。 –