我在 Azure AD B2C 中创建了一个名为“角色”的自定义用户属性。
我正在尝试使用Microsoft.Graph 5.6.0以下记录的方法来更新此内容:
var user = new User
{
AdditionalData = new Dictionary<string, object>
{
{ $"extension_{_extensionAttributeId}_role", roleName }
}
};
await _graphServiceClient.Users[userId].PatchAsync(user);
Run Code Online (Sandbox Code Playgroud)
这会导致底层消息出现异常:Resource '' does not exist or one of its queried reference-property objects are not present
奇怪的是,该消息中甚至没有 Guid(如上所示)。所以我不知道它在抱怨什么。
我可以使用以下代码正确地获取用户:
var user = await _graphServiceClient.Users[userId].GetAsync();
Run Code Online (Sandbox Code Playgroud)
所以至少它能够找到用户。
c# azure-active-directory azure-ad-b2c microsoft-graph-api azure-ad-b2c-custom-policy
我正在掌握Python SDK,之前从未使用过 GraphQL (但我熟悉基本概念)。我能够odata_next_link从响应中检索值,但我不确定如何使用它。我从这里注意到:
您应该在下一页结果的请求中的 @odata.nextLink 属性中包含整个 URL。根据执行查询的 API,@odata.nextLink URL 值将包含 $skiptoken 或 $skip 查询参数。URL 还包含原始请求中存在的所有其他查询参数。不要尝试提取 $skiptoken 或 $skip 值并将其用于不同的请求。
但是,我不确定如何在下一个请求中包含该 URL。目前,我的查询看起来像response = await graph_client.groups.by_group_id(group_id).transitive_members.get()- 我没有看到更改基本网址的选项。我想我可以做这样的事情:
query_params = GroupsRequestBuilder.GroupsRequestBuilderGetQueryParameters(
skip_token = parse_qs(urlparse(response.odata_next_link).query)['$skipToken'][0]
)
request_configuration = GroupsRequestBuilder.GroupsRequestBuilderGetRequestConfiguration(
query_parameters=query_params
)
response = await graph_client.[...].get(request_configuration)
Run Code Online (Sandbox Code Playgroud)
但该报告GroupsRequestBuilder.GroupsRequestBuilderGetQueryParameters.__init__() got an unexpected keyword argument 'skip_token'(如果我尝试命名参数skiptoken或,则类似skipToken)
使用 Microsoft GraphAPI 和 CalendarView 做一些工作。为了好玩,我通过 Google 创建了一个活动,并邀请了我的 Office365 帐户以确保两者之间的 ICalUid 相同。
如果我使用 EWS 服务,ICalUid 在从谷歌检索事件时与 ICalUid 匹配。我希望 GraphAPI 是相同的,但是,它们不匹配。
谷歌和 EWS 有类似的东西:
sqvitruh3ho3mrq896tplad4v8@google.com
GraphAPI 具有:
040000008200E00074C5B7101A82E0080000000038C12994A0A1D1010000000000000000100000002D3AE9C22CC82C49D981000000000
我尝试了几次尝试将一种格式转换为另一种格式,但开始怀疑它们是否以任何方式相关。有任何想法吗?
我正在使用 Microsoft Graph SDK 在 OneDrive 中分块上传文件。我正在使用以下代码上传文件:
try
{
GraphServiceClient graphClient = this.GetGraphServiceClient(accessToken);
string fileName = Path.GetFileName(srcFilePath);
using (var fileContentStream = System.IO.File.Open(srcFilePath, System.IO.FileMode.Open))
{
var uploadSession = await graphClient.Me.Drive.Root.ItemWithPath(fileName).CreateUploadSession().Request().PostAsync();
var maxChunkSize = 5 * 1024 * 1024;
var provider = new ChunkedUploadProvider(uploadSession, graphClient, fileContentStream, maxChunkSize);
var chunkRequests = provider.GetUploadChunkRequests();
var readBuffer = new byte[maxChunkSize];
var trackedExceptions = new List<Exception>();
Microsoft.Graph.DriveItem itemResult = null;
foreach (var request in chunkRequests)
{
var result = await provider.GetChunkRequestResponseAsync(request, readBuffer, trackedExceptions);
if (result.UploadSucceeded)
{
itemResult …Run Code Online (Sandbox Code Playgroud) 我使用 Microsoft Graph API 来查询 SharePoint。直到最近,我才能够通过 Graph API 找到“站点资产”文档库。我再也找不到清单了。
我尝试过哪些查询:
https://graph.microsoft.com/v1.0/sites/{siteid}/lists?select=weburl
Run Code Online (Sandbox Code Playgroud)
没有 URL 与站点资产列表匹配。下一个:
https://graph.microsoft.com/v1.0/sites/{siteid}/drives?select=weburl
Run Code Online (Sandbox Code Playgroud)
同样没有 URL 与站点资产列表匹配。在过去,我总是能够找到使用第二个查询的资产。我将两个查询都切换到测试版,也没有结果。
我查看了 Graph API 中的变更日志,但没有列出任何相关内容。
我如何(现在)在任何 SharePoint 网站上找到“网站资产”列表?
我能够使用这种方法成功上传到共享文档文件夹。但我正在寻找一种将文件上传到 OneDrive 上的 Shared WithMe 文件夹的方法。
是否可以上传到 OneDrive 上的“/Shared WithMe”文件夹?如果是这样,PUT(小文件)或 POST(上传会话)的正确语法是什么?我花了很多时间来解决这个问题,但没有运气。
任何帮助将不胜感激。
使用 Microsoft Graph Dot Net 包,我无法调用:
await client.Sites.Request().GetAsync();
Run Code Online (Sandbox Code Playgroud)
即使在图形资源管理器上,我也可以很好地访问站点端点:
我希望使用 Azure AD 作为我的身份验证系统,但不想将我的用户退回到 Microsoft 登录页面,因为它具有破坏性,而且用户可能拥有或没有个人帐户和/或工作帐户的事实似乎使它非常混乱对于大多数。
在过去的几天里,我对此进行了大量研究,但只找到了向我展示 .NET、Azure Graph 和 Microsoft Graph API 中的 AAD 库的资源。所有这些似乎都是通过 Microsoft 登录窗口执行 oAuth 的复杂系统。
我正在使用 Golang,但我是 .NET 中的 MSCA。如果 .net 中的源代码引用不需要专有/封闭源 DLL 文件,我可以将其用作起点,否则,如果有一些参考点可能显示如何使用 MS Graph API 发送用户名和密码(在我的网站上输入)并收到一些肯定或否定的响应,表明所提供的凭据是否与我的 Azure AD 中的帐户匹配会很好。
例如,我知道使用https://msdn.microsoft.com/en-us/library/azure/ad/graph/api/users-operations来创建、获取、列出、更新和删除用户。但它似乎没有验证或授权程序(当然,除非我只是错过了它)。
我的问题是,有没有一种方法可以在不使用 oAuth 的情况下通过 Microsoft 帐户登录来验证凭据?如果是这样,有人可以提供参考和/或一些伪代码来让我朝着正确的方向前进吗?提前致谢!
go azure-active-directory azure-ad-graph-api microsoft-graph-api
有没有办法升级和降级 Azure AD / Microsoft Graph 访问级别?
例如,用户是否可以使用 Web 应用程序注册仅用于登录然后升级对 One Drive 的访问权限或降级回登录?我正在寻找一种方法来取消对用户访问的授权,然后使用不同的权限集重新授权,但找不到取消授权的方法。
我正在尝试使用Microsoft Graph API获取用户的个人资料图片(并且,理想情况下,具有不同颜色背景的后备首字母缩写)使用Microsoft Graph API,但我无法得到任何响应但是 404 状态和以下正文(令人讨厌的是也延迟了 5-20 秒):
{
"error": {
"code": "ResourceNotFound",
"message": "Resource could not be discovered.",
"innerError": {
"request-id": "1e7f0ca4-2cd4-4602-a903-b0bde1ec8ea0",
"date": "2018-06-11T14:04:10"
}
}
}
Run Code Online (Sandbox Code Playgroud)
我什至尝试过在线 Graph Explorer,但结果相同。我已将个人资料图片上传到我自己的帐户,但仍然得到相同的结果。
可能是什么原因?还有其他方法可以获取 Azure AD 用户的个人资料图片吗?