标签: microsoft-graph

更改应用程序权限后,Azure AD会提示用户/ admin重新同意

我正在构建一个SaaS应用程序,该应用程序将使用Azure AD对用户进行身份验证.假设我在同意提示期间要求用户获得1个授权许可,并且用户接受它.

稍后我的应用程序发展并需要获得更多委派权限.在这种情况下,如何使用同意页面重新提示用户?我只想在权限发生变化时才这样做一次.

我是否需要在我的应用中跟踪每个用户同意的权限,然后确定prompt=admin_consent在重定向到auth页面时添加查询参数?

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

3
推荐指数
1
解决办法
2432
查看次数

使用.NET SDK按路径获取Microsoft Graph Drive项目

文档所述,使用Microsoft Graph REST API,您可以(除其他选项外)通过Id或Path获取项目。可以正常工作,如预期的那样:

GET /me/drive/items/{item-id}/children
GET /me/drive/root:/{item-path}:/children
Run Code Online (Sandbox Code Playgroud)

使用.NET SDK,我可以按ID(即第一种情况)获取文件夹:

var items = await graphClient.Me.Drive.Items[myFolderId].Children.Request().GetAsync();
Run Code Online (Sandbox Code Playgroud)

但是,我找不到方法(使用.NET SDK)执行相同操作,而是指定了路径而不是ID(即第二种情况)。

我不想找到我已经知道的路径的ID,以为其创建请求。对?

恐怕无法使用当前的SDK(Microsoft Graph Client Library 1.1.1)来做到这一点?

c# onedrive microsoft-graph

3
推荐指数
1
解决办法
3160
查看次数

单引号在Microsoft Graph中转义

我正在尝试通过displayName查询用户,但是在通过C#SDK和Graph Explorer发送请求时,我无法转义单引号.

更新:在示例中不清楚,我遇到问题的搜索词是 I'

示例查询:https://graph.microsoft.com/v1.0/users?$ filter [ startsWith( display_name,'I%27')导致

Status Code: 400
{
    "error": {
        "code": "BadRequest",
        "message": "There is an unterminated string literal at position 28 in 'startsWith(displayName,'I'')'.",
        // snip
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试了各种各样的转义,反斜杠,双引号,%2527而不是引用,没有任何作用.查询报价的正确方法是什么?

microsoft-graph

3
推荐指数
1
解决办法
1379
查看次数

无法使用Microsoft Graph API访问Sharepoint列表 -

使用Microsoft图形API,特别是sharepoint beta api,我经常遇到问题.我知道它的测试版,但仍然;)

所以问题是当我尝试使用图形浏览器URL中的图谱API访问共享点列表时:GET https://graph.microsoft.com/beta/sites/ {site-id}/lists/{list-id}

所以SiteID我将我的网站租户GUID和列表ID作为Sharepoint List GUID传递,我在Response中不断遇到错误

{"error":{"code":"invalidRequest","message":"提供的id不适合当前主机","innerError":{"request-id":"61efc5b1-88f8-442c-a41d- 7213b587318e","date":"2017-05-10T07:38:04"}}}

如果任何人也遇到过这个问题,请告诉我您已解决的解决方案

microsoft-graph

3
推荐指数
1
解决办法
3069
查看次数

在Azure Logic应用中使用HTTP操作时,如何在JSON主体中使用“ @ odata.id”?

我正在使用Azure Logic应用程序通过操作调出Microsoft Graph API HTTP - HTTP。对于此API,我需要使用以下主体执行POST请求:

{
   "@odata.id": "<guid>"
}
Run Code Online (Sandbox Code Playgroud)

当我尝试保存逻辑应用程序时,此错误显示:

Failed to save logic app <redacted>. The template validation failed: 'The template action '<redacted>' at line '1' and column '144589' is not valid: "Unable to parse template language expression 'odata.id': expected token 'LeftParenthesis' and actual 'Dot'.".'.
Run Code Online (Sandbox Code Playgroud)

如何在JSON有效负载中使用此属性?

编辑:根据要求,是在保存时生成错误的Logic App部分的屏幕截图。 属性中的点触发保存错误

azure azure-logic-apps microsoft-graph

3
推荐指数
1
解决办法
963
查看次数

对Microsoft Graph进行API调用时请求400错误

我从Microsoft Graph API收到的错误是

error = {
  "code": "BadRequest",
  "innerError": {
    "date": "2017-04-10T19:37:08",
    "request-id": "973641dd-b150-4406-9f3b-fbcf6f7e5aa1"
  },
  "message": "The MIME type 'text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2' requires a '/' character between type and subtype, such as 'text/plain'."
}
Run Code Online (Sandbox Code Playgroud)

使用POSTman时,我可以从端点https://graph.microsoft.com/v1.0/me/contacts成功获取信息,但是转到scribe-java库OAuthRequest时,我收到此错误。
我的请求将转到带有2个标题的URL https://graph.microsoft.com/v1.0/me/contacts。授权->承载[令牌]
内容类型-> application / json

scribe microsoft-graph

2
推荐指数
3
解决办法
1466
查看次数

使用应用程序令牌通过REST API调用Microsoft Graph

我正在尝试使用REST API调用Microsoft Graph,但遇到了一些问题。我的应用程序最终将是部署到Azure的Web应用程序,我需要在没有登录用户的情况下通过REST调用Graph。

在尝试调试时,我尝试制作了最简单的应用程序。该应用程序正试图使用​​Graph从Azure Active Directory中读取用户的配置文件。

我在AAD中注册了我的应用,因此我有一个租户,客户ID和客户密码。至此,我已经在AAD和Graph API下授予了所有许可(出于测试目的)。我可以从AAD获得令牌,但是当我使用该令牌调用Graph API时,我会获得401 - Unauthorizedwith Access Token Validation Error

我已经搜索了此错误,却没有发现任何适用的方法。

编辑:添加权限后,我还向我的应用程序授予了权限。

我已经从各种样本中抓取了一些片段,以尝试使其正常工作。这是代码:

var tenant = "tenant ID";
var clientID = "app ID";

// I've tried graph.microsoft.com and graph.microsoft.com/.default
var resource = "https://graph.microsoft.com/user.read.all";
var secret = "client secret";

string token;

using(var webClient = new WebClient())
{
    var requestParameters = new NameValueCollection();
    requestParameters.Add("scope", resource);
    requestParameters.Add("client_id", clientID);
    requestParameters.Add("grant_type", "client_credentials");
    requestParameters.Add("client_secret", secret);

    var url = $"https://login.microsoftonline.com/{tenant}/oauth2/token";
    var responseBytes = await webClient.UploadValuesTaskAsync(url, "POST", requestParameters);
    var responseBody …
Run Code Online (Sandbox Code Playgroud)

azure-active-directory microsoft-graph

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

如何为Upload Session Microsoft Graph API格式化Content-Range标头

我遇到了使用v1.0 Microsoft Graph API将文件上传到上传会话的问题.我的步骤:

  1. 获取访问令牌:成功
  2. 选择文件/创建上传会话:成功(我返回uploadUrl上传字节)
  3. 将字节上传到uploadUrl:失败并出现以下错误.

这是我收到的错误:

{
   "error": 
   {
      "code":"invalidRequest",
      "message":"The Content-Range header is missing or malformed."
   }
}
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下格式,但仍然收到相同的错误.

"bytes 0-100/100"
"0-100/100"
"0-100"
Run Code Online (Sandbox Code Playgroud)

我正在关注Mircosoft的这篇文章https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/item_createuploadsession

这是我的函数,上传到uploadUrl从创建上传会话中检索

public uploadToSession(file: HTMLInputElement, session: any, fileData: any) {
    var headers = new Headers();
    headers.append('Content-Length', fileData.length); //(ie: "100")
    headers.append('Content-Range', fileData.range); //(ie: "bytes 0-100/100")
    this.http.put(session.uploadUrl, { headers })
        .subscribe(
            (res: Response) => console.log(res),
            error => console.log(error)
        );
}
Run Code Online (Sandbox Code Playgroud)

任何帮助深表感谢!提前致谢.

sharepoint typescript microsoft-graph

2
推荐指数
1
解决办法
913
查看次数

Microsoft图形API:通过iCalUid查找事件

我想拒绝一次例行会议。我只有masterSerieId,iCalId,该实例的时间。

您知道如何取消该实例吗?

我是否必须使用masterId和实例的时间进行查询才能找到事件ID,或者有一种方法可以使用iCalId查找eventId?

microsoft-graph

2
推荐指数
1
解决办法
752
查看次数

Microsoft Graph API - 删除应用程序权限的新委派权限

我正在将v1 Azure AD身份验证URL(/common/oauth2/authorize)用于需要的多租户应用程序admin_consent.

我试图添加一个新范围Directory.AccessAsUser.All.当我的所有其他作用域都是"应用程序"级别权限时,这是我要求的第一个"委托"权限​​.

当我添加新的委派范围并提示管理员重新同意时,其他范围从返回的AccessToken和响应scope参数中消失.只Directory.AccessAsUser.All存在于该access_token scp领域.

这种行为会发生什么原因吗?我很肯定我们正在推广admin_consent并且管理员是同意的.

azure-active-directory microsoft-graph

2
推荐指数
1
解决办法
468
查看次数