通过 Graph API 使用 Client Credentials auth 创建自定义扩展
Create custom extension through Graph API with Client Credentials auth
我有一个 .NET Web API,我用它来与 Microsoft Graph 和 Azure AD 进行一些交互。但是,当我尝试为用户创建扩展时,它会返回拒绝访问。
我从文档中知道这是可能的 here 但是,它似乎对我不起作用。
对于 API,我使用的是客户端凭据。所以我的网络应用程序使用用户凭据向 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;
}
}
}
}
是否有人对此有解决方法,或有关何时可行的信息?
谢谢,
我们看了一下,您似乎缺少 bug/line 代码。您似乎正在提出这个 确切 请求:
POST https://graph.microsoft.com/beta/users/{0}/extensions
您似乎缺少用实际用户 ID 替换 {0}
的代码。请进行修复,如果您现在可以为用户创建扩展,请告诉我们。
我有一个 .NET Web API,我用它来与 Microsoft Graph 和 Azure AD 进行一些交互。但是,当我尝试为用户创建扩展时,它会返回拒绝访问。
我从文档中知道这是可能的 here 但是,它似乎对我不起作用。
对于 API,我使用的是客户端凭据。所以我的网络应用程序使用用户凭据向 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;
}
}
}
}
是否有人对此有解决方法,或有关何时可行的信息?
谢谢,
我们看了一下,您似乎缺少 bug/line 代码。您似乎正在提出这个 确切 请求:
POST https://graph.microsoft.com/beta/users/{0}/extensions
您似乎缺少用实际用户 ID 替换 {0}
的代码。请进行修复,如果您现在可以为用户创建扩展,请告诉我们。