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: articles/active-directory/app-provisioning/use-scim-to-provision-users-and-groups.md
+10-10Lines changed: 10 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,7 +8,7 @@ ms.service: active-directory
8
8
ms.subservice: app-provisioning
9
9
ms.workload: identity
10
10
ms.topic: tutorial
11
-
ms.date: 03/07/2023
11
+
ms.date: 03/08/2023
12
12
ms.author: kenwith
13
13
ms.reviewer: arvinh
14
14
---
@@ -222,7 +222,7 @@ Use the general guidelines when implementing a SCIM endpoint to ensure compatibi
222
222
* If a value isn't present, don't send null values.
223
223
* Property values should be camel cased (for example, readWrite).
224
224
* Must return a list response.
225
-
* The Azure AD Provisioning Service makes the /schemas request every time someone saves the provisioning configuration in the Azure portal or every time a user lands on the edit provisioning page in the Azure portal. Other attributes discovered are surfaced to customers in the attribute mappings under the target attribute list. Schema discovery only leads to more target attributes being added. Attributes aren't removed.
225
+
* The Azure AD Provisioning Service makes the /schemas request when you save the provisioning configuration in the Azure portal. The request is also made when you open the edit provisioning page in the Azure portal. Other attributes discovered are surfaced to customers in the attribute mappings under the target attribute list. Schema discovery only leads to more target attributes being added. Attributes aren't removed.
226
226
227
227
### User provisioning and deprovisioning
228
228
@@ -275,7 +275,7 @@ This article provides example SCIM requests emitted by the Azure Active Director
275
275
276
276
### User Operations
277
277
278
-
*Users can be queried by `userName` or `emails[type eq "work"]` attributes.
278
+
*Use `userName` or `emails[type eq "work"]` attributes to query users.
279
279
280
280
#### Create User
281
281
@@ -606,8 +606,8 @@ This article provides example SCIM requests emitted by the Azure Active Director
606
606
607
607
### Group Operations
608
608
609
-
* Groups shall always be created with an empty members list.
610
-
*Groups can be queried by the `displayName` attribute.
609
+
* Groups are created with an empty members list.
610
+
*Use the `displayName` attribute to query groups.
611
611
* Update to the group PATCH request should yield an *HTTP 204 No Content* in the response. Returning a body with a list of all the members isn't advisable.
612
612
* It isn't necessary to support returning all the members of the group.
613
613
@@ -924,7 +924,7 @@ Now that you've designed your schema and understood the Azure AD SCIM implementa
924
924
925
925
For guidance on how to build a SCIM endpoint including examples, see [Develop a sample SCIM endpoint](use-scim-to-build-users-and-groups-endpoints.md).
926
926
927
-
The open source .NET Core [reference code example](https://aka.ms/SCIMReferenceCode) published by the Azure AD provisioning team is one such resource that can jump start your development. Once you have built your SCIM endpoint, you'll want to test it out. You can use the collection of [Postman tests](https://github.com/AzureAD/SCIMReferenceCode/wiki/Test-Your-SCIM-Endpoint) provided as part of the reference code or run through the sample requests / responses provided [above](#user-operations).
927
+
The open source .NET Core [reference code example](https://aka.ms/SCIMReferenceCode) published by the Azure AD provisioning team is one such resource that can jump start your development. Build a SCIM endpoint, then test it out. Use the collection of [Postman tests](https://github.com/AzureAD/SCIMReferenceCode/wiki/Test-Your-SCIM-Endpoint) provided as part of the reference code or run through the sample requests / responses [provided](#user-operations).
928
928
929
929
> [!Note]
930
930
> The reference code is intended to help you get started building your SCIM endpoint and is provided "AS IS." Contributions from the community are welcome to help build and maintain the code.
@@ -968,7 +968,7 @@ The SCIM endpoint must have an HTTP address and server authentication certificat
968
968
* WoSign
969
969
* DST Root CAX3
970
970
971
-
The .NET Core SDK includes an HTTPS development certificate that can be used duringdevelopment, thecertificateisinstalledaspartofthefirst-runexperience. DependingonhowyouruntheASP.NETCoreWebApplicationitwilllistentoadifferentport:
971
+
The .NET Core SDK includes an HTTPS development certificate that is used during development. The certificate is installed as part of the first-run experience. Depending on how you run the ASP.NET Core Web Application it listens to a different port:
@@ -1351,10 +1351,10 @@ Once the initial cycle has started, you can select **Provisioning logs** in the
1351
1351
1352
1352
## Publish your application to the Azure AD application gallery
1353
1353
1354
-
Ifyou'rebuildinganapplicationthatwillbeusedbymorethanonetenant, youcanmakeitavailableintheAzureADapplicationgallery. It's easy for organizations to discover the application and configure provisioning. Publishing your app in the Azure AD gallery and making provisioning available to others is easy. Check out the steps [here](../manage-apps/v2-howto-app-gallery-listing.md). Microsoft will work with you to integrate your application into our gallery, test your endpoint, and release onboarding [documentation](../saas-apps/tutorial-list.md) for customers to use.
1354
+
Ifyou'rebuildinganapplicationusedbymorethanonetenant, makeitavailableintheAzureADapplicationgallery. It's easy for organizations to discover the application and configure provisioning. Publishing your app in the Azure AD gallery and making provisioning available to others is easy. Check out the steps [here](../manage-apps/v2-howto-app-gallery-listing.md). Microsoft works with you to integrate your application into the gallery, test your endpoint, and release onboarding [documentation](../saas-apps/tutorial-list.md) for customers.
Usethechecklisttoonboardyourapplicationquicklyandcustomershaveasmoothdeploymentexperience. Theinformationisgatheredfromyou when onboarding to the gallery.
@@ -1418,7 +1418,7 @@ Best practices (recommended, but not required):
1418
1418
> [!NOTE]
1419
1419
>Whileit's not possible to setup OAuth on the non-gallery applications, you can manually generate an access token from your authorization server and input it as the secret token to a non-gallery application. This allows you to verify compatibility of your SCIM server with the Azure AD Provisioning Service before onboarding to the app gallery, which does support the OAuth code grant.
1420
1420
1421
-
**Long-livedOAuthbearertokens:**Ifyourapplicationdoesn't support the OAuth authorization code grant flow, instead generate a long lived OAuth bearer token that an administrator can use to set up the provisioning integration. The token should be perpetual, or else the provisioning job will be [quarantined](application-provisioning-quarantine-status.md) when the token expires.
1421
+
**Long-livedOAuthbearertokens:**Ifyourapplicationdoesn't support the OAuth authorization code grant flow, instead generate a long lived OAuth bearer token that an administrator can use to set up the provisioning integration. The token should be perpetual, or else the provisioning job is [quarantined](application-provisioning-quarantine-status.md) when the token expires.
# Configurable token lifetimes in the Microsoft identity platform (preview)
18
18
19
-
You can specify the lifetime of a access, ID, or SAML token issued by the Microsoft identity platform. You can set token lifetimes for all apps in your organization, for a multi-tenant (multi-organization) application, or for a specific service principal in your organization. However, we currently do not support configuring the token lifetimes for [managed identity service principals](../managed-identities-azure-resources/overview.md).
19
+
You can specify the lifetime of an access, ID, or SAML token issued by the Microsoft identity platform. You can set token lifetimes for all apps in your organization, for a multi-tenant (multi-organization) application, or for a specific service principal in your organization. However, we currently don't support configuring the token lifetimes for [managed identity service principals](../managed-identities-azure-resources/overview.md).
20
20
21
-
In Azure AD, a policy object represents a set of rules that are enforced on individual applications or on all applications in an organization. Each policy type has a unique structure, with a set of properties that are applied to objects to which they are assigned.
21
+
In Azure AD, a policy object represents a set of rules that are enforced on individual applications or on all applications in an organization. Each policy type has a unique structure, with a set of properties that are applied to objects to which they're assigned.
22
22
23
-
You can designate a policy as the default policy for your organization. The policy is applied to any application in the organization, as long as it is not overridden by a policy with a higher priority. You also can assign a policy to specific applications. The order of priority varies by policy type.
23
+
You can designate a policy as the default policy for your organization. The policy is applied to any application in the organization, as long as it isn't overridden by a policy with a higher priority. You also can assign a policy to specific applications. The order of priority varies by policy type.
24
24
25
25
For examples, read [examples of how to configure token lifetimes](configure-token-lifetimes.md).
26
26
@@ -99,14 +99,14 @@ Refresh and session token configuration are affected by the following properties
99
99
|Single-Factor Session Token Max Age |MaxAgeSessionSingleFactor |Session tokens (persistent and nonpersistent) |Until-revoked |
100
100
|Multi-Factor Session Token Max Age |MaxAgeSessionMultiFactor |Session tokens (persistent and nonpersistent) |Until-revoked |
101
101
102
-
Non-persistent session tokens have a Max Inactive Time of 24 hours whereas persistent session tokens have a Max Inactive Time of 90 days. Any time the SSO session token is used within its validity period, the validity period is extended another 24 hours or 90 days. If the SSO session token is not used within its Max Inactive Time period, it is considered expired and will no longer be accepted. Any changes to this default periods should be change using [Conditional Access](../conditional-access/howto-conditional-access-session-lifetime.md).
102
+
Non-persistent session tokens have a Max Inactive Time of 24 hours whereas persistent session tokens have a Max Inactive Time of 90 days. Anytime the SSO session token is used within its validity period, the validity period is extended another 24 hours or 90 days. If the SSO session token isn't used within its Max Inactive Time period, it's considered expired and will no longer be accepted. Any changes to this default periods should be change using [Conditional Access](../conditional-access/howto-conditional-access-session-lifetime.md).
103
103
104
104
You can use PowerShell to find the policies that will be affected by the retirement. Use the [PowerShell cmdlets](configure-token-lifetimes.md#get-started) to see the all policies created in your organization, or to find which apps and service principals are linked to a specific policy.
105
105
106
106
## Policy evaluation and prioritization
107
107
You can create and then assign a token lifetime policy to a specific application, to your organization, and to service principals. Multiple policies might apply to a specific application. The token lifetime policy that takes effect follows these rules:
108
108
109
-
* If a policy is explicitly assigned to the service principal, it is enforced.
109
+
* If a policy is explicitly assigned to the service principal, it's enforced.
110
110
* If no policy is explicitly assigned to the service principal, a policy explicitly assigned to the parent organization of the service principal is enforced.
111
111
* If no policy is explicitly assigned to the service principal or to the organization, the policy assigned to the application is enforced.
112
112
* If no policy has been assigned to the service principal, the organization, or the application object, the default values are enforced. (See the table in [Configurable token lifetime properties](#configurable-token-lifetime-properties).)
description: Conceptual article describing the custom claims provider as part of the custom authentication extension framework.
5
+
services: active-directory
6
+
author: yoelhor
7
+
manager: CelesteDG
8
+
9
+
ms.service: active-directory
10
+
ms.subservice: develop
11
+
ms.workload: identity
12
+
ms.topic: conceptual
13
+
ms.date: 03/06/2023
14
+
ms.author: davidmu
15
+
ms.reviewer: JasSuri
16
+
ms.custom: aaddev
17
+
#Customer intent: As a developer, I want to learn about custom claims provider so that I can augment tokens with claims from an external identity system or role management system.
18
+
---
19
+
20
+
# Custom claims provider (preview)
21
+
22
+
This article provides an overview to the Azure Active Directory (Azure AD) custom claims provider.
23
+
When a user authenticates to an application, a custom claims provider can be used to add claims into the token. A custom claims provider is made up of a custom extension that calls an external REST API, to fetch claims from external systems. A custom claims provider can be assigned to one or many applications in your directory.
24
+
25
+
Key data about a user is often stored in systems external to Azure AD. For example, secondary email, billing tier, or sensitive information. Some applications may rely on these attributes for the application to function as designed. For example, the application may block access to certain features based on a claim in the token.
26
+
27
+
Use a custom claims provider for the following scenarios:
28
+
29
+
-**Migration of legacy systems** - You may have legacy identity systems such as Active Directory Federation Services (AD FS) or data stores (such as LDAP directory) that hold information about users. You'd like to migrate these applications, but can't fully migrate the identity data into Azure AD. Your apps may depend on certain information on the token, and can't be rearchitected.
30
+
-**Integration with other data stores that can't be synced to the directory** - You may have third-party systems, or your own systems that store user data. Ideally this information could be consolidated, either through [synchronization](../cloud-sync/what-is-cloud-sync.md) or direct migration, in the Azure AD directory. However, that isn't always feasible. The restriction may be because of data residency, regulations, or other requirements.
31
+
32
+
## Token issuance start event listener
33
+
34
+
An event listener is a procedure that waits for an event to occur. The custom extension uses the **token issuance start** event listener. The event is triggered when a token is about to be issued to your application. When the event is triggered the custom extension REST API is called to fetch attributes from external systems.
35
+
36
+
For an example using a custom claims provider with the **token issuance start** event listener, check out the [get started with custom claims providers](custom-extension-get-started.md) article.
37
+
38
+
## Next steps
39
+
40
+
- Learn how to [create and register a custom claims provider](custom-extension-get-started.md) with a sample Open ID Connect application.
41
+
- If you already have a custom claims provider registered, you can configure a [SAML application](custom-extension-configure-saml-app.md) to receive tokens with claims sourced from an external store.
0 commit comments