You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: api-reference/beta/api/group-post-members.md
+19-15Lines changed: 19 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -33,20 +33,21 @@ The following table shows the least privileged permission that's required by eac
33
33
|[servicePrincipal](../resources/group.md)| GroupMember.ReadWrite.All and Application.ReadWrite.All | Not supported. | GroupMember.ReadWrite.All and Application.ReadWrite.All |
34
34
|[user](../resources/user.md)| GroupMember.ReadWrite.All | Not supported. | GroupMember.ReadWrite.All |
35
35
36
-
In delegated scenarios, the signed-in user must also be assigned a supported [Microsoft Entra role](/entra/identity/role-based-access-control/permissions-reference?toc=%2Fgraph%2Ftoc.json) or a custom role with the `microsoft.directory/groups/members/update` role permission. The following roles are the least privileged roles that are supported for this operation, except for role-assignable groups:
37
-
38
-
- Group owners
39
-
- Directory Writers
40
-
- Groups Administrator
41
-
- Identity Governance Administrator
42
-
- User Administrator
43
-
- Exchange Administrator - only for Microsoft 365 groups
44
-
- SharePoint Administrator - only for Microsoft 365 groups
45
-
- Teams Administrator - only for Microsoft 365 groups
46
-
- Yammer Administrator - only for Microsoft 365 groups
47
-
- Intune Administrator - only for security groups
48
-
49
-
To add members to a role-assignable group, the app must also be assigned the *RoleManagement.ReadWrite.Directory* permission and the calling user must be assigned a supported Microsoft Entra role. *Privileged Role Administrator* is the least privileged role that is supported for this operation.
36
+
> [!IMPORTANT]
37
+
> In delegated scenarios, the signed-in user must also be assigned a supported [Microsoft Entra role](/entra/identity/role-based-access-control/permissions-reference?toc=%2Fgraph%2Ftoc.json) or a custom role with the `microsoft.directory/groups/members/update` role permission. The following roles are the least privileged roles that are supported for this operation, except for role-assignable groups:
38
+
>
39
+
> - Group owners
40
+
> - Directory Writers
41
+
> - Groups Administrator
42
+
> - Identity Governance Administrator
43
+
> - User Administrator
44
+
> - Exchange Administrator - only for Microsoft 365 groups
45
+
> - SharePoint Administrator - only for Microsoft 365 groups
46
+
> - Teams Administrator - only for Microsoft 365 groups
47
+
> - Yammer Administrator - only for Microsoft 365 groups
48
+
> - Intune Administrator - only for security groups
49
+
>
50
+
> To add members to a role-assignable group, the app must also be assigned the *RoleManagement.ReadWrite.Directory* permission and the calling user must be assigned a supported Microsoft Entra role. *Privileged Role Administrator* is the least privileged role that is supported for this operation.
50
51
51
52
## HTTP request
52
53
@@ -74,7 +75,10 @@ If using the **directoryObjects** reference, that is, `https://graph.microsoft.c
74
75
75
76
## Response
76
77
77
-
If successful, this method returns a `204 No Content` response code. It returns a `400 Bad Request` response code when the object is already a member of the group or is unsupported as a group member. It returns a `404 Not Found` response code when the object being added doesn't exist.
78
+
If successful, this method returns a `204 No Content` response code. It returns a `400 Bad Request` response code when the object is already a member of the group or is unsupported as a group member. It returns a `404 Not Found` response code when the object being added doesn't exist. It returns `403 Unauthorized` in one of the following scenarios:
79
+
- You're attempting to add a member to a [group that can't be managed through Microsoft Graph](../resources/groups-overview.md#group-types-in-microsoft-entra-id-and-microsoft-graph). This API supports only security and Microsoft 365 groups.
80
+
- You're attempting to add a member you don't have permissions to add. Refer to the preceding [Permissions](#permissions) section for the permissions required to add different member types.
81
+
- You're attempting to add a member to a role-assignable group and you don't have the required permissions.
Copy file name to clipboardExpand all lines: api-reference/v1.0/api/group-post-members.md
+19-15Lines changed: 19 additions & 15 deletions
Original file line number
Diff line number
Diff line change
@@ -31,20 +31,21 @@ The following table shows the least privileged permission that's required by eac
31
31
|[servicePrincipal](../resources/group.md)| GroupMember.ReadWrite.All and Application.ReadWrite.All | Not supported. | GroupMember.ReadWrite.All and Application.ReadWrite.All |
32
32
|[user](../resources/user.md)| GroupMember.ReadWrite.All | Not supported. | GroupMember.ReadWrite.All |
33
33
34
-
In delegated scenarios, the signed-in user must also be assigned a supported [Microsoft Entra role](/entra/identity/role-based-access-control/permissions-reference?toc=%2Fgraph%2Ftoc.json) or a custom role with the `microsoft.directory/groups/members/update` role permission. The following least privileged roles are supported for this operation, except for role-assignable groups:
35
-
36
-
- Group owners
37
-
- Directory Writers
38
-
- Groups Administrator
39
-
- Identity Governance Administrator
40
-
- User Administrator
41
-
- Exchange Administrator - only for Microsoft 365 groups
42
-
- SharePoint Administrator - only for Microsoft 365 groups
43
-
- Teams Administrator - only for Microsoft 365 groups
44
-
- Yammer Administrator - only for Microsoft 365 groups
45
-
- Intune Administrator - only for security groups
46
-
47
-
To add members to a role-assignable group, the app must also be assigned the *RoleManagement.ReadWrite.Directory* permission and the calling user must be assigned a supported Microsoft Entra role. *Privileged Role Administrator* is the least privileged role that is supported for this operation.
34
+
> [!IMPORTANT]
35
+
> In delegated scenarios, the signed-in user must also be assigned a supported [Microsoft Entra role](/entra/identity/role-based-access-control/permissions-reference?toc=%2Fgraph%2Ftoc.json) or a custom role with the `microsoft.directory/groups/members/update` role permission. The following roles are the least privileged roles that are supported for this operation, except for role-assignable groups:
36
+
>
37
+
> - Group owners
38
+
> - Directory Writers
39
+
> - Groups Administrator
40
+
> - Identity Governance Administrator
41
+
> - User Administrator
42
+
> - Exchange Administrator - only for Microsoft 365 groups
43
+
> - SharePoint Administrator - only for Microsoft 365 groups
44
+
> - Teams Administrator - only for Microsoft 365 groups
45
+
> - Yammer Administrator - only for Microsoft 365 groups
46
+
> - Intune Administrator - only for security groups
47
+
>
48
+
> To add members to a role-assignable group, the app must also be assigned the *RoleManagement.ReadWrite.Directory* permission and the calling user must be assigned a supported Microsoft Entra role. *Privileged Role Administrator* is the least privileged role that is supported for this operation.
48
49
49
50
## HTTP request
50
51
@@ -72,7 +73,10 @@ If using the **directoryObjects** reference, that is, `https://graph.microsoft.c
72
73
73
74
## Response
74
75
75
-
If successful, this method returns a `204 No Content` response code. It returns a `400 Bad Request` response code when the object is already a member of the group or is unsupported as a group member. It returns a `404 Not Found` response code when the object being added doesn't exist.
76
+
If successful, this method returns a `204 No Content` response code. It returns a `400 Bad Request` response code when the object is already a member of the group or is unsupported as a group member. It returns a `404 Not Found` response code when the object being added doesn't exist. It returns `403 Unauthorized` in one of the following scenarios:
77
+
- You're attempting to add a member to a [group that can't be managed through Microsoft Graph](../resources/groups-overview.md#group-types-in-microsoft-entra-id-and-microsoft-graph). This API supports only security and Microsoft 365 groups.
78
+
- You're attempting to add a member you don't have permissions to add. Refer to the preceding [Permissions](#permissions) section for the permissions required to add different member types.
79
+
- You're attempting to add a member to a role-assignable group and you don't have the required permissions.
Copy file name to clipboardExpand all lines: api-reference/v1.0/resources/onlinemeeting.md
+2Lines changed: 2 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -45,6 +45,8 @@ Contains information about a meeting, including the URL used to join a meeting,
45
45
| allowMeetingChat |[meetingChatMode](#meetingchatmode-values)| Specifies the mode of meeting chat. Inherited from [onlineMeetingBase](../resources/onlineMeetingBase.md). |
46
46
| allowParticipantsToChangeName | Boolean | Specifies if participants are allowed to rename themselves in an instance of the meeting. Inherited from [onlineMeetingBase](../resources/onlineMeetingBase.md). |
47
47
| allowTeamworkReactions | Boolean | Indicates whether Teams reactions are enabled for the meeting. Inherited from [onlineMeetingBase](../resources/onlineMeetingBase.md). |
48
+
| allowRecording | Boolean | Indicates whether recording is enabled for the meeting. Inherited from [onlineMeetingBase](../resources/onlinemeetingbase.md). |
49
+
| allowTranscription | Boolean | Indicates whether transcription is enabled for the meeting. Inherited from [onlineMeetingBase](../resources/onlinemeetingbase.md). |
48
50
| audioConferencing |[audioConferencing](audioconferencing.md)| The phone access (dial-in) information for an online meeting. Read-only. Inherited from [onlineMeetingBase](../resources/onlineMeetingBase.md). |
49
51
| chatInfo |[chatInfo](chatinfo.md)| The chat information associated with this online meeting. Inherited from [onlineMeetingBase](../resources/onlineMeetingBase.md). |
50
52
| creationDateTime | DateTime | The meeting creation time in UTC. Read-only. |
Copy file name to clipboardExpand all lines: changelog/Microsoft.IdentityProtectionServices.json
+18Lines changed: 18 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -36,6 +36,24 @@
36
36
"WorkloadArea": "Identity and access",
37
37
"SubArea": "Identity and sign-in"
38
38
},
39
+
{
40
+
"ChangeList": [
41
+
{
42
+
"Id": "95e7994e-b2ca-48bd-bc51-173812e9422a",
43
+
"ApiChange": "Property",
44
+
"ChangedApiName": "riskEventType",
45
+
"ChangeType": "Change",
46
+
"Description": "Added `suspiciousAPITraffic` as a supported value for the **riskEventType** property in the [servicePrincipalRiskDetection](https://learn.microsoft.com/en-us/graph/api/resources/serviceprincipalriskdetection?view=graph-rest-v1.0) resource.",
Copy file name to clipboardExpand all lines: changelog/Microsoft.Skype.Calling.json
+26Lines changed: 26 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,31 @@
1
1
{
2
2
"changelog": [
3
+
{
4
+
"ChangeList": [
5
+
{
6
+
"Id": "e9108fde-6bae-4b24-a1ab-993bb6f9ac23",
7
+
"ApiChange": "Property",
8
+
"ChangedApiName": "allowRecording",
9
+
"ChangeType": "Addition",
10
+
"Description": "Added the **allowRecording** property to the [onlineMeetingBase](https://learn.microsoft.com/en-us/graph/api/resources/onlineMeetingBase?view=graph-rest-1.0) resource.",
11
+
"Target": "onlineMeetingBase"
12
+
},
13
+
{
14
+
"Id": "e9108fde-6bae-4b24-a1ab-993bb6f9ac23",
15
+
"ApiChange": "Property",
16
+
"ChangedApiName": "allowTranscription",
17
+
"ChangeType": "Addition",
18
+
"Description": "Added the **allowTranscription** property to the [onlineMeetingBase](https://learn.microsoft.com/en-us/graph/api/resources/onlineMeetingBase?view=graph-rest-1.0) resource.",
Copy file name to clipboardExpand all lines: concepts/change-notifications-delivery-webhooks.md
+12-10Lines changed: 12 additions & 10 deletions
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ ms.topic: how-to
8
8
ms.subservice: change-notifications
9
9
ms.localizationpriority: high
10
10
ms.custom: graphiamtop20
11
-
ms.date: 01/03/2024
11
+
ms.date: 01/15/2025
12
12
#customer intent: As a developer, I want to receive notifications of changes to specific Microsoft Graph resources through webhooks, so that I can build apps that process the changes according to business requirements.
13
13
---
14
14
@@ -23,6 +23,7 @@ The article guides you through the process of implementing your webhook endpoint
23
23
For details about how to create change notifications, see [Microsoft Graph API change notifications](/graph/api/resources/change-notifications-api-overview).
24
24
25
25
## Considerations for a webhook endpoint
26
+
26
27
Before you can receive a notification via webhooks, you must create a publicly accessible, HTTPS-secured endpoint that is addressable via URL. If your endpoint isn't publicly accessible, Microsoft Graph doesn't send notifications to your endpoint.
27
28
28
29
Your endpoint must provide correct, consistent, and timely HTTP responses in order to reliably receive notifications. If an endpoint doesn't respond in a timely manner, the change notification service may begin to drop notifications. Dropped notifications can't be recovered.
@@ -52,13 +53,13 @@ For security and performance reasons, Microsoft Graph throttles notifications se
52
53
If your endpoint is unable to meet these performance characteristics, consider using [Event Hubs](/graph/change-notifications-delivery-event-hubs) or [Event Grid](/azure/event-grid/subscribe-to-graph-api-events?context=graph/context) as a target for receiving notifications.
53
54
54
55
### Authentication
55
-
When you create your subscription, an access token is sent to your endpoint. This access token is used only to check the validity of your endpoint and has a lifecycle different from that of your change notification subscription. This access token generally expires within 1 hour.
56
+
When you create your subscription, an access token is sent to your endpoint. This access token is used only to check the validity of your endpoint and has a lifecycle different from your change notification subscription. This access token generally expires within 1 hour.
56
57
57
-
Your endpoint must be prepared to be regularly reauthorized by Microsoft Graph to ensure that Microsoft Graph can continue to deliver notifications to your endpoint.
58
+
To ensure uninterrupted notifications, your endpoint must be prepared for regular reauthorization by Microsoft Graph.
58
59
59
-
If an access token expires, notifications aren't delivered. However, it doesn't trigger endpoint throttling behavior and Microsoft Graph continues to retry sending each notification for up to 4 hours. So if the access token is refreshed within 4 hours of expiration, unsent notifications are delivered.
60
+
If an access token expires, notifications aren't delivered. However, it doesn't trigger endpoint throttling behavior and Microsoft Graph continues to retry sending each notification for up to 4 hours. So if the access token is refreshed within 4 hours of expiration, unsent notifications are delivered.
60
61
61
-
It's recommended that you add [lifecycle notifications](.\change-notifications-lifecycle-events.md) to your subscription to receive a warning about token expiration so you can reauthorize your endpoint in a timely manner.
62
+
We recommend that you add [lifecycle notifications](.\change-notifications-lifecycle-events.md) to your subscription to receive a warning about token expiration so you can reauthorize your endpoint in a timely manner.
62
63
63
64
When you [renew your subscription](#renew-a-subscription), your access token is also refreshed.
64
65
@@ -69,21 +70,22 @@ You can configure the firewall that protects your endpoint to allow inbound conn
69
70
> The listed IP addresses that are used to deliver change notifications can be updated at any time without notice.
70
71
71
72
## Create a subscription
73
+
72
74
> [!IMPORTANT]
73
75
> Multiple steps are required to ensure a secure communication channel is established and maintained between the Microsoft Graph change notifications service and your endpoint.
74
76
75
77
To start receiving Microsoft Graph change notifications, you must create a subscription using the URL of your endpoint (notification URL) to establish the subscription. The pattern of establishing a subscription is as follows:
76
78
77
79
1. The client app sends a subscription request to subscribe to changes on a specific resource.
78
80
79
-
1. Microsoft Graph checks the request.
81
+
2. Microsoft Graph checks the request.
80
82
81
83
- If the request is valid, Microsoft Graph sends a validation token to the notification URL for the client app to validate the notification URL.
82
84
- If the request is invalid, Microsoft Graph sends an error response with an error code and details.
83
85
84
-
1. When the client receives the notification URL validation request, the client responds with the validation token in plain text.
86
+
3. When the client receives the notification URL validation request, the client responds with the validation token in plain text.
85
87
86
-
1. Microsoft Graph validates the client's validation token response and if the validation token is valid, responds with a subscription ID.
88
+
4. Microsoft Graph validates the client's validation token response and if the validation token is valid, responds with a subscription ID.
87
89
88
90
### Subscription request
89
91
@@ -151,7 +153,7 @@ Each subscription has a unique **subscriptionId**, even if you have multiple sub
151
153
> [!NOTE]
152
154
> Any query string parameter included in the **notificationUrl** property is included in the HTTP POST request when notifications are being delivered to your service.
153
155
>
154
-
> Duplicate subscriptions are not allowed. When a subscription request contains the same values for **changeType** and **resource** as an existing subscription, the request fails with an HTTP error code `409 Conflict`, and the error message `Subscription Id <> already exists for the requested combination`.
156
+
> Duplicate subscriptions aren't allowed. When a subscription request contains the same values for **changeType** and **resource** as an existing subscription, the request fails with an HTTP error code `409 Conflict`, and the error message `Subscription Id <> already exists for the requested combination`.
155
157
156
158
#### notificationUrl validation
157
159
@@ -321,7 +323,7 @@ When you subscribe to lifecycle notifications, Microsoft Graph alerts you:
321
323
- When a tenant administrator revokes your app's permissions to read a resource.
322
324
323
325
> [!NOTE]
324
-
> If an access token expires, notifications are not delivered to the endpoint. But Microsoft Graph continues to retry sending each notification for up to 4 hours. So if the access token is refreshed within 4 hours of expiration, unsent notifications are delivered.
326
+
> If an access token expires, notifications aren't delivered to the endpoint. But Microsoft Graph continues to retry sending each notification for up to 4 hours. So if the access token is refreshed within 4 hours of expiration, unsent notifications are delivered.
325
327
326
328
For more information on how to utilize lifecycle notifications for your subscription, see [lifecycle notifications](/graph/change-notifications-lifecycle-events).
0 commit comments