Recent Discussions
- 100Views0likes2Comments
OneDrive Sharing and Graph "/invite" Endpoint Now Creating Guest Users?
I have an application that integrates with OneDrive via the Graph API, and leverages OneDrive sharing features. Recently I got a new Microsoft E5 dev license, and I've noticed that the sharing workflows and API results are different on this license than on my previous license, and the enterprise licenses of my clients that use the application. All instances are using v1 of the API. On my new license, when I share a OneDrive file/folder using the "/invite" endpoint of the API, it adds the external email I'm sharing with as a Guest on my M365 tenant. It did not do this before. The initial result of the API call to the /invite endpoint is the same as it was previously: [{ 'roles': ['read'], 'grantedToIdentities': [{ 'user': { 'email': '<external email>' } }], 'invitation': { 'signInRequired': True }, 'link': { 'type': 'view', 'webUrl': '<link URL>' } }] However, if I share another file/folder with the same external email, the response is different: [{ 'id': '<permission ID>', 'roles': ['read'], 'grantedTo': { 'user': { 'email': '<external email>', 'displayName': '<external email (minus domain)>' } } }] As you can see, the response now contains "grantedTo" instead of "grantedToIdentity". The response also does not contain a link URL, and I need to perform an extra API call on the permissions of the shared item in order to find the link. This response format matches the responses I expect when I share with internal emails on my tenant, and I can see in the admin centre that the external email has been added as a Guest user. With my old license, and my clients' licenses, external recipients were not added as guests on the M365 tenant, and sharing multiple drive items with the same external user always returned the same format of API response (always including the link URL). Shared Item Access Workflow With my new license, when I use the link to access the shared item with my external email, I am now prompted to provide permissions to my account for the OneDrive tenant (email and tenant domain redacted here for privacy): I am also prompted to set up MFA: With the previous workflow, I just had to enter my email address, then verify the email with a code. I was not prompted to grant permissions or set up MFA. This seems needlessly complicated for sharing drive items with external users, particularly those that are not tech-savvy. Why is the sharing workflow so different on my new dev license? Can I adjust the settings on my tenant to prevent this, or is this how sharing will work going forward? If so, when can I expect this to change for my clients' license? I see no mention of this in the https://learn.microsoft.com/en-us/graph/api/driveitem-invite?view=graph-rest-1.0&tabs=http, and I can't find any mention of the change online. I've reviewed the sharing settings in the Sharepoint Admin Centre. However, these are identical to the settings on my old license. I've tried messing with the External Collaboration settings in Entra to prevent guest users from being created, but this prevents me from sharing with external users altogether. I can't find any other settings that may control this behaviour. Please help!Solved77Views0likes1CommentDrives search endpoint suddenly stopped working
We are facing an issue where the following endpoint has suddenly stopped working (as of 2024-10-23) for only one of our accounts: https://graph.microsoft.com/v1.0/me/drive/root/search(q='.xls') I am able to see the Excel workbooks I'm searching for /drive/root/children endpoint, but the /search is returning no results in one of the two accounts. I know indexing can be an issue that causes a delay for results to show up from /search, but many of the files on the affected account have been there for 6 months. Comparing the working account to the failing one, I don't see any significant difference in the requests. For both accounts, the OAuth scopes requested are the same (from the decoded Bearer token): "scp": "AllSites.Read Files.Read Files.Read.All Files.Read.Selected Files.ReadWrite Files.ReadWrite.All Files.ReadWrite.AppFolder Files.ReadWrite.Selected Sites.Read.All Sites.ReadWrite.All profile openid email" Both accounts are Business OneDrive accounts. I can even access the workbooks directly on the failing account from the following endpoint: https://graph.microsoft.com/v1.0/me/drive/items/017ZHZ4ENXPMNDLB52LFF3ZX55FHHUGZ3F/workbook/worksheets So it seems that /search is simply not working. Our tool is reliant on the /search endpoint, so it would not be a quick fix to change this and it is affecting some of our customers as well. Is this a known issue or does anyone have another clue on what to check? I'm wondering if search indexing is broken on this account (and our customer's account), but I don't know of any way to force it to re-index the files.Solved327Views1like4CommentsFetch apps visible on https://myapps.microsoft.com/ via Graph API
Is it possible to fetch all applications I typically see on https://myapps.microsoft.com/ via Graph API ? Is there an alternate way to fetch this if not and show the same applications as part of a custom portal we have for our employees.Solved613Views0likes3Comments$filter by multiple properties
Hi all, Unfortunately, I can't manage to filter according to several properties. I'm currently filtering for a specific value, but I would like to filter using one or two "or" operators or other properties: $filter=assignmentState+eq+'Delivered' e.g.: filter where assignmentstate is 'Delivered' or 'Delivering' or 'etc..' When I follow the documentation I run into errors. https://learn.microsoft.com/en-us/graph/filter-query-parameter?tabs=http Does anyone have experience with multiple filters? RegardsSolved231Views0likes1CommentTrying to create Graph connector, can't see menu options
I am trying to follow this microsoft tutuorial to create a graph connector: https://github.com/microsoftgraph/msgraph-sample-github-connector-python I am a global admin in my own personal tenant (it is a paid subscription). The code in this repo creates a connection in azure, and I have no problem following the first part of it (the code successfully creates the connection, and I am able to create the schema for the connection. The problem I have is that I can't see the "Data Options" tab in my tenant. Here is what the instructor sees: here is what I see in my tenant: Once again, I was able to create the schema for the connector via code, so I know it is there:Solved207Views0likes1Commentunresolvable roledefinitionId in roleEligibilitySchedules
I query roleManagement/directory/roleEligibilitySchedules to make an inventory of all assigned Entra ID roles through Priviledged Identity Management. Each role assignment has a property RoleDefinitionId, which refers to the id of the Entra ID role (a list I got from roleManagement/directory/roleDefinitions, it includes custom roles). My problem is that a RoleDefinitionId can only be found for builtin roles, not for custom roles. A custom role has a Guid that cannot be found/resolved anywhere it seems. Is this a bug ? Or am I missing something? Cheers, SemSolved449Views0likes4CommentsIdentifier(s) in API calls to load mail folders and mails from folders
Hi all. I am trying to load user folders with https://learn.microsoft.com/en-us/graph/api/user-list-mailfolders?view=graph-rest-1.0&tabs=http , and later emails for given folder with https://learn.microsoft.com/en-us/graph/api/user-list-messages?view=graph-rest-1.0&tabs=http . In both calls common part is: GET /users/{id | userPrincipalName}... On Azure portal userPrincipalName parameter is editable: Is it a must to use Object ID (below) for accessing user and so forth ? For my use case it would be of great benefit to use User principal name , but what happens if someone changes it ? Thanks in advance, DraganSolved352Views0likes2CommentsNo output for Invoke-MgGraphRequest for user presence
Hi All! I am experiencing some odd behaviour with a Invoke-MgGraphRequest and an Azure Runbook and could do with a nudge in the right direction. I am trying to report on my Teams presence using GraphAPI. When I use the following code, it works, presence returned: Invoke-MgGraphRequest -method GET -Uri "https://graph.microsoft.com/v1.0/communications/presences/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" But, When I try and assign this output to a variable (so it can be passed to a SharePoint list) I don't get any output: $returned=Invoke-MgGraphRequest -method GET -Uri "https://graph.microsoft.com/v1.0/communications/presences/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" $returned.value | ForEach-Object {$_.availability} Am I doing something wrong, or is this expected behaviour?Solved431Views0likes1CommentListing groups members
Hi there, Im using Perl LWP to get some information on groups: owners and members. The strange thing is that listing owners works without any problem, getting the users gives me a return code 200 but with empty content... no users. While I know the group does in fact have members. The URL I use is like: https://graph.microsoft.com/v1.0/groups/<some_id>/members/?$select=id,displayName,userPrincipalName&$count=true - I added the $count and set consistencylevel to eventual (just in case). - Almost the same URL (owners instead of members) does work. - Running the same URL in Graph explorer does in fact return the members - As far as I can see the permission for members is the same as for owners Kindof at a loss at the moment. Can you help? PeterSolved559Views0likes1CommentList Member joined/added date in MS Team/365 Groups
Other than using Graph API auditLogs, is there another API in MS Graph to find a user (member) was added to a MS Team? I'm trying to get this info in a Power Automate flow for reporting purpose which will be in Power BI.Solved411Views0likes1CommentMapping Get-CsOnlineUser to MS Graph
Hello I would like to run this Powershell command Get-CsOnlineUser | select-object UserPrincipalName,DisplayName,Country,CountryAbbreviation,Company,Title,AccountEnabled,TeamsUpdateManagementPolicy | export-csv -encoding unicode -NoTypeInformation -path "" -append Is there a similar command in MS Graph and also this detailed information Regards JFM_12Solved1.5KViews0likes4CommentsIs it safe and recommended to use graph APIs IMAP.AccessAsUser.All and SMTP.send
Hey there, Microsoft for some time have been working on disabling basic authentication in Exchange Online based on https://learn.microsoft.com/en-us/exchange/clients-and-mobile-in-exchange-online/disable-basic-authentication-in-exchange-online article. Is it safe to use these the APIs: IMAP.AccessAsUser.All SMTP.send Are these APIs using modern authentication when going through Graph API? It has been requested for a project and trying to assess its risk.Solved897Views0likes2CommentsObject reference not set when using New-MgInvitation with Runbook and Managed Identities
I am trying to send an AzureAD guest invitation using an Azure Runbook and GraphAPI. I have created a system managed identity for this (can successfully run Connect-MgGraph -identity in the runbook). When I try and execute: New-MgInvitation -InvitedUserDisplayName "John Doe" -InvitedUserEmailAddress email address removed for privacy reasons -InviteRedirectUrl "https://myapplications.microsoft.com" -SendInvitationMessage:$true I get the following error: New-MgInvitation : Object reference not set to an instance of an object. At line:4 char:1 + New-MgInvitation -InvitedUserDisplayName "John Doe" -InvitedUser ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [New-MgInvitation_CreateExpanded], NullReferenceException + FullyQualifiedErrorId : Microsoft.Graph.PowerShell.Cmdlets.NewMgInvitation_CreateExpanded I have a managed identity for the runbook, with the following permissions: Microsoft.Graph.Identity.SignIns and Microsoft.Graph.Authentication modules are both loaded in my automation account. If I run the code in a local PowerShell session it works. Has anyone had any experience with this? Thanks in advance, MattSolved566Views0likes1CommentField Skipped When Multiple SharePoint Tasks Requested
I have encountered some unexpected behavior when using Microsoft Graph to request data from SharePoint task lists. I discovered this using MS Graph in C# and I have reproduced it in https://developer.microsoft.com/en-us/graph/graph-explorer Here is an example of a query for one specific task (Id: 61) requesting fields: 'Title', 'Milestone', and 'Area' ('Milestone' and 'Area' are custom managed metadata fields). In this case, all columns are returned properly. The next query is identical except, instead of requesting only one task, I am requesting all of the tasks in the list. This time the 'Milestone' field is not included in the result for item 61. This happens with every task in the list. If I request an individual task by id I can retrieve all fields correctly but if I request multiple tasks I cannot retrieve the 'Milestone' field. What could be causing this behavior? Thank you!Solved489Views0likes4CommentsReviewing User Permissions
Hello, I had a quick question about reviewing user permissions within Microsoft Graph. At one point in time, I am pretty sure a co-worker showed me a location in Azure, where you could review all of the Graph API permissions that a user had been consented too and been approved to use. For example, if I looked up user a user who had previously been authorized to access SharePoint/Teams data via Graph, I would see something like this -> SharePoint: - Sites.Read.All - Site.ReadWrite.All Teams: -Teams.ReadBasic.All - Users.Read.All I remember it looking very similar to the "Modify Permissions" page that is available when you are using the Graph Explorer in the browser. Sadly, I cannot remember how my co-worker at the time was able to access information. Currently within Azure I can look-up the following graph access related info: - The Graph API access that our app registrations have. Enterprise Applications -> Select App Registration -> Permissions - The access that users have to the Graph Explorer App and Graph PowerShell app. Enterprise Applications -> Select Microsoft App - Users and groups I however would like to be able to see the individual permissions that users have been approved for, if possible?Solved586Views0likes1CommentPermissions required to update password
Hi there I'm trying to update a user's password using the graph api (terraform really). Creating a user and setting an initial password using a service principal that has the application role "User.ReadWrite.All" works as expected - however updating the password with the same service principal does not work. What role should I use instead? Is it even possible? StefanSolved2.2KViews0likes3CommentsUpdate Taskdescription via VBA - Error -2147483638 - the data required for this operation are not ye
Hello! I develop an integration of planner tasks into an internal access database and there I will create a task with a important description. The creation works fine, but when I update the taskdetails and there the description I get the error -2147483638 - the data required for this operation are not yet. If I go stepwise through the code all works fine, but not in processing my whole code. I think that the task descriptions is not accessible that early so I have to put my code to sleep, just I can't find anything about "How long do I have to put my code to sleep?" or exists any other reason for that? Update: First I have set Sleep 10000 for 10 seconds pause of the code and second here a screenshot in german with the error message, because the 10 seconds don't helps. My VBA-Code to Update is the following. This function is a part of my class "Teams" Public Function UpdateTaskDescription(pstr_ID As String, pstr_Description As String) As Boolean On Error GoTo Err_UpdateTaskDescription Dim GraphAPI As New MSXML2.XMLHTTP60 Dim str_URL As String Dim str_Body As String Dim str_ETag As String Dim JSON As Object str_URL = "https://graph.microsoft.com/v1.0/planner/tasks/" & pstr_ID & "/details" wiederholung: str_ETag = GetETagByDetails(pstr_ID) With GraphAPI .Open "PATCH", str_URL, True .setRequestHeader "Content-Type", "application/json" .setRequestHeader "Authorization", GetAuthentication '.setRequestHeader "Prefer", "return=representation" Kann mit angegeben werden, wenn das gesamte Objekt zurückkommen soll. So kommt nur 204 - No content => success .setRequestHeader "If-Match", str_ETag str_Body = "{" & vbNewLine str_Body = str_Body & Chr(34) & "description" & Chr(34) & " : " & Chr(34) & pstr_Description & Chr(34) & vbNewLine str_Body = str_Body & "}" .Send str_Body End With UpdateTaskDescription = GraphAPI.Status Err_UpdateTaskDescription: If Err.Number = -2147483638 Then GraphAPI.abort GoTo wiederholung Else MsgBox Err.Number & " > " & Err.Description End If End Function Thanks in advance. AxelSolved964Views0likes2Comments
Events
Recent Blogs
- ServiceNow tickets Graph connector is now generally available, adding to the suite of Microsoft Graph connectors for ServiceNowJan 17, 202410KViews4likes1Comment
- Get complete control of your Graph connectors rollout strategy with a measured exposure of connections to select users and groupsDec 01, 20234.2KViews2likes0Comments