小编Mar*_*eur的帖子

InvalidAuthenticationToken - CompactToken解析失败,错误代码:-2147184105

我使用V1以获得来自Microsoft REST API的令牌.(我们有Office 365租户,我曾经成功获得所有资源,但没有任何问题.

clientId =8a67......de4b6
clientSecret =J58k8....5EU=
redirectUri =http://example.com...
resourceUrl =https://graph.microsoft.com
authority = https://login.microsoftonline.com/f02633....a603/oauth2/token
Run Code Online (Sandbox Code Playgroud)

https://login.microsoftonline.com/f0263...0be3/oauth2/authorize?client_id=8a6..b6&redirect_uri=http://example.com&response_type=code&scope=mail.read

它给了我一个在JWT上结构如下的令牌.它表示无效签名但不确定是什么问题.

一旦我有了令牌,我就尝试了下面的卷曲调用

curl -i https://graph.microsoft.com/v1.0/me/messages -H 'Content-Type: application/x-www-form-urlencoded' -H 'Authorization: Barer eyJ.[TOKEN]...UNa6nfw'
Run Code Online (Sandbox Code Playgroud)

而不是消息,我收到以下错误:

HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8Cl23
Server: Microsoft-IIS/8.5
request-id: af2390b1-a9b...5ab9
client-request-id: af2390,....a615ab9
x-ms-ags-diagnostic: {"ServerInfo":{"DataCenter":"West US","Slice":"SliceA","ScaleUnit":"000","Host":"AGSFE_IN_4","ADSiteName":"WST"}}
X-Powered-By: ASP.NET
Date: Thu, 19 Jan 2017 23:55:43 GMT
Content-Length: 268

{
  "error": {
    "code": "InvalidAuthenticationToken",
    "message": "CompactToken parsing failed with error code: -2147184105",
    "innerError": {
      "request-id": "af2390b1-...5ab9",
      "date": "2017-01-19T23:55:44"
    }
  } …
Run Code Online (Sandbox Code Playgroud)

azure-active-directory microsoft-graph

6
推荐指数
1
解决办法
5201
查看次数

单击任务窗格内容并立即滚动工作表会导致Excel无响应

重现步骤:

  1. 单击任务窗格内容中的任何内容.
  2. 将鼠标移到工作表上(不要点击任何内容).
  3. 在工作表上滚动鼠标滚轮.
  4. 请注意,Excel变得无法响应.
  5. 最小化然后恢复Excel.请注意,Excel再次响应.

我能够使用Visual Studio中的基本Excel加载项项目模板重现这一点.

我目前正在使用最新版本的Excel(16.0.7726.1030).

任何解决方法?

谢谢!

excel office-js

6
推荐指数
1
解决办法
256
查看次数

重置用户密码

我正在尝试通过非交互式登录在 Azure Active Directory 中找到重置用户密码(所有用户,而不仅仅是经过身份验证的用户)的解决方案。

现在看来,这只能通过使用服务主体登录的powershell 的 MSOnline Set-AzureADUserPasswordcmdlet获得。

我想找到一个使用 API 端点的解决方案,以便我可以使用 C#。我找到的最接近的解决方案是Microsoft Graph API,但在设置之后,我意识到我只能通过交互式登录和同意流程重置密码。不允许通过非交互式。

我的下一次尝试是使用Azure AD 端点,但我担心的是我看到了建议我们使用 Microsoft 图形 API 的相同消息。这是否意味着 Azure 广告端点将消失?

是否有不使用 PowerShell 的推荐方法?

azure-ad-graph-api microsoft-graph-api

6
推荐指数
1
解决办法
5446
查看次数

在哪里可以找到驱动器项目的 {parent-id}?

我正在尝试使用 Microsoft Graph 将文件上传到我的组织的 SharePoint,但找不到{parent-id}以下终结点:

PUT /users/{user-id}/drive/items/{parent-id}:/{filename}:/content
Run Code Online (Sandbox Code Playgroud)

应该{parent-id}id文件将插入到的父目录吗?

onedrive microsoft-graph-api

6
推荐指数
1
解决办法
4942
查看次数

如何为Microsoft Graph刷新令牌

我正在使用以下方法连接到Microsoft Graph:

public GraphServiceClient GetAuthenticatedClient(string token)
{
    GraphServiceClient graphClient = new GraphServiceClient(
        new DelegateAuthenticationProvider(
            async (requestMessage) =>
            {
                // Append the access token to the request.
                requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", token);
            }));
    return graphClient;
}
Run Code Online (Sandbox Code Playgroud)

我正在服务器上运行此代码。我正在使用的令牌是由外部应用发送给我的。

在最初的一个小时内一切正常,然后令牌过期。

我的问题是:由于我也可以访问刷新令牌,因此如何获得新令牌?

c# microsoft-graph

6
推荐指数
2
解决办法
3582
查看次数

通知端点验证不适用于 Laravel Endpoint

我正在使用 Microsoft Graph,需要设置一个 Webhook 来接收电子邮件和日历事件的更改。我能够让它与我的 PHP Laravel 应用程序一起工作,但现在我正在尝试订阅通知,我在验证notificationUrl指向我的公共服务器的 时遇到了问题。

用于创建 Webhook 的脚本返回以下错误:

Client error: POST https://graph.microsoft.com/v1.0/subscriptions resulted in a 400 Bad Request response: 
{ 
  "error": { 
     "code": "InvalidRequest", 
     "message": "Subscription validation request failed. Response must ex (truncated...)
Run Code Online (Sandbox Code Playgroud)

我相信被截断的部分是

订阅验证请求失败。必须对此请求响应 200 OK。

这是我创建订阅的代码:

$data = [
    "changeType" => "created",
    "notificationUrl" => "https://anatbanielmethod.successengine.net/office365/webhooks/events",
    "resource" => "me/events",
    "expirationDateTime" => "2018-12-20T18:23:45.9356913Z",
    "clientState" => "secret",
];

$result = $graph->createRequest('POST', '/subscriptions')
    ->attachBody($data)
    ->execute();
Run Code Online (Sandbox Code Playgroud)

这是我的方法notificationUrl

public function events()
{
    //if validationToken exists return …
Run Code Online (Sandbox Code Playgroud)

php laravel laravel-5 microsoft-graph-api

6
推荐指数
1
解决办法
2883
查看次数

当没有附件时,如何从 Microsoft Graph 检索嵌入图像数据?

我正在使用 Microsoft Graph 从邮箱中提取电子邮件数据。当我获取内容时,我发现嵌入的图像内容如下:

<img id="_x0000_i1029" 
     width="1366" 
     height="672" 
     data-outlook-trace="F:1|T:1" 
     src="cid:image005.png@01D4DE3D.90A3C410" 
     style="width:14.2291in; height:7.0in">
Run Code Online (Sandbox Code Playgroud)

当该属性hasAttachments为 true 时,我会查找匹配并替换内容的图像,效果很好。问题是我在消息上看到这样的嵌入图像标签,其中hasAttachments是错误的。

我在哪里可以获得图像数据 图表显示消息没有附件,但显然有嵌入图像?

请注意,图像在 Outlook 网页版 中呈现,带有如下标记:

<img data-imagetype="AttachmentByCid"        
     originalsrc="cid:image005.png@01D4DE3D.90A3C410" 
     data-custom="AAMkADY1YjgxM2Y4LTE5NTUtNDBjMy1iZDY0LWIzN..." 
     naturalheight="672" 
     naturalwidth="1366" 
     src="https://attachments.office.net/owa/mailboc@mydomain.onmicrosoft.com/service.svc/s/GetAttachmentThumbnail?id=AAMkADY1YjgxM2Y4LTE5NTUtNDBjMy1iZDY0LWIzN...&amp;thumbnailType=2&amp;owa=outlook.office365.com&amp;scriptVer=2019031102.10&amp;X-OWA-CANARY=kKWSUkiFW0WjlPXXXXXXXXX.&amp;token=eyJhbGciOiJSU...&amp;animation=true" 
     id="_x0000_i1029" 
     data-outlook-trace="F:1|T:1" 
     style="width: 1024.49pt; height: 504pt; cursor: pointer;" 
     crossorigin="use-credentials" >
Run Code Online (Sandbox Code Playgroud)

microsoft-graph-mail microsoft-graph-api

6
推荐指数
1
解决办法
3696
查看次数

在哪里可以找到 Microsoft App 的 APP ID URI?

我正在尝试以我注册的应用程序登录,并授予以下权限:Azure 门户 > 应用程序注册 > 应用程序注册(预览)> 我的应用程序名称 - API 权限

根据此文档APP ID URI在请求令牌时,我必须在范围参数中传递我的资源标识符 ( )。我确信这个范围参数是导致我出现问题的参数。

我尝试了范围的不同参数。

  1. https://graph.microsoft.com/.default:这适用于基本功能,例如阅读日历,但我认为默认权限很少满足我的需求。既然这样有效,我相信我的其他参数是正确的,范围就是问题所在。

  2. [APP-ID]/.default:这给了我一个成功的响应,但是,每当我尝试提出任何请求时,包括基本的读取日历请求,我都会收到InvalidAuthenticationToken. 我可以向您保证,我正在传递从令牌请求中检索到的正确令牌。

  3. 基于在线建议的多种不同 URL 组合。他们都回来了

    “在租户 {id} 中找不到资源主体 {resource-url}。

我坚信问题在于我没有通过APP ID URI我的应用程序的正确性。谁能告诉我在哪里可以找到这个资源?我在网上搜索的所有内容都已使用 2 年以上,对于新的 Azure 门户似乎并不相同。

azure azure-active-directory microsoft-graph-api

6
推荐指数
1
解决办法
1万
查看次数

如何识别OneDrive DriveItem权限标识是组还是用户

我们得到一个的权限driveItem使用Microsoft图形作为记录在这里

每个返回的权限对象通常包含一个grantedTo以为IdentitySet其值的字段。但问题在于,每个Identity始终都是user

"grantedTo": { 
    "user": { 
        "displayName": "data Owners", 
        "email": "data@example.onmicrosoft.com", 
        "id": "94c3e81b-f6fb-43c6-8df5-b98462ccf191" 
    } 
}
Run Code Online (Sandbox Code Playgroud)
"grantedTo": { 
    "user": { 
        "displayName": "Data Members" 
    } 
} 
Run Code Online (Sandbox Code Playgroud)

即使这些是组,也会发生这种情况。因此,无法使用这些数据来确定什么是组,什么是用户。

我们希望避免执行任何其他操作,因为这可能会导致效率低下。

因此,我们问是否有一种无需任何其他API请求即可识别它是组还是用户的方法?例如一些未记录的查询参数或关系?

onedrive microsoft-graph

6
推荐指数
1
解决办法
46
查看次数

“授予管理员同意”按钮在 Azure Azure Active Directory 应用程序中有何作用?

我们配置了一个天蓝色的活动目录应用程序,以便我们网站的用户可以通过他们的Microsoft 帐户登录。问题是,如果我们不授予管理员访问权限,则登录应用程序将失败并显示错误代码AADSTS650056

应用程序配置错误。这可能是由于以下原因之一造成的: 客户端未在客户端应用程序注册中请求的权限中列出“AAD Graph”的任何权限。

在此输入图像描述

我们对点击“授予管理员同意”持怀疑态度,担心这可能会暴露任何漏洞。这是正确的方法吗?如果不是,有哪些替代方案可以绕过这种同意?

azure-active-directory azure-ad-graph-api

6
推荐指数
1
解决办法
1万
查看次数