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
# Using SCIM and Microsoft Graph together to provision users and enrich your application with the data it needs
25
25
26
-
**Target audience:** This document is targeted towards developers building applications integrated with Azure AD. For others looking to integrate an existing application such as Zoom, ServiceNow, and DropBox you can skip this and review the application specific [tutorials](https://docs.microsoft.com/azure/active-directory/saas-apps/tutorial-list).
26
+
**Target audience:** This document is targeted towards developers building applications to be integrated with Azure AD. For others looking to use applications already integrated with Azure AD, such as Zoom, ServiceNow, and DropBox, you can skip this and review the application specific [tutorials](https://docs.microsoft.com/azure/active-directory/saas-apps/tutorial-list) or review [how the provisioning service works](https://docs.microsoft.com/azure/active-directory/app-provisioning/how-provisioning-works).
27
27
28
28
**Common scenarios**
29
29
30
+
Azure AD provides an out of the box service for provisioning and an extensible platform to build your applications on. The decision tree outlines how a developer would use [SCIM](https://aka.ms/scimoverview) and the [Microsoft Graph](https://docs.microsoft.com/graph/overview) to automate provisioning.
31
+
30
32
> [!div class="checklist"]
31
33
> * Automatically create users in my application
32
34
> * Automatically remove users from my application when they shouldn't have access anymore
33
35
> * Integrate my application with multiple identity providers for provisioning
34
-
> * Enrich my application with data from Microsoft services such as Sharepoint, Outlook, and Office.
36
+
> * Enrich my application with data from Microsoft services such as Teams, Outlook, and Office.
35
37
> * Automatically create, update, and delete users and groups in Azure AD and Active Directory
## Scenario 1: Automatically create users in my app
40
-
Today, IT admins manually create user accounts in my application each time someone needs access or periodically upload CSV files. The process is time consuming for customers and slows down adoption of my application. All I need is basic [user](https://docs.microsoft.com/graph/api/resources/user?view=graph-rest-1.0) information such as name, email, and userPrincipalName to create a user. Furthermore, my customers use various IdPs and I don't have the resources to maintain a sync engine and custom integrations with each IdP.
42
+
Today, IT admins provision users by manually creating user accounts or periodically uploading CSV files into my application. The process is time consuming for customers and slows down adoption of my application. All I need is basic user information such as name, email, and userPrincipalName to create a user.
43
+
44
+
**Recommendation**:
45
+
* If your customers use various IdPs and you do not want to maintain a sync engine to integrate with each, support a SCIM compliant [/Users](https://aka.ms/scimreferencecode) endpoint. Your customers will be able to easily use this endpoint to integrate with the Azure AD provisioning service and automatically create user accounts when they need access. You can build the endpoint once and it will be compatible with all IdPs. Check out the example request below for how a user would be created using SCIM.
46
+
* If you require user data found on the user object in Azure AD and other data from across Microsoft, consider building a SCIM endpoint for user provisioning and calling into the Microsoft Graph to get the rest of the data.
41
47
42
-
**Recommendation**: Support a SCIM compliant [/Users](https://aka.ms/scimreferencecode) endpoint. Your customers will be able to easily use this endpoint to integrate with the Azure AD provisioning service and automatically create user accounts when they need access. You can build the endpoint once and it will be compatible with all IdPs, without having to maintain a sync engine. Check out the example request below for how a user would be created.
43
48
44
49
```json
45
50
POST /Users
@@ -93,21 +98,21 @@ My application relies on groups for access to various resources, and customers w
93
98
94
99
**Recommendation:** Support a SCIM compliant /Groups [endpoint](https://aka.ms/scimreferencecode). The Azure AD provisioning service will take care of creating groups and managing membership updates in your application.
95
100
96
-
## Scenario 4: Enrich my app with data from Microsoft services such as Teams, Outlook, and OneDrive.
101
+
## Scenario 4: Enrich my app with data from Microsoft services such as Teams, Outlook, and OneDrive
97
102
My application is built into Microsoft Teams and relies on message data. In addition, we store files for users in OneDrive. How can I enrich my application with the data from these services and across Microsoft?
98
103
99
104
**Recommendation:** The [Microsoft Graph](https://docs.microsoft.com/graph/) is your entry point to access Microsoft data. Each workload exposes APIs with the data that you need. The Microsoft graph can be used along with [SCIM provisioning](https://docs.microsoft.com/azure/active-directory/app-provisioning/use-scim-to-provision-users-and-groups) for the scenarios above. You can use SCIM to provision basic user attributes into your application while calling into graph to get any other data that you need.
100
105
101
-
## Scenario 5: Track changes in Microsoft services such as Teams, Outlook, and Azure AD.
106
+
## Scenario 5: Track changes in Microsoft services such as Teams, Outlook, and Azure AD
102
107
I need to be able to track changes to Teams and Outlook messages and react to them in real time. How can I get these changes pushed to my application?
103
108
104
-
**Recommendation:** The Microsoft Graph provides [change notifications](https://docs.microsoft.com/graph/webhooks) and change tracking for various resources. Note the following limitations of change notifications:
109
+
**Recommendation:** The Microsoft Graph provides [change notifications](https://docs.microsoft.com/graph/webhooks) and [change tracking](https://docs.microsoft.com/graph/delta-query-overview) for various resources. Note the following limitations of change notifications:
105
110
- If an event receiver acknowledges an event, but fails to act on it for any reason, the event may be lost
106
111
- If an event receiver acknowledges an event, but fails to act on it for any reason, the event may be lost
107
112
- Change notifications don't always contain the [resource data](https://docs.microsoft.com/graph/webhooks-with-resource-data)
108
113
For the reasons above, developers often use change notifications along with change tracking for synchronization scenarios.
109
114
110
-
## Scenario 6: Provision users and groups in Azure AD.
115
+
## Scenario 6: Provision users and groups in Azure AD
111
116
My application creates information about a user that customers need in Azure AD. This could be an HR application than manages hiring, a communications app that creates phone numbers for users, or some other app that generates data that would be valuable in Azure AD. How do I populate the user record in Azure AD with that data?
112
117
113
118
**Recommendation** The Microsoft graph exposes /Users and /Groups endpoints that you can integrate with today to provision users into Azure AD. Please note that Azure Active Directory doesn't support writing those users back into Active Directory.
0 commit comments