Updates from: 07/01/2023 01:16:10
Service Microsoft Docs article Related commit history on GitHub Change details
active-directory-b2c Enable Authentication Web Application Options https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory-b2c/enable-authentication-web-application-options.md
To support a secured logout redirect in your application, first follow the steps
1. In the **Startup.cs** class, parse the `id_token_hint` value and append the value to the authentication request. The following code snippet demonstrates how to pass the `id_token_hint` value to the authentication request: ```csharp
- private async Task OnRedirectToIdentityProviderFunc(RedirectContext context)
+ private async Task OnRedirectToIdentityProviderForSignOutFunc(RedirectContext context)
{ var id_token_hint = context.Properties.Items.FirstOrDefault(x => x.Key == "id_token_hint").Value; if (id_token_hint != null)
To support a secured logout redirect in your application, first follow the steps
{ Configuration.Bind("AzureAdB2C", options); options.Events ??= new OpenIdConnectEvents();
- options.Events.OnRedirectToIdentityProvider += OnRedirectToIdentityProviderFunc;
+ options.Events.OnRedirectToIdentityProviderForSignOut += OnRedirectToIdentityProviderForSignOutFunc;
options.SaveTokens = true; }); ```
active-directory-b2c Tenant Management Directory Quota https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory-b2c/tenant-management-directory-quota.md
If your tenant usage is higher that 80%, you can remove inactive users or reques
## Request increase directory quota size
-You can request to increase the quota size by [contacting support](find-help-open-support-ticket.md)
-
-## Next steps
--- Learn [how to manage inactive user accounts](user-manage-inactive.md).
+You can request to increase the quota size by [contacting support](find-help-open-support-ticket.md)
active-directory-b2c User Manage Inactive https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory-b2c/user-manage-inactive.md
- Title: Manage inactive users in Azure Active Directory B2C-
-description: Learn how to manage inactive users and remove unused accounts
------- Previously updated : 06/15/2023------
-# Manage inactive users in your Azure Active Directory B2C tenant
-
-We recommend that you monitor your user accounts. Monitoring your user accounts enables you to discover inactive user accounts, which consume your Azure Active Directory (AD) B2C directory quota. Monitoring user accounts also help you to reduce the overall attack surface.
-
-## List inactive users in your Azure AD B2C tenant
-
-1. Use the steps in [Register an application](client-credentials-grant-flow.md#step-2-register-an-application) to register an app in your tenant, which uses client credentials flow. Record the **Application (client) ID** for use in a later.
-
-1. Use the steps in [Create a client secret](client-credentials-grant-flow.md#step-2-register-an-application) to configure a client secret for your app. Record the secret's **Value**. You will use this value for configuration in a later step.
-
-1. For your app to call Microsoft Graph API, you need to grant it the required permissions. To do so, use the steps in [Grant API access](microsoft-graph-get-started.md?tabs=app-reg-ga#grant-api-access), but only grant **User.Read.All** and **AuditLog.Read.All** permissions.
-
-1. Run the following PowerShell script. Replace:
-
- 1. `[TenantId]` with your Azure AD B2C tenant ID. Learn [how to read your tenant ID](tenant-management-read-tenant-name.md#get-your-tenant-id)
-
- 1. `[ClientID]` with the Application (client) ID that you copied earlier.
-
- 1. `[ClientSecret]` with the application client secret value that you copied earlier.
-
-```ps
-$tenantId = "[TenantId]"
-$clientId = "[ClientID]"
-$clientSecret = "[ClientSecret]"
-
-## Use Client Credentials flow to get token to call Graph API
-$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
-$headers.Add("Content-Type", "application/x-www-form-urlencoded")
-$body = "grant_type=client_credentials&client_id=" + $clientId + "&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=" + $clientSecret
-$endpoint = "https://login.microsoftonline.com/" + $tenantId + "/oauth2/v2.0/token"
-$response = Invoke-RestMethod $endpoint -Method "POST" -Headers $headers -Body $body
-
-## Call Graph API using token obtained in previous step
-$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
-$headers.Add("Authorization", "Bearer " + $response.access_token)
-$response = Invoke-RestMethod 'https://graph.microsoft.com/beta/users?$select=displayName,signInActivity' -Method 'GET' -Headers $headers
-$response | ConvertTo-Json
-```
-
-The following JSON shows an example of the results:
-
-```json
-{
- "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(displayName,signInActivity)",
- "value": [
- {
- "id": "[object id]",
- "displayName": "Martin Balaz",
- "signInActivity": "@{lastSignInDateTime=2023-03-28T20:08:07Z; lastSignInRequestId=c43ac6b5-c644-456f-832d-ea323bf1cf00; lastNonInteractiveSignInDateTime=; lastNonInteractiveSignInRequestId=}"
- },
- {
- "id": "[object id]",
- "displayName": "Takuya Miura",
- "signInActivity": "@{lastSignInDateTime=2023-03-28T20:08:26Z; lastSignInRequestId=3f546eba-ba9b-4bc4-9bd3-b5b6fa5fce00; lastNonInteractiveSignInDateTime=; lastNonInteractiveSignInRequestId=}"
- }
- ]
-}
-```
-
-The attribute lastSignInDateTime shows the last sign in date.
-
-## Delete inactive users in your Azure AD B2C tenant
-
-To delete a user in your Azure AD B2C tenant, you need to call the [Delete a user](/graph/api/user-delete) Microsoft Graph API. To call this API you need to grant your app **User.ReadWrite.All** Microsoft Graph API permission as explained earlier.
-
->[!NOTE]
->DELETE /graph/api/user-delete
-
-The following PowerShell script reads all users with sign in date before a given date, then attempts to delete them. Before you run it, replace the `[TenantId]`, `[ClientID]` and `[ClientSecret]` placeholders with appropriate values as explained earlier. Also replace `[Date]` with a date that you consider appropriate to determine if a user is considered inactive. For example: 2023-04-30T00:00:00Z
-
-```ps
-$tenantId = "[TenantId]"
-$clientId = "[ClientID]"
-$clientSecret = "[ClientSecret]"
-
-## Use Client Credentials flow to get token to call Graph API
-$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
-$headers.Add("Content-Type", "application/x-www-form-urlencoded")
-$body = "grant_type=client_credentials&client_id=" + $clientId + "&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=" + $clientSecret
-$endpoint = "https://login.microsoftonline.com/" + $tenantId + "/oauth2/v2.0/token"
-$response = Invoke-RestMethod $endpoint -Method "POST" -Headers $headers -Body $body
-# $response | ConvertTo-Json
-
-## Call Graph API using token obtained in previous step
-$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
-$headers.Add("Authorization", "Bearer " + $response.access_token)
-$response = Invoke-RestMethod 'https://graph.microsoft.com/beta/users?$select=displayName,signInActivity&$filter=signInActivity/lastSignInDateTime le [Date]' -Method 'GET' -Headers $headers
-$response | ConvertTo-Json
-
-## Call Graph API to delete the users obtained in the previous query
-foreach ($value in $response.value) {
- $deleteEndpoint = "https://graph.microsoft.com/v1.0/users/" + $value.id
- $deleteResponse = Invoke-RestMethod $deleteEndpoint -Method 'DELETE' -Headers $headers
-}
-```
active-directory Application Provisioning When Will Provisioning Finish Specific User https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/app-provisioning/application-provisioning-when-will-provisioning-finish-specific-user.md
Previously updated : 05/04/2023 Last updated : 06/29/2023
The time it takes for a given user to be provisioned depends mainly on whether y
The following table summarizes synchronization times for common provisioning scenarios. In these scenarios, the source system is Azure AD and the target system is a SaaS application. The sync times are derived from a statistical analysis of sync jobs for the SaaS applications ServiceNow, Workplace, Salesforce, and G Suite.
-| Scope configuration | Users, groups, and members in scope | Initial cycle time | Incremental cycle time |
-| -- | -- | -- | -- |
-| Sync assigned users and groups only | < 1,000 | < 30 minutes | < 30 minutes |
-| Sync assigned users and groups only | 1,000 - 10,000 | 142 - 708 minutes | < 30 minutes |
-| Sync assigned users and groups only | 10,000 - 100,000 | 1,170 - 2,340 minutes | < 30 minutes |
-| Sync all users and groups in Azure AD | < 1,000 | < 30 minutes | < 30 minutes |
-| Sync all users and groups in Azure AD | 1,000 - 10,000 | < 30 - 120 minutes | < 30 minutes |
-| Sync all users and groups in Azure AD | 10,000 - 100,000 | 713 - 1,425 minutes | < 30 minutes |
-| Sync all users in Azure AD| < 1,000 | < 30 minutes | < 30 minutes |
-| Sync all users in Azure AD | 1,000 - 10,000 | 43 - 86 minutes | < 30 minutes |
+| Scope configuration | Users, groups, and members in scope | Initial cycle time |
+| -- | -- | -- |
+| Sync assigned users and groups only | < 1,000 | < 30 minutes |
+| Sync assigned users and groups only | 1,000 - 10,000 | 142 - 708 minutes |
+| Sync assigned users and groups only | 10,000 - 100,000 | 1,170 - 2,340 minutes |
+| Sync all users and groups in Azure AD | < 1,000 | < 30 minutes |
+| Sync all users and groups in Azure AD | 1,000 - 10,000 | < 30 - 120 minutes |
+| Sync all users and groups in Azure AD | 10,000 - 100,000 | 713 - 1,425 minutes |
+| Sync all users in Azure AD| < 1,000 | < 30 minutes |
+| Sync all users in Azure AD | 1,000 - 10,000 | 43 - 86 minutes |
For the configuration **Sync assigned user and groups only**, you can use the following formulas to determine the approximate minimum and maximum expected **initial cycle** times:
Summary of factors that influence the time it takes to complete an **initial cyc
- If performance becomes an issue, and you're attempting to provision most users and groups in your tenant, then use scoping filters. Scoping filters allow you to fine tune the data that the provisioning service extracts from Azure AD by filtering out users based on specific attribute values. For more information on scoping filters, see [Attribute-based application provisioning with scoping filters](define-conditional-rules-for-provisioning-user-accounts.md).
-The **incremental cycle** may also take longer than the duration we have documented above. Some of the factors that influence this duration are:
--- The number of changes on the individual objects properties.-- The number of changes on the groups memberships.-- The scope of assignment configured for the app. Configuration of **sync assigned users and groups only** is recommended where possible.-
+In most cases, the **incremental cycle** completes in 30 minutes. However, when there are hundreds or thousands of user changes or group membership changes, the incremental cycle time will increase proportionally with the number of changes to process and can take several hours. Using **sync assigned users and groups** and minimizing the number of users / groups in scope for provisioning will help to reduce the sync time.
## Next steps [Automate user provisioning and deprovisioning to SaaS applications with Azure Active Directory](user-provisioning.md)
active-directory On Premises Sap Connector Configure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/app-provisioning/on-premises-sap-connector-configure.md
+
+ Title: Azure AD Provisioning to SAP ERP Central Component (SAP ECC) 7.0
+description: This document describes how to configure Azure AD to provision users into SAP ECC 7.
+++++++ Last updated : 06/30/2023++++
+# Configuring Azure AD to provision users into SAP ECC 7.0
+The following documentation provides configuration and tutorial information demonstrating how to provision users from Azure AD into SAP ERP Central Component (SAP ECC) 7.0.
+++
+## Next steps
+
+- [App provisioning](user-provisioning.md)
+- [Tutorial: ECMA Connector Host generic SQL connector](tutorial-ecma-sql-connector.md)
active-directory Fido2 Compatibility https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/authentication/fido2-compatibility.md
Previously updated : 01/29/2023 Last updated : 06/29/2023
# Browser support of FIDO2 passwordless authentication
-Azure Active Directory allows [FIDO2 security keys](./concept-authentication-passwordless.md#fido2-security-keys) to be used as a passwordless device. The availability of FIDO2 authentication for Microsoft accounts was [announced in 2018](https://techcommunity.microsoft.com/t5/identity-standards-blog/all-about-fido2-ctap2-and-webauthn/ba-p/288910), and it became [generally available](https://techcommunity.microsoft.com/t5/azure-active-directory-identity/passwordless-authentication-is-now-generally-available/ba-p/1994700) in March 2021. The following diagram shows which browsers and operating system combinations support passwordless authentication using FIDO2 authentication keys with Azure Active Directory. Azure AD currently supports only hardware FIDO2 keys and does not support passkeys for any platform.
+Azure Active Directory allows [FIDO2 security keys](./concept-authentication-passwordless.md#fido2-security-keys) to be used as a passwordless device. The availability of FIDO2 authentication for Microsoft accounts was [announced in 2018](https://techcommunity.microsoft.com/t5/identity-standards-blog/all-about-fido2-ctap2-and-webauthn/ba-p/288910), and it became [generally available](https://techcommunity.microsoft.com/t5/azure-active-directory-identity/passwordless-authentication-is-now-generally-available/ba-p/1994700) in March 2021. The following diagram shows which browsers and operating system combinations support passwordless authentication using FIDO2 authentication keys with Azure Active Directory. Azure AD currently supports only hardware FIDO2 keys and doesn't support passkeys for any platform.
## Supported browsers
This table shows support for authenticating Azure Active Directory (Azure AD) an
|::|::|::|::|::|::|::|::|::|::|::|::|::| | | USB | NFC | BLE | USB | NFC | BLE | USB | NFC | BLE | USB | NFC | BLE | | **Windows** | ![Chrome supports USB on Windows for Azure AD accounts.][y] | ![Chrome supports NFC on Windows for Azure AD accounts.][y] | ![Chrome supports BLE on Windows for Azure AD accounts.][y] | ![Edge supports USB on Windows for Azure AD accounts.][y] | ![Edge supports NFC on Windows for Azure AD accounts.][y] | ![Edge supports BLE on Windows for Azure AD accounts.][y] | ![Firefox supports USB on Windows for Azure AD accounts.][y] | ![Firefox supports NFC on Windows for Azure AD accounts.][y] | ![Firefox supports BLE on Windows for Azure AD accounts.][y] | ![Safari supports USB on Windows for Azure AD accounts.][n] | ![Safari supports NFC on Windows for Azure AD accounts.][n] | ![Safari supports BLE on Windows for Azure AD accounts.][n] |
-| **macOS** | ![Chrome supports USB on macOS for Azure AD accounts.][y] | ![Chrome supports NFC on macOS for Azure AD accounts.][n] | ![Chrome supports BLE on macOS for Azure AD accounts.][n] | ![Edge supports USB on macOS for Azure AD accounts.][y] | ![Edge supports NFC on macOS for Azure AD accounts.][n] | ![Edge supports BLE on macOS for Azure AD accounts.][n] | ![Firefox supports USB on macOS for Azure AD accounts.][n] | ![Firefox supports NFC on macOS for Azure AD accounts.][n] | ![Firefox supports BLE on macOS for Azure AD accounts.][n] | ![Safari supports USB on macOS for Azure AD accounts.][n] | ![Safari supports NFC on macOS for Azure AD accounts.][n] | ![Safari supports BLE on macOS for Azure AD accounts.][n] |
-| **ChromeOS** | ![Chrome supports USB on ChromeOS for Azure AD accounts.][y]* | ![Chrome supports NFC on ChromeOS for Azure AD accounts.][n] | ![Chrome supports BLE on ChromeOS for Azure AD accounts.][n] | ![Edge supports USB on ChromeOS for Azure AD accounts.][n] | ![Edge supports NFC on ChromeOS for Azure AD accounts.][n] | ![Edge supports BLE on ChromeOS for Azure AD accounts.][n] | ![Firefox supports USB on ChromeOS for Azure AD accounts.][n] | ![Firefox supports NFC on ChromeOS for Azure AD accounts.][n] | ![Firefox supports BLE on ChromeOS for Azure AD accounts.][n] | ![Safari supports USB on ChromeOS for Azure AD accounts.][n] | ![Safari supports NFC on ChromeOS for Azure AD accounts.][n] | ![Safari supports BLE on ChromeOS for Azure AD accounts.][n] |
+| **macOS** | ![Chrome supports USB on macOS for Azure AD accounts.][y] | ![Chrome supports NFC on macOS for Azure AD accounts.][n] | ![Chrome supports BLE on macOS for Azure AD accounts.][n] | ![Edge supports USB on macOS for Azure AD accounts.][y] | ![Edge supports NFC on macOS for Azure AD accounts.][n] | ![Edge supports BLE on macOS for Azure AD accounts.][n] | ![Firefox supports USB on macOS for Azure AD accounts.][n] | ![Firefox supports NFC on macOS for Azure AD accounts.][n] | ![Firefox supports BLE on macOS for Azure AD accounts.][n] | ![Safari supports USB on macOS for Azure AD accounts.][y] | ![Safari supports NFC on macOS for Azure AD accounts.][n] | ![Safari supports BLE on macOS for Azure AD accounts.][n] |
+| **ChromeOS** | ![Chrome supports USB on ChromeOS for Azure AD accounts.][y] | ![Chrome supports NFC on ChromeOS for Azure AD accounts.][n] | ![Chrome supports BLE on ChromeOS for Azure AD accounts.][n] | ![Edge supports USB on ChromeOS for Azure AD accounts.][n] | ![Edge supports NFC on ChromeOS for Azure AD accounts.][n] | ![Edge supports BLE on ChromeOS for Azure AD accounts.][n] | ![Firefox supports USB on ChromeOS for Azure AD accounts.][n] | ![Firefox supports NFC on ChromeOS for Azure AD accounts.][n] | ![Firefox supports BLE on ChromeOS for Azure AD accounts.][n] | ![Safari supports USB on ChromeOS for Azure AD accounts.][n] | ![Safari supports NFC on ChromeOS for Azure AD accounts.][n] | ![Safari supports BLE on ChromeOS for Azure AD accounts.][n] |
| **Linux** | ![Chrome supports USB on Linux for Azure AD accounts.][y] | ![Chrome supports NFC on Linux for Azure AD accounts.][n] | ![Chrome supports BLE on Linux for Azure AD accounts.][n] | ![Edge supports USB on Linux for Azure AD accounts.][n] | ![Edge supports NFC on Linux for Azure AD accounts.][n] | ![Edge supports BLE on Linux for Azure AD accounts.][n] | ![Firefox supports USB on Linux for Azure AD accounts.][n] | ![Firefox supports NFC on Linux for Azure AD accounts.][n] | ![Firefox supports BLE on Linux for Azure AD accounts.][n] | ![Safari supports USB on Linux for Azure AD accounts.][n] | ![Safari supports NFC on Linux for Azure AD accounts.][n] | ![Safari supports BLE on Linux for Azure AD accounts.][n] |
-| **iOS** | ![Chrome supports USB on iOS for Azure AD accounts.][n] | ![Chrome supports NFC on iOS for Azure AD accounts.][n] | ![Chrome supports BLE on iOS for Azure AD accounts.][n] | ![Edge supports USB on iOS for Azure AD accounts.][n] | ![Edge supports NFC on Linux for Azure AD accounts.][n] | ![Edge supports BLE on Linux for Azure AD accounts.][n] | ![Firefox supports USB on Linux for Azure AD accounts.][n] | ![Firefox supports NFC on iOS for Azure AD accounts.][n] | ![Firefox supports BLE on iOS for Azure AD accounts.][n] | ![Safari supports USB on iOS for Azure AD accounts.][n] | ![Safari supports NFC on iOS for Azure AD accounts.][n] | ![Safari supports BLE on iOS for Azure AD accounts.][n] |
+| **iOS** | ![Chrome supports USB on iOS for Azure AD accounts.][y] | ![Chrome supports NFC on iOS for Azure AD accounts.][y] | ![Chrome supports BLE on iOS for Azure AD accounts.][n] | ![Edge supports USB on iOS for Azure AD accounts.][y] | ![Edge supports NFC on iOS for Azure AD accounts.][y] | ![Edge supports BLE on iOS for Azure AD accounts.][n] | ![Firefox supports USB on Linux for Azure AD accounts.][n] | ![Firefox supports NFC on iOS for Azure AD accounts.][n] | ![Firefox supports BLE on iOS for Azure AD accounts.][n] | ![Safari supports USB on iOS for Azure AD accounts.][y] | ![Safari supports NFC on iOS for Azure AD accounts.][y] | ![Safari supports BLE on iOS for Azure AD accounts.][n] |
| **Android** | ![Chrome supports USB on Android for Azure AD accounts.][n] | ![Chrome supports NFC on Android for Azure AD accounts.][n] | ![Chrome supports BLE on Android for Azure AD accounts.][n] | ![Edge supports USB on Android for Azure AD accounts.][n] | ![Edge supports NFC on Android for Azure AD accounts.][n] | ![Edge supports BLE on Android for Azure AD accounts.][n] | ![Firefox supports USB on Android for Azure AD accounts.][n] | ![Firefox supports NFC on Android for Azure AD accounts.][n] | ![Firefox supports BLE on Android for Azure AD accounts.][n] | ![Safari supports USB on Android for Azure AD accounts.][n] | ![Safari supports NFC on Android for Azure AD accounts.][n] | ![Safari supports BLE on Android for Azure AD accounts.][n] |
-*Key Registration is currently not supported with ChromeOS/Chrome Browser.
+- Key registration is currently not supported with ChromeOS/Chrome Browser.
+- For iOS and macOS on Safari browser, PIN requests fail if the PIN isn't already set on the security key.
+- Security key PIN for user verification isn't currently supported with Android.
+
+>[!NOTE]
+>This is the view for web support. Authentication for native apps in iOS and Android are not available yet.
## Unsupported browsers
-The following operating system and browser combinations are not supported, but future support and testing is being investigated. If you would like to see other operating system and browser support, please leave feedback on our [product feedback site](https://feedback.azure.com/d365community/).
+The following operating system and browser combinations aren't supported, but future support and testing is being investigated. If you would like to see other operating system and browser support, please leave feedback on our [product feedback site](https://feedback.azure.com/d365community/).
| Operating system | Browser | | - | - |
-| iOS | Safari |
| Android | Chrome | ## Minimum browser version
active-directory Howto Mfa Mfasettings https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/authentication/howto-mfa-mfasettings.md
Previously updated : 06/26/2023 Last updated : 06/29/2023
# Configure Azure AD Multi-Factor Authentication settings To customize the end-user experience for Azure AD Multi-Factor Authentication, you can configure options for settings like account lockout thresholds or fraud alerts and notifications. Some settings are available directly in the Azure portal for Azure Active Directory (Azure AD), and some are in a separate Azure AD Multi-Factor Authentication portal.-
+
The following Azure AD Multi-Factor Authentication settings are available in the Azure portal: | Feature | Description | | - | -- |
-| [Account lockout](#account-lockout) | Temporarily lock accounts from using Azure AD Multi-Factor Authentication if there are too many denied authentication attempts in a row. This feature applies only to users who enter a PIN to authenticate. (MFA Server only) |
+| [Account lockout (MFA Server only)](#account-lockout-mfa-server-only) | Temporarily lock accounts from using Azure AD Multi-Factor Authentication if there are too many denied authentication attempts in a row. This feature applies only to users who use MFA Server to enter a PIN to authenticate. |
| [Block/unblock users](#block-and-unblock-users) | Block specific users from being able to receive Azure AD Multi-Factor Authentication requests. Any authentication attempts for blocked users are automatically denied. Users remain blocked for 90 days from the time that they're blocked or until they're manually unblocked. | | [Report suspicious activity](#report-suspicious-activity) | Configure settings that allow users to report fraudulent verification requests. | | [Notifications](#notifications) | Enable notifications of events from MFA Server. |
The following Azure AD Multi-Factor Authentication settings are available in the
![Azure portal - Azure AD Multi-Factor Authentication settings](./media/howto-mfa-mfasettings/multi-factor-authentication-settings-portal.png)
-## Account lockout
+## Account lockout (MFA Server only)
+
+>[!NOTE]
+>Account lockout only affects users who sign in by using MFA Server on-premises.
-To prevent repeated MFA attempts as part of an attack, the account lockout settings let you specify how many failed attempts to allow before the account becomes locked out for a period of time. The account lockout settings are applied only when a PIN code is entered for the MFA prompt.
+To prevent repeated MFA attempts as part of an attack, the account lockout settings let you specify how many failed attempts to allow before the account becomes locked out for a period of time. The account lockout settings are applied only when a PIN code is entered for the MFA prompt by using MFA Server on-premises.
The following settings are available:
active-directory Howto Mfa Userdevicesettings https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/authentication/howto-mfa-userdevicesettings.md
+ # Manage user authentication methods for Azure AD Multi-Factor Authentication Users in Azure AD have two distinct sets of contact information:
If you're assigned the *Authentication Administrator* role, you can require user
1. On the left, select **Azure Active Directory** > **Users** > **All users**. 1. Choose the user you wish to perform an action on and select **Authentication methods**. At the top of the window, then choose one of the following options for the user: - **Reset Password** resets the user's password and assigns a temporary password that must be changed on the next sign-in.
- - **Require Re-register MFA** makes it so that when the user signs in next time, they're requested to set up a new MFA authentication method.
-
- > [!NOTE]
- > The user's currently registered authentication methods aren't deleted when an admin requires re-registration for MFA. After a user re-registers for MFA, we recommend they review their security info and delete any previously registered authentication methods that are no longer usable.
-
+- **Require Re-register MFA** deactivates the user's hardware OATH tokens and deletes the following authentication methods from this user: phone numbers, Microsoft Authenticator apps and software OATH tokens. If needed, the user is requested to set up a new MFA authentication method the next time they sign in.
+ - **Revoke MFA Sessions** clears the user's remembered MFA sessions and requires them to perform MFA the next time it's required by the policy on the device. :::image type="content" source="media/howto-mfa-userdevicesettings/manage-authentication-methods-in-azure.png" alt-text="Manage authentication methods from the Azure portal":::
To delete a user's app passwords, complete the following steps:
1. Check the box next to the user or users that you wish to manage. A list of quick step options appears on the right. 1. Select **Manage user settings**, then check the box for **Delete all existing app passwords generated by the selected users**, as shown in the following example: ![Delete all existing app passwords](./media/howto-mfa-userdevicesettings/deleteapppasswords.png)
-1. Select **save**, then **close**.
+1. 1. Select **save**, then **close**.
## Next steps
active-directory Controls https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/conditional-access/controls.md
Custom controls are a preview capability of the Azure Active Directory. When using custom controls, your users are redirected to a compatible service to satisfy authentication requirements outside of Azure Active Directory. To satisfy this control, a user's browser is redirected to the external service, performs any required authentication, and is then redirected back to Azure Active Directory. Azure Active Directory verifies the response and, if the user was successfully authenticated or validated, the user continues in the Conditional Access flow.
-> [!NOTE]
-> For more information about changes we are planning to the Custom Control capability, see the February 2020 [Archive for What's new](../fundamentals/whats-new-archive.md#upcoming-changes-to-custom-controls).
## Creating custom controls
active-directory Authentication Vs Authorization https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/develop/authentication-vs-authorization.md
Previously updated : 11/02/2022 Last updated : 06/29/2023
This article defines authentication and authorization. It also briefly covers Mu
## Authentication
-*Authentication* is the process of proving that you are who you say you are. This is achieved by verification of the identity of a person or device. It's sometimes shortened to *AuthN*. The Microsoft identity platform uses the [OpenID Connect](https://openid.net/connect/) protocol for handling authentication.
+*Authentication* is the process of proving that you're who you say you are. This is achieved by verification of the identity of a person or device. It's sometimes shortened to *AuthN*. The Microsoft identity platform uses the [OpenID Connect](https://openid.net/connect/) protocol for handling authentication.
## Authorization
This article defines authentication and authorization. It also briefly covers Mu
## Multifactor authentication
-*Multifactor authentication* is the act of providing an additional factor of authentication to an account. This is often used to protect against brute force attacks. It is sometimes shortened to *MFA* or *2FA*. The [Microsoft Authenticator](https://support.microsoft.com/account-billing/set-up-the-microsoft-authenticator-app-as-your-verification-method-33452159-6af9-438f-8f82-63ce94cf3d29) can be used as an app for handling two-factor authentication. For more information, see [multifactor authentication](../authentication/concept-mfa-howitworks.md).
+*Multifactor authentication* is the act of providing another factor of authentication to an account. This is often used to protect against brute force attacks. It's sometimes shortened to *MFA* or *2FA*. The [Microsoft Authenticator](https://support.microsoft.com/account-billing/set-up-the-microsoft-authenticator-app-as-your-verification-method-33452159-6af9-438f-8f82-63ce94cf3d29) can be used as an app for handling two-factor authentication. For more information, see [multifactor authentication](../authentication/concept-mfa-howitworks.md).
## Authentication and authorization using the Microsoft identity platform
active-directory Quickstart Configure App Access Web Apis https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/develop/quickstart-configure-app-access-web-apis.md
Previously updated : 05/05/2022 Last updated : 06/29/2023
active-directory Quickstart Configure App Expose Web Apis https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/develop/quickstart-configure-app-expose-web-apis.md
Previously updated : 02/27/2023 Last updated : 06/29/2023
In this quickstart, you'll register a web API with the Microsoft identity platfo
To provide scoped access to the resources in your web API, you first need to register the API with the Microsoft identity platform.
-1. Perform the steps in the **Register an application** section of [Quickstart: Register an app with the Microsoft identity platform](quickstart-register-app.md).
-1. Skip the **Add a redirect URI** and **Configure platform settings** sections. You don't need to configure a redirect URI for a web API since no user is logged in interactively.
-1. Skip the **Add credentials** section for now. Only if your API accesses a downstream API would it need its own credentials, a scenario not covered in this article.
+Perform the steps in the **Register an application** section of [Quickstart: Register an app with the Microsoft identity platform](quickstart-register-app.md).
+
+Skip the **Redirect URI (optional)** section. You don't need to configure a redirect URI for a web API since no user is logged in interactively.
With the web API registered, you can add scopes to the API's code so it can provide granular permission to consumers.
First, follow these steps to create an example scope named `Employees.Read.All`:
1. If you have access to multiple tenants, use the **Directories + subscriptions** filter :::image type="icon" source="./media/quickstart-configure-app-expose-web-apis/portal-01-directory-subscription-filter.png" border="false"::: in the top menu to select the tenant containing your client app's registration. 1. Select **Azure Active Directory** > **App registrations**, and then select your API's app registration. 1. Select **Expose an API**
-1. Select **Set** next to **Application ID URI** if you haven't yet configured one.
+1. Select **Add** next to **Application ID URI** if you haven't yet configured one.
You can use the default value of `api://<application-client-id>` or another [supported App ID URI pattern](reference-app-manifest.md#identifieruris-attribute). The App ID URI acts as the prefix for the scopes you'll reference in your API's code, and it must be globally unique. 1. Select **Add a scope**:
To add the `Employees.Write.All` example scope, follow the steps in the [Add a s
| **User consent display name** | *None (leave empty)* | | **User consent description** | *None (leave empty)* |
+Set the State to Enabled, and then select Add scope.
+ ## Verify the exposed scopes If you have successfully added both example scopes described in the previous sections, they'll appear in the **Expose an API** pane of your web API's app registration, similar to the following image:
active-directory Quickstart Register App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/develop/quickstart-register-app.md
Previously updated : 10/31/2022 Last updated : 06/29/2023
active-directory Users Custom Security Attributes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/enterprise-users/users-custom-security-attributes.md
Previously updated : 02/20/2023 Last updated : 06/29/2023
To assign or remove custom security attributes for a user in your Azure AD tenan
- Azure AD Premium P1 or P2 license - [Attribute Assignment Administrator](../roles/permissions-reference.md#attribute-assignment-administrator)-- [AzureADPreview](https://www.powershellgallery.com/packages/AzureADPreview) version 2.0.2.138 or later when using PowerShell
+- Microsoft.Graph module when using [Microsoft Graph PowerShell](/powershell/microsoftgraph/installation)
+- [AzureADPreview](https://www.powershellgallery.com/packages/AzureADPreview) version 2.0.2.138 or later when using Azure AD PowerShell
> [!IMPORTANT] > By default, [Global Administrator](../roles/permissions-reference.md#global-administrator) and other administrator roles do not have permissions to read, define, or assign custom security attributes.
To assign or remove custom security attributes for a user in your Azure AD tenan
1. Sign in to the [Azure portal](https://portal.azure.com).
-1. Make sure that you have defined custom security attributes. For more information, see [Add or deactivate custom security attributes in Azure AD](../fundamentals/custom-security-attributes-add.md).
+1. Make sure that you have defined custom security attributes. For more information, see [Add or deactivate custom security attribute definitions in Azure AD](../fundamentals/custom-security-attributes-add.md).
1. Select **Azure Active Directory** > **Users**.
To assign or remove custom security attributes for a user in your Azure AD tenan
1. When finished, select **Save**.
-## Filter users based on custom security attributes
+## Filter users based on custom security attribute assignments
You can filter the list of custom security attributes assigned to users on the All users page.
You can filter the list of custom security attributes assigned to users on the A
1. Select **Remove assignment**.
-## PowerShell
+## PowerShell or Microsoft Graph API
-To manage custom security attribute assignments for users in your Azure AD organization, you can use PowerShell. The following commands can be used to manage assignments.
+To manage custom security attribute assignments for users in your Azure AD organization, you can use PowerShell or Microsoft Graph API. The following examples can be used to manage assignments.
-#### Assign a custom security attribute with a multi-string value to a user
+#### Assign a custom security attribute with a string value to a user
-Use the [Set-AzureADMSUser](/powershell/module/azuread/set-azureadmsuser) command to assign a custom security attribute with a multi-string value to a user.
+The following example assigns a custom security attribute with a string value to a user.
- Attribute set: `Engineering`-- Attribute: `Project`-- Attribute data type: Collection of Strings-- Attribute value: `("Baker","Cascade")`-
-```powershell
-$attributes = @{
- Engineering = @{
- "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
- "Project@odata.type" = "#Collection(String)"
- Project = @("Baker","Cascade")
- }
-}
-Set-AzureADMSUser -Id dbb22700-a7de-4372-ae78-0098ee60e55e -CustomSecurityAttributes $attributes
-```
+- Attribute: `ProjectDate`
+- Attribute data type: String
+- Attribute value: `"2023-10-01"`
-#### Update a custom security attribute with a multi-string value for a user
+# [PowerShell](#tab/ms-powershell)
-Use the [Set-AzureADMSUser](/powershell/module/azuread/set-azureadmsuser) command to update a custom security attribute with a multi-string value for a user.
--- Attribute set: `Engineering`-- Attribute: `Project`-- Attribute data type: Collection of Strings-- Attribute value: `("Alpine","Baker")`
+[Update-MgUser](/powershell/module/microsoft.graph.users/update-mguser?view=graph-powershell-beta&preserve-view=true)
```powershell
-$attributesUpdate = @{
- Engineering = @{
+Select-MgProfile -Name "beta"
+$customSecurityAttributes = @{
+ "Engineering" = @{
"@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
- "Project@odata.type" = "#Collection(String)"
- Project = @("Alpine","Baker")
+ "ProjectDate" = "2023-10-01"
} }
-Set-AzureADMSUser -Id dbb22700-a7de-4372-ae78-0098ee60e55e -CustomSecurityAttributes $attributesUpdate
-```
-
-#### Get the custom security attribute assignments for a user
-
-Use the [Get-AzureADMSUser](/powershell/module/azuread/get-azureadmsuser) command to get the custom security attribute assignments for a user.
-
-```powershell
-$user1 = Get-AzureADMSUser -Id dbb22700-a7de-4372-ae78-0098ee60e55e -Select CustomSecurityAttributes
-$user1.CustomSecurityAttributes
+Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
```
-## Microsoft Graph API
-
-To manage custom security attribute assignments for users in your Azure AD organization, you can use the Microsoft Graph API. The following API calls can be made to manage assignments. For more information, see [Examples: Assign, update, list, or remove custom security attribute assignments using the Microsoft Graph API](/graph/custom-security-attributes-examples).
+# [Microsoft Graph](#tab/ms-graph)
-#### Assign a custom security attribute with a string value to a user
-
-Use the [Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true) API to assign a custom security attribute with a string value to a user.
--- Attribute set: `Engineering`-- Attribute: `ProjectDate`-- Attribute data type: String-- Attribute value: `"2022-10-01"`
+[Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true)
```http PATCH https://graph.microsoft.com/beta/users/{id}
PATCH https://graph.microsoft.com/beta/users/{id}
"Engineering": { "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
- "ProjectDate":"2022-10-01"
+ "ProjectDate":"2023-10-01"
} } } ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++ #### Assign a custom security attribute with a multi-string value to a user
-Use the [Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true) API to assign a custom security attribute with a multi-string value to a user.
+The following example assigns a custom security attribute with a multi-string value to a user.
- Attribute set: `Engineering` - Attribute: `Project` - Attribute data type: Collection of Strings - Attribute value: `["Baker","Cascade"]`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgUser](/powershell/module/microsoft.graph.users/update-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$customSecurityAttributes = @{
+ "Engineering" = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "Project@odata.type" = "#Collection(String)"
+ "Project" = @("Baker","Cascade")
+ }
+}
+Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true)
+ ```http PATCH https://graph.microsoft.com/beta/users/{id} {
PATCH https://graph.microsoft.com/beta/users/{id}
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[Set-AzureADMSUser](/powershell/module/azuread/set-azureadmsuser)
+
+```powershell
+$attributes = @{
+ Engineering = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "Project@odata.type" = "#Collection(String)"
+ Project = @("Baker","Cascade")
+ }
+}
+Set-AzureADMSUser -Id dbb22700-a7de-4372-ae78-0098ee60e55e -CustomSecurityAttributes $attributes
+```
+++ #### Assign a custom security attribute with an integer value to a user
-Use the [Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true) API to assign a custom security attribute with an integer value to a user.
+The following example assigns a custom security attribute with an integer value to a user.
- Attribute set: `Engineering` - Attribute: `NumVendors` - Attribute data type: Integer - Attribute value: `4`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgUser](/powershell/module/microsoft.graph.users/update-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$customSecurityAttributes = @{
+ "Engineering" = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "NumVendors@odata.type" = "#Int32"
+ "NumVendors" = 4
+ }
+}
+Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true)
+ ```http PATCH https://graph.microsoft.com/beta/users/{id} {
PATCH https://graph.microsoft.com/beta/users/{id}
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++ #### Assign a custom security attribute with a multi-integer value to a user
-Use the [Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true) API to assign a custom security attribute with a multi-integer value to a user.
+The following example assigns a custom security attribute with a multi-integer value to a user.
- Attribute set: `Engineering` - Attribute: `CostCenter` - Attribute data type: Collection of Integers - Attribute value: `[1001,1003]`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgUser](/powershell/module/microsoft.graph.users/update-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$customSecurityAttributes = @{
+ "Engineering" = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "CostCenter@odata.type" = "#Collection(Int32)"
+ "CostCenter" = @(1001,1003)
+ }
+}
+Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true)
+ ```http PATCH https://graph.microsoft.com/beta/users/{id} {
PATCH https://graph.microsoft.com/beta/users/{id}
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++ #### Assign a custom security attribute with a Boolean value to a user
-Use the [Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true) API to assign a custom security attribute with a Boolean value to a user.
+The following example assigns a custom security attribute with a Boolean value to a user.
- Attribute set: `Engineering` - Attribute: `Certification` - Attribute data type: Boolean - Attribute value: `true`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgUser](/powershell/module/microsoft.graph.users/update-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$customSecurityAttributes = @{
+ "Engineering" = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "Certification" = $true
+ }
+}
+Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true)
+ ```http PATCH https://graph.microsoft.com/beta/users/{id} {
PATCH https://graph.microsoft.com/beta/users/{id}
} ```
-#### Update a custom security attribute with an integer value for a user
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++
+#### Update a custom security attribute assignment with an integer value for a user
-Use the [Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true) API to update a custom security attribute with an integer value for a user.
+The following example updates a custom security attribute assignment with an integer value for a user.
- Attribute set: `Engineering` - Attribute: `NumVendors` - Attribute data type: Integer - Attribute value: `8`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgUser](/powershell/module/microsoft.graph.users/update-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$customSecurityAttributes = @{
+ "Engineering" = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "NumVendors@odata.type" = "#Int32"
+ "NumVendors" = 8
+ }
+}
+Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true)
+ ```http PATCH https://graph.microsoft.com/beta/users/{id} {
PATCH https://graph.microsoft.com/beta/users/{id}
} ```
-#### Update a custom security attribute with a Boolean value for a user
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++
+#### Update a custom security attribute assignment with a Boolean value for a user
-Use the [Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true) API to update a custom security attribute with a Boolean value for a user.
+The following example updates a custom security attribute assignment with a Boolean value for a user.
- Attribute set: `Engineering` - Attribute: `Certification` - Attribute data type: Boolean - Attribute value: `false`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgUser](/powershell/module/microsoft.graph.users/update-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$customSecurityAttributes = @{
+ "Engineering" = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "Certification" = $false
+ }
+}
+Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true)
+ ```http PATCH https://graph.microsoft.com/beta/users/{id} {
PATCH https://graph.microsoft.com/beta/users/{id}
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++
+#### Update a custom security attribute assignment with a multi-string value for a user
+
+The following example updates a custom security attribute assignment with a multi-string value for a user.
+
+- Attribute set: `Engineering`
+- Attribute: `Project`
+- Attribute data type: Collection of Strings
+- Attribute value: `("Alpine","Baker")`
+
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgUser](/powershell/module/microsoft.graph.users/update-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$customSecurityAttributes = @{
+ "Engineering" = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "Project@odata.type" = "#Collection(String)"
+ "Project" = @("Alpine","Baker")
+ }
+}
+Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true)
+
+```http
+PATCH https://graph.microsoft.com/beta/users/{id}
+{
+ "customSecurityAttributes":
+ {
+ "Engineering":
+ {
+ "@odata.type":"#Microsoft.DirectoryServices.CustomSecurityAttributeValue",
+ "Project@odata.type":"#Collection(String)",
+ "Project":["Alpine","Baker"]
+ }
+ }
+}
+```
+
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[Set-AzureADMSUser](/powershell/module/azuread/set-azureadmsuser)
+
+```powershell
+$attributesUpdate = @{
+ Engineering = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "Project@odata.type" = "#Collection(String)"
+ Project = @("Alpine","Baker")
+ }
+}
+Set-AzureADMSUser -Id dbb22700-a7de-4372-ae78-0098ee60e55e -CustomSecurityAttributes $attributesUpdate
+```
+++ #### Get the custom security attribute assignments for a user
-Use the [Get user](/graph/api/user-get?view=graph-rest-beta&preserve-view=true) API to get the custom security attribute assignments for a user.
+The following example gets the custom security attribute assignments for a user.
+
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgUser](/powershell/module/microsoft.graph.users/get-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$userAttributes = Get-MgUser -UserId $userId -Property "customSecurityAttributes"
+$userAttributes.CustomSecurityAttributes.AdditionalProperties | Format-List
+$userAttributes.CustomSecurityAttributes.AdditionalProperties.Engineering
+$userAttributes.CustomSecurityAttributes.AdditionalProperties.Marketing
+```
+
+```Output
+Key : Engineering
+Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [Project@odata.type, #Collection(String)], [Project, System.Object[]],
+ [ProjectDate, 2023-10-01]…}
+
+Key : Marketing
+Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [EmployeeId, GS45897]}
++
+Key Value
+ --
+@odata.type #microsoft.graph.customSecurityAttributeValue
+Project@odata.type #Collection(String)
+Project {Baker, Alpine}
+ProjectDate 2023-10-01
+NumVendors 8
+CostCenter@odata.type #Collection(Int32)
+CostCenter {1001, 1003}
+Certification False
++
+Key Value
+ --
+@odata.type #microsoft.graph.customSecurityAttributeValue
+EmployeeId KX45897
+```
+
+If there are no custom security attributes assigned to the user or if the calling principal does not have access, the response will be empty.
++
+# [Microsoft Graph](#tab/ms-graph)
+
+[Get user](/graph/api/user-get?view=graph-rest-beta&preserve-view=true)
```http GET https://graph.microsoft.com/beta/users/{id}?$select=customSecurityAttributes ```
+```http
+{
+ "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(customSecurityAttributes)/$entity",
+ "customSecurityAttributes": {
+ "Engineering": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "Project@odata.type": "#Collection(String)",
+ "Project": [
+ "Baker",
+ "Alpine"
+ ],
+ "ProjectDate": "2023-10-01",
+ "NumVendors": 8,
+ "CostCenter@odata.type": "#Collection(Int32)",
+ "CostCenter": [
+ 1001,
+ 1003
+ ],
+ "Certification": false
+ },
+ "Marketing": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "EmployeeId": "GS45897"
+ }
+ }
+}
+```
+ If there are no custom security attributes assigned to the user or if the calling principal does not have access, the response will look like: ```http
If there are no custom security attributes assigned to the user or if the callin
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[Get-AzureADMSUser](/powershell/module/azuread/get-azureadmsuser)
+
+```powershell
+$user1 = Get-AzureADMSUser -Id dbb22700-a7de-4372-ae78-0098ee60e55e -Select CustomSecurityAttributes
+$user1.CustomSecurityAttributes
+```
+++ #### List all users with a custom security attribute assignment that equals a value
-Use the [List users](/graph/api/user-list?view=graph-rest-beta&preserve-view=true) API to list all users with a custom security attribute assignment that equals a value. The following example retrieves users with a custom security attribute named `AppCountry` with a value that equals `Canada`. The filter value is case sensitive. You must add `ConsistencyLevel=eventual` in the request or the header. You must also include `$count=true` to ensure the request is routed correctly.
+The following example lists all users with a custom security attribute assignment that equals a value. It retrieves users with a custom security attribute named `AppCountry` with a value that equals `Canada`. The filter value is case sensitive. You must add `ConsistencyLevel=eventual` in the request or the header. You must also include `$count=true` to ensure the request is routed correctly.
- Attribute set: `Marketing` - Attribute: `AppCountry` - Filter: AppCountry eq 'Canada'
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgUser](/powershell/module/microsoft.graph.users/get-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$userAttributes = Get-MgUser -CountVariable CountVar -Property "id,displayName,customSecurityAttributes" -Filter "customSecurityAttributes/Marketing/AppCountry eq 'Canada'" -ConsistencyLevel eventual
+$userAttributes | select Id,DisplayName,CustomSecurityAttributes
+$userAttributes.CustomSecurityAttributes.AdditionalProperties | Format-List
+```
+
+```Output
+Id DisplayName CustomSecurityAttributes
+-- --
+4b4e8090-e9ba-4bdc-b2f0-67c3c7c59489 Jiya Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
+efdf3082-64ae-495f-b051-855e2d8df969 Jana Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
+
+Key : Engineering
+Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [Datacenter@odata.type, #Collection(String)], [Datacenter, System.Object[]]}
+
+Key : Marketing
+Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [AppCountry@odata.type, #Collection(String)], [AppCountry, System.Object[]],
+ [EmployeeId, KX19476]}
+
+Key : Marketing
+Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [AppCountry@odata.type, #Collection(String)], [AppCountry, System.Object[]],
+ [EmployeeId, GS46982]}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[List users](/graph/api/user-list?view=graph-rest-beta&preserve-view=true)
+ ```http GET https://graph.microsoft.com/beta/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Marketing/AppCountry eq 'Canada' ConsistencyLevel: eventual ```
+```http
+{
+ "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(id,displayName,customSecurityAttributes)",
+ "@odata.count": 2,
+ "value": [
+ {
+ "id": "4b4e8090-e9ba-4bdc-b2f0-67c3c7c59489",
+ "displayName": "Jiya",
+ "customSecurityAttributes": {
+ "Engineering": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "Datacenter@odata.type": "#Collection(String)",
+ "Datacenter": [
+ "India"
+ ]
+ },
+ "Marketing": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "AppCountry@odata.type": "#Collection(String)",
+ "AppCountry": [
+ "India",
+ "Canada"
+ ],
+ "EmployeeId": "KX19476"
+ }
+ }
+ },
+ {
+ "id": "efdf3082-64ae-495f-b051-855e2d8df969",
+ "displayName": "Jana",
+ "customSecurityAttributes": {
+ "Marketing": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "AppCountry@odata.type": "#Collection(String)",
+ "AppCountry": [
+ "Canada",
+ "Mexico"
+ ],
+ "EmployeeId": "GS46982"
+ }
+ }
+ }
+ ]
+}
+```
+
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++ #### List all users with a custom security attribute assignment that starts with a value
-Use the [List users](/graph/api/user-list?view=graph-rest-beta&preserve-view=true) API to list all users with a custom security attribute assignment that starts with a value. The following example retrieves users with a custom security attribute named `EmployeeId` with a value that starts with `GS`. The filter value is case sensitive. You must add `ConsistencyLevel=eventual` in the request or the header. You must also include `$count=true` to ensure the request is routed correctly.
+The following example lists all users with a custom security attribute assignment that starts with a value. It retrieves users with a custom security attribute named `EmployeeId` with a value that starts with `GS`. The filter value is case sensitive. You must add `ConsistencyLevel=eventual` in the request or the header. You must also include `$count=true` to ensure the request is routed correctly.
- Attribute set: `Marketing` - Attribute: `EmployeeId` - Filter: EmployeeId startsWith 'GS'
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgUser](/powershell/module/microsoft.graph.users/get-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$userAttributes = Get-MgUser -CountVariable CountVar -Property "id,displayName,customSecurityAttributes" -Filter "startsWith(customSecurityAttributes/Marketing/EmployeeId,'GS')" -ConsistencyLevel eventual
+$userAttributes | select Id,DisplayName,CustomSecurityAttributes
+$userAttributes.CustomSecurityAttributes.AdditionalProperties | Format-List
+```
+
+```Output
+Id DisplayName CustomSecurityAttributes
+-- --
+02d52406-be75-411b-b02f-29d7f38dcf62 Chandra Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
+efdf3082-64ae-495f-b051-855e2d8df969 Jana Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
+d5a1c025-2d79-4ad3-9217-91ac3a4ed8b8 Joe Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
+
+Key : Marketing
+Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [EmployeeId, GS36348]}
+
+Key : Marketing
+Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [AppCountry@odata.type, #Collection(String)], [AppCountry, System.Object[]],
+ [EmployeeId, GS46982]}
+
+Key : Engineering
+Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [Project@odata.type, #Collection(String)], [Project, System.Object[]],
+ [ProjectDate, 2023-10-01]…}
+
+Key : Marketing
+Value : {[@odata.type, #microsoft.graph.customSecurityAttributeValue], [EmployeeId, GS45897]}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[List users](/graph/api/user-list?view=graph-rest-beta&preserve-view=true)
+ ```http GET https://graph.microsoft.com/beta/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=startsWith(customSecurityAttributes/Marketing/EmployeeId,'GS') ConsistencyLevel: eventual ```
+```http
+{
+ "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(id,displayName,customSecurityAttributes)",
+ "@odata.count": 3,
+ "value": [
+ {
+ "id": "02d52406-be75-411b-b02f-29d7f38dcf62",
+ "displayName": "Chandra",
+ "customSecurityAttributes": {
+ "Marketing": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "EmployeeId": "GS36348"
+ }
+ }
+ },
+ {
+ "id": "efdf3082-64ae-495f-b051-855e2d8df969",
+ "displayName": "Jana",
+ "customSecurityAttributes": {
+ "Marketing": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "AppCountry@odata.type": "#Collection(String)",
+ "AppCountry": [
+ "Canada",
+ "Mexico"
+ ],
+ "EmployeeId": "GS46982"
+ }
+ }
+ },
+ {
+ "id": "d5a1c025-2d79-4ad3-9217-91ac3a4ed8b8",
+ "displayName": "Joe",
+ "customSecurityAttributes": {
+ "Engineering": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "Project@odata.type": "#Collection(String)",
+ "Project": [
+ "Baker",
+ "Alpine"
+ ],
+ "ProjectDate": "2023-10-01",
+ "NumVendors": 8,
+ "CostCenter@odata.type": "#Collection(Int32)",
+ "CostCenter": [
+ 1001,
+ 1003
+ ],
+ "Certification": false
+ },
+ "Marketing": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "EmployeeId": "GS45897"
+ }
+ }
+ }
+ ]
+}
+```
+
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++ #### List all users with a custom security attribute assignment that does not equal a value
-Use the [List users](/graph/api/user-list?view=graph-rest-beta&preserve-view=true) API to list all users with a custom security attribute assignment that does not equal a value. The following example retrieves users with a custom security attribute named `AppCountry` with a value that does not equal `Canada`. The filter value is case sensitive. You must add `ConsistencyLevel=eventual` in the request or the header. You must also include `$count=true` to ensure the request is routed correctly.
+The following example lists all users with a custom security attribute assignment that does not equal a value. It retrieves users with a custom security attribute named `AppCountry` with a value that does not equal `Canada`. The filter value is case sensitive. You must add `ConsistencyLevel=eventual` in the request or the header. You must also include `$count=true` to ensure the request is routed correctly.
- Attribute set: `Marketing` - Attribute: `AppCountry` - Filter: AppCountry ne 'Canada'
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgUser](/powershell/module/microsoft.graph.users/get-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$userAttributes = Get-MgUser -CountVariable CountVar -Property "id,displayName,customSecurityAttributes" -Filter "customSecurityAttributes/Marketing/AppCountry ne 'Canada'" -ConsistencyLevel eventual
+$userAttributes | select Id,DisplayName,CustomSecurityAttributes
+```
+
+```Output
+Id DisplayName CustomSecurityAttributes
+-- --
+02d52406-be75-411b-b02f-29d7f38dcf62 Chandra Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
+eaea4971-7764-4498-9aeb-776496812e75 Isabella Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
+d937580c-692c-451f-a507-6758d3bdf353 Alain Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
+d5a1c025-2d79-4ad3-9217-91ac3a4ed8b8 Joe Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
+23ad8721-f46c-421a-9785-33b0ef474198 Dara Microsoft.Graph.PowerShell.Models.MicrosoftGraphCustomSecurityAttributeValue
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[List users](/graph/api/user-list?view=graph-rest-beta&preserve-view=true)
+ ```http GET https://graph.microsoft.com/beta/users?$count=true&$select=id,displayName,customSecurityAttributes&$filter=customSecurityAttributes/Marketing/AppCountry ne 'Canada' ConsistencyLevel: eventual ```
+```http
+{
+ "@odata.context": "https://graph.microsoft.com/beta/$metadata#users(id,displayName,customSecurityAttributes)",
+ "@odata.count": 47,
+ "value": [
+ {
+ "id": "02d52406-be75-411b-b02f-29d7f38dcf62",
+ "displayName": "Chandra",
+ "customSecurityAttributes": {
+ "Marketing": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "EmployeeId": "GS36348"
+ }
+ }
+ },
+ {
+ "id": "eaea4971-7764-4498-9aeb-776496812e75",
+ "displayName": "Isabella",
+ "customSecurityAttributes": {
+ "Marketing": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "AppCountry@odata.type": "#Collection(String)",
+ "AppCountry": [
+ "France"
+ ]
+ }
+ }
+ },
+ {
+ "id": "d937580c-692c-451f-a507-6758d3bdf353",
+ "displayName": "Alain",
+ "customSecurityAttributes": {
+ "Marketing": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "AppCountry@odata.type": "#Collection(String)",
+ "AppCountry": [
+ "Germany",
+ "Japan"
+ ]
+ }
+ }
+ },
+ {
+ "id": "d5a1c025-2d79-4ad3-9217-91ac3a4ed8b8",
+ "displayName": "Joe",
+ "customSecurityAttributes": {
+ "Engineering": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "Project@odata.type": "#Collection(String)",
+ "Project": [
+ "Baker",
+ "Alpine"
+ ],
+ "ProjectDate": "2023-10-01",
+ "NumVendors": 8,
+ "CostCenter@odata.type": "#Collection(Int32)",
+ "CostCenter": [
+ 1001,
+ 1003
+ ],
+ "Certification": false
+ },
+ "Marketing": {
+ "@odata.type": "#microsoft.graph.customSecurityAttributeValue",
+ "EmployeeId": "GS45897"
+ }
+ }
+ },
+ {
+ "id": "23ad8721-f46c-421a-9785-33b0ef474198",
+ "displayName": "Dara",
+ "customSecurityAttributes": null
+ }
+ ]
+}
+```
+
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++ #### Remove a single-valued custom security attribute assignment from a user
-Use the [Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true) API to remove a single-valued custom security attribute assignment from a user by setting the value to null.
+The following example removes a single-valued custom security attribute assignment from a user by setting the value to null.
- Attribute set: `Engineering` - Attribute: `ProjectDate` - Attribute value: `null`
+# [PowerShell](#tab/ms-powershell)
+
+[Invoke-MgGraphRequest](/powershell/microsoftgraph/authentication-commands#using-invoke-mggraphrequest)
+
+```powershell
+$params = @{
+ "customSecurityAttributes" = @{
+ "Engineering" = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "ProjectDate" = $null
+ }
+ }
+}
+Invoke-MgGraphRequest -Method PATCH -Uri "https://graph.microsoft.com/beta/users/$userId" -Body $params
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true)
+ ```http PATCH https://graph.microsoft.com/beta/users/{id} {
PATCH https://graph.microsoft.com/beta/users/{id}
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++ #### Remove a multi-valued custom security attribute assignment from a user
-Use the [Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true) API to remove a multi-valued custom security attribute assignment from a user by setting the value to an empty collection.
+The following example removes a multi-valued custom security attribute assignment from a user by setting the value to an empty collection.
- Attribute set: `Engineering` - Attribute: `Project` - Attribute value: `[]`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgUser](/powershell/module/microsoft.graph.users/update-mguser?view=graph-powershell-beta&preserve-view=true)
+
+```powershell
+Select-MgProfile -Name "beta"
+$customSecurityAttributes = @{
+ "Engineering" = @{
+ "@odata.type" = "#Microsoft.DirectoryServices.CustomSecurityAttributeValue"
+ "Project" = @()
+ }
+}
+Update-MgUser -UserId $userId -CustomSecurityAttributes $customSecurityAttributes
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update user](/graph/api/user-update?view=graph-rest-beta&preserve-view=true)
+ ```http PATCH https://graph.microsoft.com/beta/users/{id} {
PATCH https://graph.microsoft.com/beta/users/{id}
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++ ## Frequently asked questions
-**Where are custom security attributes for users supported?**
+**Where are custom security attribute assignments for users supported?**
-Custom security attributes for users are supported in Azure portal, PowerShell, and Microsoft Graph APIs. Custom security attributes are not supported in My Apps or Microsoft 365 admin center.
+Custom security attribute assignments for users are supported in Azure portal, PowerShell, and Microsoft Graph APIs. Custom security attribute assignments are not supported in My Apps or Microsoft 365 admin center.
**Who can view the custom security attributes assigned to a user?** Only users that have been assigned the Attribute Assignment Administrator or Attribute Assignment Reader roles at tenant scope can view custom security attributes assigned to any users in the tenant. Users cannot view the custom security attributes assigned to their own profile or other users. Guests cannot view the custom security attributes regardless of the guest permissions set on the tenant.
-**Do I need to create an app to use custom security attributes?**
+**Do I need to create an app to add custom security attribute assignments?**
No, custom security attributes can be assigned to user objects without requiring an application.
Yes, custom security attributes can be assigned to members or guests in your ten
Yes, directory synced users from an on-premises Active Directory can be assigned custom security attributes.
-**Are custom security attributes available for dynamic membership rules?**
+**Are custom security attribute assignments available for dynamic membership rules?**
No, custom security attributes assigned to users are not supported for configuring dynamic membership rules.
No, custom security attributes are not supported in B2C tenants and are not rela
## Next steps -- [Add or deactivate custom security attributes in Azure AD](../fundamentals/custom-security-attributes-add.md)
+- [Add or deactivate custom security attribute definitions in Azure AD](../fundamentals/custom-security-attributes-add.md)
- [Assign, update, list, or remove custom security attributes for an application](../manage-apps/custom-security-attributes-apps.md)
+- [Examples: Assign, update, list, or remove custom security attribute assignments using the Microsoft Graph API](/graph/custom-security-attributes-examples)
- [Troubleshoot custom security attributes in Azure AD](../fundamentals/custom-security-attributes-troubleshoot.md)
active-directory How To Desktop App Maui Sample Sign In https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-desktop-app-maui-sample-sign-in.md
git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
## Run and test sample .NET MAUI desktop application
-Select the Windows platform to work on by setting the startup project in the **Solution Explorer**. Make sure that your platform of choice is marked for build and deploy in the configuration manager.
+.NET MAUI apps are designed to run on multiple operating systems and devices. You'll need to select which target you want to test and debug your app with.
-Clean the solution, rebuild the solution, and run it.
+Set the **Debug Target** in the Visual Studio toolbar to the device you want to debug and test with. The following steps demonstrate setting the **Debug Target** to _Windows_:
+
+1. Select **Debug Target** drop-down.
+1. Select **Framework**
+1. Select **net7.0-windows...**
+
+Run the app by pressing _F5_ or select the _play button_ at the top of Visual Studio.
1. You can now test the sample .NET MAUI desktop application. After you run the application, the desktop application window appears automatically:
active-directory How To Mobile App Maui Sample Sign In https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/how-to-mobile-app-maui-sample-sign-in.md
git clone https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial.git
## Run and test sample .NET MAUI Android application
-Select the Android platform to work on by setting the startup project in the **Solution Explorer**. Make sure that your platform of choice is marked for build and deploy in the configuration manager.
+.NET MAUI apps are designed to run on multiple operating systems and devices. You'll need to select which target you want to test and debug your app with.
-Clean the solution, rebuild the solution, and run it.
+Set the **Debug Target** in the Visual Studio toolbar to the device you want to debug and test with. The following steps demonstrate setting the **Debug Target** to _Android_:
+
+1. Select **Debug Target** drop-down.
+1. Select **Android Emulators**.
+1. Select emulator device.
+
+Run the app by pressing _F5_ or select the _play button_ at the top of Visual Studio.
1. You can now test the sample .NET MAUI Android app. After you run the app, the Android app window appears in an emulator:
active-directory Tutorial Desktop App Maui Sign In Prepare App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/tutorial-desktop-app-maui-sign-in-prepare-app.md
+
+ Title: "Tutorial: Create a .NET MAUI shell app, add MSAL SDK, and include an image resource"
+description: This tutorial demonstrates how to create a .NET MAUI shell app, add MSAL SDK support via MSALClient helper, and include an image resource.
+++++++ Last updated : 06/05/2023++
+# Tutorial: Create a .NET MAUI app
+
+This tutorial demonstrates how to create a .NET Multi-platform App UI (.NET MAUI) shell app. You'll also add a custom Microsoft Authentication Library (MSAL) client helper to initialize the MSAL SDK, install required libraries and include an image resource.
+
+In this tutorial, you learn how to:
+
+> [!div class="checklist"]
+>
+> - Create a .NET MAUI shell app.
+> - Add MSAL SDK support using MSAL helper classes.
+> - Install required packages.
+> - Add image resource.
+
+## Prerequisites
+
+- [.NET 7.0 SDK](https://dotnet.microsoft.com/download/dotnet/7.0)
+- [Visual Studio 2022](https://aka.ms/vsdownloads) with the MAUI workload installed:
+ - [Instructions for Windows](/dotnet/maui/get-started/installation?tabs=vswin)
+ - [Instructions for macOS](/dotnet/maui/get-started/installation?tabs=vsmac)
+
+## Create .NET MAUI app
+
+1. In the start window of Visual Studio 2022, select **Create a new project**.
+1. In the **Create a new project** window, select **MAUI** in the All project types drop-down, select the **.NET MAUI App** template, and select **Next**.
+1. In the **Configure your new project** window, **Project name** must be set to _SignInMaui_. Update the **Solution name** to _sign-in-maui_ and select **Next**.
+1. In the **Additional information** window, choose .NET 7.0 and select **Create**.
+
+Wait for the project to be created and its dependencies to be restored.
+
+## Add MSAL SDK support using MSAL helper classes
+
+MSAL client enables developers to acquire security tokens from Azure Active Directory (Azure AD) for customers tenant to authenticate and access secured web APIs. In this section, you download files that makes up MSALClient.
+
+Download the following files:
+
+- [AzureAdConfig.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/AzureAdConfig.cs) - This file gets and sets the Azure AD app unique identifiers from your app configuration file.
+- [DownStreamApiConfig.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/DownStreamApiConfig.cs) - This file gets and sets the scopes for Microsoft Graph call.
+- [DownstreamApiHelper.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/DownstreamApiHelper.cs) - This file handles the exceptions that occur when calling the downstream API.
+- [Exception.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/Exception.cs) - This file offers a few extension method related to exception throwing and handling.
+- [IdentityLogger.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/IdentityLogger.cs) - This file handles shows how to use MSAL.NET logging.
+- [MSALClientHelper.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/MSALClientHelper.cs) - This file contains methods to initialize MSAL SDK.
+- [PlatformConfig.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/PlatformConfig.cs) - This file contains methods to handle specific platform. For example, Windows.
+- [PublicClientSingleton.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/PublicClientSingleton.cs) - This file contains a singleton implementation to wrap the MSALClient and associated classes to support static initialization model for platforms.
+- [WindowsHelper.cs](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/MSALClient/WindowsHelper.cs) - This file contains methods to retrieve window handle.
+
+> [!IMPORTANT]
+> Don't skip downloading the MSALClient files, they're required to complete this tutorial.
+
+### Move the MSALClient files with Visual Studio
+
+1. In the **Solution Explorer** pane, right-click on the **SignInMaui** project and select **Add** > **New Folder**. Name the folder _MSALClient_.
+1. Right-click on **MSALClient** folder, select **Add** > **Existing Item...**.
+1. Navigate to the folder that contains the downloaded MSALClient files.
+1. Select all of the MSALClient files you downloaded, then select **Add**
+
+## Install required packages
+
+You need to install the following packages:
+
+- _Microsoft.Identity.Client_ - This package contains the binaries of the Microsoft Authentication Library for .NET (MSAL.NET).
+- _Microsoft.Extensions.Configuration.Json_ - This package contains JSON configuration provider implementation for Microsoft.Extensions.Configuration.
+- _Microsoft.Extensions.Configuration.Binder_ - This package contains functionality to bind an object to data in configuration providers for Microsoft.Extensions.Configuration.
+- _Microsoft.Extensions.Configuration.Abstractions_ - This package contains abstractions of key-value pair based configuration.
+- _Microsoft.Identity.Client.Extensions.Msal_ - This package contains extensions to Microsoft Authentication Library for .NET (MSAL.NET).
+
+### NuGet Package Manager
+
+To use the **NuGet Package Manager** to install the _Microsoft.Identity.Client_ package in Visual Studio, follow these steps:
+
+1. Select **Tools** > **NuGet Package Manager** > **Manage NuGet Packages for Solution...**.
+1. From the **Browse** tab, search for _Microsoft.Identity.Client_.
+1. Select **Microsoft.Identity.Client** in the list.
+1. Select **SignInMaui** in the **Project** list pane.
+1. Select **Install**.
+1. If you're prompted to verify the installation, select **OK**.
+
+Repeat the process to install the remaining required packages.
+
+## Add image resource
+
+In this section, you download an image that you use in your app to enhance how users interact with it.
+
+Download the following image:
+
+- [Icon: Azure AD](https://github.com/Azure-Samples/ms-identity-ciam-dotnet-tutorial/blob/main/1-Authentication/2-sign-in-maui/Resources/Images/azure_active_directory.png) - This image is used as icon in the main page.
+
+### Move the image with Visual Studio
+
+1. In the **Solution Explorer** pane of Visual Studio, expand the **Resources** folder, which reveals the **Images** folder.
+1. Right-click on **Images** and select **Add** > **Existing Item...**.
+1. Navigate to the folder that contains the downloaded images.
+1. Change the filter to file type filter to **Image Files**.
+1. Select the image you downloaded.
+1. Select **Add**.
+
+## Next steps
+
+> [!div class="nextstepaction"]
+> [Tutorial: Sign in users in .NET MAUI shell app](tutorial-desktop-app-maui-sign-in-sign-out.md)
active-directory Tutorial Desktop App Maui Sign In Prepare Tenant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/tutorial-desktop-app-maui-sign-in-prepare-tenant.md
+
+ Title: "Tutorial: Register and configure .NET MAUI app in a customer tenant"
+description: The tutorials provide a step-by-step guide on how to register and configure a .NET MAUI desktop app with Azure AD for the customer's tenant.
+++++++ Last updated : 06/05/2023++
+# Tutorial: Register and configure .NET MAUI app in a customer tenant
+
+This three-part tutorial series demonstrates how to build a .NET Multi-platform App UI (MAUI) desktop app that authenticates using Azure Active Directory (Azure AD) for customers tenant.
+
+The tutorial aims to demonstrate how to create a .NET MAUI app that uses cross-platform code while enhancing the default application class with _Window_ platform-specific code.
+
+Part one involves the registration of the .NET MAUI desktop app within the customer's tenant. In part two, you create the .NET MAUI desktop app, while in part three, you implement the sign-in and sign-out code to enable secure authentication.
+
+In this tutorial, you learn how to:
+
+> [!div class="checklist"]
+>
+> - Register a .NET MAUI desktop app in customers tenant.
+> - Create a sign-in and sign-out user flow in customers tenant.
+> - Associate your .NET MAUI desktop app with the user flow.
+
+## Prerequisites
+
+- Azure AD for customers tenant. If you don't already have one, <a href="https://aka.ms/ciam-free-trial?wt.mc_id=ciamcustomertenantfreetrial_linkclick_content_cnl" target="_blank">sign up for a free trial</a>.
+
+## Register .NET MAUI desktop app
++
+## Grant API permissions
++
+## Create a user flow
++
+## Associate the .NET MAUI desktop app with the user flow
++
+## Next steps
+
+> [!div class="nextstepaction"]
+> [Tutorial: Sign in users in .NET MAUI app](tutorial-desktop-app-maui-sign-in-prepare-app.md)
active-directory Tutorial Desktop App Maui Sign In Sign Out https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/customers/tutorial-desktop-app-maui-sign-in-sign-out.md
+
+ Title: "Tutorial: Sign in users in .NET MAUI app"
+description: This tutorial demonstrates how to add sign-in and sign-out code in .NET Multi-platform App UI (.NET MAUI) shell and run the app on the Windows platform.
+++++++ Last updated : 06/05/2023++
+# Tutorial: Sign in users in .NET MAUI app
+
+This tutorial demonstrates how to add sign-in and sign-out code in .NET Multi-platform App UI (.NET MAUI) shell and run the app on the Windows platform.
+
+In this tutorial, you learn how to:
+
+> [!div class="checklist"]
+>
+> - Add sign-in and sign-out code.
+> - Modify the app Shell.
+> - Add platform-specific code.
+> - Add app settings.
+> - Run and test .NET MAUI shell app.
+
+## Prerequisites
+
+- [Tutorial: Create a .NET MAUI shell app, add MSALClient, and include an image resource](tutorial-desktop-app-maui-sign-in-prepare-app.md)
+
+## Add sign-in and sign-out code
+
+The user interface (UI) of a .NET MAUI app is constructed of objects that map to the native controls of each target platform. The main control groups used to create the UI of a .NET MAUI app are pages, layouts, and views.
+
+### Add main view page
+
+The next steps will organize our code so that the `main view` is defined.
+
+1. Delete _MainPage.xaml_ and _MainPage.xaml.cs_ from your project, they're no longer needed. In the **Solution Explorer** pane, find the entry for **MainPage.xaml**, right-click it and select **Delete**.
+1. Right-click on the **SignInMaui** project and select **Add** > **New Folder**. Name the folder **Views**.
+1. Right-click on the **Views**.
+1. Select **Add** > **New Item...**.
+1. Select **.NET MAUI** in the template list.
+1. Select the **.NET MAUI ContentPage (XAML)** template. Name the file **MainView.xaml**.
+1. Select **Add**.
+1. The _MainView.xaml_ file will open in a new document tab, displaying all of the XAML markup that represents the UI of the page. Replace the XAML markup with the following markup:
++
+ :::code language="xaml" source="~/ms-identity-ciam-dotnet-tutorial/1-Authentication/2-sign-in-maui/Views/MainView.xaml" :::
+
+1. Save the file.
+
+ Let's break down the key parts of the XAML controls placed on the page:
+
+ - `<ContentPage>` is the root object for the MainView class.
+ - `<VerticalStackLayout>` is the child object of the ContentPage. This layout control arranges its children vertically, one after the other.
+ - `<Image>` displays an image, in this case it's using the _azure_active_directory.png_ that you downloaded earlier.
+ - `<Label>` controls display text.
+ - `<Button>` can be pressed by the user, which raises the `Clicked` event. You can run code in response to the `Clicked` event.
+ - `Clicked="OnSignInClicked"` the `Clicked` event of the button is assigned to the `OnSignInClicked` event handler, which will be defined in the code-behind file. You'll create this code in the next step.
+
+#### Handle the OnSignInClicked event
+
+The next step is to add the code for the button's `Clicked` event.
+
+1. In the **Solution Explorer** pane of Visual Studio, expand the **MainView.xaml** file to reveal its code-behind file **MainView.xaml.cs**. Open the **MainView.xaml.cs** and replace the content of the file with following code:
+
+ :::code language="csharp" source="~/ms-identity-ciam-dotnet-tutorial/1-Authentication/2-sign-in-maui/Views/MainView.xaml.cs" :::
+
+The `MainView` class is a content page responsible for displaying the main view of the app. In the constructor, it retrieves the cached user account using the `MSALClientHelper` from the `PublicClientSingleton` instance and enables the sign-in button, if no cached user account is found.
+
+When the sign-in button is clicked, it calls the `AcquireTokenSilentAsync` method to acquire a token silently and navigates to the `claimsview` page using the `Shell.Current.GoToAsync` method. Additionally, the `OnBackButtonPressed` method is overridden to return true, indicating that the back button is disabled for this view.
+
+### Add claims view page
+
+The next steps will organize the code so that `ClaimsView` page is defined. The page will display the user's claims found in the ID token.
+
+1. In the **Solution Explorer** pane of Visual Studio, right-click on the **Views**.
+1. Select **Add** > **New Item...**.
+1. Select **.NET MAUI** in the template list.
+1. Select the **.NET MAUI ContentPage (XAML)** template. Name the file **ClaimsView.xaml**.
+1. Select **Add**.
+1. The _ClaimsView.xaml_ file will open in a new document tab, displaying all of the XAML markup that represents the UI of the page. Replace the XAML markup with the following markup:
++
+ :::code language="xaml" source="~/ms-identity-ciam-dotnet-tutorial/1-Authentication/2-sign-in-maui/Views/ClaimsView.xaml" :::
+
+ This XAML markup code represents the UI layout for a claim view in a .NET MAUI app. It starts by defining the `ContentPage` with a title and disabling the back button behavior.
+
+ Inside a `VerticalStackLayout`, there are several `Label` elements displaying static text, followed by a `ListView` named `Claims` that binds to a collection called `IdTokenClaims` to display the claims found in the ID token. Each claim is rendered within a `ViewCell` using a `DataTemplate` and displayed as a centered `Label` within a Grid.
+
+ Lastly, there's a `Sign Out` button centered at the bottom of the layout, which triggers the `SignOutButton_Clicked` event handler when clicked.
+
+#### Handle the ClaimsView data
+
+The next step is to add the code to handle `ClaimsView` data.
+
+1. In the **Solution Explorer** pane of Visual Studio, expand the **ClaimsView.xaml** file to reveal its code-behind file **ClaimsView.xaml.cs**. Open the **ClaimsView.xaml.cs** and replace the content of the file with following code:
+
+ :::code language="csharp" source="~/ms-identity-ciam-dotnet-tutorial/1-Authentication/2-sign-in-maui/Views/ClaimsView.xaml.cs" :::
+
+ The _ClaimsView.xaml.cs_ code represents the code-behind for a claim view in a .NET MAUI app. It starts by importing the necessary namespaces and defining the `ClaimsView` class, which extends `ContentPage`. The `IdTokenClaims` property is an enumerable of strings, initially set to a single string indicating no claims found.
+
+ The `ClaimsView` constructor sets the binding context to the current instance, initializes the view components, and calls the `SetViewDataAsync` method asynchronously. The `SetViewDataAsync` method attempts to acquire a token silently, retrieves the claims from the authentication result, and sets the `IdTokenClaims` property to display them in the `ListView` named `Claims`. If a `MsalUiRequiredException` occurs, indicating that user interaction is needed for authentication, the app navigates to the claims view.
+
+ The `OnBackButtonPressed` method overrides the back button behavior to always return true, preventing the user from going back from this view. The `SignOutButton_Clicked` event handler signs the user out using the `PublicClientSingleton` instance, and upon completion, navigates to the `main view`.
+
+## Modify the app Shell
+
+The `AppShell` class defines an app's visual hierarchy, the XAML markup used in creating the UI of the app. Update the `AppShell` to let it know about the `Views`.
+
+1. Double-click the `AppShell.xaml` file in the **Solution Explorer** pane to open the XAML editor. Replace the XAML markup with the following code:
+
+ :::code language="xaml" source="~/ms-identity-ciam-dotnet-tutorial/1-Authentication/2-sign-in-maui/AppShell.xaml" :::
+
+ The XAML code defines an `AppShell` class that disables the flyout behavior and sets the main content to a `ShellContent` element with a title `Home` and a content template pointing to the `MainView` class.
+
+1. In the **Solution Explorer** pane of Visual Studio, expand the **AppShell.xaml** file to reveal its code-behind file **AppShell.xaml.cs**. Open the **AppShell.xaml.cs** and replace the content of the file with following code:
+
+ :::code language="csharp" source="~/ms-identity-ciam-dotnet-tutorial/1-Authentication/2-sign-in-maui/AppShell.xaml.cs" :::
+
+ You update the `AppShell.xaml.cs` file to include the necessary route registrations for the `MainView` and `ClaimsView`. By calling the `InitializeComponent()` method, you ensure the initialization of the `AppShell` class. The `RegisterRoute()` method associate the `mainview` and `claimsview` routes with their respective view types, `MainView` and `ClaimsView`.
+
+## Add platform-specific code
+
+A .NET MAUI app project contains a _Platforms_ folder, with each child folder representing a platform that .NET MAUI can target. To provide application-specific behavior to supplement the default application class, you modify `Platforms/Windows/App.xaml.cs`.
+
+Replace the content of the file with following code:
++
+In the code, you configure the redirect URI for the application and initialized the MSAL, and then set the parent window for the application. Additionally, you override the `OnLaunched` method to handle the launch event and retrieve the parent window handle.
+
+## Add app settings
+
+Settings allow the separation of data that configures the behavior of an app from the code, allowing the behavior to be changed without rebuilding the app. The `MauiAppBuilder` provides `ConfigurationManager` to configure settings in our .NET MAUI app. Let's add the `appsettings.json` file as an `EmbeddedResource`.
+
+To create `appsettings.json`, follow these steps:
+
+1. In the **Solution Explorer** pane of Visual Studio, right-click on the **SignInMaui** project > **Add** > **New Item...**.
+1. Select **Web** > **JavaScript JSON Configuration File**. Name the file `appsettings.json`.
+1. Select **Add**.
+1. Select **appsettings.json**
+1. In the **Properties** pane, set **Build Action** to **Embedded resource**.
+1. In the **Properties** pane, set **Copy to Output Directory** to **Copy always**.
+1. Replace the content of `appsettings.json` file with the following code:
+
+ :::code language="json" source="~/ms-identity-ciam-dotnet-tutorial/1-Authentication/2-sign-in-maui/appsettings.json" :::
+
+1. In the `appsettings.json`, find the placeholder:
+
+ 1. `Enter_the_Tenant_Subdomain_Here` and replace it with the Directory (tenant) subdomain. For example, if your tenant primary domain is `contoso.onmicrosoft.com`, use `contoso`. If you don't have your tenant name, learn how to [read your tenant details](how-to-create-customer-tenant-portal.md#get-the-customer-tenant-details).
+ 1. `Enter_the_Application_Id_Here` and replace it with the Application (client) ID of the app you registered earlier.
+
+## Run and test .NET MAUI desktop app
+
+.NET MAUI apps are designed to run on multiple operating systems and devices. You'll need to select which target you want to test and debug your app with.
+
+Set the **Debug Target** in the Visual Studio toolbar to the device you want to debug and test with. The following steps demonstrate setting the **Debug Target** to _Windows_:
+
+1. Select **Debug Target** drop-down.
+1. Select **Framework**
+1. Select **net7.0-windows...**
+
+Run the app by pressing _F5_ or select the _play button_ at the top of Visual Studio.
+
+1. You can now test the sample .NET MAUI desktop application. After you run the application, the desktop application window appears automatically:
+
+ :::image type="content" source="media/how-to-desktop-app-maui-sample-sign-in/maui-desktop-sign-in-page.jpg" alt-text="Screenshot of the sign-in button in the desktop application":::
+
+1. On the desktop window that appears, select the **Sign In** button. A browser window opens, and you're prompted to sign in.
+
+ :::image type="content" source="media/how-to-desktop-app-maui-sample-sign-in/maui-desktop-sign-in-prompt.jpg" alt-text="Screenshot of user prompt to enter credential in desktop application.":::
+
+ During the sign in process, you're prompted to grant various permissions (to allow the application to access your data). Upon successful sign in and consent, the application screen displays the main page.
+
+ :::image type="content" source="media/how-to-desktop-app-maui-sample-sign-in/maui-desktop-after-sign-in.png" alt-text="Screenshot of the main page in the desktop application after signing in.":::
+
+## Next Steps
+
+- [Customize the default branding](how-to-customize-branding-customers.md).
+- [Configure sign-in with Google](how-to-google-federation-customers.md).
active-directory Tenant Restrictions V2 https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/external-identities/tenant-restrictions-v2.md
When your users need access to external organizations and apps, we recommend ena
### Tenant restrictions and Microsoft Teams
-For greater control over access to Teams meetings, you can use [Federation Controls](/microsoftteams/manage-external-access) in Teams to allow or block specific tenants, along with tenant restrictions V2 to block anonymous access to Teams meetings. Tenant restrictions prevent users from using an externally issued identity to join Teams meetings.
+Teams by default has open federation, which means we do not block anyone joining a meeting hosted by an external tenant. For greater control over access to Teams meetings, you can use [Federation Controls](/microsoftteams/manage-external-access) in Teams to allow or block specific tenants, along with tenant restrictions V2 to block anonymous access to Teams meetings. To enforce tenant restrictions for Teams, you need to configure tenant restrictions V2 in your Azure AD cross-tenant access settings. You also need to set up Federation Controls in the Teams Admin portal and restart Teams. Tenant restrictions implemented on the corporate proxy won't block anonymous access to Teams meetings, SharePoint files, and other resources that don't require authentication.
+- Teams currently allows users to join <i>any</i> externally hosted meeting using their corporate/home provided identity. You can use outbound cross-tenant access settings to control users with corporate/home provided identity to join externally hosted Teams meetings.
+- Tenant restrictions prevent users from using an externally issued identity to join Teams meetings.
+
+#### Pure Anonymous Meeting join
+
+Tenant restrictions V2 automatically block all unauthenticated and externally-issued identity access to externally-hosted Teams meetings.
For example, suppose Contoso uses Teams Federation Controls to block the Fabrikam tenant. If someone with a Contoso device uses a Fabrikam account to join a Contoso Teams meeting, they're allowed into the meeting as an anonymous user. Now, if Contoso also enables tenant restrictions V2, Teams blocks anonymous access, and the user isn't able to join the meeting.
-To enforce tenant restrictions for Teams, you need to configure tenant restrictions V2 in your Azure AD cross-tenant access settings. You also need to set up Federation Controls in the Teams Admin portal and restart Teams. Tenant restrictions implemented on the corporate proxy won't block anonymous access to Teams meetings, SharePoint files, and other resources that don't require authentication.
+#### Meeting join using an externally issued identity
+
+You can configure the tenant restrictions V2 policy to allow specific users or groups with externally issued identities to join specific externally hosted Teams meetings. With this configuration, users can sign in to Teams with their externally issued identities and join the specified tenant's externally hosted Teams meetings.
+
+There is currently a known issue where, if Teams federation is off, Teams blocks a home identity authenticated session from joining externally hosted Teams meetings.
+
+| Auth identity | Authenticated session | Result |
+|-|||
+|Anonymous (no authenticated session) <br></br> Example: A user tries to use an unauthenticated session, for example in an InPrivate browser window, to access a Teams meeting. | Not authenticated | Access to the Teams meeting is blocked by Tenant restrictions V2 |
+|Externally issued identity (authenticated session)<br></br> Example: A user uses any identity other than their home identity (for example, user@externaltenant.com) | Authenticated as an externally-issued identity | Allow or block access to the Teams meeting per Tenant restrictions V2 policy. If allowed by the policy, the user can join the meeting. Otherwise access is blocked. <br></br> Note: There is currently a known issue where, if Teams is not explicitly federated with the external tenant, Teams and Tenant restrictions V2 block users using a home identity authenticated session from joining externally hosted Teams meetings.
### Tenant restrictions V2 and SharePoint Online
active-directory Architecture https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/architecture.md
+
+ Title: Architecture overview
+description: Learn what an Azure Active Directory tenant is and how to manage Azure using Azure Active Directory.
++++++++ Last updated : 08/17/2022++++++
+# What is the Azure Active Directory architecture?
+
+Azure Active Directory (Azure AD) enables you to securely manage access to Azure services and resources for your users. Included with Azure AD is a full suite of identity management capabilities. For information about Azure AD features, see [What is Azure Active Directory?](active-directory-whatis.md)
+
+With Azure AD, you can create and manage users and groups, and enable permissions to allow and deny access to enterprise resources. For information about identity management, see [The fundamentals of Azure identity management](active-directory-whatis.md).
+
+## Azure AD architecture
+
+Azure AD's geographically distributed architecture combines extensive monitoring, automated rerouting, failover, and recovery capabilities, which deliver company-wide availability and performance to customers.
+
+The following architecture elements are covered in this article:
+
+* Service architecture design
+* Scalability
+* Continuous availability
+* Datacenters
+
+### Service architecture design
+
+The most common way to build an accessible and usable, data-rich system is through independent building blocks or scale units. For the Azure AD data tier, scale units are called *partitions*.
+
+The data tier has several front-end services that provide read-write capability. The diagram below shows how the components of a single-directory partition are delivered throughout geographically distributed datacenters.
+
+ ![Single-directory partition diagram](./media/active-directory-architecture/active-directory-architecture.png)
+
+The components of Azure AD architecture include a primary replica and secondary replicas.
+
+#### Primary replica
+
+The *primary replica* receives all *writes* for the partition it belongs to. Any write operation is immediately replicated to a secondary replica in a different datacenter before returning success to the caller, thus ensuring geo-redundant durability of writes.
+
+#### Secondary replicas
+
+All directory *reads* are serviced from *secondary replicas*, which are at datacenters that are physically located across different geographies. There are many secondary replicas, as data is replicated asynchronously. Directory reads, such as authentication requests, are serviced from datacenters that are close to customers. The secondary replicas are responsible for read scalability.
+
+### Scalability
+
+Scalability is the ability of a service to expand to meet increasing performance demands. Write scalability is achieved by partitioning the data. Read scalability is achieved by replicating data from one partition to multiple secondary replicas distributed throughout the world.
+
+Requests from directory applications are routed to the closest datacenter. Writes are transparently redirected to the primary replica to provide read-write consistency. Secondary replicas significantly extend the scale of partitions because the directories are typically serving reads most of the time.
+
+Directory applications connect to the nearest datacenters. This connection improves performance, and therefore scaling out is possible. Since a directory partition can have many secondary replicas, secondary replicas can be placed closer to the directory clients. Only internal directory service components that are write-intensive target the active primary replica directly.
+
+### Continuous availability
+
+Availability (or uptime) defines the ability of a system to perform uninterrupted. The key to Azure ADΓÇÖs high-availability is that the services can quickly shift traffic across multiple geographically distributed datacenters. Each datacenter is independent, which enables de-correlated failure modes. Through this high availability design, Azure AD requires no downtime for maintenance activities.
+
+Azure ADΓÇÖs partition design is simplified compared to the enterprise AD design, using a single-master design that includes a carefully orchestrated and deterministic primary replica failover process.
+
+#### Fault tolerance
+
+A system is more available if it is tolerant to hardware, network, and software failures. For each partition on the directory, a highly available master replica exists: The primary replica. Only writes to the partition are performed at this replica. This replica is being continuously and closely monitored, and writes can be immediately shifted to another replica (which becomes the new primary) if a failure is detected. During failover, there could be a loss of write availability typically of 1-2 minutes. Read availability isn't affected during this time.
+
+Read operations (which outnumber writes by many orders of magnitude) only go to secondary replicas. Since secondary replicas are idempotent, loss of any one replica in a given partition is easily compensated by directing the reads to another replica, usually in the same datacenter.
+
+#### Data durability
+
+A write is durably committed to at least two datacenters prior to it being acknowledged. This happens by first committing the write on the primary, and then immediately replicating the write to at least one other datacenter. This write action ensures that a potential catastrophic loss of the datacenter hosting the primary doesn't result in data loss.
+
+Azure AD maintains a zero [Recovery Time Objective (RTO)](https://en.wikipedia.org/wiki/Recovery_time_objective) to not lose data on failovers. This includes:
+
+* Token issuance and directory reads
+* Allowing only about 5 minutes RTO for directory writes
+
+### Datacenters
+
+Azure ADΓÇÖs replicas are stored in datacenters located throughout the world. For more information, see [Azure global infrastructure](https://azure.microsoft.com/global-infrastructure/).
+
+Azure AD operates across datacenters with the following characteristics:
+
+* Authentication, Graph, and other AD services reside behind the Gateway service. The Gateway manages load balancing of these services. It will fail over automatically if any unhealthy servers are detected using transactional health probes. Based on these health probes, the Gateway dynamically routes traffic to healthy datacenters.
+* For *reads*, the directory has secondary replicas and corresponding front-end services in an active-active configuration operating in multiple datacenters. If a datacenter fails, traffic is automatically routed to a different datacenter.
+* For *writes*, the directory will fail over the primary replica across datacenters via planned (new primary is synchronized to old primary) or emergency failover procedures. Data durability is achieved by replicating any commit to at least two datacenters.
+
+#### Data consistency
+
+The directory model is one of eventual consistencies. One typical problem with distributed asynchronously replicating systems is that the data returned from a ΓÇ£particularΓÇ¥ replica may not be up-to-date.
+
+Azure AD provides read-write consistency for applications targeting a secondary replica by routing its writes to the primary replica, and synchronously pulling the writes back to the secondary replica.
+
+Application writes using the Microsoft Graph API of Azure AD are abstracted from maintaining affinity to a directory replica for read-write consistency. The Microsoft Graph API service maintains a logical session, which has affinity to a secondary replica used for reads; affinity is captured in a ΓÇ£replica tokenΓÇ¥ that the service caches using a distributed cache in the secondary replica datacenter. This token is then used for subsequent operations in the same logical session. To continue using the same logical session, subsequent requests must be routed to the same Azure AD datacenter. It isn't possible to continue a logical session if the directory client requests are being routed to multiple Azure AD datacenters; if this happens then the client has multiple logical sessions that have independent read-write consistencies.
+
+ >[!NOTE]
+ >Writes are immediately replicated to the secondary replica to which the logical session's reads were issued.
+
+#### Service-level backup
+
+Azure AD implements daily backup of directory data and can use these backups to restore data if there is any service-wide issue.
+
+The directory also implements soft deletes instead of hard deletes for selected object types. The tenant administrator can undo any accidental deletions of these objects within 30 days. For more information, see the [API to restore deleted objects](/graph/api/directory-deleteditems-restore).
+
+#### Metrics and monitors
+
+Running a high availability service requires world-class metrics and monitoring capabilities. Azure AD continually analyzes and reports key service health metrics and success criteria for each of its services. There is also continuous development and tuning of metrics and monitoring and alerting for each scenario, within each Azure AD service and across all services.
+
+If any Azure AD service isn't working as expected, action is immediately taken to restore functionality as quickly as possible. The most important metric Azure AD tracks is how quickly live site issues can be detected and mitigated for customers. We invest heavily in monitoring and alerts to minimize time to detect (TTD Target: <5 minutes) and operational readiness to minimize time to mitigate (TTM Target: <30 minutes).
+
+#### Secure operations
+
+Using operational controls such as multi-factor authentication (MFA) for any operation, and auditing of all operations. In addition, using a just-in-time elevation system to grant necessary temporary access for any operational task-on-demand on an ongoing basis. For more information, see [The Trusted Cloud](https://azure.microsoft.com/support/trust-center).
+
+## Next steps
+
+[Azure Active Directory developer's guide](../develop/index.yml)
active-directory Create New Tenant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/create-new-tenant.md
+
+ Title: Quickstart - Access & create new tenant
+description: Instructions about how to find Azure Active Directory and how to create a new tenant for your organization.
+++++++ Last updated : 06/28/2023++++
+# Quickstart: Create a new tenant in Azure Active Directory
+
+You can do all of your administrative tasks using the Azure Active Directory (Azure AD) portal, including creating a new tenant for your organization.
+
+In this quickstart, you'll learn how to get to the Azure portal and Azure Active Directory, and you'll learn how to create a basic tenant for your organization.
+
+If you don't have an Azure subscription, create a [free account](https://azure.microsoft.com/free/) before you begin.
+
+## Create a new tenant for your organization
+
+After you sign in to the Azure portal, you can create a new tenant for your organization. Your new tenant represents your organization and helps you to manage a specific instance of Microsoft cloud services for your internal and external users.
+
+>[!Note]
+>If you're unable to create Azure AD or Azure AD B2C tenant, review your user settings page to ensure that tenant creation isn't switched off. If tenant creation is switched off, ask your _Global Administrator_ to assign you a _Tenant Creator_ role.
+
+### To create a new tenant
+
+1. Sign in to your organization's [Azure portal](https://portal.azure.com/).
+
+1. From the Azure portal menu, select **Azure Active Directory**.
+
+1. On the overview page, select **Manage tenants**
+
+1. Select **Create**.
+
+ ![Azure Active Directory - Overview page - Create a tenant](media/active-directory-access-create-new-tenant/azure-ad-portal.png)
+
+1. On the Basics tab, select the type of tenant you want to create, either **Azure Active Directory** or **Azure Active Directory (B2C)**.
+
+1. Select **Next: Configuration** to move on to the Configuration tab.
+
+1. On the Configuration tab, enter the following information:
+
+ ![Azure Active Directory - Create a tenant page - configuration tab ](media/active-directory-access-create-new-tenant/azure-ad-create-new-tenant.png)
+
+ - Type your desired Organization name (for example _Contoso Organization_) into the **Organization name** box.
+
+ - Type your desired Initial domain name (for example _Contosoorg_) into the **Initial domain name** box.
+
+ - Select your desired Country/Region or leave the _United States_ option in the **Country or region** box.
+
+1. Select **Next: Review + Create**. Review the information you entered and if the information is correct, select **create**.
+
+Your new tenant is created with the domain contoso.onmicrosoft.com.
+
+## Your user account in the new tenant
+
+When you create a new Azure AD tenant, you become the first user of that tenant. As the first user, you're automatically assigned the [Global Administrator](../roles/permissions-reference.md#global-administrator) role. Check out your user account by navigating to the [**Users**](https://portal.azure.com/#blade/Microsoft_AAD_IAM/UsersManagementMenuBlade/MsGraphUsers) page.
+
+By default, you're also listed as the [technical contact](/microsoft-365/admin/manage/change-address-contact-and-more#what-do-these-fields-mean) for the tenant. Technical contact information is something you can change in [**Properties**](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/Properties).
+
+> [!WARNING]
+> Ensure your directory has at least two accounts with global administrator privileges assigned to them. This will help in the case that one global administrator is locked out. For more detail see the article, [Manage emergency access accounts in Azure AD](../roles/security-emergency-access.md).
+
+## Clean up resources
+
+If you're not going to continue to use this application, you can delete the tenant using the following steps:
+
+- Ensure that you're signed in to the directory that you want to delete through the **Directory + subscription** filter in the Azure portal. Switch to the target directory if needed.
+- Select **Azure Active Directory**, and then on the **Contoso - Overview** page, select **Delete directory**.
+
+ The tenant and its associated information are deleted.
+
+ ![Overview page, with highlighted Delete directory button](media/active-directory-access-create-new-tenant/azure-ad-delete-new-tenant.png)
+
+## Next steps
+
+- Change or add other domain names, see [How to add a custom domain name to Azure Active Directory](add-custom-domain.md)
+
+- Add users, see [Add or delete a new user](add-users-azure-active-directory.md)
+
+- Add groups and members, see [Create a basic group and add members](active-directory-groups-create-azure-portal.md)
+
+- Learn about [Azure role-based access control (Azure RBAC)](../../role-based-access-control/overview.md) and [Conditional Access](../conditional-access/overview.md) to help manage your organization's application and resource access.
+
+- Learn about Azure AD, including [basic licensing information, terminology, and associated features](active-directory-whatis.md).
active-directory Custom Security Attributes Add https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/custom-security-attributes-add.md
Title: Add or deactivate custom security attributes in Azure AD (Preview)
-description: Learn how to add new custom security attributes or deactivate custom security attributes in Azure Active Directory.
+ Title: Add or deactivate custom security attribute definitions in Azure AD (Preview)
+description: Learn how to add new custom security attribute definitions or deactivate custom security attribute definitions in Azure Active Directory.
Previously updated : 02/03/2022 Last updated : 06/29/2023
-# Add or deactivate custom security attributes in Azure AD (Preview)
+# Add or deactivate custom security attribute definitions in Azure AD (Preview)
> [!IMPORTANT] > Custom security attributes are currently in PREVIEW. > See the [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/) for legal terms that apply to Azure features that are in beta, preview, or otherwise not yet released into general availability.
-[Custom security attributes](custom-security-attributes-overview.md) in Azure Active Directory (Azure AD) are business-specific attributes (key-value pairs) that you can define and assign to Azure AD objects. This article describes how to add, edit, or deactivate custom security attributes.
+[Custom security attributes](custom-security-attributes-overview.md) in Azure Active Directory (Azure AD) are business-specific attributes (key-value pairs) that you can define and assign to Azure AD objects. This article describes how to add, edit, or deactivate custom security attribute definitions.
## Prerequisites
-To add or deactivate custom security attributes, you must have:
+To add or deactivate custom security attributes definitions, you must have:
- Azure AD Premium P1 or P2 license - [Attribute Definition Administrator](../roles/permissions-reference.md#attribute-definition-administrator)-- [AzureADPreview](https://www.powershellgallery.com/packages/AzureADPreview) version 2.0.2.138 or later when using PowerShell
+- Microsoft.Graph module when using [Microsoft Graph PowerShell](/powershell/microsoftgraph/installation)
+- [AzureADPreview](https://www.powershellgallery.com/packages/AzureADPreview) version 2.0.2.138 or later when using Azure AD PowerShell
> [!IMPORTANT] > By default, [Global Administrator](../roles/permissions-reference.md#global-administrator) and other administrator roles do not have permissions to read, define, or assign custom security attributes.
An attribute set is a collection of related attributes. All custom security attr
The new attribute set appears in the list of attribute sets.
-## Add a custom security attribute
+## Add a custom security attribute definition
1. Sign in to the [Azure portal](https://portal.azure.com).
An attribute set is a collection of related attributes. All custom security attr
1. On the Custom security attributes page, find an existing attribute set or click **Add attribute set** to add a new attribute set.
- All custom security attributes must be part of an attribute set.
+ All custom security attribute definitions must be part of an attribute set.
1. Click to open the selected attribute set.
An attribute set is a collection of related attributes. All custom security attr
1. If you want to include predefined values, follow the steps in the next section.
-## Edit a custom security attribute
+## Edit a custom security attribute definition
-Once you add a new custom security attribute, you can later edit some of the properties. Some properties are immutable and cannot be changed.
+Once you add a new custom security attribute definition, you can later edit some of the properties. Some properties are immutable and cannot be changed.
1. Sign in to the [Azure portal](https://portal.azure.com).
Once you add a new custom security attribute, you can later edit some of the pro
![Screenshot of Add predefined value pane in Azure portal.](./media/custom-security-attributes-add/attribute-predefined-value-add.png)
-## Deactivate a custom security attribute
+## Deactivate a custom security attribute definition
-Once you add a custom security attribute, you can't delete it. However, you can deactivate a custom security attribute.
+Once you add a custom security attribute definition, you can't delete it. However, you can deactivate a custom security attribute definition.
1. Sign in to the [Azure portal](https://portal.azure.com).
Once you add a custom security attribute, you can't delete it. However, you can
The custom security attribute is deactivated and moved to the Deactivated attributes list.
-## PowerShell
+## PowerShell or Microsoft Graph API
-To manage custom security attributes in your Azure AD organization, you can also use the PowerShell. The following command can manage attribute sets and custom security attributes.
-
-#### Get all attribute sets
-
-Use the [Get-AzureADMSAttributeSet](/powershell/module/azuread/get-azureadmsattributeset) command without any parameters to get all attribute sets.
+To manage custom security attribute definitions in your Azure AD organization, you can also use PowerShell or Microsoft Graph API. The following examples manage attribute sets and custom security attribute definitions.
-```powershell
-Get-AzureADMSAttributeSet
-```
+#### Get all attribute sets
-#### Get an attribute set
+The following example gets all attribute sets.
-Use the [Get-AzureADMSAttributeSet](/powershell/module/azuread/get-azureadmsattributeset) command to get an attribute set.
+# [PowerShell](#tab/ms-powershell)
-- Attribute set: `Engineering`
+[Get-MgDirectoryAttributeSet](/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdirectoryattributeset)
```powershell
-Get-AzureADMSAttributeSet -Id "Engineering"
+Get-MgDirectoryAttributeSet | Format-List
```
-
-#### Add an attribute set
-Use the [New-AzureADMSAttributeSet](/powershell/module/azuread/new-azureadmsattributeset) command to add a new attribute set.
+```Output
+Description : Attributes for engineering team
+Id : Engineering
+MaxAttributesPerSet : 25
+AdditionalProperties : {}
-- Attribute set: `Engineering`-
-```powershell
-New-AzureADMSAttributeSet -Id "Engineering" -Description "Attributes for engineering team" -MaxAttributesPerSet 10
+Description : Attributes for marketing team
+Id : Marketing
+MaxAttributesPerSet : 25
+AdditionalProperties : {}
```
-#### Update an attribute set
+# [Microsoft Graph](#tab/ms-graph)
-Use the [Set-AzureADMSAttributeSet](/powershell/module/azuread/set-azureadmsattributeset) command to update an attribute set.
+[List attributeSets](/graph/api/directory-list-attributesets)
-- Attribute set: `Engineering`-
-```powershell
-Set-AzureADMSAttributeSet -Id "Engineering" -Description "Attributes for cloud engineering team"
-Set-AzureADMSAttributeSet -Id "Engineering" -MaxAttributesPerSet 20
+```http
+GET https://graph.microsoft.com/beta/directory/attributeSets
```
-#### Get all custom security attributes
+# [Azure AD PowerShell](#tab/aad-powershell)
-Use the [Get-AzureADMSCustomSecurityAttributeDefinition](/powershell/module/azuread/get-azureadmscustomsecurityattributedefinition) command without any parameters to get all custom security attribute definitions.
+[Get-AzureADMSAttributeSet](/powershell/module/azuread/get-azureadmsattributeset)
```powershell
-Get-AzureADMSCustomSecurityAttributeDefinition
+Get-AzureADMSAttributeSet
```
-#### Get a custom security attribute
+
-Use the [Get-AzureADMSCustomSecurityAttributeDefinition](/powershell/module/azuread/get-azureadmscustomsecurityattributedefinition) command to get a custom security attribute definition.
+#### Get top attribute sets
-- Attribute set: `Engineering`-- Attribute: `ProjectDate`
+The following example gets the top attribute sets.
-```powershell
-Get-AzureADMSCustomSecurityAttributeDefinition -Id "Engineering_ProjectDate"
-```
-
-#### Add a custom security attribute
+# [PowerShell](#tab/ms-powershell)
-Use the [New-AzureADMSCustomSecurityAttributeDefinition](/powershell/module/azuread/new-azureadmscustomsecurityattributedefinition) command to add a new custom security attribute definition.
--- Attribute set: `Engineering`-- Attribute: `ProjectDate`-- Attribute data type: String
+[Get-MgDirectoryAttributeSet](/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdirectoryattributeset)
```powershell
-New-AzureADMSCustomSecurityAttributeDefinition -AttributeSet "Engineering" -Name "ProjectDate" -Description "Target completion date" -Type "String" -Status "Available" -IsCollection $false -IsSearchable $true -UsePreDefinedValuesOnly $true
+Get-MgDirectoryAttributeSet -Top 10
```
-
-#### Update a custom security attribute
-Use the [Set-AzureADMSCustomSecurityAttributeDefinition](/powershell/module/azuread/set-azureadmscustomsecurityattributedefinition) command to update a custom security attribute definition.
+# [Microsoft Graph](#tab/ms-graph)
-- Attribute set: `Engineering`-- Attribute: `ProjectDate`
+[List attributeSets](/graph/api/directory-list-attributesets)
-```powershell
-Set-AzureADMSCustomSecurityAttributeDefinition -Id "Engineering_ProjectDate" -Description "Target completion date (YYYY/MM/DD)"
+```http
+GET https://graph.microsoft.com/beta/directory/attributeSets?$top=10
```
-#### Deactivate a custom security attribute
+# [Azure AD PowerShell](#tab/aad-powershell)
-Use the [Set-AzureADMSCustomSecurityAttributeDefinition](/powershell/module/azuread/set-azureadmscustomsecurityattributedefinition) command to deactivate a custom security attribute definition.
+None
-- Attribute set: `Engineering`-- Attribute: `Project`+
-```powershell
-Set-AzureADMSCustomSecurityAttributeDefinition -Id "Engineering_Project" -Status "Deprecated"
-```
+#### Get attribute sets in order
-#### Get all predefined values
+The following example gets attribute sets in order.
-Use the [Get-AzureADMSCustomSecurityAttributeDefinitionAllowedValue](/powershell/module/azuread/get-azureadmscustomsecurityattributedefinitionallowedvalue) command to get all predefined values for a custom security attribute definition.
+# [PowerShell](#tab/ms-powershell)
-- Attribute set: `Engineering`-- Attribute: `Project`
+[Get-MgDirectoryAttributeSet](/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdirectoryattributeset)
```powershell
-Get-AzureADMSCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project"
+Get-MgDirectoryAttributeSet -Sort "Id"
```
-
-#### Get a predefined value
-Use the [Get-AzureADMSCustomSecurityAttributeDefinitionAllowedValue](/powershell/module/azuread/get-azureadmscustomsecurityattributedefinitionallowedvalue) command to get a predefined value for a custom security attribute definition.
+# [Microsoft Graph](#tab/ms-graph)
-- Attribute set: `Engineering`-- Attribute: `Project`-- Predefined value: `Alpine`
+[List attributeSets](/graph/api/directory-list-attributesets)
-```powershell
-Get-AzureADMSCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" -Id "Alpine"
+```http
+GET https://graph.microsoft.com/beta/directory/attributeSets?$orderBy=id
```
-
-#### Add a predefined value
-Use the [Add-AzureADMScustomSecurityAttributeDefinitionAllowedValues](/powershell/module/azuread/add-azureadmscustomsecurityattributedefinitionallowedvalues) command to add a predefined value for a custom security attribute definition.
+# [Azure AD PowerShell](#tab/aad-powershell)
-- Attribute set: `Engineering`-- Attribute: `Project`-- Predefined value: `Alpine`
+None
-```powershell
-Add-AzureADMScustomSecurityAttributeDefinitionAllowedValues -CustomSecurityAttributeDefinitionId "Engineering_Project" -Id "Alpine" -IsActive $true
-```
-
-#### Deactivate a predefined value
++
+#### Get an attribute set
-Use the [Set-AzureADMSCustomSecurityAttributeDefinitionAllowedValue](/powershell/module/azuread/set-azureadmscustomsecurityattributedefinitionallowedvalue) command to deactivate a predefined value for a custom security attribute definition.
+The following example gets an attribute set.
- Attribute set: `Engineering`-- Attribute: `Project`-- Predefined value: `Alpine`+
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgDirectoryAttributeSet](/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdirectoryattributeset)
```powershell
-Set-AzureADMSCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" -Id "Alpine" -IsActive $false
+Get-MgDirectoryAttributeSet -AttributeSetId "Engineering" | Format-List
```
-## Microsoft Graph API
-
-To manage custom security attributes in your Azure AD organization, you can also use the Microsoft Graph API. The following API calls can be made to manage attribute sets and custom security attributes.
+```Output
+Description : Attributes for engineering team
+Id : Engineering
+MaxAttributesPerSet : 25
+AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/attributeSets/$entity]}
+```
-#### Get all attribute sets
+# [Microsoft Graph](#tab/ms-graph)
-Use the [List attributeSets](/graph/api/directory-list-attributesets) API to get all attribute sets.
+[Get attributeSet](/graph/api/attributeset-get)
```http
-GET https://graph.microsoft.com/beta/directory/attributeSets
+GET https://graph.microsoft.com/beta/directory/attributeSets/Engineering
```
-#### Get top attribute sets
+# [Azure AD PowerShell](#tab/aad-powershell)
-Use the [List attributeSets](/graph/api/directory-list-attributesets) API to get the top attribute sets.
+[Get-AzureADMSAttributeSet](/powershell/module/azuread/get-azureadmsattributeset)
-```http
-GET https://graph.microsoft.com/beta/directory/attributeSets?$top=10
+```powershell
+Get-AzureADMSAttributeSet -Id "Engineering"
```
-#### Get attribute sets in order
+
-Use the [List attributeSets](/graph/api/directory-list-attributesets) API to get attribute sets in order.
+#### Add an attribute set
-```http
-GET https://graph.microsoft.com/beta/directory/attributeSets?$orderBy=id
-```
+The following example adds a new attribute set.
-#### Get an attribute set
+- Attribute set: `Engineering`
-Use the [Get attributeSet](/graph/api/attributeset-get) API to get an attribute set.
+# [PowerShell](#tab/ms-powershell)
-- Attribute set: `Engineering`
+[New-MgDirectoryAttributeSet](/powershell/module/microsoft.graph.identity.directorymanagement/new-mgdirectoryattributeset)
-```http
-GET https://graph.microsoft.com/beta/directory/attributeSets/Engineering
+```powershell
+$params = @{
+ Id = "Engineering"
+ Description = "Attributes for engineering team"
+ MaxAttributesPerSet = 25
+}
+New-MgDirectoryAttributeSet -BodyParameter $params
```
-#### Add an attribute set
+```Output
+Id Description MaxAttributesPerSet
+-- -- -
+Engineering Attributes for engineering team 25
+```
-Use the [Create attributeSet](/graph/api/directory-post-attributesets) API to add a new attribute set.
+# [Microsoft Graph](#tab/ms-graph)
-- Attribute set: `Engineering`
+[Create attributeSet](/graph/api/directory-post-attributesets)
```http POST https://graph.microsoft.com/beta/directory/attributeSets
POST https://graph.microsoft.com/beta/directory/attributeSets
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[New-AzureADMSAttributeSet](/powershell/module/azuread/new-azureadmsattributeset)
+
+```powershell
+New-AzureADMSAttributeSet -Id "Engineering" -Description "Attributes for engineering team" -MaxAttributesPerSet 10
+```
+++ #### Update an attribute set
-Use the [Update attributeSet](/graph/api/attributeset-update) API to update an attribute set.
+The following example updates an attribute set.
- Attribute set: `Engineering`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgDirectoryAttributeSet](/powershell/module/microsoft.graph.identity.directorymanagement/update-mgdirectoryattributeset)
+
+```powershell
+$params = @{
+ description = "Attributes for engineering team"
+ maxAttributesPerSet = 20
+}
+Update-MgDirectoryAttributeSet -AttributeSetId "Engineering" -BodyParameter $params
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update attributeSet](/graph/api/attributeset-update)
+ ```http PATCH https://graph.microsoft.com/beta/directory/attributeSets/Engineering {
PATCH https://graph.microsoft.com/beta/directory/attributeSets/Engineering
} ```
-#### Get all custom security attributes
+# [Azure AD PowerShell](#tab/aad-powershell)
-Use the [List customSecurityAttributeDefinitions](/graph/api/directory-list-customsecurityattributedefinitions) API to get all custom security attribute definitions.
+[Set-AzureADMSAttributeSet](/powershell/module/azuread/set-azureadmsattributeset)
+
+```powershell
+Set-AzureADMSAttributeSet -Id "Engineering" -Description "Attributes for cloud engineering team"
+Set-AzureADMSAttributeSet -Id "Engineering" -MaxAttributesPerSet 20
+```
+++
+#### Get all custom security attribute definitions
+
+The following example gets all custom security attribute definitions.
+
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgDirectoryCustomSecurityAttributeDefinition](/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdirectorycustomsecurityattributedefinition)
+
+```powershell
+Get-MgDirectoryCustomSecurityAttributeDefinition | Format-List
+```
+
+```Output
+AllowedValues :
+AttributeSet : Engineering
+Description : Target completion date
+Id : Engineering_ProjectDate
+IsCollection : False
+IsSearchable : True
+Name : ProjectDate
+Status : Available
+Type : String
+UsePreDefinedValuesOnly : False
+AdditionalProperties : {}
+
+AllowedValues :
+AttributeSet : Engineering
+Description : Active projects for user
+Id : Engineering_Project
+IsCollection : True
+IsSearchable : True
+Name : Project
+Status : Available
+Type : String
+UsePreDefinedValuesOnly : True
+AdditionalProperties : {}
+
+AllowedValues :
+AttributeSet : Marketing
+Description : Country where is application is used
+Id : Marketing_AppCountry
+IsCollection : True
+IsSearchable : True
+Name : AppCountry
+Status : Available
+Type : String
+UsePreDefinedValuesOnly : True
+AdditionalProperties : {}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[List customSecurityAttributeDefinitions](/graph/api/directory-list-customsecurityattributedefinitions)
```http GET https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions ```
-#### Filter custom security attributes
+# [Azure AD PowerShell](#tab/aad-powershell)
-Use the [List customSecurityAttributeDefinitions](/graph/api/directory-list-customsecurityattributedefinitions) API to filter custom security attribute definitions.
+[Get-AzureADMSCustomSecurityAttributeDefinition](/powershell/module/azuread/get-azureadmscustomsecurityattributedefinition)
+
+```powershell
+Get-AzureADMSCustomSecurityAttributeDefinition
+```
+++
+#### Filter custom security attribute definitions
+
+The following examples filter custom security attribute definitions.
- Filter: Attribute name eq 'Project' and status eq 'Available'
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgDirectoryCustomSecurityAttributeDefinition](/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdirectorycustomsecurityattributedefinition)
+
+```powershell
+Get-MgDirectoryCustomSecurityAttributeDefinition -Filter "name eq 'Project' and status eq 'Available'" | Format-List
+```
+
+```Output
+AllowedValues :
+AttributeSet : Engineering
+Description : Active projects for user
+Id : Engineering_Project
+IsCollection : True
+IsSearchable : True
+Name : Project
+Status : Available
+Type : String
+UsePreDefinedValuesOnly : True
+AdditionalProperties : {}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[List customSecurityAttributeDefinitions](/graph/api/directory-list-customsecurityattributedefinitions)
+ ```http GET https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions?$filter=name+eq+'Project'%20and%20status+eq+'Available' ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++ - Filter: Attribute set eq 'Engineering' and status eq 'Available' and data type eq 'String'
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgDirectoryCustomSecurityAttributeDefinition](/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdirectorycustomsecurityattributedefinition)
+
+```powershell
+Get-MgDirectoryCustomSecurityAttributeDefinition -Filter "attributeSet eq 'Engineering' and status eq 'Available' and type eq 'String'" | Format-List
+```
+
+```Output
+AllowedValues :
+AttributeSet : Engineering
+Description : Target completion date
+Id : Engineering_ProjectDate
+IsCollection : False
+IsSearchable : True
+Name : ProjectDate
+Status : Available
+Type : String
+UsePreDefinedValuesOnly : False
+AdditionalProperties : {}
+
+AllowedValues :
+AttributeSet : Engineering
+Description : Active projects for user
+Id : Engineering_Project
+IsCollection : True
+IsSearchable : True
+Name : Project
+Status : Available
+Type : String
+UsePreDefinedValuesOnly : True
+AdditionalProperties : {}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[List customSecurityAttributeDefinitions](/graph/api/directory-list-customsecurityattributedefinitions)
+ ```http GET https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions?$filter=attributeSet+eq+'Engineering'%20and%20status+eq+'Available'%20and%20type+eq+'String' ```
-#### Get a custom security attribute
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
+++
+#### Get a custom security attribute definition
-Use the [Get customSecurityAttributeDefinition](/graph/api/customsecurityattributedefinition-get) API to get a custom security attribute definition.
+The following example gets a custom security attribute definition.
- Attribute set: `Engineering` - Attribute: `ProjectDate`
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgDirectoryCustomSecurityAttributeDefinition](/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdirectorycustomsecurityattributedefinition)
+
+```powershell
+Get-MgDirectoryCustomSecurityAttributeDefinition -CustomSecurityAttributeDefinitionId "Engineering_ProjectDate" | Format-List
+```
+
+```Output
+AllowedValues :
+AttributeSet : Engineering
+Description : Target completion date
+Id : Engineering_ProjectDate
+IsCollection : False
+IsSearchable : True
+Name : ProjectDate
+Status : Available
+Type : String
+UsePreDefinedValuesOnly : False
+AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions/$entity]}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Get customSecurityAttributeDefinition](/graph/api/customsecurityattributedefinition-get)
+ ```http GET https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions/Engineering_ProjectDate ```
-#### Add a custom security attribute
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[Get-AzureADMSCustomSecurityAttributeDefinition](/powershell/module/azuread/get-azureadmscustomsecurityattributedefinition)
+
+```powershell
+Get-AzureADMSCustomSecurityAttributeDefinition -Id "Engineering_ProjectDate"
+```
+++
+#### Add a custom security attribute definition
-Use the [Create customSecurityAttributeDefinition](/graph/api/directory-post-customsecurityattributedefinitions) API to add a new custom security attribute definition.
+The following example adds a new custom security attribute definition.
- Attribute set: `Engineering` - Attribute: `ProjectDate` - Attribute data type: String
+# [PowerShell](#tab/ms-powershell)
+
+[New-MgDirectoryCustomSecurityAttributeDefinition](/powershell/module/microsoft.graph.identity.directorymanagement/new-mgdirectorycustomsecurityattributedefinition)
+
+```powershell
+$params = @{
+ attributeSet = "Engineering"
+ description = "Target completion date"
+ isCollection = $false
+ isSearchable = $true
+ name = "ProjectDate"
+ status = "Available"
+ type = "String"
+ usePreDefinedValuesOnly = $false
+}
+New-MgDirectoryCustomSecurityAttributeDefinition -BodyParameter $params | Format-List
+```
+
+```Output
+AllowedValues :
+AttributeSet : Engineering
+Description : Target completion date
+Id : Engineering_ProjectDate
+IsCollection : False
+IsSearchable : True
+Name : ProjectDate
+Status : Available
+Type : String
+UsePreDefinedValuesOnly : False
+AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions/$entity]}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Create customSecurityAttributeDefinition](/graph/api/directory-post-customsecurityattributedefinitions)
+ ```http POST https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions {
POST https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitio
} ```
-#### Add a custom security attribute that supports multiple predefined values
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[New-AzureADMSCustomSecurityAttributeDefinition](/powershell/module/azuread/new-azureadmscustomsecurityattributedefinition)
+
+```powershell
+New-AzureADMSCustomSecurityAttributeDefinition -AttributeSet "Engineering" -Name "ProjectDate" -Description "Target completion date" -Type "String" -Status "Available" -IsCollection $false -IsSearchable $true -UsePreDefinedValuesOnly $false
+```
+++
+#### Add a custom security attribute definition that supports multiple predefined values
-Use the [Create customSecurityAttributeDefinition](/graph/api/directory-post-customsecurityattributedefinitions) API to add a new custom security attribute definition that supports multiple predefined values.
+The following example adds a new custom security attribute definition that supports multiple predefined values.
- Attribute set: `Engineering` - Attribute: `Project` - Attribute data type: Collection of Strings
+# [PowerShell](#tab/ms-powershell)
+
+[New-MgDirectoryCustomSecurityAttributeDefinition](/powershell/module/microsoft.graph.identity.directorymanagement/new-mgdirectorycustomsecurityattributedefinition)
+
+```powershell
+$params = @{
+ attributeSet = "Engineering"
+ description = "Active projects for user"
+ isCollection = $true
+ isSearchable = $true
+ name = "Project"
+ status = "Available"
+ type = "String"
+ usePreDefinedValuesOnly = $true
+}
+New-MgDirectoryCustomSecurityAttributeDefinition -BodyParameter $params | Format-List
+```
+
+```Output
+AllowedValues :
+AttributeSet : Engineering
+Description : Active projects for user
+Id : Engineering_Project
+IsCollection : True
+IsSearchable : True
+Name : Project
+Status : Available
+Type : String
+UsePreDefinedValuesOnly : True
+AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions/$entity]}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Create customSecurityAttributeDefinition](/graph/api/directory-post-customsecurityattributedefinitions)
+ ```http POST https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions {
POST https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitio
} ```
-#### Add a custom security attribute with a list of predefined values
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
-Use the [Create customSecurityAttributeDefinition](/graph/api/directory-post-customsecurityattributedefinitions) API to add a new custom security attribute definition with a list of predefined values.
++
+#### Add a custom security attribute definition with a list of predefined values
+
+The following example adds a new custom security attribute definition with a list of predefined values.
- Attribute set: `Engineering` - Attribute: `Project` - Attribute data type: Collection of Strings - Predefined values: `Alpine`, `Baker`, `Cascade`
+# [PowerShell](#tab/ms-powershell)
+
+[New-MgDirectoryCustomSecurityAttributeDefinition](/powershell/module/microsoft.graph.identity.directorymanagement/new-mgdirectorycustomsecurityattributedefinition)
+
+```powershell
+$params = @{
+ attributeSet = "Engineering"
+ description = "Active projects for user"
+ isCollection = $true
+ isSearchable = $true
+ name = "Project"
+ status = "Available"
+ type = "String"
+ usePreDefinedValuesOnly = $true
+ allowedValues = @(
+ @{
+ id = "Alpine"
+ isActive = $true
+ }
+ @{
+ id = "Baker"
+ isActive = $true
+ }
+ @{
+ id = "Cascade"
+ isActive = $true
+ }
+ )
+}
+New-MgDirectoryCustomSecurityAttributeDefinition -BodyParameter $params | Format-List
+```
+
+```Output
+AllowedValues :
+AttributeSet : Engineering
+Description : Active projects for user
+Id : Engineering_Project
+IsCollection : True
+IsSearchable : True
+Name : Project
+Status : Available
+Type : String
+UsePreDefinedValuesOnly : True
+AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions/$entity]}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Create customSecurityAttributeDefinition](/graph/api/directory-post-customsecurityattributedefinitions)
+ ```http POST https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions {
POST https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitio
} ```
-#### Update a custom security attribute
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+None
-Use the [Update customSecurityAttributeDefinition](/graph/api/customsecurityattributedefinition-update) API to update a custom security attribute definition.
++
+#### Update a custom security attribute definition
+
+The following example updates a custom security attribute definition.
- Attribute set: `Engineering` - Attribute: `ProjectDate`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgDirectoryCustomSecurityAttributeDefinition](/powershell/module/microsoft.graph.identity.directorymanagement/update-mgdirectorycustomsecurityattributedefinition)
+
+```powershell
+$params = @{
+ description = "Target completion date (YYYY/MM/DD)"
+}
+Update-MgDirectoryCustomSecurityAttributeDefinition -CustomSecurityAttributeDefinitionId "Engineering_ProjectDate" -BodyParameter $params
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update customSecurityAttributeDefinition](/graph/api/customsecurityattributedefinition-update)
+ ```http PATCH https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions/Engineering_ProjectDate {
PATCH https://graph.microsoft.com/beta/directory/customSecurityAttributeDefiniti
} ```
-#### Update the predefined values for a custom security attribute
+# [Azure AD PowerShell](#tab/aad-powershell)
-Use the [Update customSecurityAttributeDefinition](/graph/api/customsecurityattributedefinition-update) API to update the predefined values for a custom security attribute definition.
+[Set-AzureADMSCustomSecurityAttributeDefinition](/powershell/module/azuread/set-azureadmscustomsecurityattributedefinition)
+
+```powershell
+Set-AzureADMSCustomSecurityAttributeDefinition -Id "Engineering_ProjectDate" -Description "Target completion date (YYYY/MM/DD)"
+```
+++
+#### Update the predefined values for a custom security attribute definition
+
+The following example updates the predefined values for a custom security attribute definition.
- Attribute set: `Engineering` - Attribute: `Project`
Use the [Update customSecurityAttributeDefinition](/graph/api/customsecurityattr
- Update predefined value: `Baker` - New predefined value: `Skagit`
+# [PowerShell](#tab/ms-powershell)
+
+[Invoke-MgGraphRequest](/powershell/microsoftgraph/authentication-commands#using-invoke-mggraphrequest)
+
+> [!NOTE]
+> For this request, you must add the **OData-Version** header and assign it the value `4.01`.
+
+```powershell
+$params = @{
+ "allowedValues@delta" = @(
+ @{
+ id = "Baker"
+ isActive = $false
+ }
+ @{
+ id = "Skagit"
+ isActive = $true
+ }
+ )
+}
+$header = @{
+ "OData-Version" = 4.01
+}
+Invoke-MgGraphRequest -Method PATCH -Uri "https://graph.microsoft.com/v1.0/directory/customSecurityAttributeDefinitions/Engineering_Project5" -Headers $header -Body $params
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update customSecurityAttributeDefinition](/graph/api/customsecurityattributedefinition-update)
+ > [!NOTE] > For this request, you must add the **OData-Version** header and assign it the value `4.01`.
PATCH https://graph.microsoft.com/beta/directory/customSecurityAttributeDefiniti
} ```
-#### Deactivate a custom security attribute
+# [Azure AD PowerShell](#tab/aad-powershell)
-Use the [Update customSecurityAttributeDefinition](/graph/api/customsecurityattributedefinition-update) API to deactivate a custom security attribute definition.
+None
+++
+#### Deactivate a custom security attribute definition
+
+The following example deactivates a custom security attribute definition.
- Attribute set: `Engineering` - Attribute: `Project`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgDirectoryCustomSecurityAttributeDefinition](/powershell/module/microsoft.graph.identity.directorymanagement/update-mgdirectorycustomsecurityattributedefinition)
+
+```powershell
+$params = @{
+ status = "Deprecated"
+}
+Update-MgDirectoryCustomSecurityAttributeDefinition -CustomSecurityAttributeDefinitionId "Engineering_ProjectDate" -BodyParameter $params
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update customSecurityAttributeDefinition](/graph/api/customsecurityattributedefinition-update)
+ ```http PATCH https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions/Engineering_Project {
PATCH https://graph.microsoft.com/beta/directory/customSecurityAttributeDefiniti
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[Set-AzureADMSCustomSecurityAttributeDefinition](/powershell/module/azuread/set-azureadmscustomsecurityattributedefinition)
+
+```powershell
+Set-AzureADMSCustomSecurityAttributeDefinition -Id "Engineering_Project" -Status "Deprecated"
+```
+++ #### Get all predefined values
-Use the [List allowedValues](/graph/api/customsecurityattributedefinition-list-allowedvalues) API to get all predefined values for a custom security attribute definition.
+The following example gets all predefined values for a custom security attribute definition.
- Attribute set: `Engineering` - Attribute: `Project`
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue](/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdirectorycustomsecurityattributedefinitionallowedvalue)
+
+```powershell
+Get-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" | Format-List
+```
+
+```Output
+Id : Skagit
+IsActive : True
+AdditionalProperties : {}
+
+Id : Baker
+IsActive : False
+AdditionalProperties : {}
+
+Id : Cascade
+IsActive : True
+AdditionalProperties : {}
+
+Id : Alpine
+IsActive : True
+AdditionalProperties : {}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[List allowedValues](/graph/api/customsecurityattributedefinition-list-allowedvalues)
+ ```http GET https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions/Engineering_Project/allowedValues ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[Get-AzureADMSCustomSecurityAttributeDefinitionAllowedValue](/powershell/module/azuread/get-azureadmscustomsecurityattributedefinitionallowedvalue)
+
+```powershell
+Get-AzureADMSCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project"
+```
+++ #### Get a predefined value
-Use the [Get allowedValue](/graph/api/allowedvalue-get) API to get a predefined value for a custom security attribute definition.
+The following example gets a predefined value for a custom security attribute definition.
- Attribute set: `Engineering` - Attribute: `Project` - Predefined value: `Alpine`
+# [PowerShell](#tab/ms-powershell)
+
+[Get-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue](/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdirectorycustomsecurityattributedefinitionallowedvalue)
+
+```powershell
+Get-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" -AllowedValueId "Alpine" | Format-List
+```
+
+```Output
+Id : Alpine
+IsActive : True
+AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions('Engineering_Project')/al
+ lowedValues/$entity]}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Get allowedValue](/graph/api/allowedvalue-get)
+ ```http GET https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions/Engineering_Project/allowedValues/Alpine ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[Get-AzureADMSCustomSecurityAttributeDefinitionAllowedValue](/powershell/module/azuread/get-azureadmscustomsecurityattributedefinitionallowedvalue)
+
+```powershell
+Get-AzureADMSCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" -Id "Alpine"
+```
+++ #### Add a predefined value
-Use the [Create allowedValue](/graph/api/customsecurityattributedefinition-post-allowedvalues) API to add a predefined value for a custom security attribute definition.
+The following example adds a predefined value for a custom security attribute definition.
You can add predefined values for custom security attributes that have `usePreDefinedValuesOnly` set to `true`.
You can add predefined values for custom security attributes that have `usePreDe
- Attribute: `Project` - Predefined value: `Alpine`
+# [PowerShell](#tab/ms-powershell)
+
+[New-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue](/powershell/module/microsoft.graph.identity.directorymanagement/new-mgdirectorycustomsecurityattributedefinitionallowedvalue)
+
+```powershell
+$params = @{
+ id = "Alpine"
+ isActive = $true
+}
+New-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" -BodyParameter $params | Format-List
+```
+
+```Output
+Id : Alpine
+IsActive : True
+AdditionalProperties : {[@odata.context, https://graph.microsoft.com/v1.0/$metadata#directory/customSecurityAttributeDefinitions('Engineering_Project')/al
+ lowedValues/$entity]}
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Create allowedValue](/graph/api/customsecurityattributedefinition-post-allowedvalues)
+ ```http POST https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions/Engineering_Project/allowedValues {
POST https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitio
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[Add-AzureADMScustomSecurityAttributeDefinitionAllowedValues](/powershell/module/azuread/add-azureadmscustomsecurityattributedefinitionallowedvalues)
+
+```powershell
+Add-AzureADMScustomSecurityAttributeDefinitionAllowedValues -CustomSecurityAttributeDefinitionId "Engineering_Project" -Id "Alpine" -IsActive $true
+```
+++ #### Deactivate a predefined value
-Use the [Update allowedValue](/graph/api/allowedvalue-update) API to deactivate a predefined value for a custom security attribute definition.
+The following example deactivates a predefined value for a custom security attribute definition.
- Attribute set: `Engineering` - Attribute: `Project` - Predefined value: `Alpine`
+# [PowerShell](#tab/ms-powershell)
+
+[Update-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue](/powershell/module/microsoft.graph.identity.directorymanagement/update-mgdirectorycustomsecurityattributedefinitionallowedvalue)
+
+```powershell
+$params = @{
+ isActive = $false
+}
+Update-MgDirectoryCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" -AllowedValueId "Alpine" -BodyParameter $params
+```
+
+# [Microsoft Graph](#tab/ms-graph)
+
+[Update allowedValue](/graph/api/allowedvalue-update)
+ ```http PATCH https://graph.microsoft.com/beta/directory/customSecurityAttributeDefinitions/Engineering_Project/allowedValues/Alpine {
PATCH https://graph.microsoft.com/beta/directory/customSecurityAttributeDefiniti
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[Set-AzureADMSCustomSecurityAttributeDefinitionAllowedValue](/powershell/module/azuread/set-azureadmscustomsecurityattributedefinitionallowedvalue)
+
+```powershell
+Set-AzureADMSCustomSecurityAttributeDefinitionAllowedValue -CustomSecurityAttributeDefinitionId "Engineering_Project" -Id "Alpine" -IsActive $false
+```
+++ ## Frequently asked questions **Can you delete custom security attribute definitions?**
-No, you can't delete custom security attribute definitions. You can only [deactivate custom security attribute definitions](#deactivate-a-custom-security-attribute). Once you deactivate a custom security attribute, it can no longer be applied to the Azure AD objects. Custom security attribute assignments for the deactivated custom security attribute definition are not automatically removed. There is no limit to the number of deactivated custom security attributes. You can have 500 active custom security attribute definitions per tenant with 100 allowed predefined values per custom security attribute definition.
+No, you can't delete custom security attribute definitions. You can only [deactivate custom security attribute definitions](#deactivate-a-custom-security-attribute-definition). Once you deactivate a custom security attribute, it can no longer be applied to the Azure AD objects. Custom security attribute assignments for the deactivated custom security attribute definition are not automatically removed. There is no limit to the number of deactivated custom security attributes. You can have 500 active custom security attribute definitions per tenant with 100 allowed predefined values per custom security attribute definition.
## Next steps
active-directory Custom Security Attributes Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/custom-security-attributes-manage.md
Previously updated : 01/07/2023 Last updated : 06/29/2023
To manage access to custom security attributes, you must have:
- Azure AD Premium P1 or P2 license - [Attribute Assignment Administrator](../roles/permissions-reference.md#attribute-assignment-administrator)
+- Microsoft.Graph module when using [Microsoft Graph PowerShell](/powershell/microsoftgraph/installation)
> [!IMPORTANT] > By default, [Global Administrator](../roles/permissions-reference.md#global-administrator) and other administrator roles do not have permissions to read, define, or assign custom security attributes. ## Step 1: Figure out how to organize your attributes
-Every custom security attribute must be part of an attribute set. An attribute set is a way to group and manage related custom security attributes. You'll need to figure out how you want to add attributes sets for your organization. For example, you might want to add attribute sets based on departments, teams, or projects. Your ability to grant access to custom security attributes will depend on how you organize your attribute sets.
+Every custom security attribute definition must be part of an attribute set. An attribute set is a way to group and manage related custom security attributes. You'll need to figure out how you want to add attributes sets for your organization. For example, you might want to add attribute sets based on departments, teams, or projects. Your ability to grant access to custom security attributes will depend on how you organize your attribute sets.
![Diagram showing an attribute set by department.](./media/custom-security-attributes-manage/attribute-set-department.png)
To grant access to the appropriate people, follow these steps to assign one of t
### Assign roles at attribute set scope
-#### Azure portal
+The following examples show how to assign a custom security attribute role to a principal at an attribute set scope named Engineering.
+
+# [Portal](#tab/azure-portal)
1. Sign in to the [Azure portal](https://portal.azure.com).
To grant access to the appropriate people, follow these steps to assign one of t
> [!NOTE] > If you are using Azure AD Privileged Identity Management (PIM), eligible role assignments at attribute set scope currently aren't supported. Permanent role assignments at attribute set scope are supported, but the **Assigned roles** page for a user doesn't list the role assignments.
-#### PowerShell
+# [PowerShell](#tab/ms-powershell)
-Use [New-AzureADMSRoleAssignment](/powershell/module/azuread/new-azureadmsroleassignment) to assign the role. The following example assigns the Attribute Assignment Administrator role to a principal with an attribute set scope named Engineering.
+[New-MgRoleManagementDirectoryRoleAssignment](/powershell/module/microsoft.graph.devicemanagement.enrolment/new-mgrolemanagementdirectoryroleassignment)
```powershell $roleDefinitionId = "58a13ea3-c632-46ae-9ee0-9c0d43cd7f3d"
-$directoryScope = "/attributeSets/Engineering"
$principalId = "f8ca5a85-489a-49a0-b555-0a6d81e56f0d"
-$roleAssignment = New-AzureADMSRoleAssignment -DirectoryScopeId $directoryScope -RoleDefinitionId $roleDefinitionId -PrincipalId $principalId
+$directoryScopeId = "/attributeSets/Engineering"
+$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -RoleDefinitionId $roleDefinitionId -PrincipalId $principalId -DirectoryScopeId $directoryScopeId
```
-#### Microsoft Graph API
+# [Microsoft Graph](#tab/ms-graph)
-Use the [Create unified Role Assignment](/graph/api/rbacapplication-post-roleassignments?view=graph-rest-beta&preserve-view=true) API to assign the role. The following example assigns the Attribute Assignment Administrator role to a principal with an attribute set scope named Engineering.
+[Create unifiedRoleAssignment](/graph/api/rbacapplication-post-roleassignments)
```http POST https://graph.microsoft.com/beta/roleManagement/directory/roleAssignments
Content-type: application/json
} ```
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[New-AzureADMSRoleAssignment](/powershell/module/azuread/new-azureadmsroleassignment)
+
+```powershell
+$roleDefinitionId = "58a13ea3-c632-46ae-9ee0-9c0d43cd7f3d"
+$principalId = "f8ca5a85-489a-49a0-b555-0a6d81e56f0d"
+$directoryScope = "/attributeSets/Engineering"
+$roleAssignment = New-AzureADMSRoleAssignment -RoleDefinitionId $roleDefinitionId -PrincipalId $principalId -DirectoryScopeId $directoryScope
+```
+++ ### Assign roles at tenant scope
-#### Azure portal
+The following examples show how to assign a custom security attribute role to a principal at tenant scope.
+
+# [Portal](#tab/azure-portal)
1. Sign in to the [Azure portal](https://portal.azure.com).
Content-type: application/json
1. Add assignments for the custom security attribute roles.
-#### PowerShell
+# [PowerShell](#tab/ms-powershell)
+
+[New-MgRoleManagementDirectoryRoleAssignment](/powershell/module/microsoft.graph.devicemanagement.enrolment/new-mgrolemanagementdirectoryroleassignment)
+
+```powershell
+$roleDefinitionId = "58a13ea3-c632-46ae-9ee0-9c0d43cd7f3d"
+$principalId = "f8ca5a85-489a-49a0-b555-0a6d81e56f0d"
+$directoryScopeId = "/"
+$roleAssignment = New-MgRoleManagementDirectoryRoleAssignment -RoleDefinitionId $roleDefinitionId -PrincipalId $principalId -DirectoryScopeId $directoryScopeId
+```
+
+# [Microsoft Graph](#tab/ms-graph)
-Use [New-AzureADMSRoleAssignment](/powershell/module/azuread/new-azureadmsroleassignment) to assign the role. For more information, see [Assign Azure AD roles at different scopes](../roles/assign-roles-different-scopes.md).
+[Create unifiedRoleAssignment](/graph/api/rbacapplication-post-roleassignments)
-#### Microsoft Graph API
+```http
+POST https://graph.microsoft.com/beta/roleManagement/directory/roleAssignments
+Content-type: application/json
-Use the [Create unified Role Assignment](/graph/api/rbacapplication-post-roleassignments?view=graph-rest-beta&preserve-view=true) API to assign the role. For more information, see [Assign Azure AD roles at different scopes](../roles/assign-roles-different-scopes.md).
+{
+ "@odata.type": "#microsoft.graph.unifiedRoleAssignment",
+ "roleDefinitionId": "58a13ea3-c632-46ae-9ee0-9c0d43cd7f3d",
+ "principalId": "f8ca5a85-489a-49a0-b555-0a6d81e56f0d",
+ "directoryScopeId": "/"
+}
+```
+
+# [Azure AD PowerShell](#tab/aad-powershell)
+
+[New-AzureADMSRoleAssignment](/powershell/module/azuread/new-azureadmsroleassignment)
+
+```powershell
+$roleDefinitionId = "58a13ea3-c632-46ae-9ee0-9c0d43cd7f3d"
+$principalId = "f8ca5a85-489a-49a0-b555-0a6d81e56f0d"
+$directoryScope = "/"
+$roleAssignment = New-AzureADMSRoleAssignment -RoleDefinitionId $roleDefinitionId -PrincipalId $principalId -DirectoryScopeId $directoryScope
+```
++ ## View audit logs for attribute changes
The following screenshot shows an example of the audit log. To filter the logs f
## Next steps -- [Add or deactivate custom security attributes in Azure AD](custom-security-attributes-add.md)
+- [Add or deactivate custom security attribute definitions in Azure AD](custom-security-attributes-add.md)
- [Assign, update, list, or remove custom security attributes for a user](../enterprise-users/users-custom-security-attributes.md) - [Troubleshoot custom security attributes in Azure AD](custom-security-attributes-troubleshoot.md)
active-directory Custom Security Attributes Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/custom-security-attributes-overview.md
Previously updated : 05/09/2022 Last updated : 06/29/2023
Depending on whether you have an Azure AD Premium P1 or P2 license, here are the
## Next steps -- [Add or deactivate custom security attributes in Azure AD](custom-security-attributes-add.md)
+- [Add or deactivate custom security attribute definitions in Azure AD](custom-security-attributes-add.md)
- [Manage access to custom security attributes in Azure AD](custom-security-attributes-manage.md) - [Assign, update, list, or remove custom security attributes for a user](../enterprise-users/users-custom-security-attributes.md)
active-directory Custom Security Attributes Troubleshoot https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/custom-security-attributes-troubleshoot.md
Previously updated : 02/20/2023 Last updated : 06/29/2023
When signed in to the Azure portal as Global Administrator and you try to access
**Cause**
-Custom security attributes requires an Azure AD Premium P1 or P2 license.
+Custom security attributes require an Azure AD Premium P1 or P2 license.
**Solution**
There are no custom security attributes defined and assigned yet for your tenant
**Solution 3**
-Add and assign custom security attributes to users or enterprise applications. For more information, see [Add or deactivate custom security attributes in Azure AD](custom-security-attributes-add.md), [Assign, update, list, or remove custom security attributes for a user](../enterprise-users/users-custom-security-attributes.md), or [Assign, update, list, or remove custom security attributes for an application](../manage-apps/custom-security-attributes-apps.md).
+Add and assign custom security attributes to users or enterprise applications. For more information, see [Add or deactivate custom security attribute definitions in Azure AD](custom-security-attributes-add.md), [Assign, update, list, or remove custom security attributes for a user](../enterprise-users/users-custom-security-attributes.md), or [Assign, update, list, or remove custom security attributes for an application](../manage-apps/custom-security-attributes-apps.md).
## Symptom - Custom security attributes cannot be deleted
Currently, you can only activate and deactivate custom security attribute defini
**Solution**
-Deactivate the custom security attributes you no longer need. For more information, see [Add or deactivate custom security attributes in Azure AD](custom-security-attributes-add.md).
+Deactivate the custom security attributes you no longer need. For more information, see [Add or deactivate custom security attribute definitions in Azure AD](custom-security-attributes-add.md).
## Symptom - Cannot add a role assignment at an attribute set scope using PIM
active-directory Data Storage Australia Newzealand https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/data-storage-australia-newzealand.md
+
+ Title: Customer data storage for Australian and New Zealand customers
+description: Learn about where Azure Active Directory stores customer-related data for its Australian and New Zealand customers.
+++++++++ Last updated : 08/17/2022++++
+# Customer Data storage for Australian and New Zealand customers in Azure Active Directory
+
+Azure AD stores identity data in a location chosen based on the address provided by your organization when subscribing to a Microsoft service like Microsoft 365 or Azure. Microsoft Online services include Microsoft 365 and Azure.
+
+For information about where Azure AD and other Microsoft services' data is located, see the [Where your data is located](https://www.microsoft.com/trust-center/privacy/data-location) section of the Microsoft Trust Center.
+
+From February 26, 2020, Microsoft began storing Azure ADΓÇÖs Customer Data for new tenants with an Australian or New Zealand billing address within the Australian datacenters.
+
+Additionally, certain Azure AD features don't yet support storage of Customer Data in Australia. Go to the [Azure AD data map](https://msit.powerbi.com/view?r=eyJrIjoiYzEyZTc5OTgtNTdlZS00ZTVkLWExN2ItOTM0OWU4NjljOGVjIiwidCI6IjcyZjk4OGJmLTg2ZjEtNDFhZi05MWFiLTJkN2NkMDExZGI0NyIsImMiOjV9), for specific feature information. For example, Microsoft Azure AD Multi-Factor Authentication stores Customer Data in the US and processes it globally. See [Data residency and customer data for Azure AD Multi-Factor Authentication](../authentication/concept-mfa-data-residency.md).
+
+> [!NOTE]
+> Microsoft products, services, and third-party applications that integrate with Azure AD have access to Customer Data. Evaluate each product, service, and application you use to determine how Customer Data is processed by that specific product, service, and application, and whether they meet your company's data storage requirements. For more information about Microsoft services' data residency, see the [Where your data is located](https://www.microsoft.com/trust-center/privacy/data-location) section of the Microsoft Trust Center.
+
+## Azure role-based access control (Azure RBAC)
+
+Role definitions, role assignments, and deny assignments are stored globally to ensure that you have access to your resources regardless of the region you created the resource. For more information, see [What is Azure role-based access control (Azure RBAC)?](../../role-based-access-control/overview.md#where-is-azure-rbac-data-stored).
active-directory Data Storage Australia https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/data-storage-australia.md
+
+ Title: Identity data storage for Australian and New Zealand customers
+description: Learn about where Azure Active Directory stores identity-related data for its Australian and New Zealand customers.
+++++++++ Last updated : 08/17/2022++++
+# Identity data storage for Australian and New Zealand customers in Azure Active Directory
+
+Azure AD stores identity data in a location chosen based on the address provided by your organization when subscribing to a Microsoft service like Microsoft 365 or Azure. For information on where your Identity Customer Data is stored, you can use the [Where is your data located?](https://www.microsoft.com/trustcenter/privacy/where-your-data-is-located) section of the Microsoft Trust Center.
+
+> [!NOTE]
+> Services and applications that integrate with Azure AD have access to Identity Customer Data. Evaluate each service and application you use to determine how Identity Customer Data is processed by that specific service and application, and whether they meet your company's data storage requirements. For more information about Microsoft services' data residency, see the Where is your data located? section of the Microsoft Trust Center.
+
+For customers who provided an address in Australia or New Zealand, Azure AD keeps identity data for these services within Australian datacenters:
+- Azure AD Directory Management
+- Authentication
+
+All other Azure AD services store customer data in global datacenters. To locate the datacenter for a service, see [Azure Active Directory ΓÇô Where is your data located?](https://aka.ms/AADDataMap)
+
+## Microsoft Azure AD Multi-Factor Authentication (MFA)
+
+MFA stores Identity Customer Data in global datacenters. To learn more about the user information collected and stored by cloud-based Azure AD MFA and Azure AD Multi-Factor Authentication Server, see [Azure Active Directory Multi-Factor Authentication user data collection](../authentication/concept-mfa-data-residency.md).
+
+## Next steps
+
+For more information about any of the features and functionality described above, see these articles:
+- [What is Multi-Factor Authentication?](../authentication/concept-mfa-howitworks.md)
active-directory Data Storage Eu https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/data-storage-eu.md
+
+ Title: Customer data storage and processing for European customers in Azure Active Directory
+description: Learn about where Azure Active Directory stores identity-related data for its European customers.
+++++++++ Last updated : 12/13/2022++++
+# Customer data storage and processing for European customers in Azure Active Directory
+
+Azure Active Directory (Azure AD) stores customer data in a geographic location based on how a tenant was created and provisioned. The following list provides information about how the location is defined:
+
+* **Azure portal or Azure AD API** - A customer selects a location from the pre-defined list.
+* **Dynamics 365 and Power Platform** - A customer provisions their tenant in a pre-defined location.
+* **EU Data Residency** - For customers who provided a location in Europe, Azure AD stores most of the customer data in Europe, except where noted later in this article.
+* **EU Data Boundary** - For customers who provided a location that is within the EU Data Boundary (members of the EU and EFTA), Azure AD stores and processes most of the customer data in the EU Data Boundary, except where noted later in this article.
+* **Microsoft 365** - The location is based on a customer provided billing address.
+
+The following sections provide information about customer data that doesn't meet the EU Data Residency or EU Data Boundary commitments.
+
+## Services permanently excluded from the EU Data Residency and EU Data Boundary
+
+* **Reason for customer data egress** - Some forms of communication rely on a network that is operated by global providers, such as phone calls and SMS. Device vendor-specific services such Apple Push Notifications, may be outside of Europe.
+* **Types of customer data being egressed** - User account data (phone number).
+* **Customer data location at rest** - In EU Data Boundary.
+* **Customer data processing** - Some processing may occur globally.
+* **Services** - Multi-Factor Authentication
+
+## Services temporarily excluded from the EU Data Residency and EU Data Boundary
+
+Some services have work in progress to be EU Data Residency and EU Data Boundary compliant, but this work is delayed beyond January 1, 2023. The following details explain the customer data that these features currently transfer out of the EU as part of their service operations:
+
+* **Reason for customer data egress** - To provide reliable and scalable service, Microsoft performs regular analytics that involve transfers of data outside the EU location.
+* **Types of customer data being egressed** - User and device account data, usage data, and service configuration (application, policy, and group).
+* **Customer data location at rest** - US
+* **Customer data processing** - US
+* **Services** - Azure Active Directory Connect, Azure Active Directory Connect Health, Device Registration, Directory Core Store, Dynamic Groups Service, Self-Service Group Management
+
+Some services incorrectly stored data out of the EU Data Boundary. The following details explain the customer data that these features currently transfer out of the EU as part of their service operations:
+
+* **Reason for customer data egress** - A small number of tenants created in the EU location prior to March 2019 were incorrectly stored out of the EU Data Boundary due to an issue that is now fixed. Microsoft is in the process of migrating tenants to the correct location.
+* **Types of customer data being egressed** - User and device account data, and service configuration (application, policy, and group).
+* **Customer data location at rest** - US and Asia/Pacific.
+* **Customer data processing** - The same as the location at rest.
+* **Services** - Directory Core Store
+
+## Services temporarily excluded from the EU Data Boundary
+
+Some services have work in progress to be EU Data Boundary compliant. This work is delayed beyond January 1, 2023. The following details explain the customer data that these features currently transfer out of the EU Data Boundary as part of their service operations:
+
+* **Reason for customer data egress** - These features haven't completed changes to fully process user or admin transactions, such as sign-in or object and application configuration actions within the EU Data Boundary.
+* **Types of customer data being egressed** - User and device account data, usage data, and service configuration (application, policy, group, and terms of use).
+* **Customer data location at rest** - In the EU Data Boundary.
+* **Customer data processing** - Some processing may occur globally.
+* **Services** - Azure Active Directory Connect, Azure Active Directory Connect Health, Enterprise Application Management, Dynamic Groups Service, MyAccount, MyApps, MySign-Ins, Reporting and Audit Insights, Self-Service Credentials Management, Self-Service Group Management, Sign-In, Terms of Use
+
+Some services have email specific data that will become compliant in the coming months. The following details explain the customer data that these features currently transfer out of the EU Data Boundary as part of their service operations:
+
+* **Reason for customer data egress** - To provide email notifications, some data is processed outside of the EU location.
+* **Types of customer data being egressed** - User account data (email address).
+* **Customer data location at rest** - In EU Data Boundary.
+* **Customer data processing**- Some processing may occur globally.
+* **Services** - Azure Active Directory Sync Fabric, Azure Certificate Service, Enterprise App Management, Identity Governance, Azure Customer Lockbox
+
+## Other considerations
+
+### Optional service capabilities that transfer data out of the EU Data Residency and EU Data Boundary
+
+Administrators can choose to enable or disable certain Azure AD features. If the following features are enabled and used by the customer, they will result in data transfers out of the EU Data Residency and EU Data Boundary as described:
+
+* **Azure Active Directory Multi Tenant Collaboration** - With multi tenant collaboration scenarios enabled, customers can configure their tenant to collaborate with users from a different tenant. For example, a customer can invite users to their tenant in a B2B context. A customer can create a multi-tenant SaaS application that allows other third party tenants to provision the application in the third party tenant. Or, the customer can make two or more tenants affiliated with one another and act as a single tenant in certain scenarios, such as multi-tenant organization (MTO) formation, tenant to tenant sync, and shared e-mail domain sharing. Customer configuration and use of multi tenant collaboration may occur with tenants outside of the EU Data Residency and EU Data Boundary resulting in some customer data, such as user and device account data, usage data, and service configuration (application, policy, and group) stored and processed in the location of the collaborating tenant.
+* **Application Proxy** - Allows customers to access their on-premises web applications externally. Customers may choose advanced routing configurations that allow customer data to egress outside of the EU Data Residency and EU Data Boundary, including user account data, usage data, and application configuration data.
+* **Microsoft 365 Multi Geo** - Microsoft 365 Multi-Geo provides customers with the ability to expand their Microsoft 365 presence to multiple geographic countries/regions within a single existing Microsoft 365 tenant. Azure Active Directory will egress customer data to perform backup authentication to the locations configured by the customer. Types of customer data include user and device account data, branding data, and service configuration data (application, policy, and group).
+
+### Other EU Data Boundary online services
+
+Services and applications that integrate with Azure AD have access to customer data. Review how each service and application stores and processes customer data, and verify that they meet your company's data handling requirements.
+
+## Next steps
+
+For more information about Microsoft services' data residency, see the **Where your data is located** section of the [Microsoft Trust Center](https://www.microsoft.com/en-us/trust-center/privacy/data-location?rtc=1).
active-directory Data Storage Japan https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/data-storage-japan.md
+
+ Title: Customer data storage for Japan customers
+description: Learn about where Azure Active Directory stores customer-related data for its Japan customers.
+++++++++ Last updated : 08/08/2022++++
+# Customer data storage for Japan customers in Azure Active Directory
+
+Azure Active Directory (Azure AD) stores its Customer Data in a geographical location based on the country/region you provided when you signed up for a Microsoft Online service. Microsoft Online services include Microsoft 365 and Azure.
+
+For information about where Azure AD and other Microsoft services' data is located, see the [Where your data is located](https://www.microsoft.com/trust-center/privacy/data-location) section of the Microsoft Trust Center.
+
+Additionally, certain Azure AD features do not yet support storage of Customer Data in Japan. Please go to the [Azure AD data map](https://aka.ms/aaddatamap), for specific feature information. For example, Microsoft Azure AD Multi-Factor Authentication stores Customer Data in the US and processes it globally. See [Data residency and customer data for Azure AD Multi-Factor Authentication](../authentication/concept-mfa-data-residency.md).
+
+> [!NOTE]
+> Microsoft products, services, and third-party applications that integrate with Azure AD have access to Customer Data. Evaluate each product, service, and application you use to determine how Customer Data is processed by that specific product, service, and application, and whether they meet your company's data storage requirements. For more information about Microsoft services' data residency, see the [Where your data is located](https://www.microsoft.com/trust-center/privacy/data-location) section of the Microsoft Trust Center.
+
+## Azure role-based access control (Azure RBAC)
+
+Role definitions, role assignments, and deny assignments are stored globally to ensure that you have access to your resources regardless of the region you created the resource. For more information, see [What is Azure role-based access control (Azure RBAC)?](../../role-based-access-control/overview.md#where-is-azure-rbac-data-stored).
active-directory Get Started Premium https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/get-started-premium.md
+
+ Title: Sign up for premium editions
+description: Instructions about how to sign up for Azure Active Directory Premium editions.
++++++++ Last updated : 08/17/2022++++++
+# Sign up for Azure Active Directory Premium editions
+
+You can purchase and associate Azure Active Directory (Azure AD) Premium editions with your Azure subscription. If you need to create a new Azure subscription, you'll also need to activate your licensing plan and Azure AD service access.
+
+Before you sign up for Active Directory Premium 1 or Premium 2, you must first determine which of your existing subscription or plan to use:
+
+- Through your existing Azure or Microsoft 365 subscription
+
+- Through your Enterprise Mobility + Security licensing plan
+
+- Through a Microsoft Volume Licensing plan
+
+Signing up using your Azure subscription with previously purchased and activated Azure AD licenses, automatically activates the licenses in the same directory. If that's not the case, you must still activate your license plan and your Azure AD access. For more information about activating your license plan, see [Activate your new license plan](#activate-your-new-license-plan). For more information about activating your Azure AD access, see [Activate your Azure AD access](#activate-your-azure-ad-access).
+
+## Sign up using your existing Azure or Microsoft 365 subscription
+
+As an Azure or Microsoft 365 subscriber, you can purchase the Azure Active Directory Premium editions online. For detailed steps, see [Buy or remove licenses](/microsoft-365/commerce/licenses/buy-licenses?view=o365-worldwide&preserve-view=true).
+
+## Sign up using your Enterprise Mobility + Security licensing plan
+
+Enterprise Mobility + Security is a suite, comprised of Azure AD Premium, Azure Information Protection, and Microsoft Intune. If you already have an EMS license, you can get started with Azure AD, using one of these licensing options:
+
+For more information about EMS, see [Enterprise Mobility + Security web site](https://www.microsoft.com/cloud-platform/enterprise-mobility-security).
+
+- Try out EMS with a free [Enterprise Mobility + Security E5 trial subscription](https://signup.microsoft.com/Signup?OfferId=87dd2714-d452-48a0-a809-d2f58c4f68b7&ali=1)
+
+- Purchase [Enterprise Mobility + Security E5 licenses](https://signup.microsoft.com/Signup?OfferId=e6de2192-536a-4dc3-afdc-9e2602b6c790&ali=1)
+
+- Purchase [Enterprise Mobility + Security E3 licenses](https://signup.microsoft.com/Signup?OfferId=4BBA281F-95E8-4136-8B0F-037D6062F54C&ali=1)
+
+## Sign up using your Microsoft Volume Licensing plan
+
+Through your Microsoft Volume Licensing plan, you can sign up for Azure AD Premium using one of these two programs, based on the number of licenses you want to get:
+
+- **For 250 or more licenses.** [Microsoft Enterprise Agreement](https://www.microsoft.com/en-us/licensing/licensing-programs/enterprise.aspx)
+
+- **For 5 to 250 licenses.** [Open Volume License](https://www.microsoft.com/en-us/licensing/licensing-programs/open-license.aspx)
+
+For more information about volume licensing purchase options, see [How to purchase through Volume Licensing](https://www.microsoft.com/en-us/licensing/how-to-buy/how-to-buy.aspx).
+
+## Activate your new license plan
+
+If you signed up using a new Azure AD license plan, you must activate it for your organization, using the confirmation email sent after purchase.
+
+### To activate your license plan
+
+- Open the confirmation email you received from Microsoft after you signed up, and then select either **Sign In** or **Sign Up**.
+
+ ![Confirmation email with sign in and sign up links](media/active-directory-get-started-premium/MOLSEmail.png)
+
+ - **Sign in.** Choose this link if you have an existing tenant, and then sign in using your existing administrator account. You must be a global administrator on the tenant where the licenses are being activated.
+
+ - **Sign up.** Choose this link if you want to open the **Create Account Profile** page and create a new Azure AD tenant for your licensing plan.
+
+ ![Create account profile page, with sample information](media/active-directory-get-started-premium/MOLSAccountProfile.png)
+
+When you're done, you'll see a confirmation box thanking you for activating the license plan for your tenant.
+
+![Confirmation box with thank you](media/active-directory-get-started-premium/MOLSThankYou.png)
+
+## Activate your Azure AD access
+If you're adding new Azure AD Premium licenses to an existing subscription, your Azure AD access should already be activated. Otherwise, you need to activate Azure AD access after you receive the **Welcome email**.
+
+After your purchased licenses are provisioned in your directory, you'll receive a **Welcome email**. This email confirms that you can start managing your Azure AD Premium or Enterprise Mobility + Security licenses and features.
+
+> [!TIP]
+> You won't be able to access Azure AD for your new tenant until you activate Azure AD directory access from the welcome email.
+
+### To activate your Azure AD access
+
+1. Open the **Welcome email**, and then select **Sign In**.
+
+ ![Welcome email, with highlighted sign in link](media/active-directory-get-started-premium/AADEmail.png)
+
+2. After successfully signing in, you'll go through two-step verification using a mobile device.
+
+ ![Two-step verification page with mobile verification](media/active-directory-get-started-premium/SignUppage.png)
+
+The activation process typically takes only a few minutes and then you can use your Azure AD tenant.
+
+## Next steps
+Now that you have Azure AD Premium, you can [customize your domain](add-custom-domain.md), add your [corporate branding](customize-branding.md), [create a tenant](active-directory-access-create-new-tenant.md), and [add groups](active-directory-groups-create-azure-portal.md) and [users](add-users-azure-active-directory.md).
active-directory Groups View Azure Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/groups-view-azure-portal.md
+
+ Title: Quickstart - View groups & members
+description: Instructions about how to search for and view your organization's groups and their assigned members.
+++++++ Last updated : 08/17/2022++++
+#Customer intent: As a brand-new Azure AD administrator, I need to view my organizationΓÇÖs groups along with the assigned members, so I can manage permissions to apps and services for people in my organization.
++
+# Quickstart: Create a group with members and view all groups and members in Azure Active Directory
+You can view your organization's existing groups and group members using the Azure portal. Groups are used to manage users that all need the same access and permissions for potentially restricted apps and services.
+
+In this quickstart, youΓÇÖll set up a new group and assign members to the group. Then you'll view your organization's group and assigned members. Throughout this guide, you'll create a user and group that you can use in other Azure AD Fundamentals quickstarts and tutorials.
+
+If you donΓÇÖt have an Azure subscription, create a [free account](https://azure.microsoft.com/free/) before you begin.
+
+## Prerequisites
+
+Before you begin, youΓÇÖll need to:
+
+- Create an Azure Active Directory tenant. For more information, see [Access the Azure portal and create a new tenant](active-directory-access-create-new-tenant.md).
+
+## Sign in to the Azure portal
+
+You must sign in to the [Azure portal](https://portal.azure.com/) using a Global administrator account for the directory.
+
+## Create a new group
+
+Create a new group, named _MDM policy - West_. For more information about creating a group, see [How to create a basic group and add members](active-directory-groups-create-azure-portal.md).
+
+1. Go to **Azure Active Directory** > **Groups**.
+
+1. Select **New group**.
+
+1. Complete the **Group** page:
+
+ - **Group type:** Select **Security**
+
+ - **Group name:** Type _MDM policy - West_
+
+ - **Membership type:** Select **Assigned**.
+
+1. Select **Create**.
+
+## Create a new user
+A user must exist before being added as a group member, so you'll need to create a new user. For this quickstart, we've added a user named _Alain Charon_. Check the "Custom domain names" tab first to get the verified domain name in which to create users. For more information about creating a user, see [How to add or delete users](add-users-azure-active-directory.md).
+
+1. Go to **Azure Active Directory** > **Users**.
+
+1. Select **New user**.
+
+1. Complete the **User** page:
+
+ - **Name:** Type _Alain Charon_.
+
+ - **User name:** Type *alain\@contoso.com*.
+
+1. Copy the auto-generated password provided in the **Password** box and select **Create**.
+
+## Add a group member
+Now that you have a group and a user, you can add _Alain Charon_ as a member to the _MDM policy - West_ group. For more information about adding group members, see the [Manage groups](how-to-manage-groups.md) article.
+
+1. Go to **Azure Active Directory** > **Groups**.
+
+2. From the **Groups - All groups** page, search for and select the **MDM policy - West** group.
+
+3. From the **MDM policy - West Overview** page, select **Members** from the **Manage** area.
+
+4. Select **Add members**, and then search and select **Alain Charon**.
+
+5. Choose **Select**.
+
+## View all groups
+You can see all the groups for your organization in the **Groups - All groups** page of the Azure portal.
+
+- Go to **Azure Active Directory** > **Groups**.
+
+ The **Groups - All groups** page appears, showing all your active groups.
+
+ ![Screenshot of the 'Groups-All groups' page, showing all existing groups.](media/active-directory-groups-view-azure-portal/groups-search.png)
+
+## Search for a group
+Search the **Groups ΓÇô All groups** page to find the **MDM policy ΓÇô West** group.
+
+1. From the **Groups - All groups** page, type _MDM_ into the **Search** box.
+
+ The search results appear under the **Search** box, including the _MDM policy - West_ group.
+
+ ![Screenshot of the 'Groups' search page showing matching search results.](media/active-directory-groups-view-azure-portal/groups-search-group-name.png)
+
+1. Select the group **MDM policy ΓÇô West**.
+
+1. View the group info on the **MDM policy - West Overview** page, including the number of members of that group.
+
+ ![Screenshot of MDM policy ΓÇô West Overview page with member info.](media/active-directory-groups-view-azure-portal/groups-overview.png)
+
+## View group members
+Now that youΓÇÖve found the group, you can view all the assigned members.
+
+Select **Members** from the **Manage** area, and then review the complete list of member names assigned to that specific group, including _Alain Charon_.
+
+![Screenshot of the list of members assigned to the MDM policy ΓÇô West group.](media/active-directory-groups-view-azure-portal/groups-all-members.png)
+
+## Clean up resources
+The group you just created is used in other articles in the Azure AD Fundamentals documentation. If you'd rather not use this group, you can delete it and its assigned members using the following steps:
+
+1. On the **Groups - All groups** page, search for the **MDM policy - West** group.
+
+1. Select the **MDM policy - West** group.
+
+ The **MDM policy - West Overview** page appears.
+
+1. Select **Delete**.
+
+ The group and its associated members are deleted.
+
+ ![Screenshot of the MDM policy ΓÇô West Overview page with Delete link highlighted.](media/active-directory-groups-view-azure-portal/groups-delete.png)
+
+ >[!Important]
+ >This doesn't delete the user Alain Charon, just his membership in the deleted group.
+
+## Next steps
+Advance to the next article to learn how to associate a subscription to your Azure AD directory.
+
+> [!div class="nextstepaction"]
+> [Associate an Azure subscription](active-directory-how-subscriptions-associated-directory.md)
active-directory How Subscriptions Associated Directory https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/how-subscriptions-associated-directory.md
+
+ Title: Add an existing Azure subscription to your tenant
+description: Instructions about how to add an existing Azure subscription to your Azure Active Directory (Azure AD) tenant.
++++++++ Last updated : 01/23/2023++++++
+# Associate or add an Azure subscription to your Azure Active Directory tenant
+
+All Azure subscriptions have a trust relationship with an Azure Active Directory (Azure AD) instance. Subscriptions rely on their trusted Azure AD to authenticate and authorize security principals and devices. When a subscription expires, the trusted instance of the Azure AD service remains, but the security principals lose access to Azure resources. Subscriptions can only trust a single directory while one Azure AD may be trusted by multiple subscriptions.
+
+When a user signs up for a Microsoft cloud service, a new Azure AD tenant is created and the user is made a member of the Global Administrator role. However, when an owner of a subscription joins their subscription to an existing tenant, the owner isn't assigned to the Global Administrator role.
+
+While users may only have a single authentication *home* directory, users may participate as guests in multiple directories. You can see both the home and guest directories for each user in Azure AD.
++
+> [!Important]
+> When a subscription is associated with a different directory, users who have roles assigned using [Azure role-based access control](../../role-based-access-control/role-assignments-portal.md) lose their access. Classic subscription administrators, including Service Administrator and Co-Administrators, also lose access.
+>
+> Moving your Azure Kubernetes Service (AKS) cluster to a different subscription, or moving the cluster-owning subscription to a new tenant, causes the cluster to lose functionality due to lost role assignments and service principal's rights. For more information about AKS, see [Azure Kubernetes Service (AKS)](../../aks/index.yml).
+
+## Before you begin
+
+Before you can associate or add your subscription, do the following steps:
+
+- Review the following list of changes that will occur after you associate or add your subscription, and how you might be affected:
+ - Users that have been assigned roles using Azure RBAC will lose their access.
+ - Service Administrator and Co-Administrators will lose access.
+ - If you have any key vaults, they'll be inaccessible, and you'll have to fix them after association.
+ - If you have any managed identities for resources such as Virtual Machines or Logic Apps, you must re-enable or recreate them after the association.
+ - If you have a registered Azure Stack, you'll have to re-register it after association.
+
+ For more information, see [Transfer an Azure subscription to a different Azure AD directory](../../role-based-access-control/transfer-subscription.md).
+
+- Sign in using an account that:
+ - Has an [Owner](../../role-based-access-control/built-in-roles.md#owner) role assignment for the subscription. For information about how to assign the Owner role, see [Assign Azure roles using the Azure portal](../../role-based-access-control/role-assignments-portal.md).
+ - Exists in both the current directory and in the new directory. The current directory is associated with the subscription. You'll associate the new directory with the subscription. For more information about getting access to another directory, see [Add Azure Active Directory B2B collaboration users in the Azure portal](../external-identities/add-users-administrator.md).
+ - Make sure that you're not using an Azure Cloud Service Providers (CSP) subscription (MS-AZR-0145P, MS-AZR-0146P, MS-AZR-159P), a Microsoft Internal subscription (MS-AZR-0015P), or a Microsoft Azure for Students Starter subscription (MS-AZR-0144P).
+
+## Associate a subscription to a directory<a name="to-associate-an-existing-subscription-to-your-azure-ad-directory"></a>
+
+To associate an existing subscription with your Azure AD, follow these steps:
+
+1. Sign in and select the subscription you want to use from the [Subscriptions page in Azure portal](https://portal.azure.com/#blade/Microsoft_Azure_Billing/SubscriptionsBlade).
+
+1. Select **Change directory**.
+
+ :::image type="content" source="media/active-directory-how-subscriptions-associated-directory/change-directory-in-azure-subscriptions.png" alt-text="Screenshot that shows the Subscriptions page, with the Change directory option highlighted.":::
+
+1. Review any warnings that appear, and then select **Change**.
+
+ :::image type="content" source="media/active-directory-how-subscriptions-associated-directory/edit-directory-ui.png" alt-text="Screenshot that shows the Change the directory page with a sample directory and the Change button highlighted.":::
+
+ After the directory is changed for the subscription, you'll get a success message.
+
+1. Select **Switch directories** on the subscription page to go to your new directory.
+
+ :::image type="content" source="media/active-directory-how-subscriptions-associated-directory/directory-switcher.png" alt-text="Screenshot that shows the Directory switcher page with sample information.":::
+
+ It can take several hours for everything to show up properly. If it seems to be taking too long, check the **Global subscription filter**. Make sure the moved subscription isn't hidden. You may need to sign out of the Azure portal and sign back in to see the new directory.
+
+Changing the subscription directory is a service-level operation, so it doesn't affect subscription billing ownership. To delete the original directory, you must transfer the subscription billing ownership to a new Account Admin. To learn more about transferring billing ownership, see [Transfer ownership of an Azure subscription to another account](../../cost-management-billing/manage/billing-subscription-transfer.md).
+
+## Post-association steps
+
+After you associate a subscription with a different directory, you might need to do the following tasks to resume operations:
+
+- If you have any key vaults, you must change the key vault tenant ID. For more information, see [Change a key vault tenant ID after a subscription move](../../key-vault/general/move-subscription.md).
+
+- If you used system-assigned Managed Identities for resources, you must re-enable these identities. If you used user-assigned Managed Identities, you must re-create these identities. After re-enabling or recreating the Managed Identities, you must re-establish the permissions assigned to those identities. For more information, see [What are managed identities for Azure resources?](../managed-identities-azure-resources/overview.md).
+
+- If you've registered an Azure Stack using this subscription, you must re-register. For more information, see [Register Azure Stack Hub with Azure](/azure-stack/operator/azure-stack-registration).
+
+- For more information, see [Transfer an Azure subscription to a different Azure AD directory](../../role-based-access-control/transfer-subscription.md).
+
+## Next steps
+
+- To create a new Azure AD tenant, see [Quickstart: Create a new tenant in Azure Active Directory](active-directory-access-create-new-tenant.md).
+
+- To learn more about how Microsoft Azure controls resource access, see [Azure roles, Azure AD roles, and classic subscription administrator roles](../../role-based-access-control/rbac-and-directory-admin-roles.md).
+
+- To learn more about how to assign roles in Azure AD, see [Assign administrator and non-administrator roles to users with Azure Active Directory](active-directory-users-assign-role-azure-portal.md).
active-directory How To Find Tenant https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/how-to-find-tenant.md
+
+ Title: How to find your tenant ID
+description: Instructions about how to find and Azure Active Directory tenant ID to an existing Azure subscription.
++++++++ Last updated : 01/23/2023++++++
+# How to find your Azure Active Directory tenant ID
+
+Azure subscriptions have a trust relationship with Azure Active Directory (Azure AD). Azure AD is trusted to authenticate the subscription's users, services, and devices. Each subscription has a tenant ID associated with it, and there are a few ways you can find the tenant ID for your subscription.
+
+## Find tenant ID through the Azure portal
+
+1. Sign in to the [Azure portal](https://portal.azure.com).
+
+1. Select **Azure Active Directory**.
+
+1. Select **Properties**.
+
+1. Scroll down to the **Tenant ID** section and you can find your tenant ID in the box.
++
+## Find tenant ID with PowerShell
+
+To find the tenant ID with Azure PowerShell, use the cmdlet `Get-AzTenant`.
+
+```azurepowershell-interactive
+Connect-AzAccount
+Get-AzTenant
+```
+
+For more information, see the [Get-AzTenant](/powershell/module/az.accounts/get-aztenant) cmdlet reference.
++
+## Find tenant ID with CLI
+
+The [Azure CLI](/cli/azure/install-azure-cli) or [Microsoft 365 CLI](https://pnp.github.io/cli-microsoft365/) can be used to find the tenant ID.
+
+For Azure CLI, use one of the commands **az login**, **az account list**, or **az account tenant list**. All of command's included below return the **tenantId** property for each of your subscriptions.
+
+```azurecli-interactive
+az login
+az account list
+az account tenant list
+```
+
+For more information, see [az login](/cli/azure/reference-index#az-login) command reference, [az account](/cli/azure/account) command reference, or [az account tenant](/cli/azure/account/tenant) command reference.
++
+For Microsoft 365 CLI, use the cmdlet **tenant id** as shown in the following example:
+
+```cli
+m365 tenant id get
+```
+
+For more information, see the Microsoft 365 [tenant ID get](https://pnp.github.io/cli-microsoft365/cmd/tenant/id/id-get/) command reference.
++
+## Next steps
+
+- To create a new Azure AD tenant, see [Quickstart: Create a new tenant in Azure Active Directory](active-directory-access-create-new-tenant.md).
+
+- To learn how to associate or add a subscription to a tenant, see [Associate or add an Azure subscription to your Azure Active Directory tenant](active-directory-how-subscriptions-associated-directory.md).
+
+- To learn how to find the object ID, see [Find the user object ID](/partner-center/find-ids-and-domain-names#find-the-user-object-id).
active-directory Licensing Whatis Azure Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/licensing-whatis-azure-portal.md
+
+ Title: What is group-based licensing
+description: Learn about Azure Active Directory group-based licensing, including how it works and best practices.
+
+keywords: Azure AD licensing
+++++++ Last updated : 08/17/2022++++++
+# What is group-based licensing in Azure Active Directory?
+
+Microsoft paid cloud services, such as Microsoft 365, Enterprise Mobility + Security, Dynamics 365, and other similar products, require licenses. These licenses are assigned to each user who needs access to these services. To manage licenses, administrators use one of the management portals (Office or Azure) and PowerShell cmdlets. Azure AD is the underlying infrastructure that supports identity management for all Microsoft cloud services. Azure AD stores information about license assignment states for users.
+
+Azure AD includes group-based licensing, which allows you to assign one or more product licenses to a group. Azure AD ensures that the licenses are assigned to all members of the group. Any new members who join the group are assigned the appropriate licenses. When they leave the group, those licenses are removed. This licensing management eliminates the need for automating license management via PowerShell to reflect changes in the organization and departmental structure on a per-user basis.
+
+## Licensing requirements
+You must have one of the following licenses **for every user who benefits from** group-based licensing:
+
+- Paid or trial subscription for Azure AD Premium P1 and above
+
+- Paid or trial edition of Microsoft 365 Business Premium or Office 365 Enterprise E3 or Office 365 A3 or Office 365 GCC G3 or Office 365 E3 for GCCH or Office 365 E3 for DOD and above
+
+### Required number of licenses
+For any groups assigned a license, you must also have a license for each unique member. While you don't have to assign each member of the group a license, you must have at least enough licenses to include all of the members. For example, if you have 1,000 unique members who are part of licensed groups in your tenant, you must have at least 1,000 licenses to meet the licensing agreement.
+
+## Features
+
+Here are the main features of group-based licensing:
+
+- Licenses can be assigned to any security group in Azure AD. Security groups can be synced from on-premises, by using [Azure AD Connect](../hybrid/whatis-azure-ad-connect.md). You can also create security groups directly in Azure AD (also called cloud-only groups), or automatically via the [Azure AD dynamic group feature](../enterprise-users/groups-create-rule.md).
+
+- When a product license is assigned to a group, the administrator can disable one or more service plans in the product. Typically, this assignment is done when the organization is not yet ready to start using a service included in a product. For example, the administrator might assign Microsoft 365 to a department, but temporarily disable the Yammer service.
+
+- All Microsoft cloud services that require user-level licensing are supported. This support includes all Microsoft 365 products, Enterprise Mobility + Security, and Dynamics 365.
+
+- Group-based licensing is currently available only through the [Azure portal](https://portal.azure.com). If you primarily use other management portals for user and group management, such as the [Microsoft 365 admin center](https://admin.microsoft.com), you can continue to do so. But you should use the Azure portal to manage licenses at group level.
+
+- Azure AD automatically manages license modifications that result from group membership changes. Typically, license modifications are effective within minutes of a membership change.
+
+- A user can be a member of multiple groups with license policies specified. A user can also have some licenses that were directly assigned, outside of any groups. The resulting user state is a combination of all assigned product and service licenses. If a user is assigned same license from multiple sources, the license will be consumed only once.
+
+- In some cases, licenses can't be assigned to a user. For example, there might not be enough available licenses in the tenant, or conflicting services might have been assigned at the same time. Administrators have access to information about users for whom Azure AD couldn't fully process group licenses. They can then take corrective action based on that information.
+
+## Your feedback is welcome!
+
+If you have feedback or feature requests, share them with us using [the Azure AD admin forum](https://feedback.azure.com/d365community/forum/22920db1-ad25-ec11-b6e6-000d3a4f0789).
+
+## Next steps
+
+To learn more about other scenarios for license management through group-based licensing, see:
+
+* [Assigning licenses to a group in Azure Active Directory](../enterprise-users/licensing-groups-assign.md)
+* [Identifying and resolving license problems for a group in Azure Active Directory](../enterprise-users/licensing-groups-resolve-problems.md)
+* [How to migrate individual licensed users to group-based licensing in Azure Active Directory](../enterprise-users/licensing-groups-migrate-users.md)
+* [How to migrate users between product licenses using group-based licensing in Azure Active Directory](../enterprise-users/licensing-groups-change-licenses.md)
+* [Azure Active Directory group-based licensing additional scenarios](../enterprise-users/licensing-group-advanced.md)
+* [PowerShell examples for group-based licensing in Azure Active Directory](../enterprise-users/licensing-ps-examples.md)
active-directory Properties Area https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/properties-area.md
+
+ Title: Add your organization's privacy info
+description: Instructions about how to add your organization's privacy info to the Azure Active Directory Properties area.
+++++++ Last updated : 08/17/2022++++++
+# Add your organization's privacy info using Azure Active Directory
+This article explains how a tenant admin can add privacy-related info to an organization's Azure Active Directory (Azure AD) tenant, through the Azure portal.
+
+We strongly recommend you add both your global privacy contact and your organization's privacy statement, so your internal employees and external guests can review your policies. Because privacy statements are uniquely created and tailored for each business, we strongly recommend you contact a lawyer for assistance.
++
+## Add your privacy info on Azure AD
+You add your organization's privacy information in the **Properties** area of Azure AD.
+
+### To access the Properties area and add your privacy information
+
+1. Sign in to the Azure portal as a tenant administrator.
+
+2. On the left navbar, select **Azure Active Directory**, and then select **Properties**.
+
+ The **Properties** area appears.
+
+ ![Azure AD Properties area highlighting the privacy info area](media/active-directory-properties-area/properties-area.png)
+
+3. Add your privacy info for your employees:
+
+ - **Technical contact.** Type the email address for the person to contact for technical support within your organization.
+
+ - **Global privacy contact.** Type the email address for the person to contact for inquiries about personal data privacy. This person is also who Microsoft contacts if there's a data breach related to Azure Active Directory services. If there's no person listed here, Microsoft contacts your global administrators. For Microsoft 365 related privacy incident notifications, see [Microsoft 365 Message center FAQs](/microsoft-365/admin/manage/message-center?preserve-view=true&view=o365-worldwide#frequently-asked-questions)
+
+ - **Privacy statement URL.** Type the link to your organization's document that describes how your organization handles both internal and external guest's data privacy.
+
+ >[!Important]
+ >If you don't include either your own privacy statement or your privacy contact, your external guests will see text in the **Review Permissions** box that says, **<_your org name_> has not provided links to their terms for you to review**. For example, a guest user will see this message when they receive an invitation to access an organization through B2B collaboration.
+
+ ![B2B Collaboration Review Permissions box with message](media/active-directory-properties-area/active-directory-no-privacy-statement-or-contact.png)
+
+4. Select **Save**.
+
+## Next steps
+- [Azure Active Directory B2B collaboration invitation redemption](../external-identities/redemption-experience.md)
+- [Add or change profile information for a user in Azure Active Directory](active-directory-users-profile-azure-portal.md)
active-directory Users Assign Role Azure Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/users-assign-role-azure-portal.md
+
+ Title: Manage Azure AD user roles
+description: Instructions about how to assign and update user roles with Azure Active Directory.
++++++++ Last updated : 10/17/2022++++++
+# Assign user roles with Azure Active Directory
+
+The ability to manage Azure resources is granted by assigning roles that provide the required permissions. Roles can be assigned to individual users or groups. To align with the [Zero Trust guiding principles](../../security/fundamentals/zero-trust.md), use Just-In-Time and Just-Enough-Access policies when assigning roles.
+
+Before assigning roles to users, review the following Microsoft Learn articles:
+
+- [Learn about Azure AD roles](../roles/concept-understand-roles.md)
+- [Learn about role based access control](../../role-based-access-control/rbac-and-directory-admin-roles.md)
+- [Explore the Azure built-in roles](../roles/permissions-reference.md)
+
+## Assign roles
+
+There are two main steps to the role assignment process. First you'll select the role to assign. Then you'll adjust the role settings and duration.
+
+### Select the role to assign
+
+1. Sign in to the [Azure portal](https://portal.azure.com/) using the Privileged Role Administrator role for the directory.
+
+1. Go to **Azure Active Directory** > **Users**.
+
+1. Search for and select the user getting the role assignment.
+
+ ![Screenshot of the Users - All users list with Alain Charon highlighted.](media/active-directory-users-assign-role-azure-portal/select-existing-user.png)
+
+1. Select **Assigned roles** from the side menu, then select **Add assignments**.
+
+ ![Screenshot of the user's overview page with Assigned roles option highlighted.](media/active-directory-users-assign-role-azure-portal/user-profile-assign-roles.png)
+
+1. Select a role to assign from the dropdown list and select the **Next** button.
+
+### Adjust the role settings
+
+You can assign roles as either _eligible_ or _active_. Eligible roles are assigned to a user but must be elevated Just-In-Time by the user through Privileged Identity Management (PIM). For more information about how to use PIM, see [Privileged Identity Management](../privileged-identity-management/index.yml).
+
+![Screenshot of the assigned roles page with the assignment types highlighted.](media/active-directory-users-assign-role-azure-portal/role-assignment-types.png)
+
+1. From the Setting section of the **Add assignments** page, select an **Assignment type** option.
+
+1. Leave the **Permanently eligible** option selected if the role should always be available to elevate for the user.
+
+ If you uncheck this option, you can specify a date range for the role eligibility.
+
+1. Select the **Assign** button.
+
+ Assigned roles appear in the associated section for the user, so eligible and active roles are listed separately.
+
+ ![Screenshot of the role assignment settings.](media/active-directory-users-assign-role-azure-portal/role-assignment-settings.png)
+
+## Update roles
+
+You can change the settings of a role assignment, for example to change an active role to eligible.
+
+1. Go to **Azure Active Directory** > **Users**.
+
+1. Search for and select the user getting their role updated.
+
+1. Go to the **Assigned roles** page and select the **Update** link for the role that needs to be changed.
+
+1. Change the settings as needed and select the **Save** button.
+
+ ![Screenshot of assigned roles page with the Remove and Update options highlighted.](media/active-directory-users-assign-role-azure-portal/remove-update-role-assignment.png)
+
+## Remove roles
+
+You can remove role assignments from the **Administrative roles** page for a selected user.
+
+1. Go to **Azure Active Directory** > **Users**.
+
+1. Search for and select the user getting the role assignment removed.
+
+1. Go to the **Assigned roles** page and select the **Remove** link for the role that needs to be removed. Confirm the change in the pop-up message.
++
+## Next steps
+
+- [Add or delete users](add-users-azure-active-directory.md)
+
+- [Add or change profile information](active-directory-users-profile-azure-portal.md)
+
+- [Add guest users from another directory](../external-identities/what-is-b2b.md)
+
+- [Explore other user management tasks](../enterprise-users/index.yml)
active-directory Users Reset Password Azure Portal https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/users-reset-password-azure-portal.md
++
+ Title: Reset a user's password
+description: Instructions about how to reset a user's password using Azure Active Directory.
++++
+ms.assetid: fad5624b-2f13-4abc-b3d4-b347903a8f16
++++ Last updated : 01/23/2023++++++
+# Reset a user's password using Azure Active Directory
+
+Azure Active Directory (Azure AD) administrators can reset a user's password if the password is forgotten, if the user gets locked out of a device, or if the user never received a password.
+
+>[!Note]
+>Unless your Azure AD tenant is the home directory for a user, you won't be able reset their password. This means that if your user is signing in to your organization using an account from another organization, a Microsoft account, or a Google account, you won't be able to reset their password.
+>
+>If your user has a source of authority as Windows Server Active Directory, you'll only be able to reset the password if you've turned on password writeback and the user domain is managed. Changing the user password from Azure Active Directory for federated domains is not supported. In this case, you should change the user password in the on-premises Active Directory.<br><br>If your user has a source of authority as External Azure AD, you won't be able to reset the password. Only the user, or an administrator in External Azure AD, can reset the password.
+
+>[!Note]
+>If you're not an administrator and you need instructions on how to reset your own work or school password, see [Reset your work or school password](https://support.microsoft.com/account-billing/reset-your-work-or-school-password-using-security-info-23dde81f-08bb-4776-ba72-e6b72b9dda9e).
+
+## To reset a password
+
+1. Sign in to the [Azure portal](https://portal.azure.com/) as a user administrator, or password administrator. For more information about the available roles, see [Azure AD built-in roles](../roles/permissions-reference.md)
+
+2. Select **Azure Active Directory**, select **Users**, search for and select the user that needs the reset, and then select **Reset Password**.
+
+ The **Alain Charon - Profile** page appears with the **Reset password** option.
+
+ ![User's profile page, with Reset password option highlighted](media/active-directory-users-reset-password-azure-portal/user-profile-reset-password-link.png)
+
+3. In the **Reset password** page, select **Reset password**.
+
+ > [!Note]
+ > When using Azure Active Directory, a temporary password is auto-generated for the user. When using Active Directory on-premises, you create the password for the user.
+
+4. Copy the password and give it to the user. The user will be required to change the password during the next sign-in process.
+
+ >[!Note]
+ >The temporary password never expires. The next time the user signs in, the password will still work, regardless how much time has passed since the temporary password was generated.
+
+> [!IMPORTANT]
+> If an administrator is unable to reset the user's password, and the Application Event Logs on the Azure AD Connect server has error code hr=80231367, review the user's attributes in Active Directory. If the attribute **AdminCount** is set to 1, this will prevent an administrator from resetting the user's password. The attribute **AdminCount** must be set to 0, in order for an administrators to reset the user's password.
++
+## Next steps
+
+After you've reset your user's password, you can perform the following basic processes:
+
+- [Add or delete users](add-users-azure-active-directory.md)
+
+- [Assign roles to users](active-directory-users-assign-role-azure-portal.md)
+
+- [Add or change profile information](active-directory-users-profile-azure-portal.md)
+
+- [Create a basic group and add members](active-directory-groups-create-azure-portal.md)
+
+Or you can perform more complex user scenarios, such as assigning delegates, using policies, and sharing user accounts. For more information about other available actions, see [Azure Active Directory user management documentation](../enterprise-users/index.yml).
active-directory Users Restore https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/users-restore.md
+
+ Title: Restore or permanently remove recently deleted user
+description: How to view restorable users, restore a deleted user, or permanently delete a user with Azure Active Directory.
++++++++ Last updated : 11/07/2022++++++
+# Restore or remove a recently deleted user using Azure Active Directory
+
+After you delete a user, the account remains in a suspended state for 30 days. During that 30-day window, the user account can be restored, along with all its properties. After that 30-day window passes, the permanent deletion process is automatically started and can't be stopped. During this time, the management of soft-deleted users is blocked. This limitation also applies to restoring a soft-deleted user via a match during Tenant sync cycle for on-premises hybrid scenarios.
+
+You can view your restorable users, restore a deleted user, or permanently delete a user using Azure Active Directory (Azure AD) in the Azure portal.
+
+>[!Important]
+>Neither you nor Microsoft customer support can restore a permanently deleted user.
+
+## Required permissions
+
+You must have one of the following roles to restore and permanently delete users.
+
+- Global administrator
+
+- Partner Tier1 Support
+
+- Partner Tier2 Support
+
+- User administrator
+
+## View your restorable users
+
+You can see all the users that were deleted less than 30 days ago. These users can be restored.
+
+### To view your restorable users
+
+1. Sign in to the [Azure portal](https://portal.azure.com/) using a Global administrator account for the organization.
+
+2. Select **Azure Active Directory**, select **Users**, and then select **Deleted users**.
+
+ Review the list of users that are available to restore.
+
+ ![Users - Deleted users page, with users that can still be restored](media/active-directory-users-restore/users-deleted-users-view-restorable.png)
+
+## Restore a recently deleted user
+
+When a user account is deleted from the organization, the account is in a suspended state. All of the account's organization information is preserved. When you restore a user, this organization information is also restored.
+
+> [!NOTE]
+> Once a user is restored, licenses that were assigned to the user at the time of deletion are also restored even if there are no seats available for those licenses. If you are then consuming more licenses more than you purchased, your organization could be temporarily out of compliance for license usage.
+
+### To restore a user
+1. On the **Users - Deleted users** page, search for and select one of the available users. For example, _Mary Parker_.
+
+2. Select **Restore user**.
+
+ ![Users - Deleted users page, with Restore user option highlighted](media/active-directory-users-restore/users-deleted-users-restore-user.png)
+
+## Permanently delete a user
+You can permanently delete a user from your organization without waiting the 30 days for automatic deletion. A permanently deleted user can't be restored by you, another administrator, nor by Microsoft customer support.
+
+>[!Note]
+>If you permanently delete a user by mistake, you'll have to create a new user and manually enter all the previous information. For more information about creating a new user, see [Add or delete users](add-users-azure-active-directory.md).
+
+### To permanently delete a user
+
+1. On the **Users - Deleted users** page, search for and select one of the available users. For example, _Rae Huff_.
+
+2. Select **Delete permanently**.
+
+ ![Users - Deleted users page, with Delete user option highlighted](media/active-directory-users-restore/users-deleted-users-permanent-delete-user.png)
+
+## Next steps
+After you've restored or deleted your users, you can:
+
+- [Add or delete users](add-users-azure-active-directory.md)
+
+- [Assign roles to users](active-directory-users-assign-role-azure-portal.md)
+
+- [Add or change profile information](active-directory-users-profile-azure-portal.md)
+
+- [Add guest users from another organization](../external-identities/what-is-b2b.md)
+
+For more information about other available user management tasks, [Azure AD user management documentation](../enterprise-users/index.yml).
active-directory Whats New Archive https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/whats-new-archive.md
For more information about how to better secure your organization by using autom
In November 2021, we have added following 32 new applications in our App gallery with Federation support:
-[Tide - Connector](https://gallery.ctinsuretech-tide.com/), [Virtual Risk Manager - USA](../saas-apps/virtual-risk-manager-usa-tutorial.md), [Xorlia Policy Management](https://app.xoralia.com/), [WorkPatterns](https://app.workpatterns.com/oauth2/login?data_source_type=office_365_account_calendar_workspace_sync&utm_source=azure_sso), [GHAE](../saas-apps/ghae-tutorial.md), [Nodetrax Project](../saas-apps/nodetrax-project-tutorial.md), [Touchstone Benchmarking](https://app.touchstonebenchmarking.com/), [SURFsecureID - Azure AD Multi-Factor Authentication](../saas-apps/surfsecureid-azure-mfa-tutorial.md), [AiDEA](https://truebluecorp.com/en/prodotti/aidea-en/),[R and D Tax Credit
+[Tide - Connector](https://gallery.ctinsuretech-tide.com/), [Virtual Risk Manager - USA](../saas-apps/virtual-risk-manager-usa-tutorial.md), [Xorlia Policy Management](https://app.xoralia.com/), [WorkPatterns](https://app.workpatterns.com/oauth2/login?data_source_type=office_365_account_calendar_workspace_sync&utm_source=azure_sso), [GHAE](../saas-apps/ghae-tutorial.md), [Nodetrax Project](../saas-apps/nodetrax-project-tutorial.md), [Touchstone Benchmarking](https://app.touchstonebenchmarking.com/), [SURFsecureID - Azure AD Multi-Factor Authentication](../saas-apps/surfsecureid-azure-mfa-tutorial.md), [AiDEA](https://truebluecorp.com/en/prodotti/aidea-en/),[R and D Tax Credit
You can also find the documentation of all the applications [here](../saas-apps/tutorial-list.md).
To do so, sign-in to My Access (https://myaccess.microsoft.com/), navigate to "A
The Logging and End-User Prompts for Risky Guest Users have been updated. Learn more in [Identity Protection and B2B users](../identity-protection/concept-identity-protection-b2b.md). -
-## December 2020
-
-### Public preview - Azure AD B2C Phone Sign-up and Sign-in using Built-in Policy
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-B2C Phone Sign-up and Sign-in using Built-in Policy enable IT administrators and developers of organizations to allow their end-users to sign in and sign up using a phone number in user flows. Read [Set up phone sign-up and sign-in for user flows (preview)](../../active-directory-b2c/phone-authentication-user-flows.md) to learn more.
---
-### General Availability - Security Defaults now enabled for all new tenants by default
-
-**Type:** New feature
-**Service category:** Other
-**Product capability:** Identity Security & Protection
-
-To protect user accounts, all new tenants created on or after November 12, 2020, will come with Security Defaults enabled. Security Defaults enforces multiple policies including:
-- Requires all users and admins to register for multifactor authentication (MFA) using the Microsoft Authenticator App-- Requires critical admin roles to use multifactor authentication (MFA) every single time they sign-in. All other users will be prompted for multifactor authentication (MFA) whenever necessary. -- Legacy authentication will be blocked tenant wide. -
-For more information, read [What are security defaults?](../fundamentals/concept-fundamentals-security-defaults.md)
---
-### General availability - Support for groups with up to 250K members in AADConnect
-
-**Type:** Changed feature
-**Service category:** AD Connect
-**Product capability:** Identity Lifecycle Management
-
-Microsoft has deployed a new endpoint (API) for Azure AD Connect that improves the performance of the synchronization service operations to Azure Active Directory. When you use the new [V2 endpoint](../hybrid/how-to-connect-sync-endpoint-api-v2.md), you'll experience noticeable performance gains on export and import to Azure AD. This new endpoint supports the following scenarios:
--- Syncing groups with up to 250k members-- Performance gains on export and import to Azure AD---
-### General availability - Entitlement Management available for tenants in Azure China cloud
-
-**Type:** New feature
-**Service category:** User Access Management
-**Product capability:** Entitlement Management
-
-
-The capabilities of Entitlement Management are now available for all tenants in the Azure China cloud. For information, visit our [Identity governance documentation](https://docs.azure.cn/zh-cn/active-directory/governance/) site.
---
-### New provisioning connectors in the Azure AD Application Gallery - December 2020
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** 3rd Party Integration
-
-You can now automate creating, updating, and deleting user accounts for these newly integrated apps:
--- [Bizagi Studio for Digital Process Automation](../saas-apps/bizagi-studio-for-digital-process-automation-provisioning-tutorial.md)-- [CybSafe](../saas-apps/cybsafe-provisioning-tutorial.md)-- [GroupTalk](../saas-apps/grouptalk-provisioning-tutorial.md)-- [PaperCut Cloud Print Management](../saas-apps/papercut-cloud-print-management-provisioning-tutorial.md)-- [Parsable](../saas-apps/parsable-provisioning-tutorial.md)-- [Shopify Plus](../saas-apps/shopify-plus-provisioning-tutorial.md)-
-For more information about how to better secure your organization by using automated user account provisioning, see [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md).
-
--
-### New Federated Apps available in Azure AD Application gallery - December 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In December 2020 we have added following 18 new applications in our App gallery with Federation support:
-
-[AwareGo](../saas-apps/awarego-tutorial.md), [HowNow SSO](https://gethownow.com/), [ZyLAB ONE Legal Hold](https://www.zylab.com/en/product/legal-hold), [Guider](http://www.guider-ai.com/), [Softcrisis](https://www.softcrisis.se/sv/), [Pims 365](https://www.omega365.com/products/omega-pims), [InformaCast](../saas-apps/informacast-tutorial.md), [RetrieverMediaDatabase](../saas-apps/retrievermediadatabase-tutorial.md), [vonage](../saas-apps/vonage-tutorial.md), [Count Me In - Operations Dashboard](../saas-apps/count-me-in-operations-dashboard-tutorial.md), [ProProfs Knowledge Base](../saas-apps/proprofs-knowledge-base-tutorial.md), [RightCrowd Workforce Management](../saas-apps/rightcrowd-workforce-management-tutorial.md), [JLL TRIRIGA](../saas-apps/jll-tririga-tutorial.md), [Shutterstock](../saas-apps/shutterstock-tutorial.md), [FortiWeb Web Application Firewall](../saas-apps/linkedin-talent-solutions-tutorial.md), [LinkedIn Talent Solutions](../saas-apps/linkedin-talent-solutions-tutorial.md), [Equinix Federation App](../saas-apps/equinix-federation-app-tutorial.md), [KFAdvance](../saas-apps/kfadvance-tutorial.md)
-
-You can also find the documentation of all the applications from here https://aka.ms/AppsTutorial
-
-For listing your application in the Azure AD app gallery, read the details here https://aka.ms/AzureADAppRequest
---
-### Navigate to Teams directly from My Access portal
-
-**Type:** Changed feature
-**Service category:** User Access Management
-**Product capability:** Entitlement Management
-
-You can now launch Teams directly from My Access portal. To do so, sign-in to [My Access](https://myaccess.microsoft.com/), navigate to **Access packages**, then go to the **Active** Tab to see all access packages you already have access to. When you expand the access package and hover on Teams, you can launch it by clicking on the **Open** button.
-
-To learn more about using the My Access portal, go to [Request access to an access package in Azure AD entitlement management](../governance/entitlement-management-request-access.md#sign-in-to-the-my-access-portal).
---
-### Public preview - Second level manager can be set as alternate approver
-
-**Type:** Changed feature
-**Service category:** User Access Management
-**Product capability:** Entitlement Management
-
-An extra option is now available in the approval process in Entitlement Management. If you select Manager as approver for the First Approver, you'll have another option, Second level manager as alternate approver, available to choose in the alternate approver field. When you select this option, you need to add a fallback approver to forward the request to in case the system can't find the second level manager.
-
-For more information, go to [Change approval settings for an access package in Azure AD entitlement management](../governance/entitlement-management-access-package-approval-policy.md#alternate-approvers).
---
-## November 2020
-
-### Azure Active Directory TLS 1.0, TLS 1.1, and 3DES deprecation
-
-**Type:** Plan for change
-**Service category:** All Azure AD applications
-**Product capability:** Standards
-
-Azure Active Directory will deprecate the following protocols in Azure Active Directory worldwide regions starting June 30, 2021:
--- TLS 1.0-- TLS 1.1-- 3DES cipher suite (TLS_RSA_WITH_3DES_EDE_CBC_SHA)-
-Affected environments are:
-- Azure Commercial Cloud-- Office 365 GCC and WW-
-For guidance to remove deprecating protocols dependencies, please refer to [EEnable support for TLS 1.2 in your environment, in preparation for upcoming Azure AD TLS 1.0/1.1 deprecation](/troubleshoot/azure/active-directory/enable-support-tls-environment).
---
-### New Federated Apps available in Azure AD Application gallery - November 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In November 2020 we have added following 52 new applications in our App gallery with Federation support:
-
-[Travel & Expense Management](https://app.expenseonce.com/Account/Login), [Tribeloo](../saas-apps/tribeloo-tutorial.md), [Itslearning File Picker](https://pmteam.itslearning.com/), [Crises Control](../saas-apps/crises-control-tutorial.md), [CourtAlert](https://www.courtalert.com/), [StealthMail](https://stealthmail.com/), [Edmentum - Study Island](https://app.studyisland.com/cfw/login/), [Virtual Risk Manager](../saas-apps/virtual-risk-manager-tutorial.md), [TIMU](../saas-apps/timu-tutorial.md), [Looker Analytics Platform](../saas-apps/looker-analytics-platform-tutorial.md), [Talview - Recruit](https://recruit.talview.com/login), Real Time Translator, [Klaxoon](https://access.klaxoon.com/login), [Podbean](../saas-apps/podbean-tutorial.md), [zcal](https://zcal.co/signup), [expensemanager](https://api.expense-manager.com/), [En-trak Tenant Experience Platform](https://portal.en-trak.app/), [Appian](../saas-apps/appian-tutorial.md), [Panorays](../saas-apps/panorays-tutorial.md), [Builterra](https://portal.builterra.com/), [EVA Check-in](https://my.evacheckin.com/organization), [HowNow WebApp SSO](../saas-apps/hownow-webapp-sso-tutorial.md), [Coupa Risk Assess](../saas-apps/coupa-risk-assess-tutorial.md), [Lucid (All Products)](../saas-apps/lucid-tutorial.md), [GoBright](https://portal.brightbooking.eu/), [SailPoint IdentityNow](../saas-apps/sailpoint-identitynow-tutorial.md),[Resource Central](../saas-apps/resource-central-tutorial.md), [UiPathStudioO365App](https://www.uipath.com/product/platform), [Jedox](../saas-apps/jedox-tutorial.md), [Cequence Application Security](../saas-apps/cequence-application-security-tutorial.md), [PerimeterX](../saas-apps/perimeterx-tutorial.md), [TrendMiner](../saas-apps/trendminer-tutorial.md), [Lexion](../saas-apps/lexion-tutorial.md), [WorkWare](../saas-apps/workware-tutorial.md), [ProdPad](../saas-apps/prodpad-tutorial.md), [AWS ClientVPN](../saas-apps/aws-clientvpn-tutorial.md), [AppSec Flow SSO](../saas-apps/appsec-flow-sso-tutorial.md), [Luum](../saas-apps/luum-tutorial.md), [Freight Measure](https://www.gpcsl.com/freight.html), [Terraform Cloud](../saas-apps/terraform-cloud-tutorial.md), [Nature Research](../saas-apps/nature-research-tutorial.md), [Play Digital Signage](https://login.playsignage.com/login), [RemotePC](../saas-apps/remotepc-tutorial.md), [Prolorus](../saas-apps/prolorus-tutorial.md), [Hirebridge ATS](../saas-apps/hirebridge-ats-tutorial.md), [Teamgage](https://teamgage.com), [Roadmunk](../saas-apps/roadmunk-tutorial.md), [Sunrise Software Relations CRM](https://cloud.relations-crm.com/), [Procaire](../saas-apps/procaire-tutorial.md), [Mentor&reg; by eDriving: Business](https://www.edriving.com/), [Gradle Enterprise](https://gradle.com/)
-
-You can also find the documentation of all the applications from here https://aka.ms/AppsTutorial
-
-For listing your application in the Azure AD app gallery, read the details here https://aka.ms/AzureADAppRequest
---
-### Public preview - Custom roles for enterprise apps
-
-**Type:** New feature
-**Service category:** RBAC
-**Product capability:** Access Control
-
- [Custom RBAC roles for delegated enterprise application management](../roles/custom-available-permissions.md) is now in public preview. These new permissions build on the custom roles for app registration management, which allows fine-grained control over what access your admins have. Over time, additional permissions to delegate management of Azure AD will be released.
-
-Some common delegation scenarios:
-- assignment of user and groups that can access SAML based single sign-on applications-- the creation of Azure AD Gallery applications-- update and read of basic SAML Configurations for SAML based single sign-on applications-- management of signing certificates for SAML based single sign-on applications-- update of expiring sign-in certificates notification email addresses for SAML based single sign-on applications-- update of the SAML token signature and sign-in algorithm for SAML based single sign-on applications-- create, delete, and update of user attributes and claims for SAML-based single sign-on applications-- ability to turn on, off, and restart provisioning jobs-- updates to attribute mapping-- ability to read provisioning settings associated with the object-- ability to read provisioning settings associated with your service principal-- ability to authorize application access for provisioning---
-### Public preview - Azure AD Application Proxy natively supports single sign-on access to applications that use headers for authentication
-
-**Type:** New feature
-**Service category:** App Proxy
-**Product capability:** Access Control
-
-Azure Active Directory (Azure AD) Application Proxy natively supports single sign-on access to applications that use headers for authentication. You can configure header values required by your application in Azure AD. The header values will be sent down to the application via Application Proxy. To learn more, see [Header-based single sign-on for on-premises apps with Azure AD App Proxy](../app-proxy/application-proxy-configure-single-sign-on-with-headers.md)
-
--
-### General Availability - Azure AD B2C Phone Sign-up and Sign-in using Custom Policy
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-With phone number sign-up and sign-in, developers and enterprises can allow their customers to sign up and sign in using a one-time password sent to the user's phone number via SMS. This feature also lets the customer change their phone number if they lose access to their phone. With the power of custom policies, allow developers and enterprises to communicate their brand through page customization. Find out how to [set up phone sign-up and sign-in with custom policies in Azure AD B2C](../../active-directory-b2c/phone-authentication-user-flows.md).
-
--
-### New provisioning connectors in the Azure AD Application Gallery - November 2020
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** 3rd Party Integration
-
-You can now automate creating, updating, and deleting user accounts for these newly integrated apps:
--- [Adobe Identity Management](../saas-apps/adobe-identity-management-provisioning-tutorial.md)-- [Blogin](../saas-apps/blogin-provisioning-tutorial.md)-- [Clarizen One](../saas-apps/clarizen-one-provisioning-tutorial.md)-- [Contentful](../saas-apps/contentful-provisioning-tutorial.md)-- [GitHub AE](../saas-apps/github-ae-provisioning-tutorial.md)-- [Playvox](../saas-apps/playvox-provisioning-tutorial.md)-- [PrinterLogic SaaS](../saas-apps/printer-logic-saas-provisioning-tutorial.md)-- [Tic - Tac Mobile](../saas-apps/tic-tac-mobile-provisioning-tutorial.md)-- [Visibly](../saas-apps/visibly-provisioning-tutorial.md)-
-For more information, see [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md).
-
--
-### Public Preview - Email Sign in with ProxyAddresses now deployable via Staged Rollout
-
-**Type:** New feature
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-Tenant administrators can now use Staged Rollout to deploy Email Sign-In with ProxyAddresses to specific Azure AD groups. This can help while trying out the feature before deploying it to the entire tenant via the Home Realm Discovery policy. Instructions for deploying Email Sign-In with ProxyAddresses via Staged Rollout are in the [documentation](../authentication/howto-authentication-use-email-signin.md).
-
--
-### Limited Preview - Sign-in Diagnostic
-
-**Type:** New feature
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-With the initial preview release of the Sign-in Diagnostic, admins can now review user sign-ins. Admins can receive contextual, specific, and relevant details and guidance on what happened during a sign-in and how to fix problems. The diagnostic is available in both the Azure AD level, and Conditional Access Diagnose and Solve blades. The diagnostic scenarios covered in this release are Conditional Access, Azure Active Directory Multi-Factor Authentication, and successful sign-in.
-
-For more information, see [What is sign-in diagnostic in Azure AD?](../reports-monitoring/overview-sign-in-diagnostics.md).
-
--
-### Improved Unfamiliar Sign-in Properties
-
-**Type:** Changed feature
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
- Unfamiliar sign-in properties detections has been updated. Customers may notice more high-risk unfamiliar sign-in properties detections. For more information, see [What is risk?](../identity-protection/concept-identity-protection-risks.md)
-
--
-### Public Preview refresh of Cloud Provisioning agent now available (Version: 1.1.281.0)
-
-**Type:** Changed feature
-**Service category:** Azure AD Cloud Provisioning
-**Product capability:** Identity Lifecycle Management
-
-Cloud provisioning agent has been released in public preview and is now available through the portal. This release contains several improvements including, support for GMSA for your domains, which provides better security, improved initial sync cycles, and support for large groups. Check out the release version [history](../app-provisioning/provisioning-agent-release-version-history.md) for more details.
-
--
-### BitLocker recovery key API endpoint now under /informationProtection
-
-**Type:** Changed feature
-**Service category:** Device Access Management
-**Product capability:** Device Lifecycle Management
-
-Previously, you could recover BitLocker keys via the /bitlocker endpoint. We'll eventually be deprecating this endpoint, and customers should begin consuming the API that now falls under /informationProtection.
-
-See [BitLocker recovery API](/graph/api/resources/bitlockerrecoverykey) for updates to the documentation to reflect these changes.
---
-### General Availability of Application Proxy support for Remote Desktop Services HTML5 Web Client
-
-**Type:** Changed feature
-**Service category:** App Proxy
-**Product capability:** Access Control
-
-Azure AD Application Proxy support for Remote Desktop Services (RDS) Web Client is now in General Availability. The RDS web client allows users to access Remote Desktop infrastructure through any HTLM5-capable browser such as Microsoft Edge, Internet Explorer 11, Google Chrome, and so on. Users can interact with remote apps or desktops like they would with a local device from anywhere.
-
-By using Azure AD Application Proxy, you can increase the security of your RDS deployment by enforcing pre-authentication and Conditional Access policies for all types of rich client apps. To learn more, see [Publish Remote Desktop with Azure AD Application Proxy](../app-proxy/application-proxy-integrate-with-remote-desktop-services.md)
-
--
-### New enhanced Dynamic Group service is in Public Preview
-
-**Type:** Changed feature
-**Service category:** Group Management
-**Product capability:** Collaboration
-
-Enhanced dynamic group service is now in Public Preview. New customers that create dynamic groups in their tenants will be using the new service. The time required to create a dynamic group will be proportional to the size of the group that is being created instead of the size of the tenant. This update will improve performance for large tenants significantly when customers create smaller groups.
-
-The new service also aims to complete member addition and removal because of attribute changes within a few minutes. Also, single processing failures won't block tenant processing. To learn more about creating dynamic groups, see our [documentation](../enterprise-users/groups-create-rule.md).
-
--
-## October 2020
-
-### Azure AD on-premises Hybrid Agents Impacted by Azure TLS Certificate Changes
-
-**Type:** Plan for change
-**Service category:** N/A
-**Product capability:** Platform
-
-Microsoft is updating Azure services to use TLS certificates from a different set of Root Certificate Authorities (CAs). This update is due to the current CA certificates not complying with one of the CA/Browser Forum Baseline requirements. This change will impact Azure AD hybrid agents installed on-premises that have hardened environments with a fixed list of root certificates and will need to be updated to trust the new certificate issuers.
-
-This change will result in disruption of service if you don't take action immediately. These agents include [Application Proxy connectors](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/AppProxy) for remote access to on-premises, [Passthrough Authentication](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/AzureADConnect) agents that allow your users to sign in to applications using the same passwords, and [Cloud Provisioning Preview](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/AzureADConnect) agents that perform AD to Azure AD sync.
-
-If you have an environment with firewall rules set to allow outbound calls to only specific Certificate Revocation List (CRL) download, you'll need to allow the following CRL and OCSP URLs. For full details on the change and the CRL and OCSP URLs to enable access to, see [Azure TLS certificate changes](../../security/fundamentals/tls-certificate-changes.md).
---
-### Provisioning events will be removed from audit logs and published solely to provisioning logs
-
-**Type:** Plan for change
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-Activity by the SCIM [provisioning service](../app-provisioning/user-provisioning.md) is logged in both the audit logs and provisioning logs. This includes activity such as the creation of a user in ServiceNow, group in GSuite, or import of a role from AWS. In the future, these events will only be published in the provisioning logs. This change is being implemented to avoid duplicate events across logs, and additional costs incurred by customers consuming the logs in log analytics.
-
-We'll provide an update when a date is completed. This deprecation isn't planned for the calendar year 2020.
-
-> [!NOTE]
-> This does not impact any events in the audit logs outside of the synchronization events emitted by the provisioning service. Events such as the creation of an application, conditional access policy, a user in the directory, etc. will continue to be emitted in the audit logs. [Learn more](../reports-monitoring/concept-provisioning-logs.md?context=azure%2factive-directory%2fapp-provisioning%2fcontext%2fapp-provisioning-context).
-
---
-### Azure AD On-Premises Hybrid Agents Impacted by Azure Transport Layer Security (TLS) Certificate Changes
-
-**Type:** Plan for change
-**Service category:** N/A
-**Product capability:** Platform
-
-Microsoft is updating Azure services to use TLS certificates from a different set of Root Certificate Authorities (CAs). There will be an update because of the current CA certificates not following one of the CA/Browser Forum Baseline requirements. This change will impact Azure AD hybrid agents installed on-premises that have hardened environments with a fixed list of root certificates. These agents will need to be updated to trust the new certificate issuers.
-
-This change will result in disruption of service if you don't take action immediately. These agents include:
-- [Application Proxy connectors](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/AppProxy) for remote access to on-premises -- [Passthrough Authentication](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/AzureADConnect) agents that allow your users to sign in to applications using the same passwords-- [Cloud Provisioning Preview](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/AzureADConnect) agents that do AD to Azure AD sync. -
-If you have an environment with firewall rules set to allow outbound calls to only specific Certificate Revocation List (CRL) download, you'll need to allow CRL and OCSP URLs. For full details on the change and the CRL and OCSP URLs to enable access to, see [Azure TLS certificate changes](../../security/fundamentals/tls-certificate-changes.md).
---
-[1305958](https://identitydivision.visualstudio.com/IAM/IXR/_queries?id=1305958&triage=true&fullScreen=false&_a=edit)
-
-### Azure Active Directory TLS 1.0 & 1.1, and 3DES Cipher Suite Deprecation
-
-**Type:** Plan for change
-**Service category:** N/A
-**Product capability:** Standards
-
-Azure Active Directory will deprecate the following protocols in Azure Active Directory worldwide regions starting on January 31, 2022 (This date has been postponed from 30th June 2021 to 31st Jan 2022, to give Administrators more time to remove the dependency on legacy TLS protocols and ciphers (TLS 1.0,1.1 and 3DES)):
--- TLS 1.0-- TLS 1.1-- 3DES cipher suite (TLS_RSA_WITH_3DES_EDE_CBC_SHA)-
-Affected environments are:
--- Azure Commercial Cloud-- Office 365 GCC and WW-
-Users, services, and applications that interact with Azure Active Directory and Microsoft Graph, should use TLS 1.2 and modern cipher suites to maintain a secure connection to Azure Active Directory for Azure, Office 365, and Microsoft 365 services. For additional guidance, refer to [Enable support for TLS 1.2 in your environment, in preparation for upcoming deprecation of Azure AD TLS 1.0/1.1](/troubleshoot/azure/active-directory/enable-support-tls-environment).
---
-### Azure Active Directory TLS 1.0, TLS 1.1, and 3DES Deprecation in US Gov Cloud
-
-**Type:** Plan for change
-**Service category:** All Azure AD applications
-**Product capability:** Standards
-
-Azure Active Directory will deprecate the following protocols starting March 31, 2021:
-- TLS 1.0-- TLS 1.1-- 3DES cipher suite (TLS_RSA_WITH_3DES_EDE_CBC_SHA)-
-All client-server and browser-server combinations should use TLS 1.2 and modern cipher suites to maintain a secure connection to Azure Active Directory for Azure, Office 365, and Microsoft 365 services.
-
-Affected environments are:
-- Azure US Gov-- [Office 365 GCC High & DoD](/microsoft-365/compliance/tls-1-2-in-office-365-gcc)-
-For guidance to remove deprecating protocols dependencies, please refer to [Enable support for TLS 1.2 in your environment for Azure AD TLS 1.1 and 1.0 deprecation](/troubleshoot/azure/active-directory/enable-support-tls-environment).
-
--
-### Assign applications to roles on administrative unit and object scope
-
-**Type:** New feature
-**Service category:** RBAC
-**Product capability:** Access Control
-
-This feature enables the ability to assign an application (SPN) to an administrator role on the administrative unit scope. To learn more, refer to [Assign scoped roles to an administrative unit](../roles/admin-units-assign-roles.md).
---
-### Now you can disable and delete guest users when they're denied access to a resource
-
-**Type:** New feature
-**Service category:** Access Reviews
-**Product capability:** Identity Governance
-
-Disable and delete is an advanced control in Azure AD Access Reviews to help organizations better manage external guests in Groups and Apps. If guests are denied in an access review, **disable and delete** will automatically block them from signing in for 30 days. After 30 days, then they'll be removed from the tenant altogether.
-
-For more information about this feature, see [Disable and delete external identities with Azure AD Access Reviews](../governance/access-reviews-external-users.md#disable-and-delete-external-identities-with-azure-ad-access-reviews).
-
--
-### Access Review creators can add custom messages in emails to reviewers
-
-**Type:** New feature
-**Service category:** Access Reviews
-**Product capability:** Identity Governance
-
-In Azure AD access reviews, administrators creating reviews can now write a custom message to the reviewers. Reviewers will see the message in the email they receive that prompts them to complete the review. To learn more about using this feature, see step 14 of the [Create a single-stage review](../governance/create-access-review.md#create-a-single-stage-access-review) section.
---
-### New provisioning connectors in the Azure AD Application Gallery - October 2020
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** 3rd Party Integration
-
-You can now automate creating, updating, and deleting user accounts for these newly integrated apps:
--- [Apple Business Manager](../saas-apps/apple-business-manager-provision-tutorial.md)-- [Apple School Manager](../saas-apps/apple-school-manager-provision-tutorial.md)-- [Code42](../saas-apps/code42-provisioning-tutorial.md)-- [AlertMedia](../saas-apps/alertmedia-provisioning-tutorial.md)-- [OpenText Directory Services](../saas-apps/open-text-directory-services-provisioning-tutorial.md)-- [Cinode](../saas-apps/cinode-provisioning-tutorial.md)-- [Global Relay Identity Sync](../saas-apps/global-relay-identity-sync-provisioning-tutorial.md)-
-For more information about how to better secure your organization by using automated user account provisioning, see [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md).
-
--
-### Integration assistant for Azure AD B2C
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-The Integration Assistant (preview) experience is now available for Azure AD B2C App registrations. This experience helps guide you in configuring your application for common scenarios.. Learn more about [Microsoft identity platform best practices and recommendations](../develop/identity-platform-integration-checklist.md).
-
--
-### View role template ID in Azure portal UI
-
-**Type:** New feature
-**Service category:** Azure roles
-**Product capability:** Access Control
-
-
-You can now view the template ID of each Azure AD role in the Azure portal. In Azure AD, select **description** of the selected role.
-
-It's recommended that customers use role template IDs in their PowerShell script and code, instead of the display name. Role template ID is supported for use to [directoryRoles](/graph/api/resources/directoryrole) and [roleDefinition](/graph/api/resources/unifiedroledefinition) objects. For more information on role template IDs, see [Azure AD built-in roles](../roles/permissions-reference.md).
---
-### API connectors for Azure AD B2C sign-up user flows is now in public preview
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-
-API connectors are now available for use with Azure Active Directory B2C. API connectors enable you to use web APIs to customize your sign-up user flows and integrate with external cloud systems. You can you can use API connectors to:
--- Integrate with custom approval workflows-- Validate user input data-- Overwrite user attributes -- Run custom business logic -
- Visit the [Use API connectors to customize and extend sign-up](../../active-directory-b2c/api-connectors-overview.md) documentation to learn more.
---
-### State property for connected organizations in entitlement management
-
-**Type:** New feature
-**Service category:** Directory Management
-**Product capability:** Entitlement Management
-
-
- All connected organizations will now have an additional property called "State". The state will control how the connected organization will be used in policies that refer to "all configured connected organizations". The value will be either "configured" (meaning the organization is in the scope of policies that use the "all" clause) or "proposed" (meaning that the organization isn't in scope).
-
-Manually created connected organizations will have a default setting of "configured". Meanwhile, automatically created ones (created via policies that allow any user from the internet to request access) will default to "proposed." Any connected organizations created before September 9 2020 will be set to "configured." Admins can update this property as needed. [Learn more](../governance/entitlement-management-organization.md#managing-a-connected-organization-programmatically).
-
---
-### Azure Active Directory External Identities now has premium advanced security settings for B2C
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-Risk-based Conditional Access and risk detection features of Identity Protection are now available in [Azure AD B2C](../..//active-directory-b2c/conditional-access-identity-protection-overview.md). With these advanced security features, customers can now:
-- Leverage intelligent insights to assess risk with B2C apps and end user accounts. Detections include atypical travel, anonymous IP addresses, malware-linked IP addresses, and Azure AD threat intelligence. Portal and API-based reports are also available.-- Automatically address risks by configuring adaptive authentication policies for B2C users. App developers and administrators can mitigate real-time risk by requiring Azure Active Directory Multi-Factor Authentication (MFA) or blocking access depending on the user risk level detected, with additional controls available based on location, group, and app.-- Integrate with Azure AD B2C user flows and custom policies. Conditions can be triggered from built-in user flows in Azure AD B2C or can be incorporated into B2C custom policies. As with other aspects of the B2C user flow, end user experience messaging can be customized. Customization is according to the organization's voice, brand, and mitigation alternatives.
-
--
-### New Federated Apps available in Azure AD Application gallery - October 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In October 2020 we have added following 27 new applications in our App gallery with Federation support:
-
-[Sentry](../saas-apps/sentry-tutorial.md), [Bumblebee - Productivity Superapp](https://app.yellowmessenger.com/user/login), [ABBYY FlexiCapture Cloud](../saas-apps/abbyy-flexicapture-cloud-tutorial.md), [EAComposer](../saas-apps/eacomposer-tutorial.md), [Genesys Cloud Integration for Azure](https://apps.mypurecloud.com/msteams-integration/), [Zone Technologies Portal](https://portail.zonetechnologie.com/signin), [Beautiful.ai](../saas-apps/beautiful.ai-tutorial.md), [Datawiza Access Broker](https://console.datawiza.com/), [ZOKRI](https://app.zokri.com/), [CheckProof](../saas-apps/checkproof-tutorial.md), [Ecochallenge.org](https://events.ecochallenge.org/users/login), [atSpoke](https://www.atspoke.com/), [Appointment Reminder](https://app.appointmentreminder.co.nz/account/login), [Cloud.Market](https://cloud.market/), [TravelPerk](../saas-apps/travelperk-tutorial.md), [Greetly](https://app.greetly.com/), [OrgVitality SSO](../saas-apps/orgvitality-sso-tutorial.md), [Web Cargo Air](../saas-apps/web-cargo-air-tutorial.md), [Loop Flow CRM](../saas-apps/loop-flow-crm-tutorial.md), [Starmind](../saas-apps/starmind-tutorial.md), [Workstem](https://hrm.workstem.com/login), [Retail Zipline](../saas-apps/retail-zipline-tutorial.md), [Hoxhunt](../saas-apps/hoxhunt-tutorial.md), [MEVISIO](../saas-apps/mevisio-tutorial.md), [Samsara](../saas-apps/samsara-tutorial.md), [Nimbus](../saas-apps/nimbus-tutorial.md), [Pulse Secure virtual Traffic Manager](../saas-apps/pulse-secure-virtual-traffic-manager-tutorial.md)
-
-You can also find the documentation of all the applications from here https://aka.ms/AppsTutorial
-
-For listing your application in the Azure AD app gallery, read the details here https://aka.ms/AzureADAppRequest
---
-### Provisioning logs can now be streamed to log analytics
-
-**Type:** New feature
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-
-Publish your provisioning logs to log analytics in order to:
-- Store provisioning logs for more than 30 days-- Define custom alerts and notifications-- Build dashboards to visualize the logs-- Execute complex queries to analyze the logs -
-To learn how to use the feature, see [Understand how provisioning integrates with Azure Monitor logs](../app-provisioning/application-provisioning-log-analytics.md).
-
--
-### Provisioning logs can now be viewed by application owners
-
-**Type:** Changed feature
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-You can now allow application owners to monitor activity by the provisioning service and troubleshoot issues without providing them a privileged role or making IT a bottleneck. [Learn more](../reports-monitoring/concept-provisioning-logs.md).
-
--
-### Renaming 10 Azure Active Directory roles
-
-**Type:** Changed feature
-**Service category:** Azure roles
-**Product capability:** Access Control
-
-Some Azure Active Directory (AD) built-in roles have names that differ from those that appear in Microsoft 365 admin center, the Azure portal, and Microsoft Graph. This inconsistency can cause problems in automated processes. With this update, we're renaming 10 role names to make them consistent. The following table has the new role names:
-
-![Table showing role names in MS Graph API and the Azure portal, and the proposed new role name in M365 Admin Center, Azure portal, and API.](media/whats-new/azure-role.png)
---
-### Azure AD B2C support for auth code flow for SPAs using MSAL JS 2.x
-
-**Type:** Changed feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-MSAL.js version 2.x now includes support for the authorization code flow for single-page web apps (SPAs). Azure AD B2C will now support the use of the SPA app type on the Azure portal and the use of MSAL.js authorization code flow with PKCE for single-page apps. This will allow SPAs using Azure AD B2C to maintain SSO with newer browsers and abide by newer authentication protocol recommendations. Get started with the [Register a single-page application (SPA) in Azure Active Directory B2C](../../active-directory-b2c/tutorial-register-spa.md) tutorial.
---
-### Updates to Remember Azure Active Directory Multi-Factor Authentication (MFA) on a trusted device setting
-
-**Type:** Changed feature
-**Service category:** MFA
-**Product capability:** Identity Security & Protection
-
-
-We've recently updated the [remember Azure Active Directory Multi-Factor Authentication (MFA)](../authentication/howto-mfa-mfasettings.md#remember-multi-factor-authentication) on a trusted device feature to extend authentication for up to 365 days. Azure Active Directory (Azure AD) Premium licenses, can also use the [Conditional Access ΓÇô Sign-in Frequency policy](../conditional-access/howto-conditional-access-session-lifetime.md#user-sign-in-frequency) that provides more flexibility for reauthentication settings.
-
-For the optimal user experience, we recommend using Conditional Access sign-in frequency to extend session lifetimes on trusted devices, locations, or low-risk sessions as an alternative to remember multifactor authentication (MFA) on a trusted device setting. To get started, review our [latest guidance on optimizing the reauthentication experience](../authentication/concepts-azure-multi-factor-authentication-prompts-session-lifetime.md).
---
-## September 2020
-
-### New provisioning connectors in the Azure AD Application Gallery - September 2020
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** 3rd Party Integration
-
-You can now automate creating, updating, and deleting user accounts for these newly integrated apps:
--- [Coda](../saas-apps/coda-provisioning-tutorial.md)-- [Cofense Recipient Sync](../saas-apps/cofense-provision-tutorial.md)-- [InVision](../saas-apps/invision-provisioning-tutorial.md)-- [myday](../saas-apps/myday-provision-tutorial.md)-- [SAP Analytics Cloud](../saas-apps/sap-analytics-cloud-provisioning-tutorial.md)-- [Webroot Security Awareness](../saas-apps/webroot-security-awareness-training-provisioning-tutorial.md)-
-For more information about how to better secure your organization by using automated user account provisioning, see [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md).
-
-
-### Cloud Provisioning Public Preview Refresh
-
-**Type:** New feature
-**Service category:** Azure AD Cloud Provisioning
-**Product capability:** Identity Lifecycle Management
-
-Azure AD Connect Cloud Provisioning public preview refresh features two major enhancements developed from customer feedback:
--- Attribute Mapping Experience through Azure portal-
- With this feature, IT Admins can map user, group, or contact attributes from AD to Azure AD using various mapping types present today. Attribute mapping is a feature used for standardizing the values of the attributes that flow from Active Directory to Azure Active Directory. One can determine whether to directly map the attribute value as it is from AD to Azure AD or use expressions to transform the attribute values when provisioning users. [Learn more](../cloud-sync/how-to-attribute-mapping.md)
--- On-demand Provisioning or Test User experience-
- Once you have set up your configuration, you might want to test to see if the user transformation is working as expected before applying it to all your users in scope. With on-demand provisioning, IT Admins can enter the Distinguished Name (DN) of an AD user and see if they're getting synced as expected. On-demand provisioning provides a great way to ensure that the attribute mappings you did previously work as expected. [Learn More](../cloud-sync/how-to-on-demand-provision.md)
-
--
-### Audited BitLocker Recovery in Azure AD - Public Preview
-
-**Type:** New feature
-**Service category:** Device Access Management
-**Product capability:** Device Lifecycle Management
-
-When IT admins or end users read BitLocker recovery key(s) they have access to, Azure Active Directory now generates an audit log that captures who accessed the recovery key. The same audit provides details of the device the BitLocker key was associated with.
-
-End users can [access their recovery keys via My Account](https://support.microsoft.com/account-billing/manage-your-work-or-school-account-connected-devices-from-the-devices-page-6b5a735d-0a7f-4e94-8cfd-f5da6bc13d4e#view-a-bitlocker-key). IT admins can access recovery keys via the [BitLocker recovery key API](/graph/api/resources/bitlockerrecoverykey) or via the Azure portal. To learn more, see [View or copy BitLocker keys in the Azure portal](../devices/device-management-azure-portal.md#view-or-copy-bitlocker-keys).
---
-### Teams Devices Administrator built-in role
-
-**Type:** New feature
-**Service category:** RBAC
-**Product capability:** Access Control
-
-Users with the [Teams Devices Administrator](../roles/permissions-reference.md#teams-devices-administrator) role can manage [Teams-certified devices](https://www.microsoft.com/microsoft-365/microsoft-teams/across-devices/devices) from the Teams Admin Center.
-
-This role allows the user to view all devices at single glance, with the ability to search and filter devices. The user can also check the details of each device including logged-in account and the make and model of the device. The user can change the settings on the device and update the software versions. This role doesn't grant permissions to check Teams activity and call quality of the device.
-
--
-### Advanced query capabilities for Directory Objects
-
-**Type:** New feature
-**Service category:** MS Graph
-**Product capability:** Developer Experience
-
-All the new query capabilities introduced for Directory Objects in Azure AD APIs are now available in the v1.0 endpoint and production-ready. Developers can Count, Search, Filter, and Sort Directory Objects and related links using the standard OData operators.
-
-To learn more, see the documentation [here](https://aka.ms/BlogPostMezzoGA), and you can also send feedback with this [brief survey](https://forms.office.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR_yN8EPoGo5OpR1hgmCp1XxUMENJRkNQTk5RQkpWTE44NEk2U0RIV0VZRy4u).
-
--
-### Public preview: continuous access evaluation for tenants who configured Conditional Access policies
-
-**Type:** New feature
-**Service category:** Authentications (Logins)
-**Product capability:** Identity Security & Protection
-
-Continuous access evaluation (CAE) is now available in public preview for Azure AD tenants with Conditional Access policies. With CAE, critical security events and policies are evaluated in real time. This includes account disable, password reset, and location change. To learn more, see [Continuous access evaluation](../conditional-access/concept-continuous-access-evaluation.md).
---
-### Public preview: ask users requesting an access package additional questions to improve approval decisions
-
-**Type:** New feature
-**Service category:** User Access Management
-**Product capability:** Entitlement Management
-
-Administrators can now require that users requesting an access package answer additional questions beyond just business justification in Azure AD Entitlement management's My Access portal. The users' answers will then be shown to the approvers to help them make a more accurate access approval decision. To learn more, see [Collect additional requestor information for approval](../governance/entitlement-management-access-package-approval-policy.md#collect-additional-requestor-information-for-approval).
-
--
-### Public preview: Enhanced user management
-
-**Type:** New feature
-**Service category:** User Management
-**Product capability:** User Management
-
-
-The Azure portal has been updated to make it easier to find users in the All users and Deleted users pages. Changes in the preview include:
-- More visible user properties including object ID, directory sync status, creation type, and identity issuer.-- Search now allows combined search of names, emails, and object IDs.-- Enhanced filtering by user type (member, guest, and none), directory sync status, creation type, company name, and domain name.-- New sorting capabilities on properties like name, user principal name and deletion date.-- A new total users count that updates with any searches or filters.-
-For more information, please see [User management enhancements (preview) in Azure Active Directory](../enterprise-users/users-search-enhanced.md).
---
-### New notes field for Enterprise applications
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-You can add free text notes to Enterprise applications. You can add any relevant information that will help manager applications under Enterprise applications. For more information, see [Quickstart: Configure properties for an application in your Azure Active Directory (Azure AD) tenant](../manage-apps/add-application-portal-configure.md).
---
-### New Federated Apps available in Azure AD Application gallery - September 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In September 2020 we have added following 34 new applications in our App gallery with Federation support:
-
-[VMware Horizon - Unified Access Gateway](), [Pulse Secure PCS](../saas-apps/vmware-horizon-unified-access-gateway-tutorial.md), [Inventory360](../saas-apps/pulse-secure-pcs-tutorial.md), [Frontitude](https://services.enteksystems.de/sso/microsoft/signup), [BookWidgets](https://www.bookwidgets.com/sso/office365), [ZVD_Server](https://zaas.zenmutech.com/user/signin), [HashData for Business](https://hashdata.app/login.xhtml), [SecureLogin](https://securelogin.securelogin.nu/sso/azure/login), [CyberSolutions MAILBASEΣ/CMSS](../saas-apps/cybersolutions-mailbase-tutorial.md), [CyberSolutions CYBERMAILΣ](../saas-apps/cybersolutions-cybermail-tutorial.md), [LimbleCMMS](https://auth.limblecmms.com/), [Glint Inc](../saas-apps/glint-inc-tutorial.md), [zeroheight](../saas-apps/zeroheight-tutorial.md), [Gender Fitness](https://app.genderfitness.com/), [Coeo Portal](https://my.coeo.com/), [Grammarly](../saas-apps/grammarly-tutorial.md), [Fivetran](../saas-apps/fivetran-tutorial.md), [Kumolus](../saas-apps/kumolus-tutorial.md), [RSA Archer Suite](../saas-apps/rsa-archer-suite-tutorial.md), [TeamzSkill](../saas-apps/teamzskill-tutorial.md), [raumfürraum](../saas-apps/raumfurraum-tutorial.md), [Saviynt](../saas-apps/saviynt-tutorial.md), [BizMerlinHR](https://marketplace.bizmerlin.net/bmone/signup), [Mobile Locker](../saas-apps/mobile-locker-tutorial.md), [Zengine](../saas-apps/zengine-tutorial.md), [CloudCADI](https://cloudcadi.com/), [Simfoni Analytics](https://simfonianalytics.com/accounts/microsoft/login/), [Priva Identity & Access Management](https://my.priva.com/), [Nitro Pro](https://www.gonitro.com/nps/product-details/downloads), [Eventfinity](../saas-apps/eventfinity-tutorial.md), [Fexa](../saas-apps/fexa-tutorial.md), [Secured Signing Enterprise Portal](https://www.securedsigning.com/aad/Auth/ExternalLogin/AdminPortal), [Secured Signing Enterprise Portal AAD Setup](https://www.securedsigning.com/aad/Auth/ExternalLogin/AdminPortal), [Wistec Online](https://wisteconline.com/auth/oidc), [Oracle PeopleSoft - Protected by F5 BIG-IP APM](../saas-apps/oracle-peoplesoft-protected-by-f5-big-ip-apm-tutorial.md)
-
-You can also find the documentation of all the applications from here: https://aka.ms/AppsTutorial.
-
-For listing your application in the Azure AD app gallery, read the details here: https://aka.ms/AzureADAppRequest.
---
-### New delegation role in Azure AD entitlement management: Access package assignment manager
-
-**Type:** New feature
-**Service category:** User Access Management
-**Product capability:** Entitlement Management
-
-A new Access Package Assignment Manager role has been added in Azure AD entitlement management to provide granular permissions to manage assignments. You can now delegate tasks to a user in this role, who can delegate assignments management of an access package to a business owner. However, an Access Package Assignment Manager can't alter the access package policies or other properties that are set by the administrators.
-
-With this new role, you benefit from the least privileges needed to delegate management of assignments and maintain administrative control on all other access package configurations. To learn more, see [Entitlement management roles](../governance/entitlement-management-delegate.md#entitlement-management-roles).
-
--
-### Changes to Privileged Identity Management's onboarding flow
-
-**Type:** Changed feature
-**Service category:** Privileged Identity Management
-**Product capability:** Privileged Identity Management
-
-Previously, onboarding to Privileged Identity Management (PIM) required user consent and an onboarding flow in PIM's blade that included enrollment in Azure Active Directory Multi-Factor Authentication (MFA). With the recent integration of PIM experience into the Azure AD roles and administrators blade, we are removing this experience. Any tenant with valid P2 license will be auto-onboarded to PIM.
-
-Onboarding to PIM does not have any direct adverse effect on your tenant. You can expect the following changes:
-- Additional assignment options such as active vs. eligible with start and end time when you make an assignment in either PIM or Azure AD roles and administrators blade. -- Additional scoping mechanisms, like Administrative Units and custom roles, introduced directly into the assignment experience. -- If you're a global administrator or privileged role administrator, you may start getting a few additional emails like the PIM weekly digest. -- You might also see ms-pim service principal in the audit log related to role assignment. This expected change shouldn't affect your regular workflow.-
- For more information, see [Start using Privileged Identity Management](../privileged-identity-management/pim-getting-started.md).
---
-### Azure AD Entitlement Management: The Select pane of access package resources now shows by default the resources currently in the selected catalog
-
-**Type:** Changed feature
-**Service category:** User Access Management
-**Product capability:** Entitlement Management
-
-
-In the access package creation flow, under the Resource roles tab, the Select pane behavior is changing. Currently, the default behavior is to show all resources that are owned by the user and resources added to the selected catalog.
-
-This experience will be changed to display only the resources currently added in the catalog by default, so that users can easily pick resources from the catalog. The update will help with discoverability of the resources to add to access packages, and reduce risk of inadvertently adding resources owned by the user that aren't part of the catalog. To learn more, see [Create a new access package in Azure AD entitlement management](../governance/entitlement-management-access-package-create.md#resource-roles).
-
--
-## August 2020
-
-### Updates to Azure Active Directory Multi-Factor Authentication Server firewall requirements
-
-**Type:** Plan for change
-**Service category:** MFA
-**Product capability:** Identity Security & Protection
-
-Starting 1 October 2020, Azure AD Multi-Factor Authentication (MFA) Server firewall requirements will require additional IP ranges.
-
-If you have outbound firewall rules in your organization, update the rules so that your multifactor authentication (MFA) servers can communicate with all the necessary IP ranges. The IP ranges are documented in [Azure Active Directory Multi-Factor Authentication Server firewall requirements](../authentication/howto-mfaserver-deploy.md#azure-multi-factor-authentication-server-firewall-requirements).
---
-### Upcoming changes to user experience in Identity Secure Score
-
-**Type:** Plan for change
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
-We're updating the Identity Secure Score portal to align with the changes introduced in Microsoft Secure Score's [new release](/microsoft-365/security/mtp/microsoft-secure-score-whats-new).
-
-The preview version with the changes will be available at the beginning of September. The changes in the preview version include:
-- "Identity Secure Score" renamed to "Secure Score for Identity" for brand alignment with Microsoft Secure Score-- Points normalized to standard scale and reported in percentages instead of points-
-In this preview, customers can toggle between the existing experience and the new experience. This preview will last until the end of November 2020. After the preview, the customers will automatically be directed to the new UX experience.
---
-### New Restricted Guest Access Permissions in Azure AD - Public Preview
-
-**Type:** New feature
-**Service category:** Access Control
-**Product capability:** User Management
-
-We've updated directory level permissions for guest users. These permissions allow administrators to require additional restrictions and controls on external guest user access. Admins can now add additional restrictions for external guests' access to user and groups' profile and membership information. With this public preview feature, customers can manage external user access at scale by obfuscating group memberships, including restricting guest users from seeing memberships of the group(s) they are in.
-
-To learn more, see [Restricted Guest Access Permissions](../enterprise-users/users-restrict-guest-permissions.md) and [Users Default Permissions](./users-default-permissions.md).
-
--
-### General availability of delta queries for service principals
-
-**Type:** New feature
-**Service category:** MS Graph
-**Product capability:** Developer Experience
-
-Microsoft Graph Delta Query now supports the resource type in v1.0:
-- Service Principal-
-Now clients can track changes to those resources efficiently and provides the best solution to synchronize changes to those resources with a local data store. To learn how to configure these resources in a query, see [Use delta query to track changes in Microsoft Graph data](/graph/delta-query-overview).
-
--
-### General availability of delta queries for oAuth2PermissionGrant
-
-**Type:** New feature
-**Service category:** MS Graph
-**Product capability:** Developer Experience
-
-Microsoft Graph Delta Query now supports the resource type in v1.0:
-- OAuth2PermissionGrant-
-Clients can now track changes to those resources efficiently and provides the best solution to synchronize changes to those resources with a local data store. To learn how to configure these resources in a query, see [Use delta query to track changes in Microsoft Graph data](/graph/delta-query-overview).
---
-### New Federated Apps available in Azure AD Application gallery - August 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In August 2020 we have added following 25 new applications in our App gallery with Federation support:
-
-[Backup365](https://portal.backup365.io/login), [Soapbox](https://app.soapboxhq.com/create?step=auth&provider=azure-ad2-oauth2), [Enlyft Dynamics 365 Connector](http://enlyft.com/), [Serraview Space Utilization Software Solutions](../saas-apps/serraview-space-utilization-software-solutions-tutorial.md), [Uniq](https://web.uniq.app/), [Visibly](../saas-apps/visibly-tutorial.md), [Zylo](../saas-apps/zylo-tutorial.md), [Edmentum - Courseware Assessments Exact Path](https://auth.edmentum.com/elf/login), [CyberLAB](https://cyberlab.evolvesecurity.com/#/welcome), [Altamira HRM](../saas-apps/altamira-hrm-tutorial.md), [WireWheel](../saas-apps/wirewheel-tutorial.md), [Zix Compliance and Capture](https://sminstall.zixcorp.com/teams/teams.php?install_request=true&tenant_id=common), [Greenlight Enterprise Business Controls Platform](../saas-apps/greenlight-enterprise-business-controls-platform-tutorial.md), [Genetec Clearance](https://www.clearance.network/), [iSAMS](../saas-apps/isams-tutorial.md), [VeraSMART](../saas-apps/verasmart-tutorial.md), [Amiko](https://amiko.io/), [Twingate](https://auth.twingate.com/signup), [Funnel Leasing](https://nestiolistings.com/sso/oidc/azure/authorize/), [Scalefusion](https://scalefusion.com/users/sign_in/), [Bpanda](https://goto.bpanda.com/login), [Vivun Calendar Connect](https://app.vivun.com/dashboard/calendar/connect), [FortiGate SSL VPN](../saas-apps/fortigate-ssl-vpn-tutorial.md), [Wandera End User](https://www.wandera.com/)
-
-You can also find the documentation of all the applications from here https://aka.ms/AppsTutorial
-
-For listing your application in the Azure AD app gallery, read the details here https://aka.ms/AzureADAppRequest
---
-### Resource Forests now available for Azure AD DS
-
-**Type:** New feature
-**Service category:** Azure AD Domain Services
-**Product capability:** Azure AD Domain Services
-
-The capability of resource forests in Azure AD Domain Services is now generally available. You can now enable authorization without password hash synchronization to use Azure AD Domain Services, including smart-card authorization. To learn more, see [Replica sets concepts and features for Azure Active Directory Domain Services (preview)](../../active-directory-domain-services/concepts-replica-sets.md).
-
--
-### Regional replica support for Azure AD DS managed domains now available
-
-**Type:** New feature
-**Service category:** Azure AD Domain Services
-**Product capability:** Azure AD Domain Services
-
-You can expand a managed domain to have more than one replica set per Azure AD tenant. Replica sets can be added to any peered virtual network in any Azure region that supports Azure AD Domain Services. Additional replica sets in different Azure regions provide geographical disaster recovery for legacy applications if an Azure region goes offline. To learn more, see [Replica sets concepts and features for Azure Active Directory Domain Services (preview)](../../active-directory-domain-services/concepts-replica-sets.md).
---
-### General Availability of Azure AD My sign-ins
-
-**Type:** New feature
-**Service category:** Authentications (Logins)
-**Product capability:** End User Experiences
-
-Azure AD My sign-ins is a new feature that allows enterprise users to review their sign-in history to check for any unusual activity. Additionally, this feature allows end users to report "This wasn't me" or "This was me" on suspicious activities. To learn more about using this feature, see [View and search your recent sign-in activity from the My sign-ins page](https://support.microsoft.com/account-billing/view-and-search-your-work-or-school-account-sign-in-activity-from-my-sign-ins-9e7d108c-8e3f-42aa-ac3a-bca892898972#confirm-unusual-activity).
-
--
-### SAP SuccessFactors HR driven user provisioning to Azure AD is now generally available
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** Identity Lifecycle Management
-
-You can now integrate SAP SuccessFactors as the authoritative identity source with Azure AD and automate the end-to-end identity lifecycle using HR events like new hires and terminations to drive provisioning and de-provisioning of accounts in Azure AD.
-
-To learn more about how to configure SAP SuccessFactors inbound provisioning to Azure AD, refer to the tutorial [Configure SAP SuccessFactors to Active Directory user provisioning](../saas-apps/sap-successfactors-inbound-provisioning-tutorial.md).
-
--
-### Custom Open ID Connect MS Graph API support for Azure AD B2C
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-Previously, Custom Open ID Connect providers could only be added or managed through the Azure portal. Now the Azure AD B2C customers can add and manage them through Microsoft Graph APIs beta version as well. To learn how to configure this resource with APIs, see [identityProvider resource type](/graph/api/resources/identityprovider).
-
--
-### Assign Azure AD built-in roles to cloud groups
-
-**Type:** New feature
-**Service category:** Azure AD roles
-**Product capability:** Access Control
-
-You can now assign Azure AD built-in roles to cloud groups with this new feature. For example, you can assign the SharePoint Administrator role to Contoso_SharePoint_Admins group. You can also use PIM to make the group an eligible member of the role, instead of granting standing access. To learn how to configure this feature, see [Use cloud groups to manage role assignments in Azure Active Directory (preview)](../roles/groups-concept.md).
-
--
-### Insights Business Leader built-in role now available
-
-**Type:** New feature
-**Service category:** Azure AD roles
-**Product capability:** Access Control
-
-Users in the Insights Business Leader role can access a set of dashboards and insights via the [Microsoft 365 Insights application](https://www.microsoft.com/microsoft-365/partners/workplaceanalytics). This includes full access to all dashboards and presented insights and data exploration functionality. However, users in this role don't have access to product configuration settings, which is the responsibility of the Insights Administrator role. To learn more about this role, see [Administrator role permissions in Azure Active Directory](../roles/permissions-reference.md#insights-business-leader)
-
--
-### Insights Administrator built-in role now available
-
-**Type:** New feature
-**Service category:** Azure AD roles
-**Product capability:** Access Control
-
-Users in the Insights Administrator role can access the full set of administrative capabilities in the [Microsoft 365 Insights application](https://www.microsoft.com/microsoft-365/partners/workplaceanalytics). A user in this role can read directory information, monitor service health, file support tickets, and access the Insights administrator settings aspects. To learn more about this role, see [Administrator role permissions in Azure Active Directory](../roles/permissions-reference.md#insights-administrator)
-
-
-
-### Application Admin and Cloud Application Admin can manage extension properties of applications
-
-**Type:** Changed feature
-**Service category:** Azure AD roles
-**Product capability:** Access Control
-
-Previously, only the Global Administrator could manage the [extension property](/graph/api/application-post-extensionproperty). We're now enabling this capability for the Application Administrator and Cloud Application Administrator as well.
-
--
-### MIM 2016 SP2 hotfix 4.6.263.0 and connectors 1.1.1301.0
-
-**Type:** Changed feature
-**Service category:** Microsoft Identity Manager
-**Product capability:** Identity Lifecycle Management
-
-A [hotfix rollup package (build 4.6.263.0)](https://support.microsoft.com/help/4576473/hotfix-rollup-package-build-4-6-263-0-is-available-for-microsoft-ident) is available for Microsoft Identity Manager (MIM) 2016 Service Pack 2 (SP2). This rollup package contains updates for the MIM CM, MIM Synchronization Manager, and PAM components. In addition, the MIM generic connectors build 1.1.1301.0 includes updates for the Graph connector.
---
-## July 2020
-
-### As an IT Admin, I want to target client apps using Conditional Access
-
-**Type:** Plan for change
-**Service category:** Conditional Access
-**Product capability:** Identity Security & Protection
-
-With the GA release of the client apps condition in Conditional Access, new policies will now apply by default to all client applications. This includes legacy authentication clients. Existing policies will remain unchanged, but the *Configure Yes/No* toggle will be removed from existing policies to easily see which client apps are applied to by the policy.
-
-When creating a new policy, make sure to exclude users and service accounts that are still using legacy authentication; if you don't, they'll be blocked. [Learn more](../conditional-access/concept-conditional-access-conditions.md).
-
--
-### Upcoming SCIM compliance fixes
-
-**Type:** Plan for change
-**Service category:** App Provisioning
-**Product capability:** Identity Lifecycle Management
-
-The Azure AD provisioning service uses the SCIM standard for integrating with applications. Our implementation of the SCIM standard is evolving, and we expect to make changes to our behavior around how we perform PATCH operations and set the property "active" on a resource. [Learn more](../app-provisioning/application-provisioning-config-problem-scim-compatibility.md).
-
--
-### Group owner setting on Azure Admin portal will be changed
-
-**Type:** Plan for change
-**Service category:** Group Management
-**Product capability:** Collaboration
-
-Owner settings on Groups general setting page can be configured to restrict owner assignment privileges to a limited group of users in the Azure Admin portal and Access Panel. We'll soon have the ability to assign group owner privilege not only on these two UX portals but also enforce the policy on the backend to provide consistent behavior across endpoints, such as PowerShell and Microsoft Graph.
-
-We'll start to disable the current setting for the customers who aren't using it and will offer an option to scope users for group owner privilege in the next few months. For guidance on updating group settings, see Edit your group information using [Azure Active Directory](./active-directory-groups-settings-azure-portal.md?context=azure%2factive-directory%2fusers-groups-roles%2fcontext%2fugr-context).
---
-### Azure Active Directory Registration Service is ending support for TLS 1.0 and 1.1
-
-**Type:** Plan for change
-**Service category:** Device Registration and Management
-**Product capability:** Platform
-
-Transport layer security (TLS) 1.2 and update servers and clients will soon communicate with Azure Active Directory Device Registration Service. Support for TLS 1.0 and 1.1 for communication with Azure AD Device Registration service will retire:
-- On August 31, 2020, in all sovereign clouds (GCC High, DoD, etc.)-- On October 30, 2020, in all commercial clouds-
-[Learn more](../devices/reference-device-registration-tls-1-2.md) about TLS 1.2 for the Azure AD Registration Service.
---
-### Windows Hello for Business Sign Ins visible in Azure AD Sign In Logs
-
-**Type:** Fixed
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-Windows Hello for Business allows end users to sign into Windows machines with a gesture (such as a PIN or biometric). Azure AD admins may want to differentiate Windows Hello for Business sign-ins from other Windows sign-ins as part of an organization's journey to passwordless authentication.
-
-Admins can now see whether a Windows authentication used Windows Hello for Business by checking the Authentication Details tab for a Windows sign-in event in the Azure AD sign-ins blade in the Azure portal. Windows Hello for Business authentications will include "WindowsHelloForBusiness" in the Authentication Method field. For more information on interpreting Sign-In Logs, please see the [Sign-In Logs documentation](../reports-monitoring/concept-sign-ins.md).
-
--
-### Fixes to group deletion behavior and performance improvements
-
-**Type:** Fixed
-**Service category:** App Provisioning
-**Product capability:** Identity Lifecycle Management
-
-Previously, when a group changed from "in-scope" to "out-of-scope" and an admin clicked restart before the change was completed, the group object wasn't being deleted. Now the group object will be deleted from the target application when it goes out of scope (disabled, deleted, unassigned, or didn't pass scoping filter). [Learn more](../app-provisioning/how-provisioning-works.md#incremental-cycles).
-
--
-### Public Preview: Admins can now add custom content in the email to reviewers when creating an access review
-
-**Type:** New feature
-**Service category:** Access Reviews
-**Product capability:** Identity Governance
-
-When a new access review is created, the reviewer receives an email requesting them to complete the access review. Many of our customers asked for the ability to add custom content to the email, such as contact information, or other additional supporting content to guide the reviewer.
-
-Now available in public preview, administrators can specify custom content in the email sent to reviewers by adding content in the "advanced" section of Azure AD Access Reviews. For guidance on creating access reviews, see [Create an access review of groups and applications in Azure AD access reviews](../governance/create-access-review.md).
-
--
-### Authorization Code Flow for Single-page apps available
-
-**Type:** New feature
-**Service category:** Authentications (Logins)
-**Product capability:** Developer Experience
-
-Because of modern browser 3rd party cookie restrictions such as Safari ITP, SPAs will have to use the authorization code flow rather than the implicit flow to maintain SSO, and MSAL.js v 2.x will now support the authorization code flow.
-
-There are corresponding updates to the Azure portal so you can update your SPA to be type "spa" and use the auth code flow. See [Sign in users and get an access token in a JavaScript SPA using the auth code flow](../develop/quickstart-v2-javascript-auth-code.md) for further guidance.
-
--
-### Azure AD Application Proxy now supports the Remote Desktop Services Web Client
-
-**Type:** New feature
-**Service category:** App Proxy
-**Product capability:** Access Control
-
-Azure AD Application Proxy now supports the Remote Desktop Services (RDS) Web Client. The RDS web client allows users to access Remote Desktop infrastructure through any HTLM5-capable browser such as Microsoft Edge, Internet Explorer 11, Google Chrome, etc. Users can interact with remote apps or desktops like they would with a local device from anywhere. By using Azure AD Application Proxy you can increase the security of your RDS deployment by enforcing pre-authentication and Conditional Access policies for all types of rich client apps. For guidance, see [Publish Remote Desktop with Azure AD Application Proxy](../app-proxy/application-proxy-integrate-with-remote-desktop-services.md).
-
--
-### Next generation Azure AD B2C user flows in public preview
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-Simplified user flow experience offers feature parity with preview features and is the home for all new features. Users will be able to enable new features within the same user flow, reducing the need to create multiple versions with every new feature release. Lastly, the new, user-friendly UX simplifies the selection and creation of user flows. Try it now by [creating a user flow](../../active-directory-b2c/tutorial-create-user-flows.md).
-
-For more information about users flows, see [User flow versions in Azure Active Directory B2C](../../active-directory-b2c/user-flow-versions.md).
---
-### New Federated Apps available in Azure AD Application gallery - July 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In July 2020 we have added following 55 new applications in our App gallery with Federation support:
-
-[Appreiz](https://microsoftteams.appreiz.com/), [Inextor Vault](https://inexto.com/inexto-suite/inextor), [Beekast](https://my.beekast.com/), [Templafy OpenID Connect](https://app.templafy.com/), [PeterConnects receptionist](https://msteams.peterconnects.com/), [AlohaCloud](https://www.alohacloud.com/), Control Tower, [Cocoom](https://start.cocoom.com/), [COINS Construction Cloud](https://sso.coinsconstructioncloud.com/#login/), [Medxnote MT](https://task.teamsmain.medx.im/authorization), [Reflekt](https://reflekt.konsolute.com/login), [Rever](https://app.reverscore.net/access), [MyCompanyArchive](https://login.mycompanyarchive.com/), [GReminders](https://app.greminders.com/o365-oauth), [Titanfile](../saas-apps/titanfile-tutorial.md), [Wootric](../saas-apps/wootric-tutorial.md), [SolarWinds Orion](https://support.solarwinds.com/SuccessCenter/s/orion-platform?language=en_US), [OpenText Directory Services](../saas-apps/opentext-directory-services-tutorial.md), [Datasite](../saas-apps/datasite-tutorial.md), [BlogIn](../saas-apps/blogin-tutorial.md), [IntSights](../saas-apps/intsights-tutorial.md), [kpifire](../saas-apps/kpifire-tutorial.md), [Textline](../saas-apps/textline-tutorial.md), [Cloud Academy - SSO](../saas-apps/cloud-academy-sso-tutorial.md), [Community Spark](../saas-apps/community-spark-tutorial.md), [Chatwork](../saas-apps/chatwork-tutorial.md), [CloudSign](../saas-apps/cloudsign-tutorial.md), [C3M Cloud Control](../saas-apps/c3m-cloud-control-tutorial.md), [SmartHR](https://smarthr.jp/), [NumlyEngage&trade;](../saas-apps/numlyengage-tutorial.md), [Michigan Data Hub Single Sign-On](../saas-apps/michigan-data-hub-single-sign-on-tutorial.md), [Egress](../saas-apps/egress-tutorial.md), [SendSafely](../saas-apps/sendsafely-tutorial.md), [Eletive](https://app.eletive.com/), [Right-Hand Cybersecurity ADI](https://right-hand.ai/), [Fyde Enterprise Authentication](https://enterprise.fyde.com/), [Verme](../saas-apps/verme-tutorial.md), [Lenses.io](../saas-apps/lensesio-tutorial.md), [Momenta](../saas-apps/momenta-tutorial.md), [Uprise](https://app.uprise.co/sign-in), [Q](https://www.moduleq.com/), [CloudCords](../saas-apps/cloudcords-tutorial.md), [TellMe Bot](https://tellme365liteweb.azurewebsites.net/), [Inspire](https://app.inspiresoftware.com/), [Maverics Identity Orchestrator SAML Connector](https://www.strata.io/identity-fabric/), [Smartschool (School Management System)](https://smartschoolz.com/login), [Zepto - Intelligent timekeeping](https://user.zepto-ai.com/signin), [Studi.ly](https://studi.ly/), [Trackplan](http://www.trackplanfm.com/), [Skedda](../saas-apps/skedda-tutorial.md), [WhosOnLocation](../saas-apps/whos-on-location-tutorial.md), [Coggle](../saas-apps/coggle-tutorial.md), [Kemp LoadMaster](https://kemptechnologies.com/cloud-load-balancer/), [BrowserStack Single Sign-on](../saas-apps/browserstack-single-sign-on-tutorial.md)
-
-You can also find the documentation of all the applications from here https://aka.ms/AppsTutorial
-
-For listing your application in the Azure AD app gallery, please read the details here https://aka.ms/AzureADAppRequest
---
-### View role assignments across all scopes and ability to download them to a csv file
-
-**Type:** Changed feature
-**Service category:** Azure AD roles
-**Product capability:** Access Control
-
-You can now view role assignments across all scopes for a role in the "Roles and administrators" tab in the Azure portal. You can also download those role assignments for each role into a CSV file. For guidance on viewing and adding role assignments, see [View and assign administrator roles in Azure Active Directory](../roles/manage-roles-portal.md).
-
--
-### Azure Active Directory Multi-Factor Authentication Software Development (Azure MFA SDK) Deprecation
-
-**Type:** Deprecated
-**Service category:** MFA
-**Product capability:** Identity Security & Protection
-
-The Azure Active Directory Multi-Factor Authentication Software Development (Azure MFA SDK) reached the end of life on November 14th, 2018, as first announced in November 2017. Microsoft will be shutting down the SDK service effective on September 30th, 2020. Any calls made to the SDK will fail.
-
-If your organization is using the Azure MFA SDK, you need to migrate by September 30th, 2020:
-- Azure MFA SDK for MIM: If you use the SDK with MIM, you should migrate to Azure AD Multi-Factor Authentication (MFA) Server and activate Privileged Access Management (PAM) following these [instructions](/microsoft-identity-manager/working-with-mfaserver-for-mim). -- Azure MFA SDK for customized apps: Consider integrating your app into Azure AD and use Conditional Access to enforce MFA. To get started, review this [page](../manage-apps/plan-an-application-integration.md). ---
-## June 2020
-
-### User risk condition in Conditional Access policy
-
-**Type:** Plan for change
-**Service category:** Conditional Access
-**Product capability:** Identity Security & Protection
-
-
-User risk support in Azure AD Conditional Access policy allows you to create multiple user risk-based policies. Different minimum user risk levels can be required for different users and apps. Based on user risk, you can create policies to block access, require multifactor authentication, secure password change, or redirect to Microsoft Cloud App Security to enforce session policy, such as additional auditing.
-
-The user risk condition requires Azure AD Premium P2 because it uses Azure Identity Protection, which is a P2 offering. for more information about conditional access, refer to [Azure AD Conditional Access documentation](../conditional-access/index.yml).
---
-### SAML SSO now supports apps that require SPNameQualifier to be set when requested
-
-**Type:** Fixed
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-Some SAML applications require SPNameQualifier to be returned in the assertion subject when requested. Now Azure AD responds correctly when a SPNameQualifier is requested in the request NameID policy. This also works for SP initiated sign-in, and IdP initiated sign-in will follow.
---
-### Azure AD B2B Collaboration supports inviting MSA and Google users in Azure Government tenants
-
-**Type:** New feature
-**Service category:** B2B
-**Product capability:** B2B/B2C
-
-
-Azure Government tenants using the B2B collaboration features can now invite users that have a Microsoft or Google account. To find out if your tenant can use these capabilities, follow the instructions at [How can I tell if B2B collaboration is available in my Azure US Government tenant?](../external-identities/b2b-government-national-clouds.md#how-can-i-tell-if-b2b-collaboration-is-available-in-my-azure-us-government-tenant).
-
-
-
-
-### User object in MS Graph v1 now includes externalUserState and externalUserStateChangedDateTime properties
-
-**Type:** New feature
-**Service category:** B2B
-**Product capability:** B2B/B2C
-
-
-The externalUserState and externalUserStateChangedDateTime properties can be used to find invited B2B guests who have not accepted their invitations yet as well as build automation such as deleting users who haven't accepted their invitations after some number of days. These properties are now available in MS Graph v1. For guidance on using these properties, refer to [User resource type](/graph/api/resources/user).
-
--
-### Manage authentication sessions in Azure AD Conditional Access is now generally available
-
-**Type:** New feature
-**Service category:** Conditional Access
-**Product capability:** Identity Security & Protection
-
-Authentication session management capabilities allow you to configure how often your users need to provide sign-in credentials and whether they need to provide credentials after closing and reopening browsers to offer more security and flexibility in your environment.
-
-Additionally, authentication session management used to only apply to the First Factor Authentication on Azure AD joined, Hybrid Azure AD joined, and Azure AD registered devices. Now authentication session management will apply to multifactor authentication (MFA) as well. For more information, see [Configure authentication session management with Conditional Access](../conditional-access/howto-conditional-access-session-lifetime.md).
---
-### New Federated Apps available in Azure AD Application gallery - June 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In June 2020 we've added the following 29 new applications in our App gallery with Federation support:
-
-[Shopify Plus](../saas-apps/shopify-plus-tutorial.md), [Ekarda](../saas-apps/ekarda-tutorial.md), [MailGates](../saas-apps/mailgates-tutorial.md), [BullseyeTDP](../saas-apps/bullseyetdp-tutorial.md), [Raketa](../saas-apps/raketa-tutorial.md), [Segment](../saas-apps/segment-tutorial.md), [Ai Auditor](https://www.mindbridge.ai/products/ai-auditor/), [Pobuca Connect](https://app.pobu.c), [Smallstep SSH](https://smallstep.com/sso-ssh/)
-
-You can also find the documentation of all the applications from here https://aka.ms/AppsTutorial.
-For listing your application in the Azure AD app gallery, please read the details here: https://aka.ms/AzureADAppRequest.
---
-### API connectors for External Identities self-service sign-up are now in public preview
-
-**Type:** New feature
-**Service category:** B2B
-**Product capability:** B2B/B2C
-
-External Identities API connectors enable you to leverage web APIs to integrate self-service sign-up with external cloud systems. This means you can now invoke web APIs as specific steps in a sign-up flow to trigger cloud-based custom workflows. For example, you can use API connectors to:
--- Integrate with a custom approval workflows.-- Perform identity proofing-- Validate user input data-- Overwrite user attributes-- Run custom business logic-
-For more information about all of the experiences possible with API connectors, see [Use API connectors to customize and extend self-service sign-up](../external-identities/api-connectors-overview.md), or [Customize External Identities self-service sign-up with web API integrations](https://techcommunity.microsoft.com/t5/azure-active-directory-identity/customize-external-identities-self-service-sign-up-with-web-api/ba-p/1257364#.XvNz2fImuQg.linkedin).
-
--
-### Provision on-demand and get users into your apps in seconds
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** Identity Lifecycle Management
-
-The Azure AD provisioning service currently operates on a cyclic basis. The service runs every 40 mins. The [on-demand provisioning capability](https://aka.ms/provisionondemand) allows you to pick a user and provision them in seconds. This capability allows you to quickly troubleshoot provisioning issues, without having to do a restart to force the provisioning cycle to start again.
-
--
-### New permission for using Azure AD entitlement management in Graph
-
-**Type:** New feature
-**Service category:** Other
-**Product capability:** Entitlement Management
-
-A new delegated permission EntitlementManagement.Read.All is now available for use with the Entitlement Management API in Microsoft Graph beta. To find out more about the available APIs, see [Working with the Azure AD entitlement management API](/graph/api/resources/entitlementmanagement-overview).
---
-### Identity Protection APIs available in v1.0
-
-**Type:** New feature
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
-The riskyUsers and riskDetections Microsoft Graph APIs are now generally available. Now that they're available at the v1.0 endpoint, we invite you to use them in production. For more information, please check out the [Microsoft Graph docs](/graph/api/resources/identityprotectionroot).
-
--
-### Sensitivity labels to apply policies to Microsoft 365 groups is now generally available
-
-**Type:** New feature
-**Service category:** Group Management
-**Product capability:** Collaboration
-
-
-You can now create sensitivity labels and use the label settings to apply policies to Microsoft 365 groups, including privacy (Public or Private) and external user access policy. You can create a label with the privacy policy to be Private, and external user access policy to not allow to add guest users. When a user applies this label to a group, the group will be private, and no guest users are allowed to be added to the group.
-
-Sensitivity labels are important to protect your business-critical data and enable you to manage groups at scale, in a compliant and secure fashion. For guidance on using sensitivity labels, refer to [Assign sensitivity labels to Microsoft 365 groups in Azure Active Directory (preview)](../enterprise-users/groups-assign-sensitivity-labels.md).
-
--
-### Updates to support for Microsoft Identity Manager for Azure AD Premium customers
-
-**Type:** Changed feature
-**Service category:** Microsoft Identity Manager
-**Product capability:** Identity Lifecycle Management
-
-Azure Support is now available for Azure AD integration components of Microsoft Identity Manager 2016, through the end of Extended Support for Microsoft Identity Manager 2016. Read more at [Support update for Azure AD Premium customers using Microsoft Identity Manager](/microsoft-identity-manager/support-update-for-azure-active-directory-premium-customers).
---
-### The use of group membership conditions in SSO claims configuration is increased
-
-**Type:** Changed feature
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-Previously, the number of groups you could use when you conditionally change claims based on group membership within any single application configuration was limited to 10. The use of group membership conditions in SSO claims configuration has now increased to a maximum of 50 groups. For more information on how to configure claims, refer to [Enterprise Applications SSO claims configuration](../develop/active-directory-saml-claims-customization.md).
---
-### Enabling basic formatting on the Sign In Page Text component in Company Branding.
-
-**Type:** Changed feature
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-The Company Branding functionality on the Azure AD/Microsoft 365 login experience has been updated to allow the customer to add hyperlinks and simple formatting, including bold font, underline, and italics. For guidance on using this functionality, see [Add branding to your organization's Azure Active Directory sign-in page](./customize-branding.md).
---
-### Provisioning performance improvements
-
-**Type:** Changed feature
-**Service category:** App Provisioning
-**Product capability:** Identity Lifecycle Management
-
-The provisioning service has been updated to reduce the time for an [incremental cycle](../app-provisioning/how-provisioning-works.md#incremental-cycles) to complete. This means that users and groups will be provisioned into their applications faster than they were previously. All new provisioning jobs created after 6/10/2020 will automatically benefit from the performance improvements. Any applications configured for provisioning before 6/10/2020 will need to restart once after 6/10/2020 to take advantage of the performance improvements.
---
-### Announcing the deprecation of ADAL and MS Graph Parity
-
-**Type:** Deprecated
-**Service category:** N/A
-**Product capability:** Device Lifecycle Management
-
-Now that Microsoft Authentication Libraries (MSAL) is available, we'll no longer add new features to the Azure Active Directory Authentication Libraries (ADAL) and will end security patches on June 30th, 2022. For more information on how to migrate to MSAL, refer to [Migrate applications to Microsoft Authentication Library (MSAL)](../develop/msal-migration.md).
-
-Additionally, we've finished the work to make all Azure AD Graph functionality available through MS Graph. So, Azure AD Graph APIs will receive only bugfix and security fixes through June 30th, 2022. For more information, see [Update your applications to use Microsoft Authentication Library and Microsoft Graph API](https://techcommunity.microsoft.com/t5/azure-active-directory-identity/update-your-applications-to-use-microsoft-authentication-library/ba-p/1257363)
-
-
-## May 2020
-
-### Retirement of properties in signIns, riskyUsers, and riskDetections APIs
-
-**Type:** Plan for change
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
-Currently, enumerated types are used to represent the riskType property in both the riskDetections API and riskyUserHistoryItem (in preview). Enumerated types are also used for the riskEventTypes property in the signIns API. Going forward we'll represent these properties as strings.
-
-Customers should transition to the riskEventType property in the beta riskDetections and riskyUserHistoryItem API, and to riskEventTypes_v2 property in the beta signIns API by September 9th, 2020. At that date, we'll be retiring the current riskType and riskEventTypes properties. For more information, refer to [Changes to risk event properties and Identity Protection APIs on Microsoft Graph](https://developer.microsoft.com/graph/blogs/changes-to-risk-event-properties-and-identity-protection-apis-on-microsoft-graph/).
-
-
-
-### Deprecation of riskEventTypes property in signIns v1.0 API on Microsoft Graph
-
-**Type:** Plan for change
-**Service category:** Reporting
-**Product capability:** Identity Security & Protection
-
-Enumerated types will switch to string types when representing risk event properties in Microsoft Graph September 2020. In addition to impacting the preview APIs, this change will also impact the in-production signIns API.
-
-We have introduced a new riskEventsTypes_v2 (string) property to the signIns v1.0 API. We'll retire the current riskEventTypes (enum) property on June 11, 2022 in accordance with our Microsoft Graph deprecation policy. Customers should transition to the riskEventTypes_v2 property in the v1.0 signIns API by June 11, 2022. For more information, see [Deprecation of riskEventTypes property in signIns v1.0 API on Microsoft Graph](https://developer.microsoft.com/graph/blogs/deprecation-of-riskeventtypes-property-in-signins-v1-0-api-on-microsoft-graph//).
-
-
-
-### Upcoming changes to multifactor authentication (MFA) email notifications
-
-**Type:** Plan for change
-**Service category:** MFA
-**Product capability:** Identity Security & Protection
-
-
-We're making the following changes to the email notifications for cloud multifactor authentication (MFA):
-
-E-mail notifications will be sent from the following address: azure-noreply@microsoft.com and msonlineservicesteam@microsoftonline.com. We're updating the content of fraud alert emails to better indicate the required steps to unblock uses.
---
-### New self-service sign up for users in federated domains who can't access Microsoft Teams because they aren't synced to Azure Active Directory.
-
-**Type:** Plan for change
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-
-Currently, users who are in domains federated in Azure AD, but who aren't synced into the tenant, can't access Teams. Starting at the end of June, this new capability will enable them to do so by extending the existing email verified sign-up feature. This will allow users who can sign in to a federated IdP, but who don't yet have a user object in Azure ID, to have a user object created automatically and be authenticated for Teams. Their user object will be marked as "self-service sign-up." This is an extension of the existing capability to do email verified self-sign up that users in managed domains can do and can be controlled using the same flag. This change will complete rolling out during the following two months. Watch for documentation updates [here](../enterprise-users/directory-self-service-signup.md).
-
--
-### Upcoming fix: The OIDC discovery document for the Azure Government cloud is being updated to reference the correct Graph endpoints.
-
-**Type:** Plan for change
-**Service category:** Sovereign Clouds
-**Product capability:** User Authentication
-
-Starting in June, the OIDC discovery document [Microsoft identity platform and OpenID Connect protocol](../develop/v2-protocols-oidc.md) on the [Azure Government cloud](../develop/authentication-national-cloud.md) endpoint (login.microsoftonline.us), will begin to return the correct [National cloud graph](/graph/deployments) endpoint (https://graph.microsoft.us or https://dod-graph.microsoft.us), based on the tenant provided. It currently provides the incorrect Graph endpoint (graph.microsoft.com) "msgraph_host" field.
-
-This bug fix will be rolled out gradually over approximately 2 months.
---
-### Azure Government users will no longer be able to sign in on login.microsoftonline.com
-
-**Type:** Plan for Change
-**Service category:** Sovereign Clouds
-**Product capability:** User Authentication
-
-On 1 June 2018, the official Azure Active Directory (Azure AD) Authority for Azure Government changed from https://login-us.microsoftonline.com to https://login.microsoftonline.us. If you own an application within an Azure Government tenant, you must update your application to sign users in on the.us endpoint.
-
-Starting May 5th, Azure AD will begin enforcing the endpoint change, blocking Azure Government users from signing into apps hosted in Azure Government tenants using the public endpoint (microsoftonline.com). Impacted apps will begin seeing an error AADSTS900439 - USGClientNotSupportedOnPublicEndpoint.
-
-There will be a gradual rollout of this change with enforcement expected to be complete across all apps June 2020. For more details, please see the [Azure Government blog post](https://devblogs.microsoft.com/azuregov/azure-government-aad-authority-endpoint-update/).
---
-### SAML Single Logout request now sends NameID in the correct format
-
-**Type:** Fixed
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-When a user clicks on sign-out (for example, in the MyApps portal), Azure AD sends a SAML Single Logout message to each app that is active in the user session and has a Logout URL configured. These messages contain a NameID in a persistent format.
-
-If the original SAML sign-in token used a different format for NameID (for example, email/UPN), then the SAML app cannot correlate the NameID in the logout message to an existing session (as the NameIDs used in both messages are different), which caused the logout message to be discarded by the SAML app and the user to stay logged in. This fix makes the sign-out message consistent with the NameID configured for the application.
---
-### Hybrid Identity Administrator role is now available with Cloud Provisioning
-
-**Type:** New feature
-**Service category:** Azure AD Cloud Provisioning
-**Product capability:** Identity Lifecycle Management
-
-IT Admins can start using the new "Hybrid Admin" role as the least privileged role for setting up Azure AD Connect Cloud Provisioning. With this new role, you no longer have to use the Global Administrator role to set up and configure Cloud Provisioning. [Learn more](../roles/delegate-by-task.md#connect).
-
--
-### New Federated Apps available in Azure AD Application gallery - May 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In May 2020, we've added the following 36 new applications in our App gallery with Federation support:
-
-[Moula](https://moula.com.au/pay/merchants), [Surveypal](https://www.surveypal.com/app), [Kbot365](https://www.konverso.ai/), [Powell Teams](https://powell-software.com/en/powell-teams-en/), [Talentsoft Assistant](https://msteams.talent-soft.com/), [ASC Recording Insights](https://teams.asc-recording.app/product), [GO1](https://www.go1.com/), [B-Engaged](https://b-engaged.se/), [Competella Contact Center Workgroup](http://www.competella.com/), [Asite](http://www.asite.com/), [ImageSoft Identity](https://identity.imagesoftinc.com/), [My IBISWorld](https://identity.imagesoftinc.com/), [insuite](../saas-apps/insuite-tutorial.md), [Change Process Management](../saas-apps/change-process-management-tutorial.md), [Cyara CX Assurance Platform](../saas-apps/cyara-cx-assurance-platform-tutorial.md), [Smart Global Governance](../saas-apps/smart-global-governance-tutorial.md), [Prezi](../saas-apps/prezi-tutorial.md), [Mapbox](../saas-apps/mapbox-tutorial.md), [Datava Enterprise Service Platform](../saas-apps/datava-enterprise-service-platform-tutorial.md), [Whimsical](../saas-apps/whimsical-tutorial.md), [Trelica](../saas-apps/trelica-tutorial.md), [EasySSO for Confluence](../saas-apps/easysso-for-confluence-tutorial.md), [EasySSO for BitBucket](../saas-apps/easysso-for-bitbucket-tutorial.md), [EasySSO for Bamboo](../saas-apps/easysso-for-bamboo-tutorial.md), [Torii](../saas-apps/torii-tutorial.md), [Axiad Cloud](../saas-apps/axiad-cloud-tutorial.md), [Humanage](../saas-apps/humanage-tutorial.md), [ColorTokens ZTNA](../saas-apps/colortokens-ztna-tutorial.md), [CCH Tagetik](../saas-apps/cch-tagetik-tutorial.md), [ShareVault](../saas-apps/sharevault-tutorial.md), [Vyond](../saas-apps/vyond-tutorial.md), [TextExpander](../saas-apps/textexpander-tutorial.md), [Anyone Home CRM](../saas-apps/anyone-home-crm-tutorial.md), [askSpoke](../saas-apps/askspoke-tutorial.md), [ice Contact Center](../saas-apps/ice-contact-center-tutorial.md)
-
-You can also find the documentation of all the applications from here https://aka.ms/AppsTutorial.
-
-For listing your application in the Azure AD app gallery, please read the details here https://aka.ms/AzureADAppRequest.
---
-### Report-only mode for Conditional Access is now generally available
-
-**Type:** New feature
-**Service category:** Conditional Access
-**Product capability:** Identity Security & Protection
-
-[Report-only mode for Azure AD Conditional Access](../conditional-access/concept-conditional-access-report-only.md) lets you evaluate the result of a policy without enforcing access controls. You can test report-only policies across your organization and understand their impact before enabling them, making deployment safer and easier. Over the past few months, we've seen strong adoption of report-only modeΓÇöover 26M users are already in scope of a report-only policy. With the announcement today, new Azure AD Conditional Access policies will be created in report-only mode by default. This means you can monitor the impact of your policies from the moment they're created. And for those of you who use the MS Graph APIs, you can [manage report-only policies programmatically](/graph/api/resources/conditionalaccesspolicy) as well.
---
-### Self-service sign up for guest users
-
-**Type:** New feature
-**Service category:** B2B
-**Product capability:** B2B/B2C
-
-With External Identities in Azure AD, you can allow people outside your organization to access your apps and resources while letting them sign in using whatever identity they prefer. When sharing an application with external users, you might not always know in advance who will need access to the application. With [self-service sign-up](../external-identities/self-service-sign-up-overview.md), you can enable guest users to sign up and gain a guest account for your line of business (LOB) apps. The sign-up flow can be created and customized to support Azure AD and social identities. You can also collect additional information about the user during sign-up.
---
- ### Conditional Access Insights and Reporting workbook is generally available
-
-**Type:** New feature
-**Service category:** Conditional Access
-**Product capability:** Identity Security & Protection
-
-The [insights and reporting workbook](../conditional-access/howto-conditional-access-insights-reporting.md) gives admins a summary view of Azure AD Conditional Access in their tenant. With the capability to select an individual policy, admins can better understand what each policy does and monitor any changes in real time. The workbook streams data stored in Azure Monitor, which you can set up in a few minutes [following these instructions](../reports-monitoring/howto-integrate-activity-logs-with-log-analytics.md). To make the dashboard more discoverable, we've moved it to the new insights and reporting tab within the Azure AD Conditional Access menu.
---
-### Policy details blade for Conditional Access is in public preview
-
-**Type:** New feature
-**Service category:** Conditional Access
-**Product capability:** Identity Security & Protection
-
-The new [policy details blade](../conditional-access/troubleshoot-conditional-access.md) displays the assignments, conditions, and controls satisfied during conditional access policy evaluation. You can access the blade by selecting a row in the Conditional Access or Report-only tabs of the Sign-in details.
---
-### New query capabilities for Directory Objects in Microsoft Graph are in Public Preview
-
-**Type:** New feature
-**Service category:** MS Graph
-**Product capability:** Developer Experience
-
-New capabilities are being introduced for Microsoft Graph Directory Objects APIs, enabling Count, Search, Filter, and Sort operations. This will give developers the ability to quickly query our Directory Objects without workarounds such as in-memory filtering and sorting. Find out more in this [blog post](https://aka.ms/CountFilterMSGraphAAD).
-
-We're currently in Public Preview, looking for feedback. Please send your comments with this [brief survey](https://aka.ms/MsGraphAADSurveyDocs).
---
-### Configure SAML-based single sign-on using Microsoft Graph API (Beta)
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-Support for creating and configuring an application from the Azure AD Gallery using MS Graph APIs in Beta is now available.
-If you need to set up SAML-based single sign-on for multiple instances of an application, save time by using the Microsoft Graph APIs to [automate the configuration of SAML-based single sign-on](/graph/application-saml-sso-configure-api).
-
--
-### New provisioning connectors in the Azure AD Application Gallery - May 2020
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** 3rd Party Integration
-
-You can now automate creating, updating, and deleting user accounts for these newly integrated apps:
-
-* [8x8](../saas-apps/8x8-provisioning-tutorial.md)
-* [Juno Journey](../saas-apps/juno-journey-provisioning-tutorial.md)
-* [MediusFlow](../saas-apps/mediusflow-provisioning-tutorial.md)
-* [New Relic by Organization](../saas-apps/new-relic-by-organization-provisioning-tutorial.md)
-* [Oracle Cloud Infrastructure Console](../saas-apps/oracle-cloud-infrastructure-console-provisioning-tutorial.md)
-
-For more information about how to better secure your organization by using automated user account provisioning, see [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md).
---
-### SAML Token Encryption is Generally Available
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-[SAML token encryption](../manage-apps/howto-saml-token-encryption.md) allows applications to be configured to receive encrypted SAML assertions. The feature is now generally available in all clouds.
-
--
-### Group name claims in application tokens is Generally Available
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-The group claims issued in a token can now be limited to just those groups assigned to the application. This is especially important when users are members of large numbers of groups and there was a risk of exceeding token size limits. With this new capability in place, the ability to [add group names to tokens](../hybrid/how-to-connect-fed-group-claims.md) is generally available.
-
--
-### Workday Writeback now supports setting work phone number attributes
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** Identity Lifecycle Management
-
-We have enhanced the Workday Writeback provisioning app to now support writeback of work phone number and mobile number attributes. In addition to email and username, you can now configure the Workday Writeback provisioning app to flow phone number values from Azure AD to Workday. For more details on how to configure phone number writeback, refer to the [Workday Writeback](../saas-apps/workday-writeback-tutorial.md) app tutorial.
---
-### Publisher Verification (preview)
-
-**Type:** New feature
-**Service category:** Other
-**Product capability:** Developer Experience
-
-Publisher verification (preview) helps admins and end users understand the authenticity of application developers integrating with the Microsoft identity platform. For details, refer to [Publisher verification (preview)](../develop/publisher-verification-overview.md).
-
--
-### Authorization Code Flow for Single-page apps
-
-**Type:** Changed feature
-**Service category:** Authentication
-**Product capability:** Developer Experience
-
-Because of modern browser [3rd party cookie restrictions such as Safari ITP](../develop/reference-third-party-cookies-spas.md), SPAs will have to use the authorization code flow rather than the implicit flow to maintain SSO; MSAL.js v 2.x will now support the authorization code flow. There as corresponding updates to the Azure portal so you can update your SPA to be type "spa" and use the auth code flow. For guidance, refer to [Quickstart: Sign in users and get an access token in a JavaScript SPA using the auth code flow](../develop/quickstart-v2-javascript-auth-code.md).
---
-### Improved Filtering for Devices is in Public Preview
-
-**Type:** Changed Feature
-**Service category:** Device Management
-**Product capability:** Device Lifecycle Management
-
-Previously, the only filters you could use were "Enabled" and "Activity date." Now, you can [filter your list of devices on more properties](../devices/device-management-azure-portal.md#view-and-filter-your-devices-preview), including OS type, join type, compliance, and more. These additions should simplify locating a particular device.
---
-### The new App registrations experience for Azure AD B2C is now generally available
-
-**Type:** Changed Feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** Identity Lifecycle Management
-
-The new App registrations experience for Azure AD B2C is now generally available.
-
-Previously, you had to manage your B2C consumer-facing applications separately from the rest of your apps using the legacy 'Applications' experience. That meant different app creation experiences across different places in Azure.
-
-The new experience shows all B2C app registrations and Azure AD app registrations in one place and provides a consistent way to manage them. Whether you need to manage a customer-facing app or an app that has access to Microsoft Graph to programmatically manage Azure AD B2C resources, you only need to learn one way to do things.
-
-You can reach the new experience by navigating the Azure AD B2C service and selecting the App registrations blade. The experience is also accessible from the Azure Active Directory service.
-
-The Azure AD B2C App registrations experience is based on the general [App Registration experience](https://developer.microsoft.com/identity/blogs/new-app-registrations-experience-is-now-generally-available/) for Azure AD tenants but is tailored for Azure AD B2C. The legacy "Applications" experience will be deprecated in the future.
-
-For more information, visit [The New app registration experience for Azure AD B2C](../../active-directory-b2c/app-registrations-training-guide.md).
--
-## April 2020
-
-### Combined security info registration experience is now generally available
-
-**Type:** New feature
-
-**Service category:** Authentications (Logins)
-
-**Product capability:** Identity Security & Protection
-
-The combined registration experience for Multi-Factor Authentication (MFA) and Self-Service Password Reset (SSPR) is now generally available. This new registration experience enables users to register for multifactor authentication (MFA) and SSPR in a single, step-by-step process. When you deploy the new experience for your organization, users can register in less time and with fewer hassles. Check out the blog post [here](https://bit.ly/3etiRyQ).
---
-### Continuous Access Evaluation
-
-**Type:** New feature
-
-**Service category:** Authentications (Logins)
-
-**Product capability:** Identity Security & Protection
-
-Continuous Access Evaluation is a new security feature that enables near real-time enforcement of policies on relying parties consuming Azure AD Access Tokens when events happen in Azure AD (such as user account deletion). We're rolling this feature out first for Teams and Outlook clients. For more details, please read our [blog](https://techcommunity.microsoft.com/t5/azure-active-directory-identity/moving-towards-real-time-policy-and-security-enforcement/ba-p/1276933) and [documentation](../conditional-access/concept-continuous-access-evaluation.md).
---
-### SMS Sign-in: Firstline Workers can sign in to Azure AD-backed applications with their phone number and no password
-
-**Type:** New feature
-
-**Service category:** Authentications (Logins)
-
-**Product capability:** User Authentication
-
-Office is launching a series of mobile-first business apps that cater to non-traditional organizations, and to employees in large organizations that don't use email as their primary communication method. These apps target frontline employees, deskless workers, field agents, or retail employees that may not get an email address from their employer, have access to a computer, or to IT. This project will let these employees sign in to business applications by entering a phone number and roundtripping a code. For more details, please see our [admin documentation](../authentication/howto-authentication-sms-signin.md) and [end user documentation](https://support.microsoft.com/account-billing/set-up-sms-sign-in-as-a-phone-verification-method-0aa5b3b3-a716-4ff2-b0d6-31d2bcfbac42).
---
-### Invite internal users to use B2B collaboration
-
-**Type:** New feature
-
-**Service category:** B2B
-
-**Product capability:**
-
-We're expanding B2B invitation capability to allow existing internal accounts to be invited to use B2B collaboration credentials going forward. This is done by passing the user object to the Invite API in addition to typical parameters like the invited email address. The user's object ID, UPN, group membership, app assignment, etc. remain intact, but going forward they'll use B2B to authenticate with their home tenant credentials rather than the internal credentials they used before the invitation. For details, see the [documentation](../external-identities/invite-internal-users.md).
---
-### Report-only mode for Conditional Access is now generally available
-
-**Type:** New feature
-
-**Service category:** Conditional Access
-
-**Product capability:** Identity Security & Protection
-
-[Report-only mode for Azure AD Conditional Access](../conditional-access/concept-conditional-access-report-only.md) lets you evaluate the result of a policy without enforcing access controls. You can test report-only policies across your organization and understand their impact before enabling them, making deployment safer and easier. Over the past few months, we've seen strong adoption of report-only mode, with over 26M users already in scope of a report-only policy. With this announcement, new Azure AD Conditional Access policies will be created in report-only mode by default. This means you can monitor the impact of your policies from the moment they're created. And for those of you who use the MS Graph APIs, you can also [manage report-only policies programmatically](/graph/api/resources/conditionalaccesspolicy).
---
-### Conditional Access insights and reporting workbook is generally available
-
-**Type:** New feature
-
-**Service category:** Conditional Access
-
-**Product capability:** Identity Security & Protection
-
-The Conditional Access [insights and reporting workbook](../conditional-access/howto-conditional-access-insights-reporting.md) gives admins a summary view of Azure AD Conditional Access in their tenant. With the capability to select an individual policy, admins can better understand what each policy does and monitor any changes in real time. The workbook streams data stored in Azure Monitor, which you can set up in a few minutes [following these instructions](../reports-monitoring/howto-integrate-activity-logs-with-log-analytics.md). To make the dashboard more discoverable, we've moved it to the new insights and reporting tab within the Azure AD Conditional Access menu.
---
-### Policy details blade for Conditional Access is in public preview
-
-**Type:** New feature
-
-**Service category:** Conditional Access
-
-**Product capability:** Identity Security & Protection
-
-The new [policy details blade](../conditional-access/troubleshoot-conditional-access.md) displays which assignments, conditions, and controls were satisfied during conditional access policy evaluation. You can access the blade by selecting a row in the **Conditional Access** or **Report-only** tabs of the Sign-in details.
---
-### New Federated Apps available in Azure AD App gallery - April 2020
-
-**Type:** New feature
-
-**Service category:** Enterprise Apps
-
-**Product capability:** 3rd Party Integration
-
-In April 2020, we've added these 31 new apps with Federation support to the app gallery:
-
-[SincroPool Apps](https://www.sincropool.com/), [SmartDB](https://hibiki.dreamarts.co.jp/smartdb/trial/), [Float](../saas-apps/float-tutorial.md), [LMS365](https://lms.365.systems/), [IWT Procurement Suite](../saas-apps/iwt-procurement-suite-tutorial.md), [Lunni](https://lunni.fi/), [EasySSO for Jira](../saas-apps/easysso-for-jira-tutorial.md), [Virtual Training Academy](https://vta.c3p.c)
-
-For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md).
---
-### Microsoft Graph delta query support for oAuth2PermissionGrant available for Public Preview
-
-**Type:** New feature
-
-**Service category:** MS Graph
-
-**Product capability:** Developer Experience
-
-Delta query for oAuth2PermissionGrant is available for public preview! You can now track changes without having to continuously poll Microsoft Graph. [Learn more.](/graph/api/oAuth2PermissionGrant-delta?tabs=http&view=graph-rest-beta&preserve-view=true)
---
-### Microsoft Graph delta query support for organizational contact generally available
-
-**Type:** New feature
-
-**Service category:** MS Graph
-
-**Product capability:** Developer Experience
-
-Delta query for organizational contacts is generally available! You can now track changes in production apps without having to continuously poll Microsoft Graph. Replace any existing code that continuously polls orgContact data by delta query to significantly improve performance. [Learn more.](/graph/api/orgcontact-delta?tabs=http)
---
-### Microsoft Graph delta query support for application generally available
-
-**Type:** New feature
-
-**Service category:** MS Graph
-
-**Product capability:** Developer Experience
-
-Delta query for applications is generally available! You can now track changes in production apps without having to continuously poll Microsoft Graph. Replace any existing code that continuously polls application data by delta query to significantly improve performance. [Learn more.](/graph/api/application-delta)
---
-### Microsoft Graph delta query support for administrative units available for Public Preview
-
-**Type:** New feature
-
-**Service category:** MS Graph
-
-**Product capability:** Developer Experience
-Delta query for administrative units is available for public preview! You can now track changes without having to continuously poll Microsoft Graph. [Learn more.](/graph/api/administrativeunit-delta?tabs=http&view=graph-rest-beta&preserve-view=true)
---
-### Manage authentication phone numbers and more in new Microsoft Graph beta APIs
-
-**Type:** New feature
-
-**Service category:** MS Graph
-
-**Product capability:** Developer Experience
-
-These APIs are a key tool for managing your users' authentication methods. Now you can programmatically pre-register and manage the authenticators used for multifactor authentication (MFA) and self-service password reset (SSPR). This has been one of the most-requested features in the Azure AD Multi-Factor Authentication (MFA), SSPR, and Microsoft Graph spaces. The new APIs we've released in this wave give you the ability to:
--- Read, add, update, and remove a user's authentication phones-- Reset a user's password-- Turn on and off SMS-sign-in-
-For more information, see [Azure AD authentication methods API overview](/graph/api/resources/authenticationmethods-overview).
---
-### Administrative Units Public Preview
-
-**Type:** New feature
-
-**Service category:** Azure AD roles
-
-**Product capability:** Access Control
-
-Administrative units allow you to grant admin permissions that are restricted to a department, region, or other segment of your organization that you define. You can use administrative units to delegate permissions to regional administrators or to set policy at a granular level. For example, a User account admin could update profile information, reset passwords, and assign licenses for users only in their administrative unit.
-
-Using administrative units, a central administrator could:
--- Create an administrative unit for decentralized management of resources-- Assign a role with administrative permissions over only Azure AD users in an administrative unit-- Populate the administrative units with users and groups as needed-
-For more information, see [Administrative units management in Azure Active Directory (preview)](../roles/administrative-units.md).
---
-### Printer Administrator and Printer Technician built-in roles
-
-**Type:** New feature
-
-**Service category:** Azure AD roles
-
-**Product capability:** Access Control
-
-**Printer Administrator**: Users with this role can register printers and manage all aspects of all printer configurations in the Microsoft Universal Print solution, including the Universal Print Connector settings. They can consent to all delegated print permission requests. Printer Administrators also have access to print reports.
-
-**Printer Technician**: Users with this role can register printers and manage printer status in the Microsoft Universal Print solution. They can also read all connector information. Key tasks a Printer Technician can't do are set user permissions on printers and sharing printers. [Learn more.](../roles/permissions-reference.md#printer-administrator)
---
-### Hybrid Identity Admin built-in role
-
-**Type:** New feature
-
-**Service category:** Azure AD roles
-
-**Product capability:** Access Control
-
-Users in this role can enable, configure and manage services and settings related to enabling hybrid identity in Azure AD. This role grants the ability to configure Azure AD to one of the three supported authentication methods&#8212;Password hash synchronization (PHS), Pass-through authentication (PTA) or Federation (AD FS or 3rd party federation provider)&#8212;and to deploy related on-premises infrastructure to enable them. On-premises infrastructure includes Provisioning and PTA agents. This role grants the ability to enable seamless single sign-on (S-SSO) to enable seamless authentication on non-Windows 10 devices or non-Windows Server 2016 computers. In addition, this role grants the ability to see sign-in logs and to access health and analytics for monitoring and troubleshooting purposes. [Learn more.](../roles/permissions-reference.md#hybrid-identity-administrator)
---
-### Network Administrator built-in role
-
-**Type:** New feature
-
-**Service category:** Azure AD roles
-
-**Product capability:** Access Control
-
-Users with this role can review network perimeter architecture recommendations from Microsoft that are based on network telemetry from their user locations. Network performance for Microsoft 365 relies on careful enterprise customer network perimeter architecture, which is generally user location-specific. This role allows for editing of discovered user locations and configuration of network parameters for those locations to facilitate improved telemetry measurements and design recommendations. [Learn more.](../roles/permissions-reference.md#network-administrator)
---
-### Bulk activity and downloads in the Azure portal experience
-
-**Type:** New feature
-
-**Service category:** User Management
-
-**Product capability:** Directory
-
-Now you can perform bulk activities on users and groups in Azure AD by uploading a CSV file in the Azure portal experience. You can create users, delete users, and invite guest users. And you can add and remove members from a group.
-
-You can also download lists of Azure AD resources from the Azure portal experience. You can download the list of users in the directory, the list of groups in the directory, and the members of a particular group.
-
-For more information, check out the following:
--- [Create users](../enterprise-users/users-bulk-add.md) or [invite guest users](../external-identities/tutorial-bulk-invite.md)-- [Delete users](../enterprise-users/users-bulk-delete.md) or [restore deleted users](../enterprise-users/users-bulk-restore.md)-- [Download list of users](../enterprise-users/users-bulk-download.md) or [Download list of groups](../enterprise-users/groups-bulk-download.md)-- [Add (import) members](../enterprise-users/groups-bulk-import-members.md) or [remove members](../enterprise-users/groups-bulk-remove-members.md) or [Download list of members](../enterprise-users/groups-bulk-download-members.md) for a group---
-### My Staff delegated user management
-
-**Type:** New feature
-
-**Service category:** User Management
-
-**Product capability:**
-
-My Staff enables Firstline Managers, such as a store manager, to ensure that their staff members are able to access their Azure AD accounts. Instead of relying on a central helpdesk, organizations can delegate common tasks, such as resetting passwords or changing phone numbers, to a Firstline Manager. With My Staff, a user who can't access their account can re-gain access in just a couple of selections, with no helpdesk or IT staff required. For more information, see the [Manage your users with My Staff (preview)](../roles/my-staff-configure.md) and [Delegate user management with My Staff (preview)](https://support.microsoft.com/account-billing/manage-front-line-users-with-my-staff-c65b9673-7e1c-4ad6-812b-1a31ce4460bd).
---
-### An upgraded end user experience in access reviews
-
-**Type:** Changed feature
-
-**Service category:** Access Reviews
-
-**Product capability:** Identity Governance
-
-We have updated the reviewer experience for Azure AD access reviews in the My Apps portal. At the end of April, your reviewers who are logged in to the Azure AD access reviews reviewer experience will see a banner that will allow them to try the updated experience in My Access. Note that the updated Access reviews experience offers the same functionality as the current experience, but with an improved user interface on top of new capabilities to enable your users to be productive. [You can learn more about the updated experience here](../governance/perform-access-review.md). This public preview will last until the end of July 2020. At the end of July, reviewers who haven't opted into the preview experience will be automatically directed to My Access to perform access reviews. If you wish to have your reviewers permanently switched over to the preview experience in My Access now, [please make a request here](https://forms.microsoft.com/Pages/ResponsePage.aspx?id=v4j5cvGGr0GRqy180BHbR5dv-S62099HtxdeKIcgO-NUOFJaRDFDWUpHRk8zQ1BWVU1MMTcyQ1FFUi4u).
---
-### Workday inbound user provisioning and writeback apps now support the latest versions of Workday Web Services API
-
-**Type:** Changed feature
-
-**Service category:** App Provisioning
-
-**Product capability:**
-
-Based on customer feedback, we've now updated the Workday inbound user provisioning and writeback apps in the enterprise app gallery to support the latest versions of the Workday Web Services (WWS) API. With this change, customers can specify the WWS API version that they would like to use in the connection string. This gives customers the ability to retrieve more HR attributes available in the releases of Workday. The Workday Writeback app now uses the recommended Change_Work_Contact_Info Workday web service to overcome the limitations of Maintain_Contact_Info.
-
-If no version is specified in the connection string, by default, the Workday inbound provisioning apps will continue to use WWS v21.1 To switch to the latest Workday APIs for inbound user provisioning, customers need to update the connection string as documented [in the tutorial](../saas-apps/workday-inbound-tutorial.md#which-workday-apis-does-the-solution-use-to-query-and-update-workday-worker-profiles) and also update the XPATHs used for Workday attributes as documented in the [Workday attribute reference guide](../app-provisioning/workday-attribute-reference.md#xpath-values-for-workday-web-services-wws-api-v30).
-
-To use the new API for writeback, there are no changes required in the Workday Writeback provisioning app. On the Workday side, ensure that the Workday Integration System User (ISU) account has permissions to invoke the Change_Work_Contact business process as documented in the tutorial section, [Configure business process security policy permissions](../saas-apps/workday-inbound-tutorial.md#configuring-business-process-security-policy-permissions).
-
-We have updated our [tutorial guide](../saas-apps/workday-inbound-tutorial.md) to reflect the new API version support.
---
-### Users with default access role are now in scope for provisioning
-
-**Type:** Changed feature
-
-**Service category:** App Provisioning
-
-**Product capability:** Identity Lifecycle Management
-
-Historically, users with the default access role have been out of scope for provisioning. We've heard feedback that customers want users with this role to be in scope for provisioning. As of April 16, 2020, all new provisioning configurations allow users with the default access role to be provisioned. Gradually we'll change the behavior for existing provisioning configurations to support provisioning users with this role. [Learn more.](../app-provisioning/application-provisioning-config-problem-no-users-provisioned.md)
---
-### Updated provisioning UI
-
-**Type:** Changed feature
-
-**Service category:** App Provisioning
-
-**Product capability:** Identity Lifecycle Management
-
-We've refreshed our provisioning experience to create a more focused management view. When you navigate to the provisioning blade for an enterprise application that has already been configured, you'll be able to easily monitor the progress of provisioning and manage actions such as starting, stopping, and restarting provisioning. [Learn more.](../app-provisioning/configure-automatic-user-provisioning-portal.md)
---
-### Dynamic Group rule validation is now available for Public Preview
-
-**Type:** Changed feature
-
-**Service category:** Group Management
-
-**Product capability:** Collaboration
-
-Azure Active Directory (Azure AD) now provides the means to validate dynamic group rules. On the **Validate rules** tab, you can validate your dynamic rule against sample group members to confirm the rule is working as expected. When creating or updating dynamic group rules, administrators want to know whether a user or a device will be a member of the group. This helps evaluate whether a user or device meets the rule criteria and aids in troubleshooting when membership is not expected.
-
-For more information, see [Validate a dynamic group membership rule (preview)](../enterprise-users/groups-dynamic-rule-validation.md).
---
-### Identity Secure Score - Security Defaults and multifactor authentication (MFA) improvement action updates
-
-**Type:** Changed feature
-
-**Service category:** N/A
-
-**Product capability:** Identity Security & Protection
-
-**Supporting security defaults for Azure AD improvement actions:** Microsoft Secure Score will be updating improvement actions to support [security defaults in Azure AD](./concept-fundamentals-security-defaults.md), which make it easier to help protect your organization with pre-configured security settings for common attacks. This will affect the following improvement actions:
--- Ensure all users can complete multifactor authentication for secure access-- Require multi-factor authentication (MFA) for administrative roles-- Enable policy to block legacy authentication
-
-**Multifactor authentication (MFA) improvement action updates:** To reflect the need for businesses to ensure the upmost security while applying policies that work with their business, Microsoft Secure Score has removed three improvement actions centered around multifactor authentication and added two.
-
-Removed improvement actions:
--- Register all users for multifactor authentication-- Require multifactor authentication (MFA) for all users-- Require multifactor authentication (MFA) for Azure AD privileged roles-
-Added improvement actions:
--- Ensure all users can complete multifactor authentication for secure access-- Require multifactor authentication (MFA) for administrative roles-
-These new improvement actions require registering your users or admins for multifactor authentication (MFA) across your directory and establishing the right set of policies that fit your organizational needs. The main goal is to have flexibility while ensuring all your users and admins can authenticate with multiple factors or risk-based identity verification prompts. That can take the form of having multiple policies that apply scoped decisions, or setting security defaults (as of March 16th) that let Microsoft decide when to challenge users for multifactor authentication (MFA). [Read more about what's new in Microsoft Secure Score](/microsoft-365/security/mtp/microsoft-secure-score#whats-new).
---
-## March 2020
-
-### Unmanaged Azure Active Directory accounts in B2B update for March 2021
-
-**Type:** Plan for change
-**Service category:** B2B
-**Product capability:** B2B/B2C
-
-**Beginning on March 31, 2021**, Microsoft will no longer support the redemption of invitations by creating unmanaged Azure Active Directory (Azure AD) accounts and tenants for B2B collaboration scenarios. In preparation for this, we encourage you to opt in to [email one-time passcode authentication](../external-identities/one-time-passcode.md).
---
-### Users with the default access role will be in scope for provisioning
-
-**Type:** Plan for change
-**Service category:** App Provisioning
-**Product capability:** Identity Lifecycle Management
-
-Historically, users with the default access role have been out of scope for provisioning. We've heard feedback that customers want users with this role to be in scope for provisioning. We're working on deploying a change so that all new provisioning configurations will allow users with the default access role to be provisioned. Gradually, we'll change the behavior for existing provisioning configurations to support provisioning users with this role. No customer action is required. We'll post an update to our [documentation](../app-provisioning/application-provisioning-config-problem-no-users-provisioned.md) once this change is in place.
---
-### Azure AD B2B collaboration will be available in Microsoft Azure operated by 21Vianet (Azure China 21Vianet) tenants
-
-**Type:** Plan for change
-**Service category:** B2B
-**Product capability:** B2B/B2C
-
-The Azure AD B2B collaboration capabilities will be made available in Microsoft Azure operated by 21Vianet (Azure China 21Vianet) tenants, enabling users in an Azure China 21Vianet tenant to collaborate seamlessly with users in other Azure China 21Vianet tenants. [Learn more about Azure AD B2B collaboration](/azure/active-directory/b2b/).
--
-
-### Azure AD B2B Collaboration invitation email redesign
-
-**Type:** Plan for change
-**Service category:** B2B
-**Product capability:** B2B/B2C
-
-The [emails](../external-identities/invitation-email-elements.md) that are sent by the Azure AD B2B collaboration invitation service to invite users to the directory will be redesigned to make the invitation information and the user's next steps clearer.
---
-### HomeRealmDiscovery policy changes will appear in the audit logs
-
-**Type:** Fixed
-**Service category:** Audit
-**Product capability:** Monitoring & Reporting
-
-We fixed a bug where changes to the [HomeRealmDiscovery policy](../manage-apps/configure-authentication-for-federated-users-portal.md) weren't included in the audit logs. You'll now be able to see when and how the policy was changed, and by whom.
---
-### New Federated Apps available in Azure AD App gallery - March 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In March 2020, we've added these 51 new apps with Federation support to the app gallery:
-
-[Cisco AnyConnect](../saas-apps/cisco-anyconnect.md), [Zoho One China](../saas-apps/zoho-one-china-tutorial.md), [PlusPlus](https://test.plusplus.app/auth/login/azuread-outlook/), [Profit.co SAML App](../saas-apps/profitco-saml-app-tutorial.md), [iPoint Service Provider](../saas-apps/ipoint-service-provider-tutorial.md), [contexxt.ai SPHERE](https://contexxt-sphere.com/login), [Wisdom By Invictus](../saas-apps/wisdom-by-invictus-tutorial.md), [Flare Digital Signage](https://pixelnebula.com/), [Logz.io - Cloud Observability for Engineers](../saas-apps/logzio-cloud-observability-for-engineers-tutorial.md), [SpectrumU](../saas-apps/spectrumu-tutorial.md), [BizzContact](https://www.bizzcontact.app/), [Elqano SSO](../saas-apps/elqano-sso-tutorial.md), [MarketSignShare](http://www.signshare.com/), [CrossKnowledge Learning Suite](../saas-apps/crossknowledge-learning-suite-tutorial.md), [Netvision Compas](../saas-apps/netvision-compas-tutorial.md), [FCM HUB](../saas-apps/fcm-hub-tutorial.md), [RIB )
-
-For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md).
---
-### Azure AD B2B Collaboration available in Azure Government tenants
-
-**Type:** New feature
-**Service category:** B2B
-**Product capability:** B2B/B2C
-
-The Azure AD B2B collaboration features are now available between some Azure Government tenants. To find out if your tenant is able to use these capabilities, follow the instructions at [How can I tell if B2B collaboration is available in my Azure US Government tenant?](../external-identities/b2b-government-national-clouds.md#how-can-i-tell-if-b2b-collaboration-is-available-in-my-azure-us-government-tenant).
---
-### Azure Monitor integration for Azure Logs is now available in Azure Government
-
-**Type:** New feature
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-Azure Monitor integration with Azure AD logs is now available in Azure Government. You can route Azure AD Logs (Audit and Sign-in Logs) to a storage account, event hub and Log Analytics. Please check out the [detailed documentation](../reports-monitoring/concept-activity-logs-azure-monitor.md) as well as [deployment plans for reporting and monitoring](../reports-monitoring/plan-monitoring-and-reporting.md) for Azure AD scenarios.
---
-### Identity Protection Refresh in Azure Government
-
-**Type:** New feature
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
-We're excited to share that we've now rolled out the refreshed [Azure AD Identity Protection](../identity-protection/overview-identity-protection.md) experience in the [Microsoft Azure Government portal](https://portal.azure.us/). For more information, see our [announcement blog post](https://techcommunity.microsoft.com/t5/public-sector-blog/identity-protection-refresh-in-microsoft-azure-government/ba-p/1223667).
---
-### Disaster recovery: Download and store your provisioning configuration
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** Identity Lifecycle Management
-
-The Azure AD provisioning service provides a rich set of configuration capabilities. Customers need to be able to save their configuration so that they can refer to it later or roll back to a known good version. We've added the ability to download your provisioning configuration as a JSON file and upload it when you need it. [Learn more](../app-provisioning/export-import-provisioning-configuration.md).
--
-
-### SSPR (self-service password reset) now requires two gates for admins in Microsoft Azure operated by 21Vianet (Azure China 21Vianet)
-
-**Type:** Changed feature
-**Service category:** Self-Service Password Reset
-**Product capability:** Identity Security & Protection
-
-Previously in Microsoft Azure operated by 21Vianet (Azure China 21Vianet), admins using self-service password reset (SSPR) to reset their own passwords needed only one "gate" (challenge) to prove their identity. In public and other national clouds, admins generally must use two gates to prove their identity when using SSPR. But because we didn't support SMS or phone calls in Azure China 21Vianet, we allowed one-gate password reset by admins.
-
-We're creating SSPR feature parity between Azure China 21Vianet and the public cloud. Going forward, admins must use two gates when using SSPR. SMS, phone calls, and Authenticator app notifications and codes will be supported. [Learn more](../authentication/concept-sspr-policy.md#administrator-reset-policy-differences).
---
-### Password length is limited to 256 characters
-
-**Type:** Changed feature
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-To ensure the reliability of the Azure AD service, user passwords are now limited in length to 256 characters. Users with passwords longer than this will be asked to change their password on subsequent login, either by contacting their admin or by using the self-service password reset feature.
-
-This change was enabled on March 13th, 2020, at 10AM PST (18:00 UTC), and the error is AADSTS 50052, InvalidPasswordExceedsMaxLength. See the [breaking change notice](../develop/reference-breaking-changes.md#user-passwords-will-be-restricted-to-256-characters) for more details.
---
-### Azure AD sign-in logs are now available for all free tenants through the Azure portal
-
-**Type:** Changed feature
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-Starting now, customers who have free tenants can access the [Azure AD sign-in logs from the Azure portal](../reports-monitoring/concept-sign-ins.md) for up to 7 days. Previously, sign-in logs were available only for customers with Azure Active Directory Premium licenses. With this change, all tenants can access these logs through the portal.
-
-> [!NOTE]
-> Customers still need a premium license (Azure Active Directory Premium P1 or P2) to access the sign-in logs through Microsoft Graph API and Azure Monitor.
---
-### Deprecation of Directory-wide groups option from Groups General Settings on Azure portal
-
-**Type:** Deprecated
-**Service category:** Group Management
-**Product capability:** Collaboration
-
-To provide a more flexible way for customers to create directory-wide groups that best meet their needs, we've replaced the **Directory-wide Groups** option from the **Groups** > **General** settings in the Azure portal with a link to [dynamic group documentation](../enterprise-users/groups-dynamic-membership.md). We've improved our documentation to include more instructions so administrators can create all-user groups that include or exclude guest users.
---
-## February 2020
-
-### Upcoming changes to custom controls
-
-**Type:** Plan for change
-**Service category:** MFA
-**Product capability:** Identity Security & Protection
-
-We're planning to replace the current custom controls preview with an approach that allows partner-provided authentication capabilities to work seamlessly with the Azure Active Directory administrator and end user experiences. Today, partner multifactor authentication (MFA) solutions face the following limitations: they work only after a password has been entered; they don't serve as multifactor authentication (MFA) for step-up authentication in other key scenarios; and they don't integrate with end user or administrative credential management functions. The new implementation will allow partner-provided authentication factors to work alongside built-in factors for key scenarios, including registration, usage, multifactor authentication (MFA) claims, step up authentication, reporting, and logging.
-
-Custom controls will continue to be supported in preview alongside the new design until it reaches general availability. At that point, we'll give customers time to migrate to the new design. Because of the limitations of the current approach, we won't onboard new providers until the new design is available. We're working closely with customers and providers and will communicate the timeline as we get closer. [Learn more](https://techcommunity.microsoft.com/t5/azure-active-directory-identity/upcoming-changes-to-custom-controls/ba-p/1144696#).
---
-### Identity Secure Score - multifactor authentication (MFA) improvement action updates
-
-**Type:** Plan for change
-**Service category:** MFA
-**Product capability:** Identity Security & Protection
-
-To reflect the need for businesses to ensure the upmost security while applying policies that work with their business, Microsoft Secure Score is removing three improvement actions centered around multifactor authentication (MFA), and adding two.
-
-The following improvement actions will be removed:
--- Register all users for multifactor authentication (MFA)-- Require multifactor authentication (MFA) for all users-- Require multifactor authentication (MFA) for Azure AD privileged roles-
-The following improvement actions will be added:
--- Ensure all users can complete multifactor authentication (MFA) for secure access-- Require multifactor authentication (MFA) for administrative roles-
-These new improvement actions will require registering your users or admins for multifactor authentication (MFA) across your directory and establishing the right set of policies that fit your organizational needs. The main goal is to have flexibility while ensuring all your users and admins can authenticate with multiple factors or risk-based identity verification prompts. This can take the form of setting security defaults that let Microsoft decide when to challenge users for multifactor authentication (MFA), or having multiple policies that apply scoped decisions. As part of these improvement action updates, Baseline protection policies will no longer be included in scoring calculations. [Read more about what's coming in Microsoft Secure Score](/microsoft-365/security/mtp/microsoft-secure-score-whats-coming).
---
-### Azure AD Domain Services SKU selection
-
-**Type:** New feature
-**Service category:** Azure AD Domain Services
-**Product capability:** Azure AD Domain Services
-
-We've heard feedback that Azure AD Domain Services customers want more flexibility in selecting performance levels for their instances. Starting on February 1, 2020, we switched from a dynamic model (where Azure AD determines the performance and pricing tier based on object count) to a self-selection model. Now customers can choose a performance tier that matches their environment. This change also allows us to enable new scenarios like Resource Forests, and Premium features like daily backups. The object count is now unlimited for all SKUs, but we'll continue to offer object count suggestions for each tier.
-
-**No immediate customer action is required.** For existing customers, the dynamic tier that was in use on February 1, 2020, determines the new default tier. There is no pricing or performance impact as the result of this change. Going forward, Azure AD DS customers will need to evaluate performance requirements as their directory size and workload characteristics change. Switching between service tiers will continue to be a no-downtime operation, and we'll no longer automatically move customers to new tiers based on the growth of their directory. Furthermore, there will be no price increases, and new pricing will align with our current billing model. For more information, see the [Azure AD DS SKUs documentation](../../active-directory-domain-services/administration-concepts.md#azure-ad-ds-skus) and the [Azure AD Domain Services pricing page](https://azure.microsoft.com/pricing/details/active-directory-ds/).
--
-
-### New Federated Apps available in Azure AD App gallery - February 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In February 2020, we've added these 31 new apps with Federation support to the app gallery:
-
-[IamIP Patent Platform](../saas-apps/iamip-patent-platform-tutorial.md),
- [Experience Cloud](../saas-apps/experience-cloud-tutorial.md),
- [NS1 SSO For Azure](../saas-apps/ns1-sso-azure-tutorial.md),
- [Barracuda Email Security Service](https://ess.barracudanetworks.com/sso/azure),
- [ABa Reporting](https://myaba.co.uk/client-access/signin/auth/msad),
- [In Case of Crisis - Online Portal](../saas-apps/in-case-of-crisis-online-portal-tutorial.md),
- [BIC Cloud Design](../saas-apps/bic-cloud-design-tutorial.md),
- [Beekeeper Azure AD Data Connector](../saas-apps/beekeeper-azure-ad-data-connector-tutorial.md),
- [Korn Ferry Assessments](https://www.kornferry.com/solutions/kf-digital/kf-assess),
- [Verkada Command](../saas-apps/verkada-command-tutorial.md),
- [Splashtop](../saas-apps/splashtop-tutorial.md),
- [Syxsense](../saas-apps/syxsense-tutorial.md),
- [EAB Navigate](../saas-apps/eab-navigate-tutorial.md),
- [New Relic (Limited Release)](../saas-apps/new-relic-limited-release-tutorial.md),
- [Thulium](https://admin.thulium.com/login/instance),
- [Ticket Manager](../saas-apps/ticketmanager-tutorial.md),
- [Template Chooser for Teams](https://links.officeatwork.com/templatechooser-download-teams),
- [Beesy](https://www.beesy.me/index.php/site/login),
- [Health Support System](../saas-apps/health-support-system-tutorial.md),
- [MURAL](https://app.mural.co/signup),
- [Hive](../saas-apps/hive-tutorial.md),
- [LavaDo](https://appsource.microsoft.com/product/web-apps/lavaloon.lavado_standard?tab=Overview),
- [Wakelet](https://wakelet.com/login),
- [Firmex VDR](../saas-apps/firmex-vdr-tutorial.md),
- [ThingLink for Teachers and Schools](https://www.thinglink.com/),
- [Coda](../saas-apps/coda-tutorial.md),
- [NearpodApp](https://nearpod.com/signup/?oc=Microsoft&utm_campaign=Microsoft&utm_medium=site&utm_source=product),
- [WEDO](../saas-apps/wedo-tutorial.md),
- [InvitePeople](https://invitepeople.com/login),
- [Reprints Desk - Article Galaxy](../saas-apps/reprints-desk-article-galaxy-tutorial.md),
- [TeamViewer](../saas-apps/teamviewer-tutorial.md)
-
-
-For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md).
--
-
-### New provisioning connectors in the Azure AD Application Gallery - February 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-You can now automate creating, updating, and deleting user accounts for these newly integrated apps:
--- [Mixpanel](../saas-apps/mixpanel-provisioning-tutorial.md)-- [TeamViewer](../saas-apps/teamviewer-provisioning-tutorial.md)-- [Azure Databricks](/azure/databricks/administration-guide/users-groups/scim/aad)-- [PureCloud by Genesys](../saas-apps/purecloud-by-genesys-provisioning-tutorial.md)-- [Zapier](../saas-apps/zapier-provisioning-tutorial.md)-
-For more information about how to better secure your organization by using automated user account provisioning, see [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md).
--
-
-### Azure AD support for FIDO2 security keys in hybrid environments
-
-**Type:** New feature
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-We're announcing the public preview of Azure AD support for FIDO2 security keys in Hybrid environments. Users can now use FIDO2 security keys to sign in to their Hybrid Azure AD joined Windows 10 devices and get seamless sign-on to their on-premises and cloud resources. Support for Hybrid environments has been the top most-requested feature from our passwordless customers since we initially launched the public preview for FIDO2 support in Azure AD joined devices. Passwordless authentication using advanced technologies like biometrics and public/private key cryptography provide convenience and ease-of-use while being secure. With this public preview, you can now use modern authentication like FIDO2 security keys to access traditional Active Directory resources. For more information, go to [SSO to on-premises resources](../authentication/howto-authentication-passwordless-security-key-on-premises.md).
-
-To get started, visit [enable FIDO2 security keys for your tenant](../authentication/howto-authentication-passwordless-security-key.md) for step-by-step instructions.
--
-
-### The new My Account experience is now generally available
-
-**Type:** Changed feature
-**Service category:** My Profile/Account
-**Product capability:** End User Experiences
-
-My Account, the one stop shop for all end-user account management needs, is now generally available! End users can access this new site via URL, or in the header of the new My Apps experience. Learn more about all the self-service capabilities the new experience offers at [My Account Portal Overview](https://support.microsoft.com/account-billing/my-account-portal-for-work-or-school-accounts-eab41bfe-3b9e-441e-82be-1f6e568d65fd).
--
-
-### My Account site URL updating to myaccount.microsoft.com
-
-**Type:** Changed feature
-**Service category:** My Profile/Account
-**Product capability:** End User Experiences
-
-The new My Account end user experience will be updating its URL to `https://myaccount.microsoft.com` in the next month. Find more information about the experience and all the account self-service capabilities it offers to end users at [My Account portal help](https://support.microsoft.com/account-billing/my-account-portal-for-work-or-school-accounts-eab41bfe-3b9e-441e-82be-1f6e568d65fd).
---
-## January 2020
-
-### The new My Apps portal is now generally available
-
-**Type:** Plan for change
-**Service category:** My Apps
-**Product capability:** End User Experiences
-
-Upgrade your organization to the new My Apps portal that is now generally available! Find more information on the new portal and collections at [Create collections on the My Apps portal](../manage-apps/access-panel-collections.md).
--
-
-### Workspaces in Azure AD have been renamed to collections
-
-**Type:** Changed feature
-**Service category:** My Apps
-**Product capability:** End User Experiences
-
-Workspaces, the filters admins can configure to organize their users' apps, will now be referred to as collections. Find more info on how to configure them at [Create collections on the My Apps portal](../manage-apps/access-panel-collections.md).
--
-
-### Azure AD B2C Phone sign-up and sign-in using custom policy (Public Preview)
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-With phone number sign-up and sign-in, developers and enterprises can allow their customers to sign up and sign in using a one-time password sent to the user's phone number via SMS. This feature also lets the customer change their phone number if they lose access to their phone. With the power of custom policies and phone sign-up and sign-in, allows developers and enterprises to communicate their brand through page customization. Find out how to [set up phone sign-up and sign-in with custom policies in Azure AD B2C](../../active-directory-b2c/phone-authentication-user-flows.md).
-
-
-
-### New provisioning connectors in the Azure AD Application Gallery - January 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-You can now automate creating, updating, and deleting user accounts for these newly integrated apps:
--- [Promapp](../saas-apps/promapp-provisioning-tutorial.md)-- [Zscaler Private Access](../saas-apps/zscaler-private-access-provisioning-tutorial.md)-
-For more information about how to better secure your organization by using automated user account provisioning, see [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md).
--
-
-### New Federated Apps available in Azure AD App gallery - January 2020
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In January 2020, we've added these 33 new apps with Federation support to the app gallery:
-
-[JOSA](../saas-apps/josa-tutorial.md), [Fastly Edge Cloud](../saas-apps/fastly-edge-cloud-tutorial.md), [Terraform Enterprise](../saas-apps/terraform-enterprise-tutorial.md), [Spintr SSO](../saas-apps/spintr-sso-tutorial.md), [Abibot Netlogistik](https://azuremarketplace.microsoft.com/marketplace/apps/aad.abibotnetlogistik), [SkyKick](https://login.skykick.com/login?state=g6Fo2SBTd3M5Q0xBT0JMd3luS2JUTGlYN3pYTE1remJQZnR1c6N0aWTZIDhCSkwzYVQxX2ZMZjNUaWxNUHhCSXg2OHJzbllTcmYto2NpZNkgM0h6czk3ZlF6aFNJV1VNVWQzMmpHeFFDbDRIMkx5VEc&client=3Hzs97fQzhSIWUMUd32jGxQCl4H2LyTG&protocol=oauth2&audience=https://papi.skykick.com&response_type=code&redirect_uri=https://portal.skykick.com/callback&scope=openid%20profile%20offline_access), [Upshotly](../saas-apps/upshotly-tutorial.md), [LeaveBot](https://appsource.microsoft.com/en-us/product/office/WA200001175), [DataCamp](../saas-apps/datacamp-tutorial.md), [TripActions](../saas-apps/tripactions-tutorial.md), [SmartWork](https://www.intumit.com/teams-smartwork/), [Dotcom-Monitor](../saas-apps/dotcom-monitor-tutorial.md), [SSOGEN - Azure AD SSO Gateway for Oracle E-Business Suite - EBS, PeopleSoft, and JDE](../saas-apps/ssogen-tutorial.md), [Hosted MyCirqa SSO](../saas-apps/hosted-mycirqa-sso-tutorial.md), [Yuhu Property Management Platform](../saas-apps/yuhu-property-management-platform-tutorial.md), [LumApps](https://sites.lumapps.com/login), [Upwork Enterprise](../saas-apps/upwork-enterprise-tutorial.md), [Talentsoft](../saas-apps/talentsoft-tutorial.md), [SmartDB for Microsoft Teams](http://teams.smartdb.jp/login/), [PressPage](../saas-apps/presspage-tutorial.md), [ContractSafe Saml2 SSO](../saas-apps/contractsafe-saml2-sso-tutorial.md), [Maxient Conduct Manager Software](../saas-apps/maxient-conduct-manager-software-tutorial.md), [Helpshift](../saas-apps/helpshift-tutorial.md), [PortalTalk 365](https://www.portaltalk.com/), [CoreView](https://portal.coreview.com/), Squelch Cloud Office365 Connector, [PingFlow Authentication](https://app-staging.pingview.io/), [ PrinterLogic SaaS](../saas-apps/printerlogic-saas-tutorial.md), [Taskize Connect](../saas-apps/taskize-connect-tutorial.md), [Sandwai](https://app.sandwai.com/), [EZRentOut](../saas-apps/ezrentout-tutorial.md), [AssetSonar](../saas-apps/assetsonar-tutorial.md), [Akari Virtual Assistant](https://akari.io/akari-virtual-assistant/)
-
-For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md).
---
-### Two new Identity Protection detections
-
-**Type:** New feature
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
-We've added two new sign-in linked detection types to Identity Protection: Suspicious inbox manipulation rules and Impossible travel. These offline detections are discovered by Microsoft Cloud App Security (MCAS) and influence the user and sign-in risk in Identity Protection. For more information on these detections, see our [sign-in risk types](../identity-protection/concept-identity-protection-risks.md#sign-in-risk).
-
-
-
-### Breaking Change: URI Fragments will not be carried through the login redirect
-
-**Type:** Changed feature
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-Starting on February 8, 2020, when a request is sent to login.microsoftonline.com to sign in a user, the service will append an empty fragment to the request. This prevents a class of redirect attacks by ensuring that the browser wipes out any existing fragment in the request. No application should have a dependency on this behavior. For more information, see [Breaking changes](../develop/reference-breaking-changes.md#february-2020) in the Microsoft identity platform documentation.
---
-## December 2019
-
-### Integrate SAP SuccessFactors provisioning into Azure AD and on-premises AD (Public Preview)
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** Identity Lifecycle Management
-
-You can now integrate SAP SuccessFactors as an authoritative identity source in Azure AD. This integration helps you automate the end-to-end identity lifecycle, including using HR-based events, like new hires or terminations, to control provisioning of Azure AD accounts.
-
-For more information about how to set up SAP SuccessFactors inbound provisioning to Azure AD, see the [Configure SAP SuccessFactors automatic provisioning](../saas-apps/sap-successfactors-inbound-provisioning-tutorial.md) tutorial.
---
-### Support for customized emails in Azure AD B2C (Public Preview)
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-You can now use Azure AD B2C to create customized emails when your users sign up to use your apps. By using DisplayControls (currently in preview) and a third-party email provider (such as, [SendGrid](https://sendgrid.com/), [SparkPost](https://sparkpost.com/), or a custom REST API), you can use your own email template, **From** address, and subject text, as well as support localization and custom one-time password (OTP) settings.
-
-For more information, see [Custom email verification in Azure Active Directory B2C](../../active-directory-b2c/custom-email-sendgrid.md).
---
-### Replacement of baseline policies with security defaults
-
-**Type:** Changed feature
-**Service category:** Other
-**Product capability:** Identity Security and Protection
-
-As part of a secure-by-default model for authentication, we're removing the existing baseline protection policies from all tenants. This removal is targeted for completion at the end of February. The replacement for these baseline protection policies is security defaults. If you've been using baseline protection policies, you must plan to move to the new security defaults policy or to Conditional Access. If you haven't used these policies, there is no action for you to take.
-
-For more information about the new security defaults, see [What are security defaults?](./concept-fundamentals-security-defaults.md) For more information about Conditional Access policies, see [Common Conditional Access policies](../conditional-access/concept-conditional-access-policy-common.md).
---
-## November 2019
-
-### Support for the SameSite attribute and Chrome 80
-
-**Type:** Plan for change
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-As part of a secure-by-default model for cookies, the Chrome 80 browser is changing how it treats cookies without the `SameSite` attribute. Any cookie that doesn't specify the `SameSite` attribute will be treated as though it was set to `SameSite=Lax`, which will result in Chrome blocking certain cross-domain cookie sharing scenarios that your app may depend on. To maintain the older Chrome behavior, you can use the `SameSite=None` attribute and add an additional `Secure` attribute, so cross-site cookies can only be accessed over HTTPS connections. Chrome is scheduled to complete this change by February 4, 2020.
-
-We recommend all our developers test their apps using this guidance:
--- Set the default value for the **Use Secure Cookie** setting to **Yes**.--- Set the default value for the **SameSite** attribute to **None**.--- Add an additional `SameSite` attribute of **Secure**.-
-For more information, see [Upcoming SameSite Cookie Changes in ASP.NET and ASP.NET Core](https://devblogs.microsoft.com/aspnet/upcoming-samesite-cookie-changes-in-asp-net-and-asp-net-core/) and [Potential disruption to customer websites and Microsoft products and services in Chrome version 79 and later](https://support.microsoft.com/help/4522904/potential-disruption-to-microsoft-services-in-chrome-beta-version-79).
---
-### New hotfix for Microsoft Identity Manager (MIM) 2016 Service Pack 2 (SP2)
-
-**Type:** Fixed
-**Service category:** Microsoft Identity Manager
-**Product capability:** Identity Lifecycle Management
-
-A hotfix rollup package (build 4.6.34.0) is available for Microsoft Identity Manager (MIM) 2016 Service Pack 2 (SP2). This rollup package resolves issues and adds improvements that are described in the "Issues fixed and improvements added in this update" section.
-
-For more information and to download the hotfix package, see [Microsoft Identity Manager 2016 Service Pack 2 (build 4.6.34.0) Update Rollup is available](https://support.microsoft.com/help/4512924/microsoft-identity-manager-2016-service-pack-2-build-4-6-34-0-update-r).
---
-### New AD FS app activity report to help migrate apps to Azure AD (Public Preview)
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-Use the new Active Directory Federation Services (AD FS) app activity report, in the Azure portal, to identify which of your apps are capable of being migrated to Azure AD. The report assesses all AD FS apps for compatibility with Azure AD, checks for any issues, and gives guidance about preparing individual apps for migration.
-
-For more information, see [Use the AD FS application activity report to migrate applications to Azure AD](../manage-apps/migrate-adfs-application-activity.md).
---
-### New workflow for users to request administrator consent (Public Preview)
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** Access Control
-
-The new admin consent workflow gives admins a way to grant access to apps that require admin approval. If a user tries to access an app, but is unable to provide consent, they can now send a request for admin approval. The request is sent by email, and placed in a queue that's accessible from the Azure portal, to all the admins who have been designated as reviewers. After a reviewer takes action on a pending request, the requesting users are notified of the action.
-
-For more information, see [Configure the admin consent workflow (preview)](../manage-apps/configure-admin-consent-workflow.md).
---
-### New Azure AD App Registrations Token configuration experience for managing optional claims (Public Preview)
-
-**Type:** New feature
-**Service category:** Other
-**Product capability:** Developer Experience
-
-The new **Azure AD App Registrations Token configuration** blade on the Azure portal now shows app developers a dynamic list of optional claims for their apps. This new experience helps to streamline Azure AD app migrations and to minimize optional claims misconfigurations.
-
-For more information, see [Provide optional claims to your Azure AD app](../develop/active-directory-optional-claims.md).
---
-### New two-stage approval workflow in Azure AD entitlement management (Public Preview)
-
-**Type:** New feature
-**Service category:** Other
-**Product capability:** Entitlement Management
-
-We've introduced a new two-stage approval workflow that allows you to require two approvers to approve a user's request to an access package. For example, you can set it so the requesting user's manager must first approve, and then you can also require a resource owner to approve. If one of the approvers doesn't approve, access isn't granted.
-
-For more information, see [Change request and approval settings for an access package in Azure AD entitlement management](../governance/entitlement-management-access-package-request-policy.md).
---
-### Updates to the My Apps page along with new workspaces (Public Preview)
-
-**Type:** New feature
-**Service category:** My Apps
-**Product capability:** 3rd Party Integration
-
-You can now customize the way your organization's users view and access the refreshed My Apps experience. This new experience also includes the new workspaces feature, which makes it easier for your users to find and organize apps.
-
-For more information about the new My Apps experience and creating workspaces, see [Create workspaces on the My Apps portal](../manage-apps/access-panel-collections.md).
---
-### Google social ID support for Azure AD B2B collaboration (General Availability)
-
-**Type:** New feature
-**Service category:** B2B
-**Product capability:** User Authentication
-
-New support for using Google social IDs (Gmail accounts) in Azure AD helps to make collaboration simpler for your users and partners. There's no longer a need for your partners to create and manage a new Microsoft-specific account. Microsoft Teams now fully supports Google users on all clients and across the common and tenant-related authentication endpoints.
-
-For more information, see [Add Google as an identity provider for B2B guest users](../external-identities/google-federation.md).
---
-### Microsoft Edge Mobile Support for Conditional Access and Single Sign-on (General Availability)
-
-**Type:** New feature
-**Service category:** Conditional Access
-**Product capability:** Identity Security & Protection
-
-Azure AD for Microsoft Edge on iOS and Android now supports Azure AD single sign-on and Conditional Access:
--- **Microsoft Edge single sign-on (SSO):** Single sign-on is now available across native clients (such as Microsoft Outlook and Microsoft Edge) for all Azure AD -connected apps.--- **Microsoft Edge conditional access:** Through application-based conditional access policies, your users must use Microsoft Intune-protected browsers, such as Microsoft Edge.-
-For more information about conditional access and SSO with Microsoft Edge, see the [Microsoft Edge Mobile Support for Conditional Access and single sign-on Now Generally Available](https://techcommunity.microsoft.com/t5/Intune-Customer-Success/Microsoft-Edge-Mobile-Support-for-Conditional-Access-and-Single/ba-p/988179) blog post. For more information about how to set up your client apps using [app-based conditional access](../conditional-access/app-based-conditional-access.md) or [device-based conditional access](../conditional-access/require-managed-devices.md), see [Manage web access using a Microsoft Intune policy-protected browser](/intune/apps/app-configuration-managed-browser).
---
-### Azure AD entitlement management (General Availability)
-
-**Type:** New feature
-**Service category:** Other
-**Product capability:** Entitlement Management
-
-Azure AD entitlement management is a new identity governance feature, which helps organizations manage identity and access lifecycle at scale. This new feature helps by automating access request workflows, access assignments, reviews, and expiration across groups, apps, and SharePoint Online sites.
-
-With Azure AD entitlement management, you can more efficiently manage access both for employees and also for users outside your organization who need access to those resources.
-
-For more information, see [What is Azure AD entitlement management?](../governance/entitlement-management-overview.md#license-requirements)
---
-### Automate user account provisioning for these newly supported SaaS apps
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-You can now automate creating, updating, and deleting user accounts for these newly integrated apps:
-
-[SAP Cloud Platform Identity Authentication Service](../saas-apps/sap-hana-cloud-platform-identity-authentication-tutorial.md), [RingCentral](../saas-apps/ringcentral-provisioning-tutorial.md), [SpaceIQ](../saas-apps/spaceiq-provisioning-tutorial.md), [Miro](../saas-apps/miro-provisioning-tutorial.md), [Cloudgate](../saas-apps/soloinsight-cloudgate-sso-provisioning-tutorial.md), [Infor CloudSuite](../saas-apps/infor-cloudsuite-provisioning-tutorial.md), [OfficeSpace Software](../saas-apps/officespace-software-provisioning-tutorial.md), [Priority Matrix](../saas-apps/priority-matrix-provisioning-tutorial.md)
-
-For more information about how to better secure your organization by using automated user account provisioning, see [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md).
---
-### New Federated Apps available in Azure AD App gallery - November 2019
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In November 2019, we've added these 21 new apps with Federation support to the app gallery:
-
-[Airtable](../saas-apps/airtable-tutorial.md), [Hootsuite](../saas-apps/hootsuite-tutorial.md), [Blue Access for Members (BAM)](../saas-apps/blue-access-for-members-tutorial.md), [Bitly](../saas-apps/bitly-tutorial.md), [Riva](../saas-apps/riva-tutorial.md), [ResLife Portal](https://app.reslifecloud.com/hub5_signin/microsoft_azuread/?g=44BBB1F90915236A97502FF4BE2952CB&c=5&uid=0&ht=2&ref=), [NegometrixPortal Single Sign On (SSO)](../saas-apps/negometrixportal-tutorial.md), [TeamsChamp](https://login.microsoftonline.com/551f45da-b68e-4498-a7f5-a6e1efaeb41c/adminconsent?client_id=ca9bbfa4-1316-4c0f-a9ee-1248ac27f8ab&redirect_uri=https://admin.teamschamp.com/api/adminconsent&state=6883c143-cb59-42ee-a53a-bdb5faabf279), [Motus](../saas-apps/motus-tutorial.md), [MyAryaka](../saas-apps/myaryaka-tutorial.md), [BlueMail](https://loginself1.bluemail.me/), [Beedle](https://teams-web.beedle.co/#/), [Visma](../saas-apps/visma-tutorial.md), [OneDesk](../saas-apps/onedesk-tutorial.md), [Foko Retail](../saas-apps/foko-retail-tutorial.md), [Qmarkets Idea & Innovation Management](../saas-apps/qmarkets-idea-innovation-management-tutorial.md), [Netskope User Authentication](../saas-apps/netskope-user-authentication-tutorial.md), [uniFLOW Online](../saas-apps/uniflow-online-tutorial.md), [Claromentis](../saas-apps/claromentis-tutorial.md), [Jisc Student Voter Registration](../saas-apps/jisc-student-voter-registration-tutorial.md), [e4enable](https://portal.e4enable.com/)
-
-For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md).
---
-### New and improved Azure AD application gallery
-
-**Type:** Changed feature
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-We've updated the Azure AD application gallery to make it easier for you to find pre-integrated apps that support provisioning, OpenID Connect, and SAML on your Azure Active Directory tenant.
-
-For more information, see [Add an application to your Azure Active Directory tenant](../manage-apps/add-application-portal.md).
---
-### Increased app role definition length limit from 120 to 240 characters
-
-**Type:** Changed feature
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-We've heard from customers that the length limit for the app role definition value in some apps and services is too short at 120 characters. In response, we've increased the maximum length of the role value definition to 240 characters.
-
-For more information about using application-specific role definitions, see [Add app roles in your application and receive them in the token](../develop/howto-add-app-roles-in-azure-ad-apps.md).
---
-## October 2019
-
-### Deprecation of the identityRiskEvent API for Azure AD Identity Protection risk detections
-
-**Type:** Plan for change
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
-In response to developer feedback, Azure AD Premium P2 subscribers can now perform complex queries on Azure AD Identity Protection's risk detection data by using the new riskDetection API for Microsoft Graph. The existing [identityRiskEvent](/graph/api/resources/identityprotection-root) API beta version will stop returning data around **January 10, 2020**. If your organization is using the identityRiskEvent API, you should transition to the new riskDetection API.
-
-For more information about the new riskDetection API, see the [Risk detection API reference documentation](/graph/api/resources/riskdetection).
---
-### Application Proxy support for the SameSite Attribute and Chrome 80
-
-**Type:** Plan for change
-**Service category:** App Proxy
-**Product capability:** Access Control
-
-A couple of weeks prior to the Chrome 80 browser release, we plan to update how Application Proxy cookies treat the **SameSite** attribute. With the release of Chrome 80, any cookie that doesn't specify the **SameSite** attribute will be treated as though it was set to `SameSite=Lax`.
-
-To help avoid potentially negative impacts due to this change, we're updating Application Proxy access and session cookies by:
--- Setting the default value for the **Use Secure Cookie** setting to **Yes**.--- Setting the default value for the **SameSite** attribute to **None**.-
- >[!NOTE]
- > Application Proxy access cookies have always been transmitted exclusively over secure channels. These changes only apply to session cookies.
-
-For more information about the Application Proxy cookie settings, see [Cookie settings for accessing on-premises applications in Azure Active Directory](../app-proxy/application-proxy-configure-cookie-settings.md).
---
-### App registrations (legacy) and app management in the Application Registration Portal (apps.dev.microsoft.com) is no longer available
-
-**Type:** Plan for change
-**Service category:** N/A
-**Product capability:** Developer Experience
-
-Users with Azure AD accounts can no longer register or manage applications using the Application Registration Portal (apps.dev.microsoft.com), or register and manage applications in the App registrations (legacy) experience in the Azure portal.
-
-To learn more about the new App registrations experience, see the [App registrations in the Azure portal training guide](../develop/quickstart-register-app.md).
---
-### Users are no longer required to re-register during migration from per-user multifactor authentication (MFA) to Conditional Access-based multifactor authentication (MFA)
-
-**Type:** Fixed
-**Service category:** MFA
-**Product capability:** Identity Security & Protection
-
-We've fixed a known issue whereby when users were required to re-register if they were disabled for per-user MultiFactor Authentication (MFA) and then enabled for multifactor authentication (MFA) through a Conditional Access policy.
-
-To require users to re-register, you can select the **Required re-register multifactor authentication (MFA)** option from the user's authentication methods in the Azure portal.
---
-### New capabilities to transform and send claims in your SAML token
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-We've added additional capabilities to help you to customize and send claims in your SAML token. These new capabilities include:
--- Additional claims transformation functions, helping you to modify the value you send in the claim.--- Ability to apply multiple transformations to a single claim.--- Ability to specify the claim source, based on the user type and the group to which the user belongs.-
-For detailed information about these new capabilities, including how to use them, see [Customize claims issued in the SAML token for enterprise applications](../develop/active-directory-saml-claims-customization.md).
---
-### New My Sign-ins page for end users in Azure AD
-
-**Type:** New feature
-**Service category:** Authentications (Logins)
-**Product capability:** Monitoring & Reporting
-
-We've added a new **My Sign-ins** page (https://mysignins.microsoft.com) to let your organization's users view their recent sign-in history to check for any unusual activity. This new page allows your users to see:
--- If anyone is attempting to guess their password.--- If an attacker successfully signed in to their account and from what location.--- What apps the attacker tried to access.-
-For more information, see the [Users can now check their sign-in history for unusual activity](https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Users-can-now-check-their-sign-in-history-for-unusual-activity/ba-p/916066) blog.
---
-### Migration of Azure AD Domain Services (Azure AD DS) from classic to Azure Resource Manager virtual networks
-
-**Type:** New feature
-**Service category:** Azure AD Domain Services
-**Product capability:** Azure AD Domain Services
-
-To our customers who have been stuck on classic virtual networks -- we have great news for you! You can now perform a one-time migration from a classic virtual network to an existing Resource Manager virtual network. After moving to the Resource Manager virtual network, you'll be able to take advantage of the additional and upgraded features such as, fine-grained password policies, email notifications, and audit logs.
---
-### Updates to the Azure AD B2C page contract layout
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-We've introduced some new changes to version 1.2.0 of the page contract for Azure AD B2C. In this updated version, you can now control the load order for your elements, which can also help to stop the flicker that happens when the style sheet (CSS) is loaded.
-
-For a full list of the changes made to the page contract, see the [Version change log](../../active-directory-b2c/page-layout.md#other-pages-providerselection-claimsconsent-unifiedssd).
---
-### Update to the My Apps page along with new workspaces (Public preview)
-
-**Type:** New feature
-**Service category:** My Apps
-**Product capability:** Access Control
-
-You can now customize the way your organization's users view and access the brand-new My Apps experience, including using the new workspaces feature to make it easier for them to find apps. The new workspaces functionality acts as a filter for the apps your organization's users already have access to.
-
-For more information on rolling out the new My Apps experience and creating workspaces, see [Create workspaces on the My Apps (preview) portal](../manage-apps/access-panel-collections.md).
---
-### Support for the monthly active user-based billing model (General availability)
-
-**Type:** New feature
-**Service category:** B2C - Consumer Identity Management
-**Product capability:** B2B/B2C
-
-Azure AD B2C now supports monthly active users (MAU) billing. MAU billing is based on the number of unique users with authentication activity during a calendar month. Existing customers can switch to this new billing method at any time.
-
-Starting on November 1, 2019, all new customers will automatically be billed using this method. This billing method benefits customers through cost benefits and the ability to plan ahead.
-
-For more information, see [Upgrade to monthly active users billing model](../../active-directory-b2c/billing.md#switch-to-mau-billing-pre-november-2019-azure-ad-b2c-tenants).
---
-### New Federated Apps available in Azure AD App gallery - October 2019
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In October 2019, we've added these 35 new apps with Federation support to the app gallery:
-
-[In Case of Crisis ΓÇô Mobile](../saas-apps/in-case-of-crisis-mobile-tutorial.md), [Juno Journey](../saas-apps/juno-journey-tutorial.md), [ExponentHR](../saas-apps/exponenthr-tutorial.md), [Tact](https://www.tact.ai/products/tact-assistant), [OpusCapita Cash Management](https://appsource.microsoft.com/product/web-apps/opuscapitagroupoy-1036255.opuscapita-cm), [Salestim](https://www.salestim.com/), [Learnster](../saas-apps/learnster-tutorial.md), [Dynatrace](../saas-apps/dynatrace-tutorial.md), [HunchBuzz](https://login.hunchbuzz.com/integrations/azure/process), [Freshworks](../saas-apps/freshworks-tutorial.md), [eCornell](../saas-apps/ecornell-tutorial.md), [ShipHazmat](../saas-apps/shiphazmat-tutorial.md), [Netskope Cloud Security](../saas-apps/netskope-cloud-security-tutorial.md), [Contentful](../saas-apps/contentful-tutorial.md), [Bindtuning](https://bindtuning.com/login), [HireVue Coordinate ΓÇô Europe](https://www.hirevue.com/), [HireVue Coordinate - USOnly](https://www.hirevue.com/), [HireVue Coordinate - US](https://www.hirevue.com/), [WittyParrot Knowledge Box](https://wittyapi.wittyparrot.com/wittyparrot/api/provision/trail/signup), [Cloudmore](../saas-apps/cloudmore-tutorial.md), [Visit.org](../saas-apps/visitorg-tutorial.md), [Cambium Xirrus EasyPass Portal](https://login.xirrus.com/azure-signup), [Paylocity](../saas-apps/paylocity-tutorial.md), [Mail Luck!](../saas-apps/mail-luck-tutorial.md), [Teamie](https://theteamie.com/), [Velocity for Teams](https://velocity.peakup.org/teams/login), [SIGNL4](https://account.signl4.com/manage), [EAB Navigate IMPL](../saas-apps/eab-navigate-impl-tutorial.md), [ScreenMeet](https://console.screenmeet.com/), [Omega Point](https://pi.ompnt.com/), [Speaking Email for Intune (iPhone)](https://speaking.email/FAQ/98/email-access-via-microsoft-intune), [Speaking Email for Office 365 Direct (iPhone/Android)](https://speaking.email/FAQ/126/email-access-via-microsoft-office-365-direct), [ExactCare SSO](../saas-apps/exactcare-sso-tutorial.md), [iHealthHome Care Navigation System](https://ihealthnav.com/account/signin), [Qubie](https://www.qubie.app/)
-
-For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md).
---
-### Consolidated Security menu item in the Azure portal
-
-**Type:** Changed feature
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
-You can now access all of the available Azure AD security features from the new **Security** menu item, and from the **Search** bar, in the Azure portal. Additionally, the new **Security** landing page, called **Security - Getting started**, will provide links to our public documentation, security guidance, and deployment guides.
-
-The new **Security** menu includes:
--- Conditional Access-- Identity Protection-- Security Center-- Identity Secure Score-- Authentication methods-- Multifactor authentication (MFA)-- Risk reports - Risky users, Risky sign-ins, Risk detections-- And more...-
-For more information, see [Security - Getting started](https://portal.azure.com/#blade/Microsoft_AAD_IAM/SecurityMenuBlade/GettingStarted).
---
-### Office 365 groups expiration policy enhanced with autorenewal
-
-**Type:** Changed feature
-**Service category:** Group Management
-**Product capability:** Identity Lifecycle Management
-
-The Office 365 groups expiration policy has been enhanced to automatically renew groups that are actively in use by its members. Groups will be autorenewed based on user activity across all the Office 365 apps, including Outlook, SharePoint, and Teams.
-
-This enhancement helps to reduce your group expiration notifications and helps to make sure that active groups continue to be available. If you already have an active expiration policy for your Office 365 groups, you don't need to do anything to turn on this new functionality.
-
-For more information, see [Configure the expiration policy for Office 365 groups](../enterprise-users/groups-lifecycle.md).
---
-### Updated Azure AD Domain Services (Azure AD DS) creation experience
-
-**Type:** Changed feature
-**Service category:** Azure AD Domain Services
-**Product capability:** Azure AD Domain Services
-
-We've updated Azure AD Domain Services (Azure AD DS) to include a new and improved creation experience, helping you to create a managed domain in just three clicks! In addition, you can now upload and deploy Azure AD DS from a template.
-
-For more information, see [Tutorial: Create and configure an Azure Active Directory Domain Services instance](../../active-directory-domain-services/tutorial-create-instance.md).
---
-## September 2019
-
-### Plan for change: Deprecation of the Power BI content packs
-
-**Type:** Plan for change
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-Starting on October 1, 2019, Power BI will begin to deprecate all content packs, including the Azure AD Power BI content pack. As an alternative to this content pack, you can use Azure AD Workbooks to gain insights into your Azure AD-related services. Additional workbooks are coming, including workbooks about Conditional Access policies in report-only mode, app consent-based insights, and more.
-
-For more information about the workbooks, see [How to use Azure Monitor workbooks for Azure Active Directory reports](../reports-monitoring/howto-use-azure-monitor-workbooks.md). For more information about the deprecation of the content packs, see the [Announcing Power BI template apps general availability](https://powerbi.microsoft.com/blog/announcing-power-bi-template-apps-general-availability/) blog post.
---
-### My Profile is renaming and integrating with the Microsoft Office account page
-
-**Type:** Plan for change
-**Service category:** My Profile/Account
-**Product capability:** Collaboration
-
-Starting in October, the My Profile experience will become My Account. As part of that change, everywhere that currently says, **My Profile** will change to **My Account**. On top of the naming change and some design improvements, the updated experience will offer additional integration with the Microsoft Office account page. Specifically, you'll be able to access Office installations and subscriptions from the **Overview Account** page, along with Office-related contact preferences from the **Privacy** page.
-
-For more information about the My Profile (preview) experience, see [My Profile (preview) portal overview](https://support.microsoft.com/account-billing/my-account-portal-for-work-or-school-accounts-eab41bfe-3b9e-441e-82be-1f6e568d65fd).
---
-### Bulk manage groups and members using CSV files in the Azure portal (Public Preview)
-
-**Type:** New feature
-**Service category:** Group Management
-**Product capability:** Collaboration
-
-We're pleased to announce public preview availability of the bulk group management experiences in the Azure portal. You can now use a CSV file and the Azure portal to manage groups and member lists, including:
--- Adding or removing members from a group.--- Downloading the list of groups from the directory.--- Downloading the list of group members for a specific group.-
-For more information, see [Bulk add members](../enterprise-users/groups-bulk-import-members.md), [Bulk remove members](../enterprise-users/groups-bulk-remove-members.md), [Bulk download members list](../enterprise-users/groups-bulk-download-members.md), and [Bulk download groups list](../enterprise-users/groups-bulk-download.md).
---
-### Dynamic consent is now supported through a new admin consent endpoint
-
-**Type:** New feature
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-We've created a new admin consent endpoint to support dynamic consent, which is helpful for apps that want to use the dynamic consent model on the Microsoft Identity platform.
-
-For more information about how to use this new endpoint, see [Using the admin consent endpoint](../develop/v2-admin-consent.md).
---
-### New Federated Apps available in Azure AD App gallery - September 2019
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In September 2019, we've added these 29 new apps with Federation support to the app gallery:
-
-[ScheduleLook](https://schedulelook.bbsonlineservices.net/), [MS Azure SSO Access for Ethidex Compliance Office&trade; - Single sign-on](../saas-apps/ms-azure-sso-access-for-ethidex-compliance-office-tutorial.md), [iServer Portal](../saas-apps/iserver-portal-tutorial.md), [SKYSITE](../saas-apps/skysite-tutorial.md), [Concur Travel and Expense](../saas-apps/concur-travel-and-expense-tutorial.md), [WorkBoard](../saas-apps/workboard-tutorial.md), `https://apps.yeeflow.com/`, [ARC Facilities](../saas-apps/arc-facilities-tutorial.md), [Luware Stratus Team](https://stratus.emea.luware.cloud/login), [Wide Ideas](https://wideideas.online/wideideas/), [Prisma Cloud](../saas-apps/prisma-cloud-tutorial.md), [RENRAKU](../saas-apps/renraku-tutorial.md), [SealPath Secure Browser](https://protection.sealpath.com/SealPathInterceptorWopiSaas/Open/InstallSealPathEditorOneDrive), [Prisma Cloud](../saas-apps/prisma-cloud-tutorial.md), `https://app.penneo.com/`, `https://app.testhtm.com/settings/email-integration`, [Cintoo Cloud](https://aec.cintoo.com/login), [Whitesource](../saas-apps/whitesource-tutorial.md), [Hosted Heritage Online SSO](../saas-apps/hosted-heritage-online-sso-tutorial.md), [IDC](../saas-apps/idc-tutorial.md), [CakeHR](../saas-apps/cakehr-tutorial.md), [BIS](../saas-apps/bis-tutorial.md), [Coo Kai Team Build](https://ms-contacts.coo-kai.jp/), [Sonarqube](../saas-apps/sonarqube-tutorial.md), [Adobe Identity Management](../saas-apps/tutorial-list.md), [Discovery Benefits SSO](../saas-apps/discovery-benefits-sso-tutorial.md), [Amelio](https://app.amelio.co/), `https://itask.yipinapp.com/`
-
-For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md).
---
-### New Azure AD Global Reader role
-
-**Type:** New feature
-**Service category:** Azure AD roles
-**Product capability:** Access Control
-
-Starting on September 24, 2019, we're going to start rolling out a new Azure Active Directory (AD) role called Global Reader. This rollout will start with production and Global cloud customers (GCC), finishing up worldwide in October.
-
-The Global Reader role is the read-only counterpart to Global Administrator. Users in this role can read settings and administrative information across Microsoft 365 services, but can't take management actions. We've created the Global Reader role to help reduce the number of Global Administrators in your organization. Because Global Administrator accounts are powerful and vulnerable to attack, we recommend that you have fewer than five Global Administrators. We recommend using the Global Reader role for planning, audits, or investigations. We also recommend using the Global Reader role in combination with other limited administrator roles, like Exchange Administrator, to help get work done without requiring the Global Administrator role.
-
-The Global Reader role works with the new Microsoft 365 Admin Center, Exchange Admin Center, Teams Admin Center, Security Center, Microsoft Purview compliance portal, Azure portal, and the Device Management Admin Center.
-
->[!NOTE]
-> At the start of public preview, the Global Reader role won't work with: SharePoint, Privileged Access Management, Customer Lockbox, sensitivity labels, Teams Lifecycle, Teams Reporting & Call Analytics, Teams IP Phone Device Management, and Teams App Catalog.
-
-For more information, see [Administrator role permissions in Azure Active Directory](../roles/permissions-reference.md).
---
-### Access an on-premises Report Server from your Power BI Mobile app using Azure Active Directory Application Proxy
-
-**Type:** New feature
-**Service category:** App Proxy
-**Product capability:** Access Control
-
-New integration between the Power BI mobile app and Azure AD Application Proxy allows you to securely sign in to the Power BI mobile app and view any of your organization's reports hosted on the on-premises Power BI Report Server.
-
-For information about the Power BI Mobile app, including where to download the app, see the [Power BI site](https://powerbi.microsoft.com/mobile/). For more information about how to set up the Power BI mobile app with Azure AD Application Proxy, see [Enable remote access to Power BI Mobile with Azure AD Application Proxy](../app-proxy/application-proxy-integrate-with-power-bi.md).
---
-### New version of the AzureADPreview PowerShell module is available
-
-**Type:** Changed feature
-**Service category:** Other
-**Product capability:** Directory
-
-New cmdlets were added to the AzureADPreview module, to help define and assign custom roles in Azure AD, including:
--- `Add-AzureADMSFeatureRolloutPolicyDirectoryObject`-- `Get-AzureADMSFeatureRolloutPolicy`-- `New-AzureADMSFeatureRolloutPolicy`-- `Remove-AzureADMSFeatureRolloutPolicy`-- `Remove-AzureADMSFeatureRolloutPolicyDirectoryObject`-- `Set-AzureADMSFeatureRolloutPolicy`---
-### New version of Azure AD Connect
-
-**Type:** Changed feature
-**Service category:** Other
-**Product capability:** Directory
-
-We've released an updated version of Azure AD Connect for auto-upgrade customers. This new version includes several new features, improvements, and bug fixes.
---
-### Azure Active Directory Multi-Factor Authentication (MFA) Server, version 8.0.2 is now available
-
-**Type:** Fixed
-**Service category:** MFA
-**Product capability:** Identity Security & Protection
-
-If you're an existing customer, who activated Azure AD Multi-Factor Authentication (MFA) Server prior to July 1, 2019, you can now download the latest version of Azure AD Multi-Factor Authentication (MFA) Server (version 8.0.2). In this new version, we:
--- Fixed an issue so when Azure AD sync changes a user from Disabled to Enabled, an email is sent to the user.--- Fixed an issue so customers can successfully upgrade, while continuing to use the Tags functionality.--- Added the Kosovo (+383) country code.--- Added one-time bypass audit logging to the MultiFactorAuthSvc.log.--- Improved performance for the Web Service SDK.--- Fixed other minor bugs.-
-Starting July 1, 2019, Microsoft stopped offering multifactor authentication (MFA) Server for new deployments. New customers who require multifactor authentication should use cloud-based Azure AD Multi-Factor Authentication. For more information, see [Planning a cloud-based Azure AD Multi-Factor Authentication deployment](../authentication/howto-mfa-getstarted.md).
---
-## August 2019
-
-### Enhanced search, filtering, and sorting for groups is available in the Azure portal (Public Preview)
-
-**Type:** New feature
-**Service category:** Group Management
-**Product capability:** Collaboration
-
-We're pleased to announce public preview availability of the enhanced groups-related experiences in the Azure portal. These enhancements help you better manage groups and member lists, by providing:
--- Advanced search capabilities, such as substring search on groups lists.-- Advanced filtering and sorting options on member and owner lists.-- New search capabilities for member and owner lists.-- More accurate group counts for large groups.-
-For more information, see [Manage groups in the Azure portal](./active-directory-groups-members-azure-portal.md?context=azure%2factive-directory%2fusers-groups-roles%2fcontext%2fugr-context).
---
-### New custom roles are available for app registration management (Public Preview)
-
-**Type:** New feature
-**Service category:** Azure AD roles
-**Product capability:** Access Control
-
-Custom roles (available with an Azure AD P1 or P2 subscription) can now help provide you with fine-grained access, by letting you create role definitions with specific permissions and then to assign those roles to specific resources. Currently, you create custom roles by using permissions for managing app registrations and then assigning the role to a specific app. For more information about custom roles, see [Custom administrator roles in Azure Active Directory (preview)](../roles/custom-overview.md).
-
-If you need other permissions or resources supported, which you don't currently see, you can send feedback to our [Azure feedback site](https://feedback.azure.com/d365community/forum/22920db1-ad25-ec11-b6e6-000d3a4f0789) and we'll add your request to our update road map.
---
-### New provisioning logs can help you monitor and troubleshoot your app provisioning deployment (Public Preview)
-
-**Type:** New feature
-**Service category:** App Provisioning
-**Product capability:** Identity Lifecycle Management
-
-New provisioning logs are available to help you monitor and troubleshoot the user and group provisioning deployment. These new log files include information about:
--- What groups were successfully created in [ServiceNow](../saas-apps/servicenow-provisioning-tutorial.md)-- What roles were imported from [AWS Single-Account Access](../saas-apps/amazon-web-service-tutorial.md#configure-and-test-azure-ad-sso-for-aws-single-account-access)-- What employees weren't imported from [Workday](../saas-apps/workday-inbound-tutorial.md)-
-For more information, see [Provisioning reports in the Azure portal (preview)](../reports-monitoring/concept-provisioning-logs.md).
---
-### New security reports for all Azure AD administrators (General Availability)
-
-**Type:** New feature
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
-By default, all Azure AD administrators will soon be able to access modern security reports within Azure AD. Until the end of September, you'll be able to use the banner at the top of the modern security reports to return to the old reports.
-
-The modern security reports will provide more capabilities from the older versions, including:
--- Advanced filtering and sorting-- Bulk actions, such as dismissing user risk-- Confirmation of compromised or safe entities-- Risk state, covering: At risk, Dismissed, Remediated, and Confirmed compromised-- New risk-related detections (available to Azure AD Premium subscribers)-
-For more information, see [Risky users](../identity-protection/howto-identity-protection-investigate-risk.md#risky-users), [Risky sign-ins](../identity-protection/howto-identity-protection-investigate-risk.md#risky-sign-ins), and [Risk detections](../identity-protection/howto-identity-protection-investigate-risk.md#risk-detections).
---
-### User-assigned managed identity is available for Virtual Machines and Virtual Machine Scale Sets (General Availability)
-
-**Type:** New feature
-**Service category:** Managed identities for Azure resources
-**Product capability:** Developer Experience
-
-User-assigned managed identities are now generally available for Virtual Machines and Virtual Machine Scale Sets. As part of this, Azure can create an identity in the Azure AD tenant that's trusted by the subscription in use, and can be assigned to one or more Azure service instances. For more information about user-assigned managed identities, see [What is managed identities for Azure resources?](../managed-identities-azure-resources/overview.md).
---
-### Users can reset their passwords using a mobile app or hardware token (General Availability)
-
-**Type:** Changed feature
-**Service category:** Self Service Password Reset
-**Product capability:** User Authentication
-
-Users who have registered a mobile app with your organization can now reset their own password by approving a notification from the Microsoft Authenticator app or by entering a code from their mobile app or hardware token.
-
-For more information, see [How it works: Azure AD self-service password reset](../authentication/concept-sspr-howitworks.md). For more information about the user experience, see [Reset your own work or school password overview](https://support.microsoft.com/account-billing/register-the-password-reset-verification-method-for-a-work-or-school-account-47a55d4a-05b0-4f67-9a63-f39a43dbe20a).
---
-### ADAL.NET ignores the MSAL.NET shared cache for on-behalf-of scenarios
-
-**Type:** Fixed
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-Starting with Azure AD authentication library (ADAL.NET) version 5.0.0-preview, app developers must [serialize one cache per account for web apps and web APIs](https://github.com/AzureAD/azure-activedirectory-library-for-dotnet/wiki/Token-cache-serialization#custom-token-cache-serialization-in-web-applications--web-api). Otherwise, some scenarios using the [on-behalf-of flow](../develop/scenario-web-api-call-api-app-configuration.md?tabs=java) for Java, along with some specific use cases of `UserAssertion`, may result in an elevation of privilege. To avoid this vulnerability, ADAL.NET now ignores the Microsoft Authentication Library for dotnet (MSAL.NET) shared cache for on-behalf-of scenarios.
-
-For more information about this issue, see [Azure Active Directory Authentication Library Elevation of Privilege Vulnerability](https://portal.msrc.microsoft.com/security-guidance/advisory/CVE-2019-1258).
---
-### New Federated Apps available in Azure AD App gallery - August 2019
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In August 2019, we've added these 26 new apps with Federation support to the app gallery:
-
-[Civic Platform](../saas-apps/civic-platform-tutorial.md), [Amazon Business](../saas-apps/amazon-business-tutorial.md), [ProNovos Ops Manager](../saas-apps/pronovos-ops-manager-tutorial.md), [Cognidox](../saas-apps/cognidox-tutorial.md), [Viareport's Inativ Portal (Europe)](../saas-apps/viareports-inativ-portal-europe-tutorial.md), [Azure Databricks](https://azure.microsoft.com/services/databricks), [Robin](../saas-apps/robin-tutorial.md), [Academy Attendance](../saas-apps/academy-attendance-tutorial.md), [Cousto MySpace](https://cousto.platformers.be/account/login), [Uploadcare](https://uploadcare.com/accounts/signup/), [Carbonite Endpoint Backup](../saas-apps/carbonite-endpoint-backup-tutorial.md), [CPQSync by Cincom](../saas-apps/cpqsync-by-cincom-tutorial.md), [Chargebee](../saas-apps/chargebee-tutorial.md), [deliver.media&trade; Portal](https://portal.deliver.media), [Frontline Education](../saas-apps/frontline-education-tutorial.md), [F5](https://www.f5.com/products/security/access-policy-manager), [stashcat AD connect](https://www.stashcat.com), [Blink](../saas-apps/blink-tutorial.md), [Vocoli](../saas-apps/vocoli-tutorial.md), [ProNovos Analytics](../saas-apps/pronovos-analytics-tutorial.md), [Sigstr](../saas-apps/sigstr-tutorial.md), [Darwinbox](../saas-apps/darwinbox-tutorial.md), [Watch by Colors](../saas-apps/watch-by-colors-tutorial.md), [Harness](../saas-apps/harness-tutorial.md), [EAB Navigate Strategic Care](../saas-apps/eab-navigate-strategic-care-tutorial.md)
-
-For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md).
---
-### New versions of the AzureAD PowerShell and AzureADPreview PowerShell modules are available
-
-**Type:** Changed feature
-**Service category:** Other
-**Product capability:** Directory
-
-New updates to the AzureAD and AzureAD Preview PowerShell modules are available:
--- A new `-Filter` parameter was added to the `Get-AzureADDirectoryRole` parameter in the AzureAD module. This parameter helps you filter on the directory roles returned by the cmdlet.-- New cmdlets were added to the AzureADPreview module, to help define and assign custom roles in Azure AD, including:-
- - `Get-AzureADMSRoleAssignment`
- - `Get-AzureADMSRoleDefinition`
- - `New-AzureADMSRoleAssignment`
- - `New-AzureADMSRoleDefinition`
- - `Remove-AzureADMSRoleAssignment`
- - `Remove-AzureADMSRoleDefinition`
- - `Set-AzureADMSRoleDefinition`
---
-### Improvements to the UI of the dynamic group rule builder in the Azure portal
-
-**Type:** Changed feature
-**Service category:** Group Management
-**Product capability:** Collaboration
-
-We've made some UI improvements to the dynamic group rule builder, available in the Azure portal, to help you more easily set up a new rule, or change existing rules. This design improvement allows you to create rules with up to five expressions, instead of just one. We've also updated the device property list to remove deprecated device properties.
-
-For more information, see [Manage dynamic membership rules](../enterprise-users/groups-dynamic-membership.md).
---
-### New Microsoft Graph app permission available for use with access reviews
-
-**Type:** Changed feature
-**Service category:** Access Reviews
-**Product capability:** Identity Governance
-
-We've introduced a new Microsoft Graph app permission, `AccessReview.ReadWrite.Membership`, which allows apps to automatically create and retrieve access reviews for group memberships and app assignments. This permission can be used by your scheduled jobs or as part of your automation, without requiring a logged-in user context.
-
-For more information, see the [Example how to create Azure AD access reviews using Microsoft Graph app permissions with PowerShell blog](https://techcommunity.microsoft.com/t5/Azure-Active-Directory/Example-how-to-create-Azure-AD-access-reviews-using-Microsoft/m-p/807241).
---
-### Azure AD activity logs are now available for government cloud instances in Azure Monitor
-
-**Type:** Changed feature
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-We're excited to announce that Azure AD activity logs are now available for government cloud instances in Azure Monitor. You can now send Azure AD logs to your storage account or to an event hub to integrate with your SIEM tools, like [Sumologic](../reports-monitoring/howto-integrate-activity-logs-with-sumologic.md), [Splunk](../reports-monitoring/howto-integrate-activity-logs-with-splunk.md), and [ArcSight](../reports-monitoring/howto-integrate-activity-logs-with-arcsight.md).
-
-For more information about setting up Azure Monitor, see [Azure AD activity logs in Azure Monitor](../reports-monitoring/concept-activity-logs-azure-monitor.md#cost-considerations).
---
-### Update your users to the new, enhanced security info experience
-
-**Type:** Changed feature
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-On September 25, 2019, we'll be turning off the old, non-enhanced security info experience for registering and managing user security info and only turning on the new, [enhanced version](https://techcommunity.microsoft.com/t5/Azure-Active-Directory-Identity/Cool-enhancements-to-the-Azure-AD-combined-MFA-and-password/ba-p/354271). This means that your users will no longer be able to use the old experience.
-
-For more information about the enhanced security info experience, see our [admin documentation](../authentication/concept-registration-mfa-sspr-combined.md) and our [user documentation](https://support.microsoft.com/account-billing/set-up-your-security-info-from-a-sign-in-prompt-28180870-c256-4ebf-8bd7-5335571bf9a8).
-
-#### To turn on this new experience, you must:
-
-1. Sign in to the Azure portal as a Global Administrator or User Administrator.
-
-2. Go to **Azure Active Directory > User settings > Manage settings for access panel preview features**.
-
-3. In the **Users can use preview features for registering and managing security info - enhanced** area, select **Selected**, and then either choose a group of users or choose **All** to turn on this feature for all users in the tenant.
-
-4. In the **Users can use preview features for registering and managing security **info**** area, select **None**.
-
-5. Save your settings.
-
- After you save your settings, you'll no longer have access to the old security info experience.
-
->[!Important]
->If you don't complete these steps before September 25, 2019, your Azure Active Directory tenant will be automatically enabled for the enhanced experience. If you have questions, please contact us at registrationpreview@microsoft.com.
---
-### Authentication requests using POST logins will be more strictly validated
-
-**Type:** Changed feature
-**Service category:** Authentications (Logins)
-**Product capability:** Standards
-
-Starting on September 2, 2019, authentication requests using the POST method will be more strictly validated against the HTTP standards. Specifically, spaces and double-quotes (") will no longer be removed from request form values. These changes aren't expected to break any existing clients, and will help to make sure that requests sent to Azure AD are reliably handled every time.
-
-For more information, see the [Azure AD breaking changes notices](../develop/reference-breaking-changes.md#post-form-semantics-will-be-enforced-more-strictlyspaces-and-quotes-will-be-ignored).
---
-## July 2019
-
-### Plan for change: Application Proxy service update to support only TLS 1.2
-
-**Type:** Plan for change
-**Service category:** App Proxy
-**Product capability:** Access Control
-
-To help provide you with our strongest encryption, we're going to begin limiting Application Proxy service access to only TLS 1.2 protocols. This limitation will initially be rolled out to customers who are already using TLS 1.2 protocols, so you won't see the impact. Complete deprecation of the TLS 1.0 and TLS 1.1 protocols will be complete on August 31, 2019. Customers still using TLS 1.0 and TLS 1.1 will receive advanced notice to prepare for this change.
-
-To maintain the connection to the Application Proxy service throughout this change, we recommend that you make sure your client-server and browser-server combinations are updated to use TLS 1.2. We also recommend that you make sure to include any client systems used by your employees to access apps published through the Application Proxy service.
-
-For more information, see [Add an on-premises application for remote access through Application Proxy in Azure Active Directory](../app-proxy/application-proxy-add-on-premises-application.md).
---
-### Plan for change: Design updates are coming for the Application Gallery
-
-**Type:** Plan for change
-**Service category:** Enterprise Apps
-**Product capability:** SSO
-
-New user interface changes are coming to the design of the **Add from the gallery** area of the **Add an application** blade. These changes will help you more easily find your apps that support automatic provisioning, OpenID Connect, Security Assertion Markup Language (SAML), and Password single sign-on (SSO).
---
-### Plan for change: Removal of the multifactor authentication (MFA) server IP address from the Office 365 IP address
-
-**Type:** Plan for change
-**Service category:** MFA
-**Product capability:** Identity Security & Protection
-
-We're removing the multifactor authentication (MFA) server IP address from the [Office 365 IP Address and URL Web service](/office365/enterprise/office-365-ip-web-service). If you currently rely on these pages to update your firewall settings, you must make sure you're also including the list of IP addresses documented in the **Azure Active Directory Multi-Factor Authentication Server firewall requirements** section of the [Getting started with the Azure Active Directory Multi-Factor Authentication Server](../authentication/howto-mfaserver-deploy.md#azure-multi-factor-authentication-server-firewall-requirements) article.
---
-### App-only tokens now require the client app to exist in the resource tenant
-
-**Type:** Fixed
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-On July 26, 2019, we changed how we provide app-only tokens through the [client credentials grant](../develop/v2-oauth2-client-creds-grant-flow.md). Previously, apps could get tokens to call other apps, regardless of whether the client app was in the tenant. We've updated this behavior so single-tenant resources, sometimes called Web APIs, can only be called by client apps that exist in the resource tenant.
-
-If your app isn't located in the resource tenant, you'll get an error message that says, `The service principal named <app_name> was not found in the tenant named <tenant_name>. This can happen if the application has not been installed by the administrator of the tenant.` To fix this problem, you must create the client app service principal in the tenant, using either the [admin consent endpoint](../develop/v2-permissions-and-consent.md#using-the-admin-consent-endpoint) or [through PowerShell](../develop/howto-authenticate-service-principal-powershell.md), which ensures your tenant has given the app permission to operate within the tenant.
-
-For more information, see [What's new for authentication?](../develop/reference-breaking-changes.md#app-only-tokens-for-single-tenant-applications-are-only-issued-if-the-client-app-exists-in-the-resource-tenant).
-
-> [!NOTE]
-> Existing consent between the client and the API continues to not be required. Apps should still be doing their own authorization checks.
---
-### New passwordless sign-in to Azure AD using FIDO2 security keys
-
-**Type:** New feature
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-Azure AD customers can now set policies to manage FIDO2 security keys for their organization's users and groups. End users can also self-register their security keys, use the keys to sign in to their Microsoft accounts on web sites while on FIDO-capable devices, and sign-in to their Azure AD-joined Windows 10 devices.
-
-For more information, see [Enable passwordless sign in for Azure AD (preview)](../authentication/concept-authentication-passwordless.md) for administrator-related information, and [Set up security info to use a security key (Preview)](https://support.microsoft.com/account-billing/set-up-a-security-key-as-your-verification-method-2911cacd-efa5-4593-ae22-e09ae14c6698) for end-user-related information.
---
-### New Federated Apps available in Azure AD App gallery - July 2019
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** 3rd Party Integration
-
-In July 2019, we've added these 18 new apps with Federation support to the app gallery:
-
-[Ungerboeck Software](../saas-apps/ungerboeck-software-tutorial.md), [Bright Pattern Omnichannel Contact Center](../saas-apps/bright-pattern-omnichannel-contact-center-tutorial.md), [Clever Nelly](../saas-apps/clever-nelly-tutorial.md), [AcquireIO](../saas-apps/acquireio-tutorial.md), [Looop](https://www.looop.co/schedule-a-demo/), [productboard](../saas-apps/productboard-tutorial.md), [MS Azure SSO Access for Ethidex Compliance Office&trade;](../saas-apps/ms-azure-sso-access-for-ethidex-compliance-office-tutorial.md), [Hype](../saas-apps/hype-tutorial.md), [Abstract](../saas-apps/abstract-tutorial.md), [Ascentis](../saas-apps/ascentis-tutorial.md), [Flipsnack](https://www.flipsnack.com/accounts/sign-in-sso.html), [Wandera](../saas-apps/wandera-tutorial.md), [TwineSocial](https://twinesocial.com/), [Kallidus](../saas-apps/kallidus-tutorial.md), [HyperAnna](../saas-apps/hyperanna-tutorial.md), [PharmID WasteWitness](https://pharmid.com/), [i2B Connect](https://www.i2b-online.com/sign-up-to-use-i2b-connect-here-sso-access/), [JFrog Artifactory](../saas-apps/jfrog-artifactory-tutorial.md)
-
-For more information about the apps, see [SaaS application integration with Azure Active Directory](../saas-apps/tutorial-list.md). For more information about listing your application in the Azure AD app gallery, see [List your application in the Azure Active Directory application gallery](../manage-apps/v2-howto-app-gallery-listing.md).
---
-### Automate user account provisioning for these newly supported SaaS apps
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** Monitoring & Reporting
-
-You can now automate creating, updating, and deleting user accounts for these newly integrated apps:
--- [Dialpad](../saas-apps/dialpad-provisioning-tutorial.md)--- [Federated Directory](../saas-apps/federated-directory-provisioning-tutorial.md)--- [Figma](../saas-apps/figma-provisioning-tutorial.md)--- [Leapsome](../saas-apps/leapsome-provisioning-tutorial.md)--- [Peakon](../saas-apps/peakon-provisioning-tutorial.md)--- [Smartsheet](../saas-apps/smartsheet-provisioning-tutorial.md)-
-For more information about how to better secure your organization by using automated user account provisioning, see [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md)
---
-### New Azure AD Domain Services service tag for Network Security Group
-
-**Type:** New feature
-**Service category:** Azure AD Domain Services
-**Product capability:** Azure AD Domain Services
-
-If you're tired of managing long lists of IP addresses and ranges, you can use the new **AzureActiveDirectoryDomainServices** network service tag in your Azure network security group to help secure inbound traffic to your Azure AD Domain Services virtual network subnet.
-
-For more information about this new service tag, see [Network Security Groups for Azure AD Domain Services](../../active-directory-domain-services/network-considerations.md#network-security-groups-and-required-ports).
---
-### New Security Audits for Azure AD Domain Services (Public Preview)
-
-**Type:** New feature
-**Service category:** Azure AD Domain Services
-**Product capability:** Azure AD Domain Services
-
-We're pleased to announce the release of Azure AD Domain Service Security Auditing to public preview. Security auditing helps provide you with critical insight into your authentication services by streaming security audit events to targeted resources, including Azure Storage, Azure Log Analytics workspaces, and Azure Event Hubs, using the Azure AD Domain Service portal.
-
-For more information, see [Enable Security Audits for Azure AD Domain Services (Preview)](../../active-directory-domain-services/security-audit-events.md).
---
-### New Authentication methods usage & insights (Public Preview)
-
-**Type:** New feature
-**Service category:** Self Service Password Reset
-**Product capability:** Monitoring & Reporting
-
-The new Authentication methods usage & insights reports can help you to understand how features like Azure AD Multi-Factor Authentication and self-service password reset are being registered and used in your organization, including the number of registered users for each feature, how often self-service password reset is used to reset passwords, and by which method the reset happens.
-
-For more information, see [Authentication methods usage & insights (preview)](../authentication/howto-authentication-methods-activity.md).
---
-### New security reports are available for all Azure AD administrators (Public Preview)
-
-**Type:** New feature
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
-All Azure AD administrators can now select the banner at the top of existing security reports, such as the **Users flagged for risk** report, to start using the new security experience as shown in the **Risky users** and the **Risky sign-ins** reports. Over time, all of the security reports will move from the older versions to the new versions, with the new reports providing you the following additional capabilities:
--- Advanced filtering and sorting--- Bulk actions, such as dismissing user risk--- Confirmation of compromised or safe entities--- Risk state, covering: At risk, Dismissed, Remediated, and Confirmed compromised-
-For more information, see [Risky users report](../identity-protection/howto-identity-protection-investigate-risk.md#risky-users) and [Risky sign-ins report](../identity-protection/howto-identity-protection-investigate-risk.md#risky-sign-ins).
---
-### New Security Audits for Azure AD Domain Services (Public Preview)
-
-**Type:** New feature
-**Service category:** Azure AD Domain Services
-**Product capability:** Azure AD Domain Services
-
-We're pleased to announce the release of Azure AD Domain Service Security Auditing to public preview. Security auditing helps provide you with critical insight into your authentication services by streaming security audit events to targeted resources, including Azure Storage, Azure Log Analytics workspaces, and Azure Event Hubs, using the Azure AD Domain Service portal.
-
-For more information, see [Enable Security Audits for Azure AD Domain Services (Preview)](../../active-directory-domain-services/security-audit-events.md).
---
-### New B2B direct federation using SAML/WS-Fed (Public Preview)
-
-**Type:** New feature
-**Service category:** B2B
-**Product capability:** B2B/B2C
-
-Direct federation helps to make it easier for you to work with partners whose IT-managed identity solution is not Azure AD, by working with identity systems that support the SAML or WS-Fed standards. After you set up a direct federation relationship with a partner, any new guest user you invite from that domain can collaborate with you using their existing organizational account, making the user experience for your guests more seamless.
-
-For more information, see [Direct federation with AD FS and third-party providers for guest users (preview)](../external-identities/direct-federation.md).
---
-### Automate user account provisioning for these newly supported SaaS apps
-
-**Type:** New feature
-**Service category:** Enterprise Apps
-**Product capability:** Monitoring & Reporting
-
-You can now automate creating, updating, and deleting user accounts for these newly integrated apps:
--- [Dialpad](../saas-apps/dialpad-provisioning-tutorial.md)--- [Federated Directory](../saas-apps/federated-directory-provisioning-tutorial.md)--- [Figma](../saas-apps/figma-provisioning-tutorial.md)--- [Leapsome](../saas-apps/leapsome-provisioning-tutorial.md)--- [Peakon](../saas-apps/peakon-provisioning-tutorial.md)--- [Smartsheet](../saas-apps/smartsheet-provisioning-tutorial.md)-
-For more information about how to better secure your organization by using automated user account provisioning, see [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md).
---
-### New check for duplicate group names in the Azure portal
-
-**Type:** New feature
-**Service category:** Group Management
-**Product capability:** Collaboration
-
-Now, when you create or update a group name from the Azure portal, we'll perform a check to see if you are duplicating an existing group name in your resource. If we determine that the name is already in use by another group, you'll be asked to modify your name.
-
-For more information, see [Manage groups in the Azure portal](./active-directory-groups-create-azure-portal.md?context=azure%2factive-directory%2fusers-groups-roles%2fcontext%2fugr-context).
---
-### Azure AD now supports static query parameters in reply (redirect) URIs
-
-**Type:** New feature
-**Service category:** Authentications (Logins)
-**Product capability:** User Authentication
-
-Azure AD apps can now register and use reply (redirect) URIs with static query parameters (for example, `https://contoso.com/oauth2?idp=microsoft`) for OAuth 2.0 requests. The static query parameter is subject to string matching for reply URIs, just like any other part of the reply URI. If there's no registered string that matches the URL-decoded redirect-uri, the request is rejected. If the reply URI is found, the entire string is used to redirect the user, including the static query parameter.
-
-Dynamic reply URIs are still forbidden because they represent a security risk and can't be used to retain state information across an authentication request. For this purpose, use the `state` parameter.
-
-Currently, the app registration screens of the Azure portal still block query parameters. However, you can manually edit the app manifest to add and test query parameters in your app. For more information, see [What's new for authentication?](../develop/reference-breaking-changes.md#redirect-uris-can-now-contain-query-string-parameters).
---
-### Activity logs (MS Graph APIs) for Azure AD are now available through PowerShell Cmdlets
-
-**Type:** New feature
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-We're excited to announce that Azure AD activity logs (Audit and Sign-ins reports) are now available through the Azure AD PowerShell module. Previously, you could create your own scripts using MS Graph API endpoints, and now we've extended that capability to PowerShell cmdlets.
-
-For more information about how to use these cmdlets, see [Azure AD PowerShell cmdlets for reporting](../reports-monitoring/reference-powershell-reporting.md).
---
-### Updated filter controls for Audit and Sign-in logs in Azure AD
-
-**Type:** Changed feature
-**Service category:** Reporting
-**Product capability:** Monitoring & Reporting
-
-We've updated the Audit and Sign-in log reports so you can now apply various filters without having to add them as columns on the report screens. Additionally, you can now decide how many filters you want to show on the screen. These updates all work together to make your reports easier to read and more scoped to your needs.
-
-For more information about these updates, see [Filter audit logs](../reports-monitoring/concept-audit-logs.md#filtering-audit-logs) and [Filter sign-in activities](../reports-monitoring/concept-sign-ins.md#filter-sign-in-activities).
-----------------------
active-directory Whats New https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/fundamentals/whats-new.md
Azure AD receives improvements on an ongoing basis. To stay up to date with the
This page updates monthly, so revisit it regularly. If you're looking for items older than six months, you can find them in [Archive for What's new in Azure Active Directory](whats-new-archive.md).
+## June 2023
+
+### Public Preview - Availability of Exchange Hybrid in Azure AD Connect cloud sync
+
+**Type:** New feature
+**Service category:** Directory Management
+**Product capability:** Azure Active Directory Connect Cloud Sync
+++
+Exchange hybrid capability allows for the coexistence of Exchange mailboxes both on-premises and in Microsoft 365. Cloud Sync synchronizes a specific set of Exchange-related attributes from Azure AD back into your on-premises directory and to any forests that's disconnected (no network trust needed between them). With this capability, existing customers who have this feature enabled in Azure AD Connect sync can now migrate and leverage this feature with Azure AD cloud sync. For more information, see: ADD LINK
+++
+### Public Preview - New provisioning connectors in the Azure AD Application Gallery - June 2023
+
+**Type:** New feature
+**Service category:** App Provisioning
+**Product capability:** 3rd Party Integration
+
+We've added the following new applications in our App gallery with Provisioning support. You can now automate creating, updating, and deleting of user accounts for these newly integrated apps:
+
+- [Headspace](../saas-apps/headspace-provisioning-tutorial.md)
+- [Humbol](../saas-apps/humbol-provisioning-tutorial.md)
+- [LUSID](../saas-apps/lusid-provisioning-tutorial.md)
+- [Markit Procurement Service](../saas-apps/markit-procurement-service-provisioning-tutorial.md)
+- [Moqups](../saas-apps/moqups-provisioning-tutorial.md)
+- [Notion](../saas-apps/notion-provisioning-tutorial.md)
+- [OpenForms](../saas-apps/openforms-provisioning-tutorial.md)
+- [SafeGuard Cyber](../saas-apps/safeguard-cyber-provisioning-tutorial.md)
+- [Uni-tel )
+- [Vault Platform](../saas-apps/vault-platform-provisioning-tutorial.md)
+- [V-Client](../saas-apps/v-client-provisioning-tutorial.md)
+- [Veritas Enterprise Vault.cloud SSO-SCIM](../saas-apps/veritas-provisioning-tutorial.md)
+
+For more information about how to better secure your organization by using automated user account provisioning, see: [Automate user provisioning to SaaS applications with Azure AD](../app-provisioning/user-provisioning.md).
+++
+### General Availability - Include/exclude Entitlement Management in Conditional Access policies
+
+**Type:** New feature
+**Service category:** Entitlement Management
+**Product capability:** Entitlement Management
+
+The Entitlement Management service can now be targeted in the conditional access policy for inclusion or exclusion of applications. To target the Entitlement Management service, select ΓÇ£Azure AD Identity Governance - Entitlement ManagementΓÇ¥ in the cloud apps picker. The Entitlement Management app includes the entitlement management part of My Access, the Entitlement Management part of the Entra and Azure portals, and the Entitlement Management part of MS Graph. For more information, see: [Review your Conditional Access policies](../governance/entitlement-management-external-users.md#review-your-conditional-access-policies).
+++
+### General Availability - Azure Active Directory User and Group capabilities on Azure Mobile are now available
+
+**Type:** New feature
+**Service category:** Azure Mobile App
+**Product capability:** End User Experiences
+
+The Azure Mobile app now includes a section for Azure Active Directory. Within Azure Active Directory on mobile, user can search for and view more details about user and groups. Additionally, permitted users can invite guest users to their active tenant, assign group memberships and ownerships for users, and view user sign-in logs. For more information, see: [What is Azure Active Directory?](../fundamentals/active-directory-whatis.md).
+++
+### Plan for change - Modernizing Terms of Use Experiences
+
+**Type:** Plan for change
+**Service category:** Terms of Use
+**Product capability:** AuthZ/Access Delegation
+
+Recently we [announced](../fundamentals/whats-new.md#modernizing-terms-of-use-experiences) the modernization of terms of use end-user experiences as part of ongoing service improvements. As previously communicated the end user experiences will be updated with a new PDF viewer and are moving from https://account.activedirectory.windowsazure.com to https://myaccount.microsoft.com.
+
+Starting today the modernized experience for viewing previously accepted terms of use is available via https://myaccount.microsoft.com/termsofuse/myacceptances. We encourage you to check out the modernized experience, which follows the same updated design pattern as the upcoming modernization of accepting or declining terms of use as part of the sign-in flow. We would appreciate your [feedback](https://forms.microsoft.com/r/NV0msbrqtF) before we begin to modernize the sign-in flow.
+++
+### General Availability - Privileged Identity Management for Groups
+
+**Type:** New feature
+**Service category:** Privileged Identity Management
+**Product capability:** Privileged Identity Management
+
+Privileged Identity Management for Groups is now generally available. With this feature, you have the ability to grant users just-in-time membership in a group, which in turn provides access to Azure Active Directory roles, Azure roles, Azure SQL, Azure Key Vault, Intune, other application roles, as well as third-party applications. Through one activation, you can conveniently assign a combination of permissions across different applications and RBAC systems.
+
+PIM for Groups offers can also be used for just-in-time ownership. As the owner of the group, you can manage group properties, including membership. For more information, see: [Privileged Identity Management (PIM) for Groups](../privileged-identity-management/concept-pim-for-groups.md).
+++
+### General Availability - Privileged Identity Management and Conditional Access integration
+
+**Type:** New feature
+**Service category:** Privileged Identity Management
+**Product capability:** Privileged Identity Management
+
+The Privileged Identity Management (PIM) integration with Conditional Access authentication context is generally available. You can require users to meet a variety of requirements during role activation such as:
+
+- Have specific authentication method through [Authentication Strengths](../authentication/concept-authentication-strengths.md)
+- Activate from a compliant device
+- Validate location based on GPS
+- Not have certain level of sign-in risk identified with Identity Protection
+- Meet other requirements defined in Conditional Access policies
+
+The integration is available for all providers: PIM for Azure AD roles, PIM for Azure resources, PIM for groups. For more information, see:
+- [Configure Azure AD role settings in Privileged Identity Management](../privileged-identity-management/pim-how-to-change-default-settings.md)
+- [Configure Azure resource role settings in Privileged Identity Management](../privileged-identity-management/pim-resource-roles-configure-role-settings.md)
+- [Configure PIM for Groups settings](../privileged-identity-management/groups-role-settings.md)
+++
+### General Availability - Updated look and feel for Per-user MFA
+
+**Type:** Plan for change
+**Service category:** MFA
+**Product capability:** Identity Security & Protection
+
+As part of ongoing service improvements, we're making updates to the per-user MFA admin configuration experience to align with the look and feel of Azure. This change doesn't include any changes to the core functionality and will only include visual improvements. For more information, see: [Enable per-user Azure AD Multi-Factor Authentication to secure sign-in events](../authentication/howto-mfa-userstates.md).
+++
+### General Availability - Converged Authentication Methods in US Gov cloud
+
+**Type:** New feature
+**Service category:** MFA
+**Product capability:** User Authentication
+
+The Converged Authentication Methods Policy enables you to manage all authentication methods used for MFA and SSPR in one policy, migrate off the legacy MFA and SSPR policies, and target authentication methods to groups of users instead of enabling them for all users in the tenant. Customers should migrate management of authentication methods off the legacy MFA and SSPR policies before September 30, 2024. For more information, see: [Manage authentication methods for Azure AD](../authentication/concept-authentication-methods-manage.md).
+++
+### General Availability - Support for Directory Extensions using Azure AD Cloud Sync
+
+**Type:** New feature
+**Service category:** Provisioning
+**Product capability:** Azure Active Directory Connect Cloud Sync
+
+Hybrid IT Admins can now sync both Active Directory and Azure AD Directory Extensions using Azure AD Cloud Sync. This new capability adds the ability to dynamically discover the schema for both Active Directory and Azure Active Directory, thereby, allowing customers to simply map the needed attributes using Cloud Sync's attribute mapping experience. For more information, see: [Cloud Sync directory extensions and custom attribute mapping](../hybrid/cloud-sync/custom-attribute-mapping.md).
+++
+### Public Preview - Restricted Management Administrative Units
+
+**Type:** New feature
+**Service category:** Directory Management
+**Product capability:** Access Control
+
+Restricted Management Administrative Units allow you to restrict modification of users, security groups, and device in Azure AD so that only designated administrators can make changes. Global Administrators and other tenant-level administrators can't modify the users, security groups, or devices that are added to a restricted management admin unit. For more information, see: [Restricted management administrative units in Azure Active Directory (Preview)](../roles/admin-units-restricted-management.md).
+++
+### Public Preview - Real-Time Threat Intelligence Detections
+
+**Type:** New feature
+**Service category:** Identity Protection
+**Product capability:** Identity Security & Protection
+
+To address emerging attacks, Identity Protection now includes Real-Time Threat Intelligence Detections, also referred to as Rapid Response Detections. When emerging attacks occur, Identity Protection will now dynamically issue new detections in response to these attacks. These detections utilize MicrosoftΓÇÖs threat intelligence in real-time, meaning Identity Protection detects emerging patterns of compromise during sign-in and challenge the user accordingly. For more information, see: ADD LINK
+++
+### General Availability - Report suspicious activity integrated with Identity Protection
+
+**Type:** Changed feature
+**Service category:** Identity Protection
+**Product capability:** Identity Security & Protection
+
+Report suspicious activity is an updated implementation of the MFA fraud alert, where users can report a voice or phone app MFA prompt as suspicious. If enabled, users reporting prompts have their user risk set to high, enabling admins to use Identity Protection risk based policies or risk detection APIs to take remediation actions. Report suspicious activity operates in parallel with the legacy MFA fraud alert at this time. For more information, see: [Configure Azure AD Multi-Factor Authentication settings](../authentication/howto-mfa-mfasettings.md).
+++ ## May 2023 ### General Availability - Conditional Access authentication strength for members, external users and FIDO2 restrictions
Last year we announced the [public preview of custom extensions in Entitlement M
The latest version of MSAL.NET graduates the Managed Identity APIs into the General Availability mode of support, which means that developers can integrate them safely in production workloads.
-Managed identities are a part of the Azure infrastructure, simplifying how developers handle credentials and secrets to access cloud resources. With Managed Identities, developers do not need to manually handle credential retrieval and security. Instead, they can rely on an automatically managed set of identities to connect to resources that support Azure Active Directory (AAD) authentication. You can learn more in [What are managed identities for Azure resources?](../managed-identities-azure-resources/overview.md)
+Managed identities are a part of the Azure infrastructure, simplifying how developers handle credentials and secrets to access cloud resources. With Managed Identities, developers don't need to manually handle credential retrieval and security. Instead, they can rely on an automatically managed set of identities to connect to resources that support Azure Active Directory authentication. You can learn more in [What are managed identities for Azure resources?](../managed-identities-azure-resources/overview.md)
With MSAL.NET 4.54.0, the Managed Identity APIs are now stable. There are a few changes that we added that make them easier to use and integrate that might require tweaking your code if youΓÇÖve used our [experimental implementation](https://den.dev/blog/managed-identity-msal-net/):
As part of ongoing service improvements, we're making updates to the per-user MF
**Service category:** Terms of Use **Product capability:** AuthZ/Access Delegation
-Due to a technical issue, we have recently started to emit additional audit logs for terms of use. The additional audit logs will be turned off by the first of May and are tagged with the core directory service and the agreement category. If you have built a dependency on the additional audit logs, you must switch to the regular audit logs tagged with the terms of use service.
+Due to a technical issue, we have recently started to emit additional audit logs for terms of use. The additional audit logs will be turned off by May 1 and are tagged with the core directory service and the agreement category. If you have built a dependency on the additional audit logs, you must switch to the regular audit logs tagged with the terms of use service.
For more information about how to better secure your organization by using autom
Cross-tenant synchronization allows you to set up a scalable and automated solution for users to access applications across tenants in your organization. It builds upon the Azure AD B2B functionality and automates creating, updating, and deleting B2B users. For more information, see: [What is cross-tenant synchronization? (preview)](../multi-tenant-organizations/cross-tenant-synchronization-overview.md). --
-### General Availability - Apple Watch companion app removed from Authenticator for iOS
---
-**Type:** Deprecated
-**Service category:** Identity Protection
-**Product capability:** Identity Security & Protection
-
-In the January 2023 release of Authenticator for iOS, there's no companion app for watchOS due to it being incompatible with Authenticator security features, meaning you aren't able to install or use Authenticator on Apple Watch. This change only impacts Apple Watch, so you can still use Authenticator on your other devices. For more information, see: [Common questions about the Microsoft Authenticator app](https://support.microsoft.com/account-billing/common-questions-about-the-microsoft-authenticator-app-12d283d1-bcef-4875-9ae5-ac360e2945dd).
-- ### General Availability - New Federated Apps available in Azure AD Application gallery - January 2023
active-directory Identity Governance Overview https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/governance/identity-governance-overview.md
While there's no perfect solution or recommendation for every customer, the foll
- [Identity and device access configurations](/microsoft-365/enterprise/microsoft-365-policies-configurations) - [Securing privileged access](../roles/security-planning.md)
+You may also wish to engage with one of Microsoft's [services and integration partners](services-and-integration-partners.md) to plan your deployment or integrate with the applications and other systems in your environment.
+ ## Simplifying identity governance tasks with automation Once you've started using these identity governance features, you can easily automate common identity governance scenarios. The following table shows how to get started for each scenario:
active-directory Lifecycle Workflow Tasks https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/governance/lifecycle-workflow-tasks.md
For Microsoft Graph, the parameters for the **Send welcome email to new hire** t
|displayName | Send Welcome Email (Customizable by user) | |description | Send welcome email to new hire (Customizable by user) | |taskDefinitionId | 70b29d51-b59a-4773-9280-8841dfd3f2ea |
+|arguments | The optional common email task parameters can be specified; if they are not included, the default behavior takes effect. |
```Example for usage within the workflow {
- "category": "joiner",
- "continueOnError": true,
- "description": "Send welcome email to new hire",
- "displayName": "Send Welcome Email",
- "isEnabled": true,
- "taskDefinitionId": "70b29d51-b59a-4773-9280-8841dfd3f2ea",
- "arguments": [
- {
- "name": "cc",
- "value": "b47471b9-af8f-4a5a-bfa2-b78e82398f6e, a7a23ce0-909b-40b9-82cf-95d31f0aaca2"
- },
- {
- "name": "customSubject",
- "value": "Welcome to the organization {{userDisplayName}}!"
- },
- {
- "name": "customBody",
- "value": "Welcome to our organization {{userGivenName}} {{userSurname}}. \nFor more information, reach out to your manager {{managerDisplayName}} at {{managerEmail}}."
- },
- {
- "name": "locale",
- "value": "en-us"
- }
- ]
+ "category": "joiner",
+ "continueOnError": false,
+ "description": "Send welcome email to new hire",
+ "displayName": "Send Welcome Email",
+ "isEnabled": true,
+ "taskDefinitionId": "70b29d51-b59a-4773-9280-8841dfd3f2ea",
+ "arguments": [
+ {
+ "name": "cc",
+ "value": "e94ad2cd-d590-4b39-8e46-bb4f8e293f85,ac17d108-60cd-4eb2-a4b4-084cacda33f2"
+ },
+ {
+ "name": "customSubject",
+ "value": "Welcome to the organization {{userDisplayName}}!"
+ },
+ {
+ "name": "customBody",
+ "value": "Welcome to our organization {{userGivenName}} {{userSurname}}.\n\nFor more information, reach out to your manager {{managerDisplayName}} at {{managerEmail}}."
+ },
+ {
+ "name": "locale",
+ "value": "en-us"
+ }
+ ]
}- ``` ### Send onboarding reminder email
For Microsoft Graph, the parameters for the **Send onboarding reminder email** t
|displayName | Send onboarding reminder email (Customizable by user) | |description | Send onboarding reminder email to userΓÇÖs manager (Customizable by user) | |taskDefinitionId | 3C860712-2D37-42A4-928F-5C93935D26A1 |-
+|arguments | The optional common email task parameters can be specified; if they are not included, the default behavior takes effect. |
```Example for usage within the workflow {
- "category": "joiner",
- "continueOnError": true,
- "description": "Send onboarding reminder email to userΓÇÖs manager",
- "displayName": "Send onboarding reminder email",
- "isEnabled": true,
- "taskDefinitionId": "3C860712-2D37-42A4-928F-5C93935D26A1",
- "arguments": [
- {
- "name": "cc",
- "value": "b47471b9-af8f-4a5a-bfa2-b78e82398f6e, a7a23ce0-909b-40b9-82cf-95d31f0aaca2"
- },
- {
- "name": "customSubject",
- "value": "Reminder to onboard {{userDisplayName}}!"
- },
- {
- "name": "customBody",
- "value": "Hello {{managerDisplayName}}. \n This is a reminder to onboard {{userDisplayName}}."
- },
- {
- "name": "locale",
- "value": "en-us"
- }
- ]
+ "category": "joiner",
+ "continueOnError": false,
+ "description": "Send onboarding reminder email to user\u2019s manager",
+ "displayName": "Send onboarding reminder email",
+ "isEnabled": true,
+ "taskDefinitionId": "3C860712-2D37-42A4-928F-5C93935D26A1",
+ "arguments": [
+ {
+ "name": "cc",
+ "value": "e94ad2cd-d590-4b39-8e46-bb4f8e293f85,068fa0c1-fa00-4f4f-8411-e968d921c3e7"
+ },
+ {
+ "name": "customSubject",
+ "value": "Reminder: {{userDisplayName}} is starting soon"
+ },
+ {
+ "name": "customBody",
+ "value": "Hello {{managerDisplayName}}\n\nthis is a reminder that {{userDisplayName}} is starting soon.\n\nRegards\nYour IT department"
+ },
+ {
+ "name": "locale",
+ "value": "en-us"
+ }
+ ]
}- ``` ### Generate Temporary Access Pass and send via email to user's manager
For Microsoft Graph, the parameters for the **Generate Temporary Access Pass and
|displayName | GenerateTAPAndSendEmail (Customizable by user) | |description | Generate Temporary Access Pass and send via email to user's manager (Customizable by user) | |taskDefinitionId | 1b555e50-7f65-41d5-b514-5894a026d10d |
-|arguments | Argument contains the name parameter "tapLifetimeInMinutes", which is the lifetime of the temporaryAccessPass in minutes starting at startDateTime. Minimum 10, Maximum 43200 (equivalent to 30 days). The argument also contains the tapIsUsableOnce parameter, which determines whether the passcode is limited to a one time use. If true, the pass can be used once; if false, the pass can be used multiple times within the temporaryAccessPass lifetime. |
+|arguments | Argument contains the name parameter "tapLifetimeInMinutes", which is the lifetime of the temporaryAccessPass in minutes starting at startDateTime. Minimum 10, Maximum 43200 (equivalent to 30 days). The argument also contains the tapIsUsableOnce parameter, which determines whether the passcode is limited to a one time use. If true, the pass can be used once; if false, the pass can be used multiple times within the temporaryAccessPass lifetime. Additionally, the optional common email task parameters can be specified; if they are not included, the default behavior takes effect. |
```Example for usage within the workflow {
- "category": "joiner",
- "description": "Generate Temporary Access Pass and send via email to user's manager",
- "displayName": "GenerateTAPAndSendEmail",
- "isEnabled": true,
- "continueOnError": true,
- "taskDefinitionId": "1b555e50-7f65-41d5-b514-5894a026d10d",
- "arguments": [
- {
- "name": "cc",
- "value": "b47471b9-af8f-4a5a-bfa2-b78e82398f6e, a7a23ce0-909b-40b9-82cf-95d31f0aaca2"
- },
- {
- "name": "customSubject",
- "value": "Your new employees Temporary Access Pass {{managerDisplayName}}"
- },
- {
- "name": "customBody",
- "value": "Hello {{managerDisplayName}}. \nThe temporary Access Pass {{temporaryAccessPass}} has been generated for {{userDisplayName}}."
- },
- {
- "name": "locale",
- "value": "en-us"
- },
- {
- "name": "tapLifetimeMinutes",
- "value": "60"
- },
- {
- "name": "tapIsUsableOnce",
- "value": "true"
- }
- ]
+ "category": "joiner",
+ "continueOnError": false,
+ "description": "Generate Temporary Access Pass and send via email to user's manager",
+ "displayName": "Generate TAP and Send Email",
+ "isEnabled": true,
+ "taskDefinitionId": "1b555e50-7f65-41d5-b514-5894a026d10d",
+ "arguments": [
+ {
+ "name": "tapLifetimeMinutes",
+ "value": "480"
+ },
+ {
+ "name": "tapIsUsableOnce",
+ "value": "false"
+ },
+ {
+ "name": "cc",
+ "value": "068fa0c1-fa00-4f4f-8411-e968d921c3e7,9d208c40-7eb6-46ff-bebd-f30148c39b47"
+ },
+ {
+ "name": "customSubject",
+ "value": "Temporary access pass for your new employee {{userDisplayName}}"
+ },
+ {
+ "name": "customBody",
+ "value": "Hello {{managerDisplayName}}\n\nPlease find the temporary access pass for your new employee {{userDisplayName}} below:\n\n{{temporaryAccessPass}}\n\nRegards\nYour IT department"
+ },
+ {
+ "name": "locale",
+ "value": "en-us"
+ }
+ ]
}- ``` ### Send email to notify manager of user move
For Microsoft Graph the parameters for the **Send email to notify manager of use
|displayName | Send email to notify manager of user move (Customizable by user) | |description | Send email to notify userΓÇÖs manager of user move (Customizable by user) | |taskDefinitionId | aab41899-9972-422a-9d97-f626014578b7 |
+|arguments | The optional common email task parameters can be specified; if they are not included, the default behavior takes effect. |
```Example for usage within the workflow {
- "category": "mover",
- "continueOnError": true,
- "displayName": "Send email to notify manager of user move",
- "description": "Send email to notify userΓÇÖs manager of user move",
- "isEnabled": true,
- "taskDefinitionId": "aab41899-9972-422a-9d97-f626014578b7",
- "arguments": [
- {
- "name": "cc",
- "value": "b47471b9-af8f-4a5a-bfa2-b78e82398f6e, a7a23ce0-909b-40b9-82cf-95d31f0aaca2"
- },
- {
- "name": "customSubject",
- "value": "Reminder that {{userDisplayName}} has moved."
- },
- {
- "name": "customBody",
- "value": "Hello {{managerDisplayName}}. \nThis is a reminder that {{userDisplayName}} has moved roles in the organization."
- },
- {
- "name": "locale",
- "value": "en-us"
- },
- ]
+ "category": "mover",
+ "continueOnError": false,
+ "description": "Send email to notify user\u2019s manager of user move",
+ "displayName": "Send email to notify manager of user move",
+ "isEnabled": true,
+ "taskDefinitionId": "aab41899-9972-422a-9d97-f626014578b7",
+ "arguments": [
+ {
+ "name": "cc",
+ "value": "ac17d108-60cd-4eb2-a4b4-084cacda33f2,7d3ee937-edcc-46b0-9e2c-f832e01231ea"
+ },
+ {
+ "name": "customSubject",
+ "value": "{{userDisplayName}} has moved"
+ },
+ {
+ "name": "customBody",
+ "value": "Hello {{managerDisplayName}}\n\nwe are reaching out to let you know {{userDisplayName}} has moved in the organization.\n\nRegards\nYour IT department"
+ },
+ {
+ "name": "locale",
+ "value": "en-us"
+ }
+ ]
}- ``` ### Request user access package assignment
-Allows you to request an access package assignment for users. Access packages are bundles of resources, with specific access, that a user would need to accomplish tasks. For more information on access packages, see [What are access packages and what resources can I manage with them?](entitlement-management-overview.md#what-are-access-packages-and-what-resources-can-i-manage-with-them).
+Allows you to request an access package assignment for users. For more information on access packages, see [What are access packages and what resources can I manage with them?](entitlement-management-overview.md#what-are-access-packages-and-what-resources-can-i-manage-with-them).
-You're able to customize the task name and task description for this task. You must also select an access package that is provided to the user, and the access package policy.
+You're able to customize the task name and task description for this task. You must also select the access package and policy that is being requested for the user.
:::image type="content" source="media/lifecycle-workflow-task/request-user-access-package-assignment-task.png" alt-text="Screenshot of the request user access package assignment task."::: For Microsoft Graph, the parameters for the **Request user access package assignment** task are as follows:
For Microsoft Graph, the parameters for the **Request user access package assign
```Example for usage within the workflow {
- "category": "joiner",
- "description": "Request user assignment to selected access package",
- "displayName": "Request user access package assignment",
- "id": "c1ec1e76-f374-4375-aaa6-0bb6bd4c60be",
- "parameters": [
- {
- "name": "assignmentPolicyId",
- "values": [],
- "valueType": "string"
- },
- {
- "name": "accessPackageId",
- "values": [],
- "valueType": "string"
- }
- ]
- }
-
+ "category": "joiner,mover",
+ "continueOnError": false,
+ "description": "Request user assignment to selected access package",
+ "displayName": "Request user access package assignment",
+ "isEnabled": true,
+ "taskDefinitionId": "c1ec1e76-f374-4375-aaa6-0bb6bd4c60be",
+ "arguments": [
+ {
+ "name": "assignmentPolicyId",
+ "value": "00d6fd25-6695-4f4a-8186-e4c6f901d2c1"
+ },
+ {
+ "name": "accessPackageId",
+ "value": "2ae5d6e5-6cbe-4710-82f2-09ef6ffff0d0"
+ }
+ ]
+}
``` ### Add user to groups
For Microsoft Graph, the parameters for the **Remove users from all teams** task
### Remove access package assignment for user
-Allows you to remove an access package assignment from users. Access packages are bundles of resources, with specific access, that a user would need to accomplish tasks. For more information on access packages, see [What are access packages and what resources can I manage with them?](entitlement-management-overview.md#what-are-access-packages-and-what-resources-can-i-manage-with-them).
+Allows you to remove an access package assignment for users. For more information on access packages, see [What are access packages and what resources can I manage with them?](entitlement-management-overview.md#what-are-access-packages-and-what-resources-can-i-manage-with-them).
-You're able to customize the task name and description for this task in the Azure portal. You must also select the access package which you want to unassign from users.
+You're able to customize the task name and description for this task in the Azure portal. You also need to select the access package for which you want to remove the assignment.
:::image type="content" source="media/lifecycle-workflow-task/remove-access-package-assignment-user-task.png" alt-text="Screenshot of the remove access package assignment for user task."::: For Microsoft Graph, the parameters for the **Remove access package assignment for user** task are as follows:
For Microsoft Graph, the parameters for the **Remove access package assignment f
```Example for usage within the workflow {
- "category": "leaver",
- "description": "Remove user assignment of selected access package",
- "displayName": "Remove access package assignment for user",
- "id": "4a0b64f2-c7ec-46ba-b117-18f262946c50",
- "parameters": [
- {
- "name": "accessPackageId",
- "values": [],
- "valueType": "string"
- }
- ]
+ "category": "leaver,mover",
+ "continueOnError": false,
+ "description": "Remove user assignment of selected access package",
+ "displayName": "Remove access package assignment for user",
+ "isEnabled": true,
+ "taskDefinitionId": "4a0b64f2-c7ec-46ba-b117-18f262946c50",
+ "arguments": [
+ {
+ "name": "accessPackageId",
+ "value": "2ae5d6e5-6cbe-4710-82f2-09ef6ffff0d0"
+ }
+ ]
} ``` ### Remove all access package assignments for user
-Allows you to remove all access package assignments from users. Access packages are bundles of resources, with specific access, that a user would need to accomplish tasks. For more information on access packages, see [What are access packages and what resources can I manage with them?](entitlement-management-overview.md#what-are-access-packages-and-what-resources-can-i-manage-with-them).
+Allows you to remove all access package assignments for users. For more information on access packages, see [What are access packages and what resources can I manage with them?](entitlement-management-overview.md#what-are-access-packages-and-what-resources-can-i-manage-with-them).
You're able to customize the task name and description for this task in the Azure portal. :::image type="content" source="media/lifecycle-workflow-task/remove-all-access-package-assignment-user-task.png" alt-text="Screenshot of the remove all user access package assignment task.":::
For Microsoft Graph, the parameters for the **Remove all access package assignme
```Example for usage within the workflow {
- "category": "leaver",
- "description": "Remove all access packages assigned to the user",
- "displayName": "Remove all access package assignments for user",
- "id": "42ae2956-193d-4f39-be06-691b8ac4fa1d",
- "parameters": []
+ "category": "leaver",
+ "continueOnError": false,
+ "description": "Remove all access packages assigned to the user",
+ "displayName": "Remove all access package assignments for user",
+ "isEnabled": true,
+ "taskDefinitionId": "42ae2956-193d-4f39-be06-691b8ac4fa1d",
+ "arguments": []
} ``` ### Cancel all pending access package assignment requests for user
-Allows you to remove all access package assignments from users. Access packages are bundles of resources, with specific access, that a user would need to accomplish tasks. For more information on access packages, see [What are access packages and what resources can I manage with them?](entitlement-management-overview.md#what-are-access-packages-and-what-resources-can-i-manage-with-them).
+Allows you to cancel all pending access package assignment requests for user. For more information on access packages, see [What are access packages and what resources can I manage with them?](entitlement-management-overview.md#what-are-access-packages-and-what-resources-can-i-manage-with-them).
You're able to customize the task name and description for this task in the Azure portal. :::image type="content" source="media/lifecycle-workflow-task/cancel-all-pending-access-package-assignments-task.png" alt-text="Screenshot of the cancel all pending access package assignments requests for a user task.":::
For Microsoft Graph, the parameters for the **Cancel all pending access package
```Example for usage within the workflow {
- "category": "leaver",
- "description": "Cancel all pending access packages assignment requests for the user",
- "displayName": "Cancel pending access package assignment requests for user",
- "id": "498770d9-bab7-4e4c-b73d-5ded82a1d0b3",
- "parameters": []
+ "category": "leaver",
+ "continueOnError": false,
+ "description": "Cancel all access package assignment requests pending for the user",
+ "displayName": "Cancel all pending access package assignment requests for user",
+ "isEnabled": true,
+ "taskDefinitionId": "498770d9-bab7-4e4c-b73d-5ded82a1d0b3",
+ "arguments": []
} ```
For Microsoft Graph the parameters for the **Send email before user's last day**
|displayName | Send email before userΓÇÖs last day (Customizable by user) | |description | Send offboarding email to userΓÇÖs manager before the last day of work (Customizable by user) | |taskDefinitionId | 52853a3e-f4e5-4eb8-bb24-1ac09a1da935 |
+|arguments | The optional common email task parameters can be specified; if they are not included, the default behavior takes effect. |
```Example for usage within the workflow {
- "category": "leaver",
- "continueOnError": true,
- "displayName": "Send email before userΓÇÖs last day",
- "description": "Send offboarding email to userΓÇÖs manager before the last day of work",
- "isEnabled": true,
- "taskDefinitionId": "52853a3e-f4e5-4eb8-bb24-1ac09a1da935",
- "arguments": [
- {
- "name": "cc",
- "value": "b47471b9-af8f-4a5a-bfa2-b78e82398f6e, a7a23ce0-909b-40b9-82cf-95d31f0aaca2"
- },
- {
- "name": "customSubject",
- "value": "Reminder that {{userDisplayName}}'s last day is coming up."
- },
- {
- "name": "customBody",
- "value": "Hello {{managerDisplayName}}. \nThis is a reminder that {{userDisplayName}}'s last date is coming up."
- },
- {
- "name": "locale",
- "value": "en-us"
- },
- ]
+ "category": "leaver",
+ "continueOnError": false,
+ "description": "Send offboarding email to userΓÇÖs manager before the last day of work",
+ "displayName": "Send email before userΓÇÖs last day",
+ "isEnabled": true,
+ "taskDefinitionId": "52853a3e-f4e5-4eb8-bb24-1ac09a1da935",
+ "arguments": [
+ {
+ "name": "cc",
+ "value": "068fa0c1-fa00-4f4f-8411-e968d921c3e7,e94ad2cd-d590-4b39-8e46-bb4f8e293f85"
+ },
+ {
+ "name": "customSubject",
+ "value": "Reminder that {{userDisplayName}}'s last day is coming up"
+ },
+ {
+ "name": "customBody",
+ "value": "Hello {{managerDisplayName}}\n\nthis is a reminder that {{userDisplayName}}'s last day is coming up.\n\nRegards\nYour IT department"
+ },
+ {
+ "name": "locale",
+ "value": "en-us"
+ }
+ ]
}- ``` ### Send email on user's last day
For Microsoft Graph, the parameters for the **Send email on user last day** task
|displayName | Send email on userΓÇÖs last day (Customizable by user) | |description | Send offboarding email to userΓÇÖs manager on the last day of work (Customizable by user) | |taskDefinitionId | 9c0a1eaf-5bda-4392-9d9e-6e155bb57411 |
+|arguments | The optional common email task parameters can be specified; if they are not included, the default behavior takes effect. |
```Example for usage within the workflow {
- "category": "leaver",
- "continueOnError": true,
- "displayName": "Send email on userΓÇÖs last day",
- "description": "Send offboarding email to userΓÇÖs manager on the last day of work",
- "isEnabled": true,
- "taskDefinitionId": "9c0a1eaf-5bda-4392-9d9e-6e155bb57411",
- "arguments": [
- {
- "name": "cc",
- "value": "b47471b9-af8f-4a5a-bfa2-b78e82398f6e, a7a23ce0-909b-40b9-82cf-95d31f0aaca2"
- },
- {
- "name": "customSubject",
- "value": "{{userDisplayName}}'s last day"
- },
- {
- "name": "customBody",
- "value": "Hello {{managerDisplayName}}. \nThis is a reminder that {{userDisplayName}}'s last day is today, {{userEmployeeLeaveDateTime}}."
- },
- {
- "name": "locale",
- "value": "en-us"
- },
- ]
+ "category": "leaver",
+ "continueOnError": false,
+ "description": "Send offboarding email to userΓÇÖs manager on the last day of work",
+ "displayName": "Send email on userΓÇÖs last day",
+ "isEnabled": true,
+ "taskDefinitionId": "9c0a1eaf-5bda-4392-9d9e-6e155bb57411",
+ "arguments": [
+ {
+ "name": "cc",
+ "value": "068fa0c1-fa00-4f4f-8411-e968d921c3e7,e94ad2cd-d590-4b39-8e46-bb4f8e293f85"
+ },
+ {
+ "name": "customSubject",
+ "value": "{{userDisplayName}}'s last day"
+ },
+ {
+ "name": "customBody",
+ "value": "Hello {{managerDisplayName}}\n\nthis is a reminder that {{userDisplayName}}'s last day is today and their access will be revoked.\n\nRegards\nYour IT department"
+ },
+ {
+ "name": "locale",
+ "value": "en-us"
+ }
+ ]
}- ``` ### Send email to user's manager after their last day
For Microsoft Graph, the parameters for the **Send email to users manager after
|displayName | Send email to users manager after their last day | |description | Send offboarding email to userΓÇÖs manager after the last day of work (Customizable by user) | |taskDefinitionId | 6f22ddd4-b3a5-47a4-a846-0d7c201a49ce |
+|arguments | The optional common email task parameters can be specified; if they are not included, the default behavior takes effect. |
```Example for usage within the workflow {
- "category": "leaver",
- "continueOnError": true,
- "displayName": "Send offboarding email to userΓÇÖs manager after the last day of work",
- "description": "Send email after userΓÇÖs last day",
- "isEnabled": true,
- "taskDefinitionId": "6f22ddd4-b3a5-47a4-a846-0d7c201a49ce",
- "arguments": [
- {
- "name": "cc",
- "value": "b47471b9-af8f-4a5a-bfa2-b78e82398f6e, a7a23ce0-909b-40b9-82cf-95d31f0aaca2"
- },
- {
- "name": "customSubject",
- "value": "{{userDisplayName}} left on {{userEmployeeLeaveDateTime}}"
- },
- {
- "name": "customBody",
- "value": "Hello {{managerDisplayName}}. This is a reminder that {{userDisplayName}} left on{{UserEmployeeLeaveDateTime}}."
- },
- {
- "name": "locale",
- "value": "en-us"
- },
-]
+ "category": "leaver",
+ "continueOnError": false,
+ "description": "Send offboarding email to userΓÇÖs manager after the last day of work",
+ "displayName": "Send email after userΓÇÖs last day",
+ "isEnabled": true,
+ "taskDefinitionId": "6f22ddd4-b3a5-47a4-a846-0d7c201a49ce",
+ "arguments": [
+ {
+ "name": "cc",
+ "value": "ac17d108-60cd-4eb2-a4b4-084cacda33f2,7d3ee937-edcc-46b0-9e2c-f832e01231ea"
+ },
+ {
+ "name": "customSubject",
+ "value": "{{userDisplayName}}'s accounts will be deleted today"
+ },
+ {
+ "name": "customBody",
+ "value": "Hello {{managerDisplayName}}\n\nthis is a reminder that {{userDisplayName}} left the organization a while ago and today their disabled accounts will be deleted.\n\nRegards\nYour IT department"
+ },
+ {
+ "name": "locale",
+ "value": "en-us"
+ }
+ ]
}- ``` ## Next steps
active-directory Sap https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/governance/sap.md
After your users are in Azure AD, you can provision accounts into the various Sa
Customers who have yet to transition from applications such as SAP ERP Central Component (SAP ECC) to SAP S/4HANA can still rely on the Azure AD provisioning service to provision user accounts. Within SAP ECC, you expose the necessary Business Application Programming Interfaces (BAPIs) for creating, updating, and deleting users. Within Azure AD, you have two options:
-* Use the lightweight Azure AD provisioning agent and [web services connector](/azure/active-directory/app-provisioning/on-premises-web-services-connector) to provision users into apps such as SAP ECC.
+* Use the lightweight Azure AD provisioning agent and [web services connector](/azure/active-directory/app-provisioning/on-premises-web-services-connector) to [provision users into apps such as SAP ECC](https://learn.microsoft.com/azure/active-directory/app-provisioning/on-premises-sap-connector-configure?branch=pr-en-us-243167).
* In scenarios where you need to do more complex group and role management, use [Microsoft Identity Manager](/microsoft-identity-manager/reference/microsoft-identity-manager-2016-ma-ws) to manage access to your legacy SAP applications. ## Trigger custom workflows
active-directory Services And Integration Partners https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/governance/services-and-integration-partners.md
+
+ Title: Services and integration partners - Microsoft Entra
+description: Learn about partners who can help with deployment and integration of identity governance scenarios.
+
+documentationcenter: ''
++
+editor: markwahl-msft
++
+ na
++ Last updated : 6/12/2023+++++
+# Services and integration partners for Microsoft Entra Identity Governance
+
+ Partners can help your organization with planning and deployment of Identity Governance. Customers can engage partners listed in the Microsoft Solution Partner finder or can choose from the services partners listed in the following table.
+
+The descriptions and linked pages are provided by the partners themselves. You can use the description to identify a partner that you may want to contact and learn more about.
+
+| Name | Description |
+| - | |
+|[Edgile, a Wipro company](https://aka.ms/EdgileEntraIDGov) |"Edgile, a Wipro company is excited to be a Microsoft Launch Partner for Entra ID Governance. Our deep and broad experience in IGA and security will ensure your project is a success. Our project accelerators will reduce your risk and deliver results faster." |
+|[EY](https://aka.ms/EYEntraIDGov) |"The EY organization, a trusted global leader in professional services, creates a better working world with people at the center, leveraging technology at scale and driving innovation at speed. The EY-Microsoft Alliance collaborates on innovative identity management solutions with Entra, transforming the way businesses protect and manage identities, creating a future where trust and safety are paramount." |
+|[InSpark](https://aka.ms/InSparkEntraIDGov) | "InSpark is a Dutch Microsoft partner helping customers to go from Zero-to-Hero with the full Microsoft cloud portfolio. The Microsoft Entra Identity Governance stack is one of our strong focus points as we believe securing and protecting your digital identity and the access it has is crucial in today's world."|
+|[Invoke](https://aka.ms/InvokeEntraIDGov) |"Invoke's Identity Solution Journey begins with assessments, building trust by showcasing security & compliance risk mitigation, along with productivity gains. In cost-sensitive markets, they deliver economic assessments, reporting cost savings by transitioning to a Microsoft-centric solution. By partnering with the Microsoft Entra team, they jointly empower customers to achieve more." |
+|[KPMG](https://aka.ms/KPMGEntraIDGov) |"KPMG and Microsoft further strengthen their alliance by delivering a comprehensive identity governance proposition. By adeptly navigating the complexities of identity governance, the combination of Microsoft Entra advanced tools with KPMG Powered Enterprise helps drive functional transformation. This synergy can propel accelerated digital capabilities, enhance operational efficiency, fortify security and ensure compliance."|
+|[Oxford Computer Group](https://aka.ms/OCGEntraIDGov) |"Oxford Computer Group's customer base includes some of the largest and most recognizable companies in the US and beyond. Our solutions include Identity Lifecycle Management, Identity and Access Management, Entitlements, Conditional Access, Separation of Duties, Attestation, SOX, Risk Assessments for IAM, Audit Remediation, External Identities, and Verifiable Credentials - nearly every aspect of Identity Governance. "|
+|[PwC](https://aka.ms/PwCEntraIDGov) |"Organizations use identity and access management to build trust, and doing so sustainably often requires the right technology and a multi-disciplinary team. Our team can help you implement Microsoft Entra Identity Governance from strategy through execution by collaborating with you and our network of professionals by focusing on three key aspects: people, process, and technology."|
+
+## Partner-driven application integrations
+
+Microsoft Entra Identity Governance allows you to balance your organization's need for security and employee productivity with the right processes and visibility, across hundreds of [Entra Identity Governance integrations with applications](apps.md). These application integrations are used to automate identity lifecycle management, through protocols such as SCIM, to implement governance controls across your organization.
+
+In cases where an application doesn't support SCIM, partners have built gateways between the Azure AD SCIM client and additional applications. For a list of applications integrated through a partner offering, see [partner-driven integrations](../app-provisioning/partner-driven-integrations.md).
++
+## Next steps
+
+- [What is Microsoft Entra Identity Governance?](identity-governance-overview.md)
+
active-directory Custom Security Attributes Apps https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/manage-apps/custom-security-attributes-apps.md
Update-MgServicePrincipal -ServicePrincipalId $ServicePrincipal -BodyParameter $
To manage custom security attribute assignments for applications in your Azure AD organization, you can use the Microsoft Graph API. Make the following API calls to manage assignments.
-For other similar Microsoft Graph API examples for users, see [Assign, update, list, or remove custom security attributes for a user](../enterprise-users/users-custom-security-attributes.md#microsoft-graph-api) and [Examples: Assign, update, list, or remove custom security attribute assignments using the Microsoft Graph API](/graph/custom-security-attributes-examples).
+For other similar Microsoft Graph API examples for users, see [Assign, update, list, or remove custom security attributes for a user](../enterprise-users/users-custom-security-attributes.md#powershell-or-microsoft-graph-api) and [Examples: Assign, update, list, or remove custom security attribute assignments using the Microsoft Graph API](/graph/custom-security-attributes-examples).
### Assign a custom security attribute with a multi-string value to an application (service principal)
active-directory Howto Manage Inactive User Accounts https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/reports-monitoring/howto-manage-inactive-user-accounts.md
In large environments, user accounts aren't always deleted when employees leave
This article explains a method to handle obsolete user accounts in Azure Active Directory (Azure AD).
+>[!NOTE]
+>This article applies only to finding inactive user accounts in Azure Active Directory (Azure AD). It does not apply to finding inactive accounts in [Azure AD B2C](/azure/active-directory-b2c/overview).
+ ## What are inactive user accounts? Inactive accounts are user accounts that aren't required anymore by members of your organization to gain access to your resources. One key identifier for inactive accounts is that they haven't been used *for a while* to sign in to your environment. Because inactive accounts are tied to the sign-in activity, you can use the timestamp of the last time an account attempted to sign in to detect inactive accounts.
active-directory Aws Single Sign On Provisioning Tutorial https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/saas-apps/aws-single-sign-on-provisioning-tutorial.md
na Previously updated : 11/21/2022 Last updated : 06/20/2023
This section guides you through the steps to configure the Azure AD provisioning
8. Under the **Mappings** section, select **Synchronize Azure Active Directory Users to AWS IAM Identity Center**.
-9. Review the user attributes that are synchronized from Azure AD to AWS IAM Identity Center in the **Attribute-Mapping** section. The attributes selected as **Matching** properties are used to match the user accounts in AWS IAM Identity Center for update operations. If you choose to change the [matching target attribute](../app-provisioning/customize-application-attributes.md), you will need to ensure that the AWS IAM Identity Center API supports filtering users based on that attribute. Select the **Save** button to commit any changes.
+9. Review the user attributes that are synchronized from Azure AD to AWS IAM Identity Center in the **Attribute-Mapping** section. The attributes selected as **Matching** properties are used to match the user accounts in AWS IAM Identity Center for update operations. If you choose to change the [matching target attribute](../app-provisioning/customize-application-attributes.md), you'll need to ensure that the AWS IAM Identity Center API supports filtering users based on that attribute. Select the **Save** button to commit any changes.
|Attribute|Type|Supported for Filtering| ||||
Once you've configured provisioning, use the following resources to monitor your
1. Use the [provisioning logs](../reports-monitoring/concept-provisioning-logs.md) to determine which users have been provisioned successfully or unsuccessfully 2. Check the [progress bar](../app-provisioning/application-provisioning-when-will-provisioning-finish-specific-user.md) to see the status of the provisioning cycle and how close it is to completion
-3. If the provisioning configuration seems to be in an unhealthy state, the application will go into quarantine. Learn more about quarantine states [here](../app-provisioning/application-provisioning-quarantine-status.md).
+3. If the provisioning configuration seems to be in an unhealthy state, the application goes into quarantine. Learn more about quarantine states [here](../app-provisioning/application-provisioning-quarantine-status.md).
+
+## Just-in-time (JIT) application access with PIM for groups (preview)
+With PIM for Groups, you can provide just-in-time access to groups in Amazon Web Services and reduce the number of users that have permanent access to privileged groups in AWS.
+
+**Configure your enterprise application for SSO and provisioning**
+1. Add AWS IAM Identity Center to your tenant, configure it for provisioning as described in the tutorial above, and start provisioning.
+1. Configure [single sign-on](aws-single-sign-on-provisioning-tutorial.md) for AWS IAM Identity Center.
+1. Create a [group](https://learn.microsoft.com/azure/active-directory/fundamentals/how-to-manage-groups) that will provide all users access to the application.
+1. Assign the group to the AWS Identity Center application.
+1. Assign your test user as a direct member of the group created in the previous step, or provide them access to the group through an access package. This group can be used for persistent, non-admin access in AWS.
+
+**Enable PIM for groups**
+1. Create a second group in Azure AD. This group will provide access to admin permissions in AWS.
+1. Bring the group under [management in Azure AD PIM](https://learn.microsoft.com/azure/active-directory/privileged-identity-management/groups-discover-groups).
+1. Assign your test user as [eligible for the group in PIM](https://learn.microsoft.com/azure/active-directory/privileged-identity-management/groups-assign-member-owner) with the role set to member.
+1. Assign the second group to the AWS IAM Identity Center application.
+1. Use on-demand provisioning to create the group in AWS IAM Identity Center.
+1. Sign-in to AWS IAM Identity Center and assign the second group the necessary permissions to perform admin tasks.
+
+Now any end user that was made eligible for the group in PIM can get JIT access to the group in AWS by [activating their group membership](https://learn.microsoft.com/azure/active-directory/privileged-identity-management/groups-activate-roles#activate-a-role).
+
+> [!IMPORTANT]
+> The group membership is provisioned roughly a minute after the activation is complete. Please wait before attempting to sign-in to AWS. If the user is unable to access the necessary group in AWS, please review the troubleshooting tips below and provisioning logs to ensure that the user was successfully provisioned.
## Troubleshooting Tips ### Missing attributes
-When exporting a user to AWS, they are required to have the following attributes
+When provisioning a user to AWS, they're required to have the following attributes
* firstName * lastName
Users who don't have these attributes will fail with the following error
### Multi-valued attributes
-AWS does not support the following multi-valued attributes:
+AWS doesn't support the following multi-valued attributes:
* email * phone numbers
active-directory Services Partners https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/verifiable-credentials/services-partners.md
Previously updated : 03/07/2023 Last updated : 06/29/2023
If you're a Services Partner and would like to be considered into Entra Verified
| ![Screenshot of DXC logo](media/services-partners/dxc.png) | [Digital Identity - Connect with DXC](https://dxc.com/us/en/services/security/digital-identity) | | ![Screenshot of CTC logo](media/services-partners/ctc.png) | [CTC's SELMID offering](https://ctc-insight.com/selmid) | | ![Screenshot of Kocho logo](media/services-partners/kocho.png) | [Connect with Kocho. See Verified Identity in Action](https://kocho.co.uk/contact-us/)<br/>[See Verified Identity in Action](https://kocho.co.uk/verified-id-in-action/) |
+| ![Screenshot of Oxford logo](media/services-partners/oxford.png) | [Microsoft Entra Verified ID - Oxford Computer Group](https://oxfordcomputergroup.com/microsoft-entra-verified-id-overview/) |
| ![Screenshot of Predica logo](media/services-partners/predica.png) | [Verified ID - Predica Group](https://www.predicagroup.com/en/verified-id/) | | ![Screenshot of Sphereon logo](media/services-partners/sphereon.png) | [Sphereon supports customers on Microsoft's Entra Verified ID](https://sphereon.com/sphereon-supports-microsofts-entra-verified-id/) | | ![Screenshot of Unify logo](media/services-partners/unify.png) | [Microsoft Entra Verified ID - UNIFY Solutions](https://unifysolutions.net/entra/verified-id/) |
active-directory Using Wallet Library https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/verifiable-credentials/using-wallet-library.md
+
+ Title: Tutorial - Using the Microsoft Entra Wallet Library demo application
+description: In this tutorial, you learn how to build and use the Microsoft Entra Wallet Library demo app on Android and iOS
++++++ Last updated : 06/28/2022
+# Customer intent: As a developer, I want to build a custom wallet using Entra Verified ID Wallet Library.
+++
+# Using the Microsoft Entra Wallet Library with Verified ID
++
+In this tutorial, you learn how a mobile app can use the Microsoft Entra Wallet Library with Verified ID to issue and present verifiable credentials.
+
+## Prerequisites
+
+- [Android Studio](https://developer.android.com/studio) installed on Mac/Windows and an Android test device. You need to enable [developer mode](https://developer.android.com/studio/debug/dev-options) on your Android test device.
+- An [Apple developer account](https://developer.apple.com/account/), Mac with [Xcode](https://developer.apple.com/xcode/) and an iOS test device with [developer mode](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) enabled. The iOS version needs to be 16 and above.
+- Install the [QR Code Reader](https://apps.apple.com/us/app/qr-code-reader/id1200318119) app on your test device. The WalletLibraryDemo app doesn't come with the ability to scan QR codes, so you need the QR Code Reader app to scan the QR codes with.
+
+You don't need to be a mobile developer to follow this tutorial and get the demo app up and running. The tools and a test device and the courage to try is all you need. You also don't need an Entra Verified ID tenant onboarded as you can test the demo app with our public end to end demo website.
+
+## What is the Microsoft Entra Wallet Library?
+The Microsoft Entra Wallet Library for iOS and Android gives your mobile app the ability to begin using the Microsoft Entra Verified ID platform. Using the Wallet Library, your mobile app can issue and present verifiable credentials in accordance with industry standards.
+
+## When should I use the Microsoft Entra Wallet Library?
+Microsoft Authenticator has all the functionality to act as the wallet for Entra Verified ID. But in cases where you canΓÇÖt use the Microsoft Authenticator, the Wallet Library is your alternative. An example could be when you already have a mobile app that your users are familiar with and where it makes more sense to include verifiable credentials technology into this app.
+
+You can use the Microsoft Authenticator and a mobile app using the Wallet Library side-by-side on the same mobile device. The Authenticator, if installed, will be the app that has registered the protocol handler for openid://, so your app needs to make sure that the issuance and presentation requests find your app. Use of embedded deep links in HTML-pages that relies on the openid:// protocol will result in the Microsoft Authenticator being launched.
+
+## Does Microsoft use the Microsoft Entra Wallet Library?
+Yes, the Wallet Library is used by the Microsoft Authenticator. Some features may appear in the Authenticator first, but it is our ambition to make them available in the Wallet Library.
+
+## What is the effort of adding the Microsoft Entra Wallet Library to my app?
+You add the Wallet Library to your mobile app project via adding a maven dependency for Android and adding a cocoapod dependency for iOS.
+
+### [iOS](#tab/ios)
+
+For iOS, add the WalletLibrary pod to your Podfile.
+
+```Swift
+target "YourApp" do
+ use_frameworks!
+ pod "WalletLibrary", "~> 0.0.1"
+end
+```
+
+### [Android](#tab/android)
+For Android, add to your app's build.gradle to add Wallet Library as a dependency.
+
+```kotlin
+dependencies {
+ implementation 'com.microsoft.entra.verifiedid:walletlibrary:0.0.1'
+}
+```
++
+Then you need to add some code to process the requests. For details, please see the WalletLibraryDemo sample code.
+
+### [iOS](#tab/ios)
+
+```swift
+/// Create a verifiedIdClient.
+let verifiedIdClient = VerifiedIdClientBuilder().build()
+
+/// Create a VerifiedIdRequestInput using a OpenId Request Uri.
+let input = VerifiedIdRequestURL(url: URL(string: "openid-vc://...")!)
+let result = await verifiedIdClient.createRequest(from: input)
+
+/// Every external method's return value is wrapped in a Result object to ensure proper error handling.
+switch (result) {
+case .success(let request):
+ /// A request created from the method above could be an issuance or a presentation request.
+ /// In this example, it is a presentation request, so we can cast it to a VerifiedIdPresentationRequest.
+ let presentationRequest = request as? VerifiedIdPresentationRequest
+case .failure(let error):
+ /// If an error occurs, its value can be accessed here.
+ print(error)
+}
+```
+
+### [Android](#tab/android)
+
+```kotlin
+// Create a verifiedIdClient
+val verifiedIdClient = VerifiedIdClientBuilder(context).build()
+
+// Create a VerifiedIdRequestInput using a OpenId Request Uri.
+val verifiedIdRequestUrl = VerifiedIdRequestURL(Uri.parse("openid-vc://..."))
+val verifiedIdRequestResult: Result<VerifiedIdRequest<*>> = verifiedIdClient.createRequest(verifiedIdRequestUrl)
+
+// Every external method's return value is wrapped in a Result object to ensure proper error handling.
+if (verifiedIdRequestResult.isSuccess) {
+ val verifiedIdRequest = verifiedIdRequestResult.getOrNull()
+ val presentationRequest = verifiedIdRequest?.let {
+ verifiedIdRequest as VerifiedIdPresentationRequest
+ }
+} else {
+ // If an exception occurs, its value can be accessed here.
+ val exception = verifiedIdRequestResult.exceptionOrNull()
+}
+```
++
+Then, you have to handle the following major tasks in your app.
+
+- Getting the request URLs. The Wallet Library doesn't come with any functionality to scan a QR code or similar. Obtaining the request URL via methods like scanning a QR code must be added by you.
+- Storing the credentials. The Wallet Library creates the private and public key used for signing responses and stores this on the device, but it doesn't come with any functionality for storing credentials. You have to manage credential storage for your mobile app.
+- User Interface. Any visual representation of stored credentials and the UI for driving the issuance and presentation process must be implemented by you.
+
+## Wallet Library Demo app
+The Wallet Library comes with a demo app in the github repo that is ready to use without any modifications. You just have to build and deploy it. The demo app is a lightweight and simple implementation that illustrates issuance and presentation at its minimum. To quickly get going, you can use the QR Code Reader app to scan the QR code, and then copy and paste it into the demo app.
+
+In order to test the demo app, you need a webapp that issues credentials and makes presentation requests for credentials. The [Woodgrove public demo webapp](https://aka.ms/vcdemo) is used for this purpose in this tutorial.
+
+## Building the Android sample
+On your developer machine with Android Studio, do the following:
+
+1. Download or clone the Android Wallet Library [github repo](https://github.com/microsoft/entra-verifiedid-wallet-library-android/archive/refs/heads/dev.zip).
+You donΓÇÖt need the walletlibrary folder and you can delete it if you like.
+1. Start Android Studio and open the parent folder of walletlibrarydemo
+
+ ![Screenshot of Android Studio.](media/using-wallet-library/androidstudio-screenshot.png)
+
+1. Select **Build** menu and then **Make Project**. This step takes some time.
+1. Connect your Android test device via USB cable to your laptop
+1. Select your test device in Android Studio and click **run** button (green triangle)
+
+## Issuing credentials using the Android sample
+1. Start the WalletLibraryDemo app
+
+ ![Screenshot of Create Request on Android.](media/using-wallet-library/android-create-request.png)
+
+1. On your laptop, launch the public demo website [https://aka.ms/vcdemo](https://aka.ms/vcdemo) and do the following
+ 1. Enter your First Name and Last Name and press **Next**
+ 1. Select **Verify with True Identity**
+ 1. Click **Take a selfie** and **Upload government issued ID**. The demo uses simulated data and you don't need to provide a real selfie or an ID.
+ 1. Click **Next** and **OK**
+
+1. Scan the QR code with your QR Code Reader app on your test device, then copy the full URL displayed in the QR Code Reader app. Remember the pin code.
+1. Switch back to WalletLibraryDemo app and paste in the URL from the clipboard
+1. Press **CREATE REQUEST** button
+1. When the app has downloaded the request, it shows a screen like below. Click on the white rectangle, which is a textbox, and enter the pin code that is displayed in the browser page. Then click the **COMPLETE** button.
+
+ ![Screenshot of Enter Pin Code on Android.](media/using-wallet-library/android-enter-pincode.png)
+
+1. Once issuance completes, the demo app displays the claims in the credential
+
+ ![Screenshot of Issuance Complete on Android.](media/using-wallet-library/android-issuance-complete.png)
+
+## Presenting credentials using the Android sample
+The sample app holds the issued credential in memory, so after issuance, you can use it for presentation.
+1. The WalletLibraryDemo app should display some credential details on the home screen if you have successfully issued a credential.
+
+ ![Screenshot of app with credential on Android.](media/using-wallet-library/android-have-credential.png)
+
+1. In the Woodgrove demo in the browser, click **Return to Woodgrove** if you havenΓÇÖt done so already and continue with step 3 **Access personalized portal**.
+1. Scan the QR code with the QR Code Reader app on your test device, then copy the full URL to the clipboard.
+1. Switch back to the WalletLibraryDemo app and paste in the URL and click **CREATE REQUEST** button
+1. The app retrieves the presentation request and display the matching credentials you have in memory. In this case you only have one. **Click on it** so that the little check mark appears, then click the **COMPLETE** button to submit the presentation response
+
+ ![Screenshot of presenting credential on Android.](media/using-wallet-library/android-present-credential.png)
+
+## Building the iOS sample
+On your Mac developer machine with Xcode, do the following:
+1. Download or clone the iOS Wallet Library [github repo](https://github.com/microsoft/entra-verifiedid-wallet-library-ios/archive/refs/heads/dev.zip).
+1. Start Xcode and open the top level folder for the WalletLibrary
+1. Set focus on WalletLibraryDemo project
+
+ ![Screenshot of Xcode.](media/using-wallet-library/xcode-screenshot.png)
+
+1. Change the Team ID to your [Apple Developer Team ID](https://developer.apple.com/help/account/manage-your-team/locate-your-team-id).
+1. Select Product menu and then **Build**. This step takes some time.
+1. Connect your iOS test device via USB cable to your laptop
+1. Select your test device in Xcode
+1. Select Product menu and then **Run** or click on run triangle
+
+## Issuing credentials using the iOS sample
+1. Start the WalletLibraryDemo app
+
+ ![Screenshot of Create Request on iOS.](media/using-wallet-library/ios-create-request.png)
+
+1. On your laptop, launch the public demo website [https://aka.ms/vcdemo](https://aka.ms/vcdemo) and do the following
+ 1. Enter your First Name and Last Name and press **Next**
+ 1. Select **Verify with True Identity**
+ 1. Click **Take a selfie** and **Upload government issued ID**. The demo uses simulated data and you don't need to provide a real selfie or an ID.
+ 1. Click **Next** and **OK**
+
+1. Scan the QR code with your QR Code Reader app on your test device, then copy the full URL displayed in the QR Code Reader app. Remember the pin code.
+1. Switch back to WalletLibraryDemo app and paste in the URL from the clipboard
+1. Press **Create Request** button
+1. When the app has downloaded the request, it shows a screen like below. Click on the **Add Pin** text to go to a screen where you can input the pin code, then click **Add** button to get back and finally click the **Complete** button.
+
+ ![Screenshot of Enter Pin Code on iOS.](media/using-wallet-library/ios-enter-pincode.png)
+
+1. Once issuance completes, the demo app displays the claims in the credential.
+
+ ![Screenshot of Issuance Complete on iOS.](media/using-wallet-library/ios-issuance-complete.png)
+
+## Presenting credentials using the iOS sample
+The sample app holds the issued credential in memory, so after issuance, you can use it for presentation.
+1. The WalletLibraryDemo app should display credential type name on the home screen if you have successfully issued a credential.
+
+ ![Screenshot of app with credential on iOS.](media/using-wallet-library/ios-have-credential.png)
+
+1. In the Woodgrove demo in the browser, click **Return to Woodgrove** if you havenΓÇÖt done so already and continue with step 3 **Access personalized portal**.
+1. Scan the QR code with the QR Code Reader app on your test device, then copy the full URL to the clipboard.
+1. Switch back to the WalletLibraryDemo app, ***clear the previous request*** from the textbox, paste in the URL and click **Create Request** button
+1. The app retrieves the presentation request and display the matching credentials you have in memory. In this case you only have one. **Click on it** so that the little check mark switches from blue to green, then click the **Complete** button to submit the presentation response
+
+ ![Screenshot of presenting credential on iOS.](media/using-wallet-library/ios-present-credential.png)
+
+## Next steps
+
+Learn how to [configure your tenant for Microsoft Entra Verified ID](verifiable-credentials-configure-tenant.md).
active-directory Whats New https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/active-directory/verifiable-credentials/whats-new.md
This article lists the latest features, improvements, and changes in the Microsoft Entra Verified ID service.
+## June 2023
+
+Tutorial for getting started with the Wallet Library demo on Android and iOS available [here](using-wallet-library.md).
+ ## May 2023 - Wallet Library was announced at Build 2023 in session [Reduce fraud and improve engagement using Digital Wallets](https://build.microsoft.com/en-US/sessions/4ca41843-1b3f-4ee6-955e-9e2326733be8). The Wallet Library enables customers to add verifiable credentials technology to their own mobile apps. The libraries are available for [Android](https://github.com/microsoft/entra-verifiedid-wallet-library-android/tree/dev) and [iOS](https://github.com/microsoft/entra-verifiedid-wallet-library-ios/tree/dev).
+## April 2023
+
+Instructions for setting up place of work verification on LinkedIn available [here](linkedin-employment-verification.md).
+ ## March 2023 - Admin API now supports [application access tokens](admin-api.md#authentication) and in addition to user bearer tokens.
This article lists the latest features, improvements, and changes in the Microso
## September 2022 -- The Request Service API now have [granular app permissions](verifiable-credentials-configure-tenant.md?#grant-permissions-to-get-access-tokens) and you can grant **VerifiableCredential.Create.IssueRequest** and **VerifiableCredential.Create.PresentRequest** separately to segregate duties of issuance and presentation to separate application.
+- The Request Service API now has [granular app permissions](verifiable-credentials-configure-tenant.md?#grant-permissions-to-get-access-tokens) and you can grant **VerifiableCredential.Create.IssueRequest** and **VerifiableCredential.Create.PresentRequest** separately to segregate duties of issuance and presentation to separate application.
- [IDV Partner Gallery](partner-gallery.md) now available in the documentation guiding you how to integrate with Microsoft's Identity Verification partners. - How-to guide for implementing the [presentation attestation flow](how-to-use-quickstart-presentation.md) that requires presenting a verifiable credential during issuance.
aks Cluster Extensions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/cluster-extensions.md
Title: Cluster extensions for Azure Kubernetes Service (AKS) description: Learn how to deploy and manage the lifecycle of extensions on Azure Kubernetes Service (AKS) Previously updated : 05/15/2023 Last updated : 06/30/2023
For supported Kubernetes versions, refer to the corresponding documentation for
| [Azure Machine Learning][azure-ml-overview] | Use Azure Kubernetes Service clusters to train, inference, and manage machine learning models in Azure Machine Learning. | | [Flux (GitOps)][gitops-overview] | Use GitOps with Flux to manage cluster configuration and application deployment. See also [supported versions of Flux (GitOps)][gitops-support] and [Tutorial: Deploy applications using GitOps with Flux v2][gitops-tutorial].| | [Azure Container Storage](../storage/container-storage/container-storage-introduction.md) | Use Azure Container Storage to manage block storage on AKS clusters to store data in persistent volumes. |
+| [Azure Backup for AKS](../backup/azure-kubernetes-service-backup-overview.md) | Use Azure Backup for AKS to protect your containerized applications and data stored in Persistent Volumes deployed in the AKS clusters. |
You can also [select and deploy Kubernetes applications available through Marketplace](deploy-marketplace.md).
aks Csi Migrate In Tree Volumes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/csi-migrate-in-tree-volumes.md
The following are important considerations to evaluate:
csi: driver: disk.csi.azure.com volumeAttributes:
- csi.storage.k8s.io/pv/name: $PV-csi
+ csi.storage.k8s.io/pv/name: $PV
csi.storage.k8s.io/pvc/name: $PVC-csi csi.storage.k8s.io/pvc/namespace: $NAMESPACE requestedsizegib: "$STORAGE_SIZE"
aks Node Updates Kured https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/node-updates-kured.md
For AKS clusters that use Windows Server nodes, see [Upgrade a node pool in AKS]
<!-- LINKS - external --> [kured]: https://github.com/kubereboot/kured
-[kured-install]: https://github.com/kubereboot/kured/tree/main/cmd/kured
+[kured-install]: https://github.com/kubereboot/charts/tree/main/charts/kured
[kubectl-get-nodes]: https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#get <!-- LINKS - internal -->
aks Private Clusters https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/private-clusters.md
Title: Create a private Azure Kubernetes Service (AKS) cluster description: Learn how to create a private Azure Kubernetes Service (AKS) cluster Previously updated : 06/28/2023 Last updated : 06/29/2023
You can configure private DNS zones using the following parameters:
* If your AKS cluster is configured with an Active Directory service principal, AKS doesn't support using a system-assigned managed identity with custom private DNS zone. * If you are specifying a `<subzone>` there is a 32 character limit for the `<subzone>` name.
+ > [!IMPORTANT]
+ > The **CUSTOM_PRIVATE_DNS_ZONE_RESOURCE_ID** cannot be changed after the cluster has been created and it can't be deleted. Otherwise, the cluster will have issues performing upgrade operations.
+ ### Create a private AKS cluster with a private DNS zone Create a private AKS cluster with a private DNS zone using the [`az aks create`][az-aks-create] command with the following flags:
aks Windows Faq https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/aks/windows-faq.md
az aks update \
``` > [!IMPORTANT]
-> Performing the `az aks update` operation upgrades only Windows Server node pools. Linux node pools are not affected.
+> Performing the `az aks update` operation upgrades only Windows Server node pools and will cause a restart. Linux node pools are not affected.
> > When you're changing `--windows-admin-password`, the new password must be at least 14 characters and meet [Windows Server password requirements][windows-server-password].
$cluster | Set-AzAksCluster
``` > [!IMPORTANT]
-> Performing the `Set-AzAksCluster` operation upgrades only Windows Server node pools. Linux node pools are not affected.
+> Performing the `Set-AzAksCluster` operation upgrades only Windows Server node pools and will cause a restart. Linux node pools are not affected.
> > When you're changing the Windows administrator password, the new password must be at least 14 characters and meet [Windows Server password requirements][windows-server-password].
api-management Api Management Api Import Restrictions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-api-import-restrictions.md
When importing an API, you might encounter some restrictions or need to identify
During OpenAPI import, API Management: * Checks specifically for query string parameters marked as required.
-* Converts the query string parameters to template parameters.
+* By default, converts the required query string parameters to required template parameters.
-If you prefer a different behavior, you can either:
+If you prefer that required query parameters in the specification are translated to query parameters in API Management, disable the **Include query parameters in operation templates** setting when creating the API in the portal. You can also accomplish this by using the [APIs - Create or Update](/rest/api/apimanagement/current-ga/apis/create-or-update) REST API to set the API's `translateRequiredQueryParameters` property to `query`.
-* Manually change via form-based editor, or
-* Remove the "required" attribute from the OpenAPI definition, thus not converting them to template parameters.
For GET, HEAD, and OPTIONS operations, API Management discards a request body parameter if defined in the OpenAPI specification.
api-management Api Management Howto Deploy Multi Region https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/api-management-howto-deploy-multi-region.md
This section provides considerations for multi-region deployments when the API M
## Next steps
+* Learn more about configuring API Management for [high availability](high-availability.md).
+ * Learn more about [zone redundancy](../reliability/migrate-api-mgt.md) to improve the availability of an API Management instance in a region. * For more information about virtual networks and API Management, see:
api-management Cosmosdb Data Source Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/cosmosdb-data-source-policy.md
The `cosmosdb-data-source` resolver policy resolves data for an object type and
Use the policy to configure a single query request, read request, delete request, or write request and an optional response from the Cosmos DB data source. > [!NOTE]
-> This policy is currently in preview.
+> This policy is in preview. Currently, the policy isn't supported in the Consumption tier of API Management.
[!INCLUDE [api-management-policy-generic-alert](../../includes/api-management-policy-generic-alert.md)]
Use the policy to configure a single query request, read request, delete request
## Usage - [**Policy scopes:**](./api-management-howto-policies.md#scopes) GraphQL resolver-- [**Gateways:**](api-management-gateways-overview.md) dedicated, consumption
+- [**Gateways:**](api-management-gateways-overview.md) dedicated
### Usage notes
api-management High Availability https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/high-availability.md
description: Learn how to use Azure reliability features including availability
Previously updated : 09/27/2022 Last updated : 06/28/2023 + # Ensure API Management availability and reliability
API Management supports the following key service capabilities that are recommen
## Availability zones
-Azure [availability zones](../reliability/availability-zones-overview.md) are physically separate locations within an Azure region that are tolerant to datacenter-level failures. Each zone is composed of one or more datacenters equipped with independent power, cooling, and networking infrastructure. To ensure resiliency, a minimum of three separate availability zones are present in all availability zone-enabled regions.
+Azure [availability zones](../reliability/availability-zones-overview.md) are physically separate locations within an Azure region that are tolerant to datacenter-level failures. Each zone is composed of one or more datacenters equipped with independent power, cooling, and networking infrastructure. To ensure resiliency, a minimum of 3 separate availability zones are present in all availability zone-enabled regions.
-Enabling [zone redundancy](../reliability/migrate-api-mgt.md) for an API Management instance in a supported region provides redundancy for all [service components](api-management-key-concepts.md#api-management-components): gateway, management plane, and developer portal. Azure automatically replicates all service components across the zones that you select. Zone redundancy is only available in the Premium SKU.
+Enabling [zone redundancy](../reliability/migrate-api-mgt.md) for an API Management instance in a supported region provides redundancy for all [service components](api-management-key-concepts.md#api-management-components): gateway, management plane, and developer portal. Azure automatically replicates all service components across the zones that you select. Zone redundancy is only available in the Premium service tier.
When you enable zone redundancy in a region, consider the number of API Management scale [units](upgrade-and-scale.md) that need to be distributed. Minimally, configure the same number of units as the number of availability zones, or a multiple so that the units are distributed evenly across the zones. For example, if you select 3 availability zones in a region, you could have 3 units so that each zone hosts one unit.
When you enable zone redundancy in a region, consider the number of API Manageme
## Multi-region deployment
+With [multi-region deployment](api-management-howto-deploy-multi-region.md), you can add regional API gateways to an existing API Management instance in one or more supported Azure regions. Multi-region deployment helps reduce request latency perceived by geographically distributed API consumers and improves service availability if one region goes offline. Multi-region deployment is only available in the Premium service tier.
+ [!INCLUDE [api-management-multi-region-concepts](../../includes/api-management-multi-region-concepts.md)] ## Combine availability zones and multi-region deployment
-The combination of availability zones for redundancy within a region, and multi-region deployments to improve the gateway availability if there is a regional outage, helps enhance both the reliability and performance of your API Management instance.
+The combination of availability zones for redundancy within a region, and multi-region deployments to improve the gateway availability if there's a regional outage, helps enhance both the reliability and performance of your API Management instance.
Examples:
Depending on where and how your backend services are hosted, you may need to set
* In multi-region deployments, use [policies to route requests](api-management-howto-deploy-multi-region.md#-route-api-calls-to-regional-backend-services) through regional gateways to regional backends.
-* Configure policies to route requests conditionally to different backends if there is backend failure in a particular region.
+* Configure policies to route requests conditionally to different backends if there's backend failure in a particular region.
* Use caching to reduce failing calls.
api-management Import And Publish https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/import-and-publish.md
Title: Tutorial - Import and publish your first API in Azure API Management
-description: In this tutorial, you import an OpenAPI Specification API into Azure API Management, and then test your API in the Azure portal.
+description: In this tutorial, you import an OpenAPI specification API into Azure API Management, and then test your API in the Azure portal.
-+ Previously updated : 12/10/2021 Last updated : 06/15/2023 # Tutorial: Import and publish your first API
-This tutorial shows how to import an OpenAPI Specification backend API in JSON format into Azure API Management. Microsoft provides the backend API used in this example, and hosts it on Azure at [https://conferenceapi.azurewebsites.net?format=json](https://conferenceapi.azurewebsites.net?format=json).
+This tutorial shows how to import an OpenAPI specification backend API in JSON format into Azure API Management. Microsoft provides the backend API used in this example, and hosts it on Azure at `https://conferenceapi.azurewebsites.net`.
Once you import the backend API into API Management, your API Management API becomes a façade for the backend API. You can customize the façade to your needs in API Management without touching the backend API. For more information, see [Transform and protect your API](transform-api.md).
In this tutorial, you learn how to:
After import, you can manage the API in the Azure portal. ## Prerequisites
After import, you can manage the API in the Azure portal.
## Import and publish a backend API
-This section shows how to import and publish an OpenAPI Specification backend API.
+This section shows how to import and publish an OpenAPI specification backend API.
1. In the left navigation of your API Management instance, select **APIs**. 1. Select the **OpenAPI** tile.
This section shows how to import and publish an OpenAPI Specification backend AP
You can set API values during creation or later by going to the **Settings** tab.
- :::image type="content" source="media/import-and-publish/open-api-specs.png" alt-text="Create an API":::
+ :::image type="content" source="media/import-and-publish/open-api-specs.png" alt-text="Screenshot of creating an API in the portal.":::
|Setting|Value|Description| |-|--|--|
- |**OpenAPI specification**|*https:\//conferenceapi.azurewebsites.net?format=json*|Specifies the backend service implementing the API. API Management forwards requests to this address. <br/><br/>The backend service URL appears later as the **Web service URL** on the API's **Settings** page. |
- |**Display name**|After you enter the preceding service URL, API Management fills out this field based on the JSON.|The name displayed in the [developer portal](api-management-howto-developer-portal.md).|
- |**Name**|After you enter the preceding service URL, API Management fills out this field based on the JSON.|A unique name for the API.|
- |**Description**|After you enter the preceding service URL, API Management fills out this field based on the JSON.|An optional description of the API.|
+ |**OpenAPI specification**|*https:\//conferenceapi.azurewebsites.net?format=json*|Specifies the backend service implementing the API and the operations that the API supports. <br/><br/>The backend service URL appears later as the **Web service URL** on the API's **Settings** page.<br/><br/>After import, you can add, edit, rename, or delete operations in the specification. |
+ | **Include query parameters in operation templates** | Selected (default) | Specifies whether to import required query parameters in the specification as template parameters in API Management. |
+ |**Display name**|After you enter the OpenAPI specification URL, API Management fills out this field based on the JSON.|The name displayed in the [developer portal](api-management-howto-developer-portal.md).|
+ |**Name**|After you enter the OpenAPI specification URL, API Management fills out this field based on the JSON.|A unique name for the API.|
+ |**Description**|After you enter the OpenAPI specification URL, API Management fills out this field based on the JSON.|An optional description of the API.|
|**URL scheme**|**HTTPS**|Which protocols can access the API.| |**API URL suffix**|*conference*|The suffix appended to the base URL for the API Management service. API Management distinguishes APIs by their suffix, so the suffix must be unique for every API for a given publisher.| |**Tags**| |Tags for organizing APIs for searching, grouping, or filtering.|
- |**Products**|**Unlimited**|Association of one or more APIs. Each API Management instance comes with two sample products: **Starter** and **Unlimited**. You publish an API by associating the API with a product, **Unlimited** in this example.<br/><br/> You can include several APIs in a product and offer them to developers through the developer portal. To add this API to another product, type or select the product name. Repeat this step to add the API to multiple products. You can also add APIs to products later from the **Settings** page.<br/><br/> For more information about products, see [Create and publish a product](api-management-howto-add-products.md).|
+ |**Products**|**Unlimited**|Association of one or more APIs. Each API Management instance comes with two sample products: **Starter** and **Unlimited**. You publish an API by associating the API with a product, **Unlimited** in this example.<br/><br/> You can include several APIs in a product and offer product [subscriptions](api-management-subscriptions.md) to developers through the developer portal. To add this API to another product, type or select the product name. Repeat this step to add the API to multiple products. You can also add APIs to products later from the **Settings** page.<br/><br/> For more information about products, see [Create and publish a product](api-management-howto-add-products.md).|
|**Gateways**|**Managed**|API gateway(s) that expose the API. This field is available only in **Developer** and **Premium** tier services.<br/><br/>**Managed** indicates the gateway built into the API Management service and hosted by Microsoft in Azure. [Self-hosted gateways](self-hosted-gateway-overview.md) are available only in the Premium and Developer service tiers. You can deploy them on-premises or in other clouds.<br/><br/> If no gateways are selected, the API won't be available and your API requests won't succeed.| |**Version this API?**|Select or deselect|For more information, see [Publish multiple versions of your API](api-management-get-started-publish-versions.md).|
If you have problems importing an API definition, see the [list of known issues
## Test the new API in the Azure portal
-You can call API operations directly from the Azure portal, which provides a convenient way to view and test the operations.
+You can call API operations directly from the Azure portal, which provides a convenient way to view and test the operations. In the portal's test console, by default, APIs are called by using a key from the built-in all-access subscription. You can also test API calls by using a subscription key scoped to a product.
1. In the left navigation of your API Management instance, select **APIs** > **Demo Conference API**.
-1. Select the **Test** tab, and then select **GetSpeakers**. The page shows **Query parameters** and **Headers**, if any. The **Ocp-Apim-Subscription-Key** is filled in automatically for the subscription key associated with this API.
+1. Select the **Test** tab, and then select **GetSpeakers**. The page shows **Query parameters** and **Headers**, if any.
+
+ In the **HTTP request** section, the **Ocp-Apim-Subscription-Key** header is filled in automatically for you, which you can see if you select the "eye" icon.
1. Select **Send**.
- :::image type="content" source="media/import-and-publish/test-new-api.png" alt-text="Test API in Azure portal":::
+ :::image type="content" source="media/import-and-publish/test-new-api.png" alt-text="Screenshot of testing an API in Azure portal." lightbox="media/import-and-publish/test-new-api.png":::
The backend responds with **200 OK** and some data.
api-management Sql Data Source Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/api-management/sql-data-source-policy.md
The `sql-data-source` resolver policy configures a Transact-SQL (T-SQL) request to an [Azure SQL](/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview) database and an optional response to resolve data for an object type and field in a GraphQL schema. The schema must be imported to API Management as a GraphQL API. > [!NOTE]
-> This policy is currently in preview.
+> This policy is in preview. Currently, the policy isn't supported in the Consumption tier of API Management.
[!INCLUDE [api-management-policy-generic-alert](../../includes/api-management-policy-generic-alert.md)]
The `sql-data-source` resolver policy configures a Transact-SQL (T-SQL) request
## Usage - [**Policy scopes:**](./api-management-howto-policies.md#scopes) GraphQL resolver-- [**Gateways:**](api-management-gateways-overview.md) dedicated, consumption
+- [**Gateways:**](api-management-gateways-overview.md) dedicated
### Usage notes
app-service App Service Configure Premium Tier https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/app-service-configure-premium-tier.md
keywords: app service, azure app service, scale, scalable, app service plan, app
ms.assetid: ff00902b-9858-4bee-ab95-d3406018c688 Last updated 05/08/2023+
app-service App Service Plan Manage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/app-service-plan-manage.md
description: Learn how to perform different tasks to manage an App Service plan,
keywords: app service, azure app service, scale, app service plan, change, create, manage, management ms.assetid: 4859d0d5-3e3c-40cc-96eb-f318b2c51a3d Previously updated : 10/24/2019+ Last updated : 06/29/2023
app-service Configure Common https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-common.md
It's not possible to edit app settings in bulk by using a JSON file with Azure P
--
-### Configure arrays in app settings
-
-You can also configure arrays in app settings as shown in the following table.
-
-|App setting name | App setting value |
-|--|-|
-|MY_ENV_VAR | ['entry1', 'entry2', 'entry3'] |
- ## Configure connection strings In the [Azure portal], search for and select **App Services**, and then select your app. In the app's left menu, select **Configuration** > **Application settings**.
app-service Configure Connect To Azure Storage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/configure-connect-to-azure-storage.md
description: Learn how to attach custom network share in Azure App Service. Sha
Previously updated : 4/12/2022 Last updated : 6/29/2022 zone_pivot_groups: app-service-containers-code
app-service Manage Scale Per App https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/manage-scale-per-app.md
ms.assetid: a903cb78-4927-47b0-8427-56412c4e3e64 Previously updated : 05/13/2019- Last updated : 06/29/2023+ # High-density hosting on Azure App Service using per-app scaling
app-service Manage Scale Up https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/manage-scale-up.md
ms.assetid: f7091b25-b2b6-48da-8d4a-dcf9b7baccab
Last updated 05/08/2023 + # Scale up an app in Azure App Service
For a table of service limits, quotas, and constraints, and supported features i
[ChooseWHP]: ./media/web-sites-scale/scale1ChooseWHP.png [ResourceGroup]: ./media/web-sites-scale/scale10ResourceGroup.png [ScaleDatabase]: ./media/web-sites-scale/scale11SQLScale.png
-[GeoReplication]: ./media/web-sites-scale/scale12SQLGeoReplication.png
+[GeoReplication]: ./media/web-sites-scale/scale12SQLGeoReplication.png
app-service Monitor App Service Reference https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/monitor-app-service-reference.md
Previously updated : 04/16/2021 Last updated : 06/29/2023 # Monitoring App Service data reference
app-service Overview Diagnostics https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/overview-diagnostics.md
description: Learn how you can troubleshoot issues with your app in Azure App Se
keywords: app service, azure app service, diagnostics, support, web app, troubleshooting, self-help Previously updated : 10/18/2019 Last updated : 06/29/2013+
app-service Overview Hosting Plans https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/overview-hosting-plans.md
keywords: app service, azure app service, scale, scalable, scalability, app serv
ms.assetid: dea3f41e-cf35-481b-a6bc-33d7fc9d01b1 Last updated 05/26/2023+
app-service Overview Local Cache https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/overview-local-cache.md
tags: optional
ms.assetid: e34d405e-c5d4-46ad-9b26-2a1eda86ce80 Previously updated : 03/04/2016 Last updated : 06/29/2023 + # Azure App Service Local Cache overview
app-service Overview Monitoring https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/overview-monitoring.md
Title: Monitoring overview
description: Learn about the various monitoring options on App Service. keywords: app service, azure app service, monitoring, diagnostic settings, support, web app, troubleshooting, Previously updated : 02/25/2022 Last updated : 06/29/2023
app-service Troubleshoot Diagnostic Logs https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/troubleshoot-diagnostic-logs.md
Title: Enable diagnostics logging
description: Learn how to enable diagnostic logging and add instrumentation to your application, as well as how to access the information logged by Azure. ms.assetid: c9da27b2-47d4-4c33-a3cb-1819955ee43b Previously updated : 01/13/2022 Last updated : 06/29/2023 + # Enable diagnostics logging for apps in Azure App Service
If you secure your Azure Storage account by [only allowing selected networks](..
* [How to Monitor Azure App Service](web-sites-monitor.md) * [Troubleshooting Azure App Service in Visual Studio](troubleshoot-dotnet-visual-studio.md) * [Analyze app Logs in HDInsight](https://gallery.technet.microsoft.com/scriptcenter/Analyses-Windows-Azure-web-0b27d413)
-* [Tutorial: Run a load test to identify performance bottlenecks in a web app](../load-testing/tutorial-identify-bottlenecks-azure-portal.md)
+* [Tutorial: Run a load test to identify performance bottlenecks in a web app](../load-testing/tutorial-identify-bottlenecks-azure-portal.md)
app-service Tutorial Troubleshoot Monitor https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/tutorial-troubleshoot-monitor.md
Previously updated : 06/20/2020 Last updated : 06/29/2023 # Tutorial: Troubleshoot an App Service app with Azure Monitor
app-service Web Sites Monitor https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/app-service/web-sites-monitor.md
Title: Monitor apps description: Learn how to monitor apps in Azure App Service by using the Azure portal. Understand the quotas and metrics that are reported.- ms.assetid: d273da4e-07de-48e0-b99d-4020d84a425e Previously updated : 04/23/2020- Last updated : 06/29/2023+
application-gateway Configuration Infrastructure https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/application-gateway/configuration-infrastructure.md
Previously updated : 06/20/2023 Last updated : 06/27/2023
Subnet Size /24 = 256 IP addresses - 5 reserved from the platform = 251 availabl
The virtual network resource supports [DNS server](../virtual-network/manage-virtual-network.md#view-virtual-networks-and-settings-using-the-azure-portal) configuration, allowing you to choose between Azure-provided default or Custom DNS servers. The instances of your application gateway also honor this DNS configuration for any name resolution. Thus, after you change this setting, you must restart ([Stop](/powershell/module/az.network/Stop-AzApplicationGateway) and [Start](/powershell/module/az.network/start-azapplicationgateway)) your application gateway for these changes to take effect on the instances. ### Virtual network permission
-Since the application gateway resource is deployed inside a virtual network, we also perform a check to verify the permission on the provided virtual network resource. This validation is performed during both creation and management operations. You should check your [Azure role-based access control](../role-based-access-control/role-assignments-list-portal.md) to verify the users (and service principals) that operate application gateways also have at least **Microsoft.Network/virtualNetworks/subnets/join/action** permission on the Virtual Network or Subnet. This is also applies to the [Managed Identities for Application Gateway Ingress Controller](./tutorial-ingress-controller-add-on-new.md#deploy-an-aks-cluster-with-the-add-on-enabled).
+Since the application gateway resource is deployed inside a virtual network, we also perform a check to verify the permission on the provided virtual network resource. This validation is performed during both creation and management operations. You should check your [Azure role-based access control](../role-based-access-control/role-assignments-list-portal.md) to verify the users (and service principals) that operate application gateways also have at least **Microsoft.Network/virtualNetworks/subnets/join/action** permission on the Virtual Network or Subnet. This validation also applies to the [Managed Identities for Application Gateway Ingress Controller](./tutorial-ingress-controller-add-on-new.md#deploy-an-aks-cluster-with-the-add-on-enabled).
You may use the built-in roles, such as [Network contributor](../role-based-access-control/built-in-roles.md#network-contributor), which already support this permission. If a built-in role doesn't provide the right permission, you can [create and assign a custom role](../role-based-access-control/custom-roles-portal.md). Learn more about [managing subnet permissions](../virtual-network/virtual-network-manage-subnet.md#permissions).
As a temporary extension, we have introduced a subscription-level [Azure Feature
## Network security groups
-Network security groups (NSGs) are supported on Application Gateway.
+You can use Network security groups (NSGs) for your Application Gateway's subnet, but you should note some key points and restrictions.
+
+> [!IMPORTANT]
+> These NSG limitations are relaxed when using [Private Application Gateway deployment (Preview)](application-gateway-private-deployment.md#network-security-group-control).
+
+### Required security rules
+
+To use NSG with your application gateway, you will need to create or retain some essential security rules. You may set their priority in the same order.
+
+**Inbound rules**
+
+1. **Client traffic** - Allow incoming traffic from the expected clients (as source IP or IP range), and for the destination as your application gateway's entire subnet IP prefix and inbound access ports. (Example: If you have listeners configured for ports 80 & 443, you must allow these ports. You can also set this to Any).
+
+| Source | Source ports | Destination | Destination ports | Protocol | Access |
+|||||||
+|`<as per need>`|Any|`<Subnet IP Prefix>`|`<listener ports>`|TCP|Allow|
+
+Upon configuring **active public and private listeners** (with Rules) **with the same port number** (in Preview), your application gateway changes the "Destination" of all inbound flows to the frontend IPs of your gateway. This is true even for the listeners not sharing any port. You must thus include your gateway's frontend Public and Private IP addresses in the Destination of the inbound rule when using the same port configuration.
-Fine grain control over the Application Gateway subnet via NSG rules is possible in public preview. More details can be found [here](application-gateway-private-deployment.md#network-security-group-control).
-With current functionality there are some restrictions:
+| Source | Source ports | Destination | Destination ports | Protocol | Access |
+|||||||
+|`<as per need>`|Any|`<Public and Private<br/>frontend IPs>`|`<listener ports>`|TCP|Allow|
-- You must allow incoming Internet traffic on TCP ports 65503-65534 for the Application Gateway v1 SKU, and TCP ports 65200-65535 for the v2 SKU with the destination subnet as **Any** and source as **GatewayManager** service tag. This port range is required for Azure infrastructure communication. These ports are protected (locked down) by Azure certificates. External entities, including the customers of those gateways, can't communicate on these endpoints.
+2. **Infrastructure ports** - Allow incoming requests from the source as GatewayManager service tag and any destination. The destination port range differs based on SKU and is required for communicating the status of the Backend Health. (These ports are protected/locked down by Azure certificates. External entities can't initiate changes on those endpoints without appropriate certificates in place).
+ - V2: Ports 65200-65535
+ - V1: Ports 65503-65534
-- Outbound Internet connectivity can't be blocked. Default outbound rules in the NSG allow Internet connectivity. We recommend that you:
+| Source | Source ports | Destination | Destination ports | Protocol | Access |
+|||||||
+|GatewayManager|Any|Any|`<as per SKU given above>`|TCP|Allow|
- - Don't remove the default outbound rules.
- - Don't create other outbound rules that deny any outbound connectivity.
+3. **Azure Load Balancer probes** - Allow incoming traffic from the source as AzureLoadBalancer service tag. This rule is created by default for [network security group](../virtual-network/network-security-groups-overview.md), and you must not override it with a manual Deny rule to ensure smooth operations of your application gateway.
-- Traffic from the **AzureLoadBalancer** tag with the destination subnet as **Any** must be allowed.
+| Source | Source ports | Destination | Destination ports | Protocol | Access |
+|||||||
+|AzureLoadBalancer|Any|Any|Any|Any|Allow|
-- To use public and private listeners with a common port number (Preview feature), you must have an inbound rule with the **destination IP address** as your gateway's **frontend IPs (public and private)**. When using this feature, your application gateway changes the "Destination" of the inbound flow to the frontend IPs of your gateway. [Learn more](./configuration-listeners.md#frontend-port).
+You may block all other incoming traffic by using a deny-all rule.
-### Allow access to a few source IPs
+**Outbound rules**
-For this scenario, use NSGs on the Application Gateway subnet. Put the following restrictions on the subnet in this order of priority:
+1. **Outbound to the Internet** - Allow outbound traffic to the Internet for all destinations. This rule is created by default for [network security group](../virtual-network/network-security-groups-overview.md), and you must not override it with a manual Deny rule to ensure smooth operations of your application gateway.
-1. Allow incoming traffic from a source IP or IP range with the destination as the entire Application Gateway subnet address range and destination port as your inbound access port, for example, port 80 for HTTP access.
-2. Allow incoming requests from source as **GatewayManager** service tag and destination as **Any** and destination ports as 65503-65534 for the Application Gateway v1 SKU, and ports 65200-65535 for v2 SKU for [backend health status communication](./application-gateway-diagnostics.md). This port range is required for Azure infrastructure communication. These ports are protected (locked down) by Azure certificates. Without appropriate certificates in place, external entities can't initiate changes on those endpoints.
-3. Allow incoming Azure Load Balancer probes (*AzureLoadBalancer* tag) on the [network security group](../virtual-network/network-security-groups-overview.md).
-4. Allow expected inbound traffic to match your listener configuration (i.e. if you have listeners configured for port 80, you will want an allow inbound rule for port 80)
-5. Block all other incoming traffic by using a deny-all rule.
-6. Allow outbound traffic to the Internet for all destinations.
+| Source | Source ports | Destination | Destination ports | Protocol | Access |
+|||||||
+|Any|Any|Internet|Any|Any|Allow|
## Supported user-defined routes
applied-ai-services Project Share Custom Models https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/applied-ai-services/form-recognizer/how-to-guides/project-share-custom-models.md
Form Recognizer Studio is an online tool to visually explore, understand, train,
In order to share and import your custom extraction projects seamlessly, both users (user who shares and user who imports) need an An active [**Azure account**](https://azure.microsoft.com/free/cognitive-services/). If you don't have one, you can [**create a free account**](https://azure.microsoft.com/free/). Also, both users need to configure permissions to grant access to the Form Recognizer and storage resources.
+Generally, in the process of creating a custom model project, most of the requirements should have been met for project sharing. However, in cases where the project sharing feature does not work, please check the below.
+ ## Granted access and permissions > [!IMPORTANT] > Custom model projects can be imported only if you have the access to the storage account that is associated with the project you are trying to import. Check your storage account permission before starting to share or import projects with others.
-### Managed identity
-
-Enable a system-assigned managed identity for your Form Recognizer resource. A system-assigned managed identity is enabled directly on a service instance. It isn't enabled by default; you must go to your resource and update the identity setting.
-
-For more information, *see*, [Enable a system-assigned managed identity](../managed-identities.md#enable-a-system-assigned-managed-identity)
-
-### Role-based access control (RBAC)
-
-Grant your Form Recognizer managed identity access to your storage account using Azure role-based access control (Azure RBAC). The [Storage Blob Data Contributor](../../..//role-based-access-control/built-in-roles.md#storage-blob-data-reader) role grants read, write, and delete permissions for Azure Storage containers and blobs.
-
-For more information, *see*, [Grant access to your storage account](../managed-identities.md#grant-access-to-your-storage-account)
-
-### Configure cross origin resource sharing (CORS)
-
-CORS needs to be configured in your Azure storage account for it to be accessible to the Form Recognizer Studio. You can update the CORS setting in the Azure portal.
-
-Form more information, *see* [Configure CORS](../quickstarts/try-form-recognizer-studio.md#configure-cors)
- ### Virtual networks and firewalls If your storage account VNet is enabled or if there are any firewall constraints, the project can't be shared. If you want to bypass those restrictions, ensure that those settings are turned off. A workaround is to manually create a project using the same settings as the project being shared.
-### User sharing requirements
-
-Users sharing the project need to create a project [**`ListAccountSAS`**](/rest/api/storagerp/storage-accounts/list-account-sas) to configure the storage account CORS and a [**`ListServiceSAS`**](/rest/api/storagerp/storage-accounts/list-service-sas) to generate a SAS token for *read*, *write* and *list* container's file in addition to blob storage data *update* permissions.
-
-### User importing requirements
-
-Users who want to import the project need a [**`ListServiceSAS`**](/rest/api/storagerp/storage-accounts/list-service-sas) to generate a SAS token for *read*, *write* and *list* container's file in addition to blob storage data *update* permissions.
## Share a custom extraction model with Form Recognizer studio
automation Manage Runbooks https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/automation/manage-runbooks.md
Title: Manage runbooks in Azure Automation
description: This article tells how to manage runbooks in Azure Automation. Previously updated : 01/16/2022 Last updated : 06/29/2023
Some runbooks behave strangely if they run across multiple jobs at the same time
# Ensures you do not inherit an AzContext in your runbook Disable-AzContextAutosave -Scope Process
-# Connect to Azure with system-assigned managed identity
+# Connect to Azure with system-assigned managed identity
$AzureContext = (Connect-AzAccount -Identity).context
-# set and store context
-$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription `
- -DefaultProfile $AzureContext
+# set and store context
+$AzureContext = Set-AzContext -SubscriptionName $AzureContext.Subscription -DefaultProfile $AzureContext
-# Check for already running or new runbooks
-$runbookName = "runbookName"
-$resourceGroupName = "resourceGroupName"
+# Check for already running or new runbooks
+$runbookName = "runbookName"
+$resourceGroupName = "resourceGroupName"
$automationAccountName = "automationAccountName"
-$jobs = Get-AzAutomationJob -ResourceGroupName $resourceGroupName `
- -AutomationAccountName $automationAccountName `
- -RunbookName $runbookName `
- -DefaultProfile $AzureContext
-
-# Check to see if it is already running
-$runningCount = ($jobs.Where( { $_.Status -eq 'Running' })).count
-
-if (($jobs.Status -contains 'Running' -and $runningCount -gt 1 ) -or ($jobs.Status -eq 'New')) {
- # Exit code
- Write-Output "Runbook $runbookName is already running"
- exit 1
-} else {
- # Insert Your code here
- Write-Output "Runbook $runbookName is not running"
+$jobs = Get-AzAutomationJob -ResourceGroupName $resourceGroupName -AutomationAccountName $automationAccountName -RunbookName $runbookName -DefaultProfile $AzureContext
+
+# Ranking all the active jobs
+$activeJobs = $jobs | where {$_.status -eq 'Running' -or $_.status -eq 'Queued' -or $_.status -eq 'New' -or $_.status -eq 'Activating' -or $_.status -eq 'Resuming'} | Sort-Object -Property CreationTime
+$jobRanking = @()
+$rank = 0
+ForEach($activeJob in $activeJobs)
+{
+ $rank = $rank + 1
+ $activeJob | Add-Member -MemberType NoteProperty -Name jobRanking -Value $rank -Force
+ $jobRanking += $activeJob
}
+
+$AutomationJobId = $PSPrivateMetadata.JobId.Guid
+$currentJob = $activeJobs | where {$_.JobId -eq $AutomationJobId}
+$currentJobRank = $currentJob.jobRanking
+
+# Only allow the Job with Rank = 1 to start processing.
+If($currentJobRank -ne "1")
+{
+ Write-Output "$(Get-Date -Format yyyy-MM-dd-hh-mm-ss.ffff) Concurrency check failed as Current Job Ranking is not 1 but $($currentJobRank) therefore exiting..."
+ Exit
+} Else
+{
+ Write-Output "$(Get-Date -Format yyyy-MM-dd-hh-mm-ss.ffff) Concurrency check passed. Start processing.."
+}
``` If you want the runbook to execute with the system-assigned managed identity, leave the code as-is. If you prefer to use a user-assigned managed identity, then:
azure-cache-for-redis Cache Best Practices Performance https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/cache-best-practices-performance.md
redis-benchmark -h yourcache.region.redisenterprise.cache.azure.net -p 10000 -a
The following tables show the maximum throughput values that were observed while testing various sizes of Standard, Premium, Enterprise, and Enterprise Flash caches. We used `redis-benchmark` from an IaaS Azure VM against the Azure Cache for Redis endpoint. The throughput numbers are only for GET commands. Typically, SET commands have a lower throughput. These numbers are optimized for throughput. Real-world throughput under acceptable latency conditions may be lower.
-The following configuration was used to benchmark throughput:
+The following configuration was used to benchmark throughput for the Basic, Standard, and Premium tiers:
```dos redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t GET -n 1000000 -d 1024 -P 50 -c 50
redis-benchmark -h yourcache.redis.cache.windows.net -a yourAccesskey -t GET -n
The Enterprise and Enterprise Flash tiers offer a choice of cluster policy: _Enterprise_ and _OSS_. Enterprise cluster policy is a simpler configuration that doesn't require the client to support clustering. OSS cluster policy, on the other hand, uses the [Redis cluster protocol](https://redis.io/docs/management/scaling) to support higher throughputs. We recommend using OSS cluster policy in most cases. For more information, see [Clustering on Enterprise](cache-best-practices-enterprise-tiers.md#clustering-on-enterprise). Benchmarks for both cluster policies are shown in the following tables.
+The following configuration was used to benchmark throughput for the Enterprise and Enterprise flash tiers:
+
+```dos
+redis-benchmark -h yourcache.region.redisenterprise.cache.azure.net -p 10000 -a yourAccesskey -t GET -n 10000000 -d 1024 -P 50 -c 50 --threads 32
+```
+> [!NOTE]
+> This configuration is nearly identical to the one used to benchmark the Basic, Standard, and Premium tiers. The previous configuration, however, did not fully utilize the greater compute performance of the Enterprise tiers. Additional requests and threads were added to this configuration in order to demonstrate full performance.
+ #### Enterprise Cluster Policy | Instance | Size | vCPUs | Expected network bandwidth (Mbps)| GET requests per second without SSL (1-kB value size) | GET requests per second with SSL (1-kB value size) |
azure-cache-for-redis Cache How To Active Geo Replication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/cache-how-to-active-geo-replication.md
Due to the potential for inadvertent data loss, you can't use the `FLUSHALL` and
:::image type="content" source="media/cache-how-to-active-geo-replication/cache-active-flush.png" alt-text="Screenshot showing Active geo-replication selected in the Resource menu and the Flush cache feature has a red box around it.":::
+### Flush caches using Azure CLI or PowerShell
+
+The Azure CLI and PowerShell can also be used to trigger a flush operation. For more information on using Azure CLI, see [az redisenterprise database flush](/cli/azure/redisenterprise#az-redisenterprise-database-flush). For more information on using PowerShell, see [Invoke-AzRedisEnterpriseCacheDatabaseFlush](/powershell/module/az.redisenterprisecache/invoke-azredisenterprisecachedatabaseflush).
+ > [!IMPORTANT] > Be careful when using the **Flush Caches** feature. Selecting the button removes all data from the current cache and from ALL linked caches in the geo-replication group. >
azure-cache-for-redis Cache How To Functions https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/cache-how-to-functions.md
public static void PubSubTrigger(
:::zone-end
-### RedisListsTrigger
+### RedisListTrigger
-The `RedisListsTrigger` pops elements from a list and surfaces those elements to the function. The trigger polls Redis at a configurable fixed interval, and uses [`LPOP`](https://redis.io/commands/lpop/)/[`RPOP`](https://redis.io/commands/rpop/)/[`LMPOP`](https://redis.io/commands/lmpop/) to pop elements from the lists.
+The `RedisListTrigger` pops elements from a list and surfaces those elements to the function. The trigger polls Redis at a configurable fixed interval, and uses [`LPOP`](https://redis.io/commands/lpop/)/[`RPOP`](https://redis.io/commands/rpop/)/[`LMPOP`](https://redis.io/commands/lmpop/) to pop elements from the lists.
-#### Inputs for RedisListsTrigger
+#### Inputs for RedisListTrigger
-- `ConnectionString`: connection string to the redis cache, for example`<cacheName>.redis.cache.windows.net:6380,password=...`.-- `Keys`: Keys to read from, space-delimited.
+- `ConnectionStringSetting`: connection string to the redis cache, for example`<cacheName>.redis.cache.windows.net:6380,password=...`.
+- `Key`: Key or keys to read from, space-delimited.
- Multiple keys only supported on Redis 7.0+ using [`LMPOP`](https://redis.io/commands/lmpop/). - Listens to only the first key given in the argument using [`LPOP`](https://redis.io/commands/lpop/)/[`RPOP`](https://redis.io/commands/rpop/) on Redis versions less than 7.0.
+ - This field can be resolved using `INameResolver`
- (optional) `PollingIntervalInMs`: How often to poll Redis in milliseconds. - Default: 1000 - (optional) `MessagesPerWorker`: How many messages each functions worker "should" process. Used to determine how many workers the function should scale to. - Default: 100-- (optional) `BatchSize`: Number of elements to pull from Redis at one time.
+- (optional) `Count`: Number of elements to pull from Redis at one time. These are processed in parallel.
- Default: 10 - Only supported on Redis 6.2+ using the `COUNT` argument in [`LPOP`](https://redis.io/commands/lpop/)/[`RPOP`](https://redis.io/commands/rpop/). - (optional) `ListPopFromBeginning`: determines whether to pop elements from the beginning using [`LPOP`](https://redis.io/commands/lpop/) or to pop elements from the end using [`RPOP`](https://redis.io/commands/rpop/).
The following sample polls the key `listTest` at a localhost Redis instance at `
::: zone pivot="programming-language-csharp" ```csharp
-[FunctionName(nameof(ListsTrigger))]
-public static void ListsTrigger(
- [RedisListsTrigger(ConnectionString = "127.0.0.1:6379", Keys = "listTest")] RedisMessageModel model,
+[FunctionName(nameof(ListTrigger))]
+public static void ListTrigger(
+ [RedisListTrigger(ConnectionStringSetting = "127.0.0.1:6379", Key = "listTest")] RedisMessageModel model,
ILogger logger) { logger.LogInformation(JsonSerializer.Serialize(model));
public static void ListsTrigger(
:::zone-end
-### RedisStreamsTrigger
+### RedisStreamTrigger
-The `RedisStreamsTrigger` pops elements from a stream and surfaces those elements to the function.
+The `RedisStreamTrigger` pops elements from a stream and surfaces those elements to the function.
The trigger polls Redis at a configurable fixed interval, and uses [`XREADGROUP`](https://redis.io/commands/xreadgroup/) to read elements from the stream.
+The consumer group for all function instances will be the ID of the function. For example, for the StreamTrigger function in [this sample](https://github.com/Azure/azure-functions-redis-extension/blob/main/samples/dotnet/RedisSamples.cs), the consumer group would be `Microsoft.Azure.WebJobs.Extensions.Redis.Samples.RedisSamples.StreamTrigger`.
Each function creates a new random GUID to use as its consumer name within the group to ensure that scaled out instances of the function don't read the same messages from the stream.
-#### Inputs for RedisStreamsTrigger
+#### Inputs for RedisStreamTrigger
-- `ConnectionString`: connection string to the redis cache, for example, `<cacheName>.redis.cache.windows.net:6380,password=...`.-- `Keys`: Keys to read from, space-delimited.
+- `ConnectionStringSetting`: connection string to the redis cache, for example, `<cacheName>.redis.cache.windows.net:6380,password=...`.
+- `Key`: Key or keys to read from, space-delimited.
- Uses [`XREADGROUP`](https://redis.io/commands/xreadgroup/).
+ - This field can be resolved using `INameResolver`.
- (optional) `PollingIntervalInMs`: How often to poll Redis in milliseconds. - Default: 1000 - (optional) `MessagesPerWorker`: How many messages each functions worker "should" process. Used to determine how many workers the function should scale to. - Default: 100-- (optional) `BatchSize`: Number of elements to pull from Redis at one time.
+- (optional) `Count`: Number of elements to pull from Redis at one time.
- Default: 10-- (optional) `ConsumerGroup`: The name of the consumer group that the function uses.
- - Default: "AzureFunctionRedisExtension"
- (optional) `DeleteAfterProcess`: If the listener will delete the stream entries after the function runs. - Default: false
The following sample polls the key `streamTest` at a localhost Redis instance at
::: zone pivot="programming-language-csharp" ```csharp
-[FunctionName(nameof(StreamsTrigger))]
-public static void StreamsTrigger(
- [RedisStreamsTrigger(ConnectionString = "127.0.0.1:6379", Keys = "streamTest")] RedisMessageModel model,
+[FunctionName(nameof(StreamTrigger))]
+public static void StreamTrigger(
+ [RedisStreamTrigger(ConnectionString = "127.0.0.1:6379", Keys = "streamTest")] RedisMessageModel model,
ILogger logger) { logger.LogInformation(JsonSerializer.Serialize(model));
azure-cache-for-redis Cache How To Geo Replication https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/cache-how-to-geo-replication.md
Be sure to check the following items:
- If youΓÇÖre using a firewall in either cache, make sure that the firewall settings are similar so you have no connection issues. - Make sure both caches are using the same port and TLS/SSL settings-- The geo-primary and geo-secondary caches have different access keys. If a failover is triggered, make sure your application can update the access key it's using to match the new geo-primary.
+- The geo-primary and geo-secondary caches have different access keys. If a failover is triggered, make sure your application can update the access key it's using to match the new geo-primary. Or, use [Azure Active Directory tokens for cache authentication](cache-azure-active-directory-for-authentication.md), which allow you to use the same authentication credential for both the geo-primary and the geo-secondary cache.
### Failover with minimal data loss
Geo-failover events can introduce data inconsistencies during the transition, es
There's no need to run the CLIENT UNPAUSE command as the new geo-primary does retain the client pause.
+>[!NOTE]
+>Using [Azure Active Directory based authentication](cache-azure-active-directory-for-authentication.md) for your cache is recommended in geo-failover scenarios because it removes the difficulty of managing different access keys for the geo-primary and the geo-secondary cache.
+>
+ ## Remove a geo-replication link 1. To remove the link between two caches and stop geo-replication, select **Unlink caches** from the **Geo-replication** on the left.
azure-cache-for-redis Cache How To Upgrade https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-cache-for-redis/cache-how-to-upgrade.md
Previously updated : 12/15/2022 Last updated : 06/29/2023
For more information on how to export, see [Import and Export data in Azure Cach
- When you upgrade a cache in the Basic tier, it's unavailable for several minutes and results in data loss. - Upgrading on geo-replicated cache isn't supported. You must manually unlink the cache instances before upgrading.-- Upgrading a cache with a dependency on Cloud Services isn't supported. You should migrate your cache instance to Virtual Machine Scale Set before upgrading. For more information, see [Caches with a dependency on Cloud Services (classic)](./cache-faq.yml) for details on cloud services hosted caches.
+- Upgrading a cache with a dependency on Cloud Services isn't supported. You should migrate your cache instance to Virtual Machine Scale Set before upgrading.
+ - For more information, see [Caches with a dependency on Cloud Services (classic)](./cache-faq.yml) for details on cloud services hosted caches.
+- When trying to upgrade to Redis 6, your VNet must be configured in accord with the requirements. Your upgrade might fail or the cache might not function properly after the upgrade if not configured correctly.
+ - For more information on the VNet requirements, see [What are some common misconfiguration issues with Azure Cache for Redis and virtual networks](cache-how-to-premium-vnet.md#what-are-some-common-misconfiguration-issues-with-azure-cache-for-redis-and-virtual-networks).
### Check the version of a cache
Before you upgrade, check the Redis version of a cache by selecting **Properties
1. If your cache instance is eligible to be upgraded, you should see the following blue banner. If you want to proceed, select the text in the banner.
- :::image type="content" source="media/cache-how-to-upgrade/blue-banner-upgrade-cache.png" alt-text="Screenshot informing you that you can upgrade your cache to Redis 6 with additional features. Upgrading your cache instance cannot be reversed.":::
+ :::image type="content" source="media/cache-how-to-upgrade/blue-banner-upgrade-cache.png" alt-text="Screenshot informing you that you can upgrade your cache to Redis 6 with more features. Upgrading your cache instance can't be reversed.":::
1. A dialog box displays a popup notifying you that upgrading is permanent and might cause a brief connection blip. Select **Yes** if you would like to upgrade your cache instance.
Before you upgrade, check the Redis version of a cache by selecting **Properties
1. To check on the status of the upgrade, navigate to **Overview**.
- :::image type="content" source="media/cache-how-to-upgrade/upgrade-status.png" alt-text="Screenshot showing Overview in the Resource menu. Status shows cache is being upgraded.":::
+ :::image type="content" source="media/cache-how-to-upgrade/upgrade-status.png" alt-text="Screenshot showing Overview in the Resource menu. Status shows cache is being upgraded.":::
## Upgrade using Azure CLI
To upgrade a cache from 4 to 6 using PowerShell, use the following command:
```powershell-interactive Set-AzRedisCache -Name "CacheName" -ResourceGroupName "ResourceGroupName" -RedisVersion "6"
-```
+```
## Next steps
azure-functions Functions Bindings Azure Data Explorer Input https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-bindings-azure-data-explorer-input.md
Title: Azure Data Explorer input bindings for Azure Functions (preview)
-description: Understand usage of Azure Data Explorer input bindings for Azure Functions (Query data from Azure Data Explorer)
+description: Understand how to use Azure Data Explorer input bindings for Azure Functions and query data from Azure Data Explorer.
public class Product
### HTTP trigger, get row by ID from query string
-The following example shows a [C# function](functions-dotnet-class-library.md) that retrieves a list of products given a productId. The function is triggered by an HTTP request that uses a parameter for the ID. That ID is used to retrieve a list of `Product` that matches the query.
+The following example shows a [C# function](functions-dotnet-class-library.md) that retrieves a list of products given a product ID. The function is triggered by an HTTP request that uses a parameter for the ID. That ID is used to retrieve a `Product` list that matches the query.
> [!NOTE]
-> The HTTP query string parameter is case-sensitive.
+> The HTTP query string parameter is case sensitive.
> ```cs
namespace Microsoft.Azure.WebJobs.Extensions.Kusto.Samples.InputBindingSamples
### HTTP trigger, get multiple rows from route parameter
-The following example shows a [C# function](functions-dotnet-class-library.md) that retrieves documents returned by the query. The function is triggered by an HTTP request that uses route data to specify the value of a KQL function parameter. GetProductsByName is a simple function that retrieves a set of products that match a product name
+The following example shows a [C# function](functions-dotnet-class-library.md) that retrieves documents returned by the query. The function is triggered by an HTTP request that uses route data to specify the value of a KQL function parameter. The simple function `GetProductsByName` retrieves a set of products that match a product name.
```kusto .create function ifnotexists GetProductsByName(name:string)
The examples refer to a `Product` class and the Products table, both of which ar
The following example shows a [C# function](functions-dotnet-class-library.md) that retrieves a single record. The function is triggered by an HTTP request that uses a query string to specify the ID. That ID is used to retrieve a `Product` record with the specified query. > [!NOTE]
-> The HTTP query string parameter is case-sensitive.
+> The HTTP query string parameter is case sensitive.
> ```cs
namespace Microsoft.Azure.WebJobs.Extensions.Kusto.SamplesOutOfProc.InputBinding
### HTTP trigger, get multiple rows from route parameter
-The following example shows a [C# function](functions-dotnet-class-library.md) that retrieves records returned by the query (based on the name of product in this case). The function is triggered by an HTTP request that uses route data to specify the value of a query parameter. That parameter is used to filter the `Product` records in the specified query.
+The following example shows a [C# function](functions-dotnet-class-library.md) that retrieves records returned by the query (based on the name of the product, in this case). The function is triggered by an HTTP request that uses route data to specify the value of a query parameter. That parameter is used to filter the `Product` records in the specified query.
```cs using Microsoft.Azure.Functions.Worker;
namespace Microsoft.Azure.WebJobs.Extensions.Kusto.SamplesOutOfProc.InputBinding
::: zone pivot="programming-language-java"
-More samples for the java Azure Data Explorer input binding are available in the [GitHub repository](https://github.com/Azure/Webjobs.Extensions.Kusto/tree/main/samples/samples-java).
+More samples for the Java Azure Data Explorer input binding are available in the [GitHub repository](https://github.com/Azure/Webjobs.Extensions.Kusto/tree/main/samples/samples-java).
This section contains the following examples: * [HTTP trigger, get multiple rows](#http-trigger-get-multiple-items-java) * [HTTP trigger, get row by ID from query string](#http-trigger-look-up-id-from-query-string-java)
-The examples refer to a `Product` class (in a separate file `Product.java`) and a corresponding database table:
+The examples refer to a `Product` class (in a separate file `Product.java`) and a corresponding database table.
```java package com.microsoft.azure.kusto.common;
public class GetProducts {
### HTTP trigger, get row by ID from query string
-The following example shows a query the products table by the product name. The function is triggered by an HTTP request that uses a query string to specify the value of a query parameter. That parameter is used to filter the `Product` records in the specified query.
+The following example shows a query for the products table by the product name. The function is triggered by an HTTP request that uses a query string to specify the value of a query parameter. That parameter is used to filter the `Product` records in the specified query.
```java package com.microsoft.azure.kusto.inputbindings;
The examples refer to a database table:
### HTTP trigger, get multiple rows
-The following example shows an Azure Data Explorer input binding in a function.json file and a JavaScript function that reads from a query and returns the results in the HTTP response.
+The following example shows an Azure Data Explorer input binding in a *function.json* file and a JavaScript function that reads from a query and returns the results in the HTTP response.
-The following is binding data in the function.json file:
+The following binding data is in the *function.json* file:
```json {
The following is binding data in the function.json file:
The [configuration](#configuration) section explains these properties.
-The following is sample JavaScript code:
+The following snippet is sample JavaScript code:
```javascript module.exports = async function (context, req, productget) {
module.exports = async function (context, req, productget) {
### HTTP trigger, get row by name from query string
-The following example shows a query the products table by the product name. The function is triggered by an HTTP request that uses a query string to specify the value of a query parameter. That parameter is used to filter the `Product` records in the specified query.
+The following example shows a query for the products table by the product name. The function is triggered by an HTTP request that uses a query string to specify the value of a query parameter. That parameter is used to filter the `Product` records in the specified query.
-The following is binding data in the function.json file:
+The following binding data is in the *function.json* file:
```json {
The following is binding data in the function.json file:
The [configuration](#configuration) section explains these properties.
-The following is sample JavaScript code:
+The following snippet is sample JavaScript code:
```javascript module.exports = async function (context, req, producproductfngettget) {
More samples for the Azure Data Explorer input binding are available in the [Git
This section contains the following examples: * [HTTP trigger, get multiple rows](#http-trigger-get-multiple-items-python)
-* [HTTP trigger, get records using a KQL Function](#http-trigger-look-up-id-from-query-string-python)
+* [HTTP trigger, get records by using a KQL function](#http-trigger-look-up-id-from-query-string-python)
<a id="http-trigger-get-multiple-items-python"></a> ### HTTP trigger, get multiple rows
-The following example shows an Azure Data Explorer input binding in a function.json file and a Python function that reads from a query and returns the results in the HTTP response.
+The following example shows an Azure Data Explorer input binding in a *function.json* file and a Python function that reads from a query and returns the results in the HTTP response.
-The following is binding data in the function.json file:
+The following binding data is in the *function.json* file:
```json {
The following is binding data in the function.json file:
The [configuration](#configuration) section explains these properties.
-The following is sample Python code:
+The following snippet is sample Python code:
```python import azure.functions as func
def main(req: func.HttpRequest, products: str) -> func.HttpResponse:
### HTTP trigger, get row by ID from query string
-The following example shows a query the products table by the product name. The function is triggered by an HTTP request that uses a query string to specify the value of a query parameter. That parameter is used to filter the `Product` records in the specified query.
+The following example shows a query for the products table by the product name. The function is triggered by an HTTP request that uses a query string to specify the value of a query parameter. That parameter is used to filter the `Product` records in the specified query.
-The following is binding data in the function.json file:
+The following binding data is in the *function.json* file:
```json {
The following is binding data in the function.json file:
The [configuration](#configuration) section explains these properties.
-The following is sample Python code:
+The following snippet is sample Python code:
```python import azure.functions as func
def main(req: func.HttpRequest, products: str) -> func.HttpResponse:
## Attributes
-The [C# library](functions-dotnet-class-library.md) uses the [KustoAttribute](https://github.com/Azure/Webjobs.Extensions.Kusto/blob/main/src/KustoAttribute.cs) attribute to declare the Azure Data Explorer bindings on the function, which has the following properties:
+The [C# library](functions-dotnet-class-library.md) uses the [KustoAttribute](https://github.com/Azure/Webjobs.Extensions.Kusto/blob/main/src/KustoAttribute.cs) attribute to declare the Azure Data Explorer bindings on the function, which has the following properties.
| Attribute property |Description| |||
-| **Database** | Required. The database against which the query has to be executed. |
-| **Connection** | Required. The _**name**_ of the variable that holds the connection string, resolved through environment variables or through function app settings. Defaults to look up on the variable _**KustoConnectionString**_, at runtime this variable is looked up against the environment. Documentation on connection string can be found at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto) for example:`"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId` |
-| **KqlCommand** | Required. The KqlQuery that has to be executed. Can be a KQL query or a KQL Function call|
-| **KqlParameters** | Optional. Parameters that act as predicate variables for the KqlCommand. For example "@name={name},@Id={id}" where the parameters {name} and {id} is substituted at runtime with actual values acting as predicates. Neither the parameter name nor the parameter value can contain a comma (`,`) or an equals sign (`=`). |
-| **ManagedServiceIdentity** | Optional. A managed identity can be used to connect to Azure Data Explorer. To use a System managed identity, use "system", any other identity names are interpreted as user managed identity |
+| Database | Required. The database against which the query must be executed. |
+| Connection | Required. The name of the variable that holds the connection string, resolved through environment variables or through function app settings. Defaults to look up on the variable `KustoConnectionString`. At runtime, this variable is looked up against the environment. Documentation on the connection string is at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto). For example:`"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId`. |
+| KqlCommand | Required. The `KqlQuery` parameter that must be executed. Can be a KQL query or a KQL function call.|
+| KqlParameters | Optional. Parameters that act as predicate variables for `KqlCommand`. For example, "@name={name},@Id={id}", where *{name}* and *{id}* are substituted at runtime with actual values acting as predicates. The parameter name and the parameter value can't contain a comma (`,`) or an equal sign (`=`). |
+| ManagedServiceIdentity | Optional. You can use a managed identity to connect to Azure Data Explorer. To use a system managed identity, use "system." Any other identity names are interpreted as a user managed identity. |
::: zone-end
The [C# library](functions-dotnet-class-library.md) uses the [KustoAttribute](ht
## Annotations
-In the [Java functions runtime library](/java/api/overview/azure/functions/runtime), uses the [`@KustoInput`](https://github.com/Azure/Webjobs.Extensions.Kusto/blob/main/java-library/src/main/java/com/microsoft/azure/functions/kusto/annotation/KustoInput.java) annotation (`com.microsoft.azure.functions.kusto.annotation.KustoInput`):
+The [Java functions runtime library](/java/api/overview/azure/functions/runtime) uses the [`@KustoInput`](https://github.com/Azure/Webjobs.Extensions.Kusto/blob/main/java-library/src/main/java/com/microsoft/azure/functions/kusto/annotation/KustoInput.java) annotation (`com.microsoft.azure.functions.kusto.annotation.KustoInput`).
| Element |Description| |||
-| **name** | Required. The name of the variable that represents the query results in function code. |
-| **database** | Required. The database against which the query has to be executed. |
-| **connection** | Required. The _**name**_ of the variable that holds the connection string, resolved through environment variables or through function app settings. Defaults to look up on the variable _**KustoConnectionString**_, at runtime this variable is looked up against the environment. Documentation on connection string can be found at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto) for example:`"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId` |
-| **kqlCommand** | Required. The KqlQuery that has to be executed. Can be a KQL query or a KQL Function call|
-|**kqlParameters** | Optional. Parameters that act as \predicate variables for the KqlCommand. For example "@name={name},@Id={id}" where the parameters {name} and {id} is substituted at runtime with actual values acting as predicates. Neither the parameter name nor the parameter value can contain a comma (`,`) or an equals sign (`=`). |
-| **managedServiceIdentity** | A managed identity can be used to connect to Azure Data Explorer. To use a System managed identity, use "system", any other identity names are interpreted as user managed identity|
+| name | Required. The name of the variable that represents the query results in function code. |
+| database | Required. The database against which the query must be executed. |
+| connection | Required. The name of the variable that holds the connection string, resolved through environment variables or through function app settings. Defaults to look up on the variable `KustoConnectionString`. At runtime, this variable is looked up against the environment. Documentation on the connection string is at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto). For example:`"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId`. |
+| kqlCommand | Required. The `KqlQuery` parameter that must be executed. Can be a KQL query or a KQL function call.|
+|kqlParameters | Optional. Parameters that act as predicate variables for `KqlCommand`. For example, "@name={name},@Id={id}", where *{name}* and *{id}* are substituted at runtime with actual values acting as predicates. The parameter name and the parameter value can't contain a comma (`,`) or an equal sign (`=`). |
+| managedServiceIdentity | A managed identity can be used to connect to Azure Data Explorer. To use a system managed identity, use "system." Any other identity names are interpreted as a user managed identity.|
::: zone-end
In the [Java functions runtime library](/java/api/overview/azure/functions/runti
## Configuration
-The following table explains the binding configuration properties that you set in the function.json file.
+The following table explains the binding configuration properties that you set in the *function.json* file.
|function.json property | Description| ||-|
-|**type** | Required. Must be set to `kusto`. |
-|**direction** | Required. Must be set to `in`. |
-|**name** | Required. The name of the variable that represents the query results in function code. |
-| **database** | Required. The database against which the query has to be executed. |
-| **connection** | Required. The _**name**_ of the variable that holds the connection string, resolved through environment variables or through function app settings. Defaults to look up on the variable _**KustoConnectionString**_, at runtime this variable is looked up against the environment. Documentation on connection string can be found at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto) for example:`"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId` |
-| **kqlCommand** | Required. The KqlQuery that has to be executed. Can be a KQL query or a KQL Function call|
-|**kqlParameters** | Optional. Parameters that act as predicate variables for the KqlCommand. For example "@name={name},@Id={id}" where the parameters {name} and {id} is substituted at runtime with actual values acting as predicates. Neither the parameter name nor the parameter value can contain a comma (`,`) or an equals sign (`=`). |
-| **managedServiceIdentity** | A managed identity can be used to connect to Azure Data Explorer. To use a System managed identity, use "system", any other identity names are interpreted as user managed identity|
+|type | Required. Must be set to `kusto`. |
+|direction | Required. Must be set to `in`. |
+|name | Required. The name of the variable that represents the query results in function code. |
+| database | Required. The database against which the query must be executed. |
+| connection | Required. The name of the variable that holds the connection string, resolved through environment variables or through function app settings. Defaults to look up on the variable `KustoConnectionString`. At runtime, this variable is looked up against the environment. Documentation on the connection string is at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto). For example:`"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId`. |
+| kqlCommand | Required. The `KqlQuery` parameter that must be executed. Can be a KQL query or a KQL function call.|
+|kqlParameters | Optional. Parameters that act as predicate variables for `KqlCommand`. For example, "@name={name},@Id={id}", where *{name}* and *{id}* are substituted at runtime with actual values acting as predicates. The parameter name and the parameter value can't contain a comma (`,`) or an equal sign (`=`). |
+| managedServiceIdentity | A managed identity can be used to connect to Azure Data Explorer. To use a system managed identity, use "system." Any other identity names are interpreted as a user managed identity.|
::: zone-end [!INCLUDE [app settings to local.settings.json](../../includes/functions-app-settings-local.md)]
The following table explains the binding configuration properties that you set i
::: zone pivot="programming-language-csharp,programming-language-javascript,programming-language-python,programming-language-java"
-The attribute's constructor takes the **Database** and the attributes **KQLCommand**, KQLParameters, and the Connection setting name. The **KQLCommand** can be a KQL statement or a KQL function. The connection string setting name corresponds to the application setting (in `local.settings.json` for local development) that contains the [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto) for example: `"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId`. Queries executed by the input binding are parameterized and the values provided in the KQLParameters are used at runtime.
+The attribute's constructor takes the database and the attributes `KQLCommand` and `KQLParameters` and the connection setting name. The KQL command can be a KQL statement or a KQL function. The connection string setting name corresponds to the application setting (in `local.settings.json` for local development) that contains the [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto). For example: `"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId`. Queries executed by the input binding are parameterized. The values provided in the KQL parameters are used at runtime.
::: zone-end ## Next steps
-* [Save data to a table (Output binding)](functions-bindings-azure-data-explorer-output.md)
+[Save data to a table (output binding)](functions-bindings-azure-data-explorer-output.md)
azure-functions Functions Bindings Azure Data Explorer Output https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-bindings-azure-data-explorer-output.md
Title: Azure Data Explorer output bindings for Azure Functions (preview)
-description: Understand usage of Azure Data Explorer output bindings for Azure Functions (Ingest data to Azure Data Explorer)
+description: Understand how to use Azure Data Explorer output bindings for Azure Functions and ingest data to Azure Data Explorer.
public class Product
### HTTP trigger, write one record
-The following example shows a [C# function](functions-dotnet-class-library.md) that adds a record to a database, using data provided in an HTTP POST request as a JSON body.
+The following example shows a [C# function](functions-dotnet-class-library.md) that adds a record to a database. The function uses data provided in an HTTP POST request as a JSON body.
```cs using System.Globalization;
namespace Microsoft.Azure.WebJobs.Extensions.Kusto.Samples.OutputBindingSamples
### HTTP trigger, write to two tables
-The following example shows a [C# function](functions-dotnet-class-library.md) that adds records to a database in two different tables (`Products` and `ProductsChangeLog`), using data provided in an HTTP POST request as a JSON body and multiple output bindings.
+The following example shows a [C# function](functions-dotnet-class-library.md) that adds records to a database in two different tables (`Products` and `ProductsChangeLog`). The function uses data provided in an HTTP POST request as a JSON body and multiple output bindings.
```kusto .create-merge table ProductsChangeLog (ProductID:long, CreatedAt:datetime)
namespace Microsoft.Azure.WebJobs.Extensions.Kusto.Samples.OutputBindingSamples
### HTTP trigger, write records using IAsyncCollector
-The following example shows a [C# function](functions-dotnet-class-library.md) that ingests a set of records to a table, using data provided in an HTTP POST body JSON array.
+The following example shows a [C# function](functions-dotnet-class-library.md) that ingests a set of records to a table. The function uses data provided in an HTTP POST body JSON array.
```cs using System.IO;
public class Product
### HTTP trigger, write one record
-The following example shows a [C# function](functions-dotnet-class-library.md) that adds a record to a database, using data provided in an HTTP POST request as a JSON body.
+The following example shows a [C# function](functions-dotnet-class-library.md) that adds a record to a database. The function uses data provided in an HTTP POST request as a JSON body.
```cs using Microsoft.Azure.Functions.Worker;
namespace Microsoft.Azure.WebJobs.Extensions.Kusto.SamplesOutOfProc.OutputBindin
### HTTP trigger, write records with mapping
-The following example shows a [C# function](functions-dotnet-class-library.md) that adds a collection of records to a database, using a mapping that transforms a `Product` to `Item`.
+The following example shows a [C# function](functions-dotnet-class-library.md) that adds a collection of records to a database. The function uses mapping that transforms a `Product` to `Item`.
-To transform data from `Product` to `Item`, the function uses a mapping reference
+To transform data from `Product` to `Item`, the function uses a mapping reference:
```kusto .create-merge table Item (ItemID:long, ItemName:string, ItemCost:float)
namespace Microsoft.Azure.WebJobs.Extensions.Kusto.SamplesOutOfProc.OutputBindin
::: zone pivot="programming-language-java"
-More samples for the java Azure Data Explorer input binding are available in the [GitHub repository](https://github.com/Azure/Webjobs.Extensions.Kusto/tree/main/samples/samples-java).
+More samples for the Java Azure Data Explorer input binding are available in the [GitHub repository](https://github.com/Azure/Webjobs.Extensions.Kusto/tree/main/samples/samples-java).
This section contains the following examples:
public class Product {
### HTTP trigger, write a record to a table
-The following example shows an Azure Data Explorer output binding in a Java function that adds a product record to a table, using data provided in an HTTP POST request as a JSON body. The function takes another dependency on the [com.fasterxml.jackson.core](https://github.com/FasterXML/jackson) library to parse the JSON body.
+The following example shows an Azure Data Explorer output binding in a Java function that adds a product record to a table. The function uses data provided in an HTTP POST request as a JSON body. The function takes another dependency on the [com.fasterxml.jackson.core](https://github.com/FasterXML/jackson) library to parse the JSON body.
```xml <dependency>
public class AddProduct {
### HTTP trigger, write to two tables
-The following example shows an Azure Data Explorer output binding in a Java function that adds records to a database in two different tables (`Product` and `ProductChangeLog`), using data provided in an HTTP POST request as a JSON body and multiple output bindings. The function takes another dependency on the [com.fasterxml.jackson.core](https://github.com/FasterXML/jackson) library to parse the JSON body.
+The following example shows an Azure Data Explorer output binding in a Java function that adds records to a database in two different tables (`Product` and `ProductChangeLog`). The function uses data provided in an HTTP POST request as a JSON body and multiple output bindings. The function takes another dependency on the [com.fasterxml.jackson.core](https://github.com/FasterXML/jackson) library to parse the JSON body.
```xml <dependency>
This section contains the following examples:
* [HTTP trigger, write records to a table](#http-trigger-write-records-to-table-javascript) * [HTTP trigger, write to two tables](#http-trigger-write-to-two-tables-javascript)
-The examples refer to a database table:
+The examples refer to a database table.
-The examples refer to the tables `Products` and `ProductsChangeLog` (defined earlier):
+The examples refer to the tables `Products` and `ProductsChangeLog` (defined earlier).
<a id="http-trigger-write-records-to-table-javascript"></a> ### HTTP trigger, write records to a table
-The following example shows an Azure Data Explorer output binding in a function.json file and a JavaScript function that adds records to a table, using data provided in an HTTP POST request as a JSON body.
+The following example shows an Azure Data Explorer output binding in a *function.json* file and a JavaScript function that adds records to a table. The function uses data provided in an HTTP POST request as a JSON body.
-The following example is binding data in the function.json file:
+The following example is binding data in the *function.json* file:
```json {
The following example is binding data in the function.json file:
The [configuration](#configuration) section explains these properties.
-The following is sample JavaScript code:
+The following snippet is sample JavaScript code:
```javascript // Insert the product, which will insert it into the Products table.
module.exports = async function (context, req) {
### HTTP trigger, write to two tables
-The following example shows an Azure Data Explorer output binding in a function.json file and a JavaScript function that adds records to a database in two different tables (`Products` and `ProductsChangeLog`), using data provided in an HTTP POST request as a JSON body and multiple output bindings.
+The following example shows an Azure Data Explorer output binding in a *function.json* file and a JavaScript function that adds records to a database in two different tables (`Products` and `ProductsChangeLog`). The function uses data provided in an HTTP POST request as a JSON body and multiple output bindings.
The second table, `ProductsChangeLog`, corresponds to the following definition:
The second table, `ProductsChangeLog`, corresponds to the following definition:
.create-merge table ProductsChangeLog (ProductID:long, CreatedAt:datetime) ```
-The following is binding data in the function.json file:
+The following snippet is binding data in the *function.json* file:
```json {
The following is binding data in the function.json file:
The [configuration](#configuration) section explains these properties.
-The following is sample JavaScript code:
+The following snippet is sample JavaScript code:
```javascript module.exports = async function (context, req) {
This section contains the following examples:
* [HTTP trigger, write records to a table](#http-trigger-write-records-to-table-python) * [HTTP trigger, write to two tables](#http-trigger-write-to-two-tables-python)
-The examples refer to the tables `Products` and `ProductsChangeLog` (defined earlier):
+The examples refer to the tables `Products` and `ProductsChangeLog` (defined earlier).
<a id="http-trigger-write-records-to-table-python"></a> ### HTTP trigger, write records to a table
-The following example shows an Azure Data Explorer output binding in a function.json file and a Python function that adds records to a table, using data provided in an HTTP POST request as a JSON body.
+The following example shows an Azure Data Explorer output binding in a *function.json* file and a Python function that adds records to a table. The function uses data provided in an HTTP POST request as a JSON body.
-The following is binding data in the function.json file:
+The following snippet is binding data in the *function.json* file:
```json {
The following is binding data in the function.json file:
The [configuration](#configuration) section explains these properties.
-The following is sample Python code:
+The following snippet is sample Python code:
```python import azure.functions as func
def main(req: func.HttpRequest, product: func.Out[str]) -> func.HttpResponse:
### HTTP trigger, write to two tables
-The following example shows an Azure Data Explorer output binding in a function.json file and a JavaScript function that adds records to a database in two different tables (`Products` and `ProductsChangeLog`), using data provided in an HTTP POST request as a JSON body and multiple output bindings. The second table, `ProductsChangeLog`, corresponds to the following definition:
+The following example shows an Azure Data Explorer output binding in a *function.json* file and a JavaScript function that adds records to a database in two different tables (`Products` and `ProductsChangeLog`). The function uses data provided in an HTTP POST request as a JSON body and multiple output bindings. The second table, `ProductsChangeLog`, corresponds to the following definition:
```kusto .create-merge table ProductsChangeLog (ProductID:long, CreatedAt:datetime) ```
-The following is binding data in the function.json file:
+The following snippet is binding data in the *function.json* file:
```json {
The following is binding data in the function.json file:
The [configuration](#configuration) section explains these properties.
-The following is sample Python code:
+The following snippet is sample Python code:
```python import json
def main(req: func.HttpRequest, product: func.Out[str],productchangelog: func.Ou
## Attributes
-The [C# library](functions-dotnet-class-library.md) uses the [KustoAttribute](https://github.com/Azure/Webjobs.Extensions.Kusto/blob/main/src/KustoAttribute.cs) attribute to declare the Azure Data Explorer bindings on the function, which has the following properties:
+The [C# library](functions-dotnet-class-library.md) uses the [KustoAttribute](https://github.com/Azure/Webjobs.Extensions.Kusto/blob/main/src/KustoAttribute.cs) attribute to declare the Azure Data Explorer bindings on the function, which has the following properties.
| Attribute property |Description| |||
-| **Database** | Required. The database against which the query has to be executed. |
-| **Connection** | Required. The _**name**_ of the variable that holds the connection string, resolved through environment variables or through function app settings. Defaults to look up on the variable _**KustoConnectionString**_, at runtime this variable is looked up against the environment. Documentation on connection string can be found at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto) for example:`"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId` .|
-| **TableName** | Required. The table to ingest the data into.|
-| **MappingRef** | Optional. attribute to pass a [mapping ref](/azure/data-explorer/kusto/management/create-ingestion-mapping-command) that is already defined in the cluster. |
-| **ManagedServiceIdentity** | Optional. A managed identity can be used to connect to Azure Data Explorer. To use a System managed identity, use "system", any other identity names are interpreted as user managed identity |
-| **DataFormat** | Optional. The default data format is `multijson/json`. This can be set to _**text**_ formats supported in the datasource format [enumeration](/azure/data-explorer/kusto/api/netfx/kusto-ingest-client-reference#enum-datasourceformat). Samples are validated and provided for csv and JSON formats. |
+| Database | Required. The database against which the query must be executed. |
+| Connection | Required. The name of the variable that holds the connection string, which is resolved through environment variables or through function app settings. Defaults to look up on the variable `KustoConnectionString`. At runtime, this variable is looked up against the environment. Documentation on the connection string is at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto). For example: `"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId`.|
+| TableName | Required. The table to ingest the data into.|
+| MappingRef | Optional. Attribute to pass a [mapping ref](/azure/data-explorer/kusto/management/create-ingestion-mapping-command) that's already defined in the cluster. |
+| ManagedServiceIdentity | Optional. A managed identity can be used to connect to Azure Data Explorer. To use a system managed identity, use "system." Any other identity names are interpreted as a user managed identity. |
+| DataFormat | Optional. The default data format is `multijson/json`. It can be set to _text_ formats supported in the `datasource` format [enumeration](/azure/data-explorer/kusto/api/netfx/kusto-ingest-client-reference#enum-datasourceformat). Samples are validated and provided for CSV and JSON formats. |
::: zone-end
The [C# library](functions-dotnet-class-library.md) uses the [KustoAttribute](ht
## Annotations
-In the [Java functions runtime library](/java/api/overview/azure/functions/runtime), uses the [`@KustoInput`](https://github.com/Azure/Webjobs.Extensions.Kusto/blob/main/java-library/src/main/java/com/microsoft/azure/functions/kusto/annotation/KustoInput.java) annotation (`com.microsoft.azure.functions.kusto.annotation.KustoOutput`):
+The [Java functions runtime library](/java/api/overview/azure/functions/runtime) uses the [`@KustoInput`](https://github.com/Azure/Webjobs.Extensions.Kusto/blob/main/java-library/src/main/java/com/microsoft/azure/functions/kusto/annotation/KustoInput.java) annotation (`com.microsoft.azure.functions.kusto.annotation.KustoOutput`).
| Element |Description| |||
-| **name** | Required. The name of the variable that represents the query results in function code. |
-| **database** | Required. The database against which the query has to be executed. |
-| **connection** | Required. The _**name**_ of the variable that holds the connection string, resolved through environment variables or through function app settings. Defaults to look up on the variable _**KustoConnectionString**_, at runtime this variable is looked up against the environment. Documentation on connection string can be found at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto) for example:`"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId` |
-| **tableName** | Required. The table to ingest the data into.|
-| **mappingRef** | Optional. attribute to pass a [mapping ref](/azure/data-explorer/kusto/management/create-ingestion-mapping-command) that is already defined in the cluster. |
-| **dataFormat** | Optional. The default data format is `multijson/json`. This can be set to _**text**_ formats supported in the datasource format [enumeration](/azure/data-explorer/kusto/api/netfx/kusto-ingest-client-reference#enum-datasourceformat). Samples are validated and provided for csv and JSON formats. |
-| **managedServiceIdentity** | A managed identity can be used to connect to Azure Data Explorer. To use a System managed identity, use "system", any other identity names are interpreted as user managed identity|
+| name | Required. The name of the variable that represents the query results in function code. |
+| database | Required. The database against which the query must be executed. |
+| connection | Required. The name of the variable that holds the connection string, which is resolved through environment variables or through function app settings. Defaults to look up on the variable `KustoConnectionString`. At runtime, this variable is looked up against the environment. Documentation on the connection string is at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto). For example: `"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId`. |
+| tableName | Required. The table to ingest the data into.|
+| mappingRef | Optional. Attribute to pass a [mapping ref](/azure/data-explorer/kusto/management/create-ingestion-mapping-command) that's already defined in the cluster. |
+| dataFormat | Optional. The default data format is `multijson/json`. It can be set to _text_ formats supported in the `datasource` format [enumeration](/azure/data-explorer/kusto/api/netfx/kusto-ingest-client-reference#enum-datasourceformat). Samples are validated and provided for CSV and JSON formats. |
+| managedServiceIdentity | A managed identity can be used to connect to Azure Data Explorer. To use a system managed identity, use "system." Any other identity names are interpreted as a user managed identity.|
::: zone-end
In the [Java functions runtime library](/java/api/overview/azure/functions/runti
## Configuration
-The following table explains the binding configuration properties that you set in the function.json file.
+The following table explains the binding configuration properties that you set in the *function.json* file.
|function.json property | Description| ||-|
-|**type** | Required. Must be set to `kusto`. |
-|**direction** | Required. Must be set to `out`. |
-|**name** | Required. The name of the variable that represents the query results in function code. |
-| **database** | Required. The database against which the query has to be executed. |
-| **connection** | Required. The _**name**_ of the variable that holds the connection string, resolved through environment variables or through function app settings. Defaults to look up on the variable _**KustoConnectionString**_, at runtime this variable is looked up against the environment. Documentation on connection string can be found at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto) for example: `"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId` |
-| **tableName** | Required. The table to ingest the data into.|
-| **mappingRef** | Optional. attribute to pass a [mapping ref](/azure/data-explorer/kusto/management/create-ingestion-mapping-command) that is already defined in the cluster. |
-| **dataFormat** | Optional. The default data format is `multijson/json`. This can be set to _**text**_ formats supported in the datasource format [enumeration](/azure/data-explorer/kusto/api/netfx/kusto-ingest-client-reference#enum-datasourceformat). Samples are validated and provided for csv and JSON formats. |
-| **managedServiceIdentity** | A managed identity can be used to connect to Azure Data Explorer. To use a System managed identity, use "system", any other identity names are interpreted as user managed identity|
+|type | Required. Must be set to `kusto`. |
+|direction | Required. Must be set to `out`. |
+|name | Required. The name of the variable that represents the query results in function code. |
+| database | Required. The database against which the query must be executed. |
+| connection | Required. The name of the variable that holds the connection string, resolved through environment variables or through function app settings. Defaults to look up on the variable `KustoConnectionString`. At runtime, this variable is looked up against the environment. Documentation on the connection string is at [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto). For example: `"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId`. |
+| tableName | Required. The table to ingest the data into.|
+| mappingRef | Optional. Attribute to pass a [mapping ref](/azure/data-explorer/kusto/management/create-ingestion-mapping-command) that's already defined in the cluster. |
+| dataFormat | Optional. The default data format is `multijson/json`. It can be set to _text_ formats supported in the `datasource` format [enumeration](/azure/data-explorer/kusto/api/netfx/kusto-ingest-client-reference#enum-datasourceformat). Samples are validated and provided for CSV and JSON formats. |
+| managedServiceIdentity | A managed identity can be used to connect to Azure Data Explorer. To use a system managed identity, use "system." Any other identity names are interpreted as a user managed identity.|
::: zone-end [!INCLUDE [app settings to local.settings.json](../../includes/functions-app-settings-local.md)]
The following table explains the binding configuration properties that you set i
::: zone pivot="programming-language-csharp,programming-language-javascript,programming-language-python,programming-language-java"
-The attribute's constructor takes the Database and the attributes TableName, MappingRef, DataFormat and the Connection setting name. The **KQLCommand** can be a KQL statement or a KQL function. The connection string setting name corresponds to the application setting (in `local.settings.json` for local development) that contains the [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto) for example:`"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId`. Queries executed by the input binding are parameterized and the values provided in the KQLParameters are used at runtime.
+The attribute's constructor takes the database and the attributes `TableName`, `MappingRef`, and `DataFormat` and the connection setting name. The KQL command can be a KQL statement or a KQL function. The connection string setting name corresponds to the application setting (in `local.settings.json` for local development) that contains the [Kusto connection strings](/azure/data-explorer/kusto/api/connection-strings/kusto). For example:`"KustoConnectionString": "Data Source=https://your_cluster.kusto.windows.net;Database=your_Database;Fed=True;AppClientId=your_AppId;AppKey=your_AppKey;Authority Id=your_TenantId`. Queries executed by the input binding are parameterized. The values provided in the KQL parameters are used at runtime.
::: zone-end ## Next steps
-* [Read data from a table (Input binding)](functions-bindings-azure-data-explorer-input.md)
+[Read data from a table (input binding)](functions-bindings-azure-data-explorer-input.md)
azure-functions Functions Bindings Azure Data Explorer https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-bindings-azure-data-explorer.md
This set of articles explains how to work with [Azure Data Explorer](/azure/data
::: zone pivot="programming-language-csharp"
-## Install extension
+## Install the extension
-The extension NuGet package you install depends on the C# mode you're using in your function app:
+The extension NuGet package you install depends on the C# mode you're using in your function app.
# [In-process](#tab/in-process)
-Functions execute in the same process as the Functions host. To learn more, see [Develop C# class library functions using Azure Functions](functions-dotnet-class-library.md).
+Functions run in the same process as the Functions host. To learn more, see [Develop C# class library functions using Azure Functions](functions-dotnet-class-library.md).
-Add the extension to your project by installing this [NuGet package](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Kusto).
+Add the extension to your project by installing [this NuGet package](https://www.nuget.org/packages/Microsoft.Azure.WebJobs.Extensions.Kusto).
```bash dotnet add package Microsoft.Azure.WebJobs.Extensions.Kusto --prerelease
dotnet add package Microsoft.Azure.WebJobs.Extensions.Kusto --prerelease
# [Isolated process](#tab/isolated-process)
-Functions execute in an isolated C# worker process. To learn more, see [Guide for running C# Azure Functions in an isolated worker process](dotnet-isolated-process-guide.md).
+Functions run in an isolated C# worker process. To learn more, see [Guide for running C# Azure Functions in an isolated worker process](dotnet-isolated-process-guide.md).
-Add the extension to your project by installing this [NuGet package](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Kusto/).
+Add the extension to your project by installing [this NuGet package](https://www.nuget.org/packages/Microsoft.Azure.Functions.Worker.Extensions.Kusto/).
```bash dotnet add package Microsoft.Azure.Functions.Worker.Extensions.Kusto --prerelease
You can install this version of the extension in your function app by registerin
::: zone pivot="programming-language-javascript"
-## Install bundle
+## Install the bundle
-Azure Data Explorer bindings extension is part of a preview [extension bundle], which is specified in your host.json project file.
+Azure Data Explorer bindings extension is part of a preview [extension bundle], which is specified in your *host.json* project file.
# [Preview Bundle v4.x](#tab/extensionv4)
-You can add the preview extension bundle by adding or replacing the following code in your `host.json` file:
+You can add the preview extension bundle by adding or replacing the following code in your *host.json* file:
```json {
You can add the preview extension bundle by adding or replacing the following co
# [Preview Bundle v3.x](#tab/extensionv3)
-Azure Data Explorer bindings for Azure Functions aren't available for the v3 version of the functions runtime.
+Azure Data Explorer bindings for Azure Functions aren't available for the v3 version of the Functions runtime.
Azure Data Explorer bindings for Azure Functions aren't available for the v3 ver
## Functions runtime > [!NOTE]
-> Python language support for the Azure Data Explorer bindings extension is available starting with v4.6.0 or later of the [functions runtime](set-runtime-version.md#view-and-update-the-current-runtime-version). You may need to update your install of Azure Functions [Core Tools](functions-run-local.md) for local development.
+> Python language support for the Azure Data Explorer bindings extension is available starting with v4.6.0 or later of the [Functions runtime](set-runtime-version.md#view-and-update-the-current-runtime-version). You might need to update your installation of Azure Functions [Core Tools](functions-run-local.md) for local development.
-## Install bundle
+## Install the bundle
-The Azure Data Explorer bindings extension is part of a preview [extension bundle], which is specified in your host.json project file.
+The Azure Data Explorer bindings extension is part of a preview [extension bundle], which is specified in your *host.json* project file.
# [Preview Bundle v4.x](#tab/extensionv4)
-You can add the preview extension bundle by adding or replacing the following code in your `host.json` file:
+You can add the preview extension bundle by adding or replacing the following code in your *host.json* file:
```json {
You can add the preview extension bundle by adding or replacing the following co
# [Preview Bundle v3.x](#tab/extensionv3)
-Azure Data Explorer bindings for Azure Functions aren't available for the v3 version of the functions runtime.
+Azure Data Explorer bindings for Azure Functions aren't available for the v3 version of the Functions runtime.
Azure Data Explorer bindings for Azure Functions aren't available for the v3 ver
::: zone pivot="programming-language-java"
-## Install bundle
+## Install the bundle
-Azure Data Explorer bindings extension is part of a preview [extension bundle], which is specified in your host.json project file.
+Azure Data Explorer bindings extension is part of a preview [extension bundle], which is specified in your *host.json* project file.
# [Preview Bundle v4.x](#tab/extensionv4)
-You can add the preview extension bundle by adding or replacing the following code in your `host.json` file:
+You can add the preview extension bundle by adding or replacing the following code in your *host.json* file:
```json {
You can add the preview extension bundle by adding or replacing the following co
# [Preview Bundle v3.x](#tab/extensionv3)
-Azure Data Explorer bindings for Azure Functions aren't available for the v3 version of the functions runtime.
+Azure Data Explorer bindings for Azure Functions aren't available for the v3 version of the Functions runtime.
## Update packages
-Add the Java library for Azure Data Explorer bindings to your functions project with an update to the `pom.xml` file in your Python Azure Functions project, as follows:
+Add the Java library for Azure Data Explorer bindings to your Functions project with an update to the `pom.xml` file in your Python Azure Functions project, as follows:
```xml <dependency>
Azure Data Explorer bindings for Azure Functions have a required property for th
## Considerations - Azure Data Explorer binding supports version 4.x and later of the Functions runtime.-- Source code for the Azure Data Explorer bindings can be found in [this GitHub repository](https://github.com/Azure/Webjobs.Extensions.Kusto).-- This binding requires connectivity to Azure Data Explorer. For input bindings, users require **Viewer** permissions and for output bindings users require **Ingestor** permissions. For more information about permissions, see [Role-based access control](/azure/data-explorer/kusto/management/access-control/role-based-access-control).
+- Source code for the Azure Data Explorer bindings is in [this GitHub repository](https://github.com/Azure/Webjobs.Extensions.Kusto).
+- This binding requires connectivity to Azure Data Explorer. For input bindings, users require **Viewer** permissions. For output bindings, users require **Ingestor** permissions. For more information about permissions, see [Role-based access control](/azure/data-explorer/kusto/management/access-control/role-based-access-control).
## Next steps -- [Read data from a database (Input binding)](functions-bindings-azure-data-explorer-input.md)-- [Save data to a database (Output binding)](functions-bindings-azure-data-explorer-output.md)
+- [Read data from a database (input binding)](functions-bindings-azure-data-explorer-input.md)
+- [Save data to a database (output binding)](functions-bindings-azure-data-explorer-output.md)
[extension bundle]: functions-bindings-register.md#extension-bundles
azure-functions Functions Dotnet Dependency Injection https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-dotnet-dependency-injection.md
Before you can use dependency injection, you must install the following NuGet pa
To register services, create a method to configure and add components to an `IFunctionsHostBuilder` instance. The Azure Functions host creates an instance of `IFunctionsHostBuilder` and passes it directly into your method.
+> [!WARNING]
+> For function apps running in the Consumption or Premium plans, modifications to configuration values used in triggers can cause scaling errors. Any changes to these properties by the `FunctionsStartup` class results in a function app startup error.
+>
+> Injection of `IConfiguration` can lead to unexpected behavior. To learn more about adding configuration sources, see [Customizing configuration sources](#customizing-configuration-sources).
+ To register the method, add the `FunctionsStartup` assembly attribute that specifies the type name used during startup. ```csharp
To access user secrets values in your function app code, use `IConfiguration` or
## Customizing configuration sources
-> [!NOTE]
-> Configuration source customization is available beginning in Azure Functions host versions 2.0.14192.0 and 3.0.14191.0.
- To specify additional configuration sources, override the `ConfigureAppConfiguration` method in your function app's `StartUp` class. The following sample adds configuration values from a base and an optional environment-specific app settings files.
By default, configuration files such as *appsettings.json* are not automatically
</None> ```
-> [!IMPORTANT]
-> For function apps running in the Consumption or Premium plans, modifications to configuration values used in triggers can cause scaling errors. Any changes to these properties by the `FunctionsStartup` class results in a function app startup error.
- ## Next steps For more information, see the following resources:
azure-functions Functions Reference Node https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/functions-reference-node.md
You can see the current version that the runtime is using by logging `process.ve
### Setting the Node version
-# [Windows](#tab/windows-setting-the-node-version)
+The way that you upgrade your Node.js version depends on the OS on which your function app runs.
-For Windows function apps, target the version in Azure by setting the `WEBSITE_NODE_DEFAULT_VERSION` [app setting](functions-how-to-use-azure-function-app-settings.md#settings) to a supported LTS version, such as `~18`.
+# [Windows](#tab/windows)
-# [Linux](#tab/linux-setting-the-node-version)
+When running on Windows, the Node.js version is set by the [`WEBSITE_NODE_DEFAULT_VERSION`](./functions-app-settings.md#website_node_default_version) application setting. This setting can be updated either by using the Azure CLI or in the Azure portal.
-For Linux function apps, run the following Azure CLI command to update the Node version.
+# [Linux](#tab/linux)
-```azurecli
-az functionapp config set --linux-fx-version "node|18" --name "<MY_APP_NAME>" --resource-group "<MY_RESOURCE_GROUP_NAME>"
+When running on Windows, the Node.js version is set by the [linuxfxversion](./functions-app-settings.md#linuxfxversion) site setting. This setting can be updated using the Azure CLI.
+++
+For more information about Node.js versions, see [Supported versions](#supported-versions).
+
+Before upgrading your Node.js version, make sure your function app is running on the latest version of the Azure Functions runtime. If you need to upgrade your runtime version, see [Migrate apps from Azure Functions version 3.x to version 4.x](migrate-version-3-version-4.md?pivots=programming-language-javascript).
+
+# [Azure CLI](#tab/azure-cli/windows)
+
+Run the Azure CLI [`az functionapp config appsettings set`](/cli/azure/functionapp/config#az-functionapp-config-appsettings-set) command to update the Node.js version for your function app running on Windows:
+
+```azurecli-interactive
+az functionapp config appsettings set --settings WEBSITE_NODE_DEFAULT_VERSION=~18 \
+ --name <FUNCTION_APP_NAME> --resource-group <RESOURCE_GROUP_NAME>
+```
+
+This sets the [`WEBSITE_NODE_DEFAULT_VERSION` application setting](./functions-app-settings.md#website_node_default_version) the supported LTS version of `~18`.
+
+# [Azure portal](#tab/azure-portal/windows)
+
+Use the following steps to change the Node.js version:
++
+# [Azure CLI](#tab/azure-cli/linux)
+
+Run the Azure CLI [`az functionapp config set`](/cli/azure/functionapp/config#az-functionapp-config-set) command to update the Node.js version for your function app running on Linux:
+
+```azurecli-interactive
+az functionapp config set --linux-fx-version "node|18" --name "<FUNCTION_APP_NAME>" \
+ --resource-group "<RESOURCE_GROUP_NAME>"
```
+This sets the base image of the Linux function app to Node.js version 18.
+
+# [Azure portal](#tab/azure-portal/linux)
+
+>[!NOTE]
+> You can't change the Node.js version in the Azure portal when your function app is running on Linux in a Consumption plan. Instead use the Azure CLI.
+
+For Premium and Dedicated plans, use the following steps to change the Node.js version:
++
-To learn more about Azure Functions runtime support policy, refer to this [article](./language-support-policy.md).
+After changes are made, your function app restarts. To learn more about Functions support for Node.js, see [Language runtime support policy](./language-support-policy.md).
<a name="access-environment-variables-in-code"></a>
azure-functions Language Support Policy https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-functions/language-support-policy.md
There are few exceptions to the retirement policy outlined above. Here is a list
|Language Versions |EOL Date |Retirement Date| |--|--|-|
-|Node 12|30 Apr 2022|13 December 2022|
+|Node 14|30 April 2023|30 June 2024|
+|Node 16|11 September 2023|30 June 2024|
## Language version support timeline
azure-maps How To Use Indoor Module https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/how-to-use-indoor-module.md
To use the globally hosted Azure Content Delivery Network version of the *Azure
>npm install azure-maps-indoor ```
- 2. Import the *Azure Maps Indoor* module JavaScript and Style Sheet in a source file:
+ 2. Import the *Azure Maps Indoor* module JavaScript in a source file:
```js import * as indoor from "azure-maps-indoor";
+ ```
+
+ You would also need to embed the CSS Style Sheet for various controls to display correctly. If you're using a JavaScript bundler to bundle the dependencies and package your code, refer to your bundler's documentation on how it's done. For [Webpack], it's commonly done via a combination of `style-loader` and `css-loader` with documentation available at [style-loader].
+
+ To begin, install style-loader and css-loader:
+
+ ```powershell
+ npm install --save-dev style-loader css-loader
+ ```
+
+ Inside your source file, import atlas-indoor.min.css:
+ ```js
import "azure-maps-indoor/dist/atlas-indoor.min.css"; ```
+ Then add loaders to the module rules portion of the Webpack config:
+ ```js
+ module.exports = {
+ module: {
+ rules: [
+ {
+ test: /\.css$/i,
+ use: ["style-loader", "css-loader"]
+ }
+ ]
+ }
+ };
+ ```
+ ## Set the domain and instantiate the Map object Set the map domain with a prefix matching the location of your Creator resource, `US` or `EU`, for example:
Learn more about how to add more data to your map:
[Tileset List API]: /rest/api/maps/v2/tileset/list [Use Creator to create indoor maps]: tutorial-creator-indoor-maps.md [visual style editor]: https://azure.github.io/Azure-Maps-Style-Editor/
+[Webpack]: https://webpack.js.org/
+[style-loader]: https://webpack.js.org/loaders/style-loader/
azure-maps How To Use Spatial Io Module https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/how-to-use-spatial-io-module.md
Title: How to use the Azure Maps spatial IO module | Microsoft Azure Maps
-description: Learn how to use the Spatial IO module provided by the Azure Maps Web SDK. This module provides robust features to make it easy for developers to integrate spatial data with the Azure Maps web sdk.
+description: Learn how to use the Spatial IO module provided by the Azure Maps Web SDK. This module provides robust features to make it easy for developers to integrate spatial data with the Azure Maps web SDK.
Last updated 02/28/2020
The Azure Maps Web SDK provides the **Spatial IO module**, which integrates spatial data with the Azure Maps web SDK using JavaScript or TypeScript. The robust features in this module allow developers to: -- [Read and write common spatial data files](spatial-io-read-write-spatial-data.md). Supported file formats include: KML, KMZ, GPX, GeoRSS, GML, GeoJSON and CSV files containing columns with spatial information. Also supports Well-Known Text (WKT).-- [Connect to Open Geospatial Consortium (OGC) services and integrate with Azure Maps web SDK. Overlay Web Map Services (WMS) and Web Map Tile Services (WMTS) as layers on the map](spatial-io-add-ogc-map-layer.md).-- [Query data in a Web Feature Service (WFS)](spatial-io-connect-wfs-service.md).-- [Overlay complex data sets that contain style information and have them render automatically using minimal code](spatial-io-add-simple-data-layer.md).-- [Leverage high-speed XML and delimited file reader and writer classes](spatial-io-core-operations.md).
+- [Read and write spatial data]. Supported file formats include: KML, KMZ, GPX, GeoRSS, GML, GeoJSON and CSV files containing columns with spatial information. Also supports Well-Known Text (WKT).
+- Connect to Open Geospatial Consortium (OGC) services and integrate with Azure Maps web SDK, and overlay Web Map Services (WMS) and Web Map Tile Services (WMTS) as layers on the map. For more information, see [Add a map layer from the Open Geospatial Consortium (OGC)].
+- Query data in a Web Feature Service (WFS). For more information, see [Connect to a WFS service].
+- Overlay complex data sets that contain style information and have them render automatically. For more information, see [Add a simple data layer].
+- Leverage high-speed XML and delimited file reader and writer classes. For more information, see [Core IO operations].
-In this guide, we'll learn how to integrate and use the Spatial IO module in a web application.
+This guide demonstrates how to integrate and use the Spatial IO module in a web application.
This video provides an overview of Spatial IO module in the Azure Maps Web SDK.
This video provides an overview of Spatial IO module in the Azure Maps Web SDK.
> [!VIDEO https://learn.microsoft.com/Shows/Internet-of-Things-Show/Easily-integrate-spatial-data-into-the-Azure-Maps/player?format=ny] > [!WARNING]
-> Only use data and services that are from a source you trust, especially if referencing it from another domain. The spatial IO module does take steps to minimize risk, however the safest approach is too not allow any danagerous data into your application to begin with.
+> Only use data and services that are from a source you trust, especially if referencing it from another domain. The spatial IO module does take steps to minimize risk, however the safest approach is too not allow any dangerous data into your application to begin with.
## Prerequisites
-* An [Azure Maps account]
-* A [subscription key]
+- An [Azure Maps account]
+- A [subscription key]
## Installing the Spatial IO module You can load the Azure Maps spatial IO module using one of the two options:
-* The globally hosted Azure CDN for the Azure Maps spatial IO module. For this option, you add a reference to the JavaScript in the `<head>` element of the HTML file.
+- The globally hosted Azure CDN for the Azure Maps spatial IO module. For this option, you add a reference to the JavaScript in the `<head>` element of the HTML file.
```html <script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.js"></script> ```
-* The source code for [azure-maps-spatial-io](https://www.npmjs.com/package/azure-maps-spatial-io) can be loaded locally, and then hosted with your app. This package also includes TypeScript definitions. For this option, use the following command to install the package:
+- The source code for [azure-maps-spatial-io] can be loaded locally, and then hosted with your app. This package also includes TypeScript definitions. For this option, use the following command to install the package:
```sh npm install azure-maps-spatial-io
You can load the Azure Maps spatial IO module using one of the two options:
1. Create a new HTML file.
-2. Load the Azure Maps Web SDK and initialize the map control. See the [Azure Maps map control](./how-to-use-map-control.md) guide for the details. Once you're done with this step, your HTML file should look like this:
+1. Load the Azure Maps Web SDK and initialize the map control. See the [Azure Maps map control] guide for the details. Once you're done with this step, your HTML file should look like this:
```html <!DOCTYPE html>
You can load the Azure Maps spatial IO module using one of the two options:
</html> ```
-2. Load the Azure Maps spatial IO module. For this exercise, use the CDN for the Azure Maps spatial IO module. Add the reference below to the `<head>` element of your HTML file:
+1. Load the Azure Maps spatial IO module. For this exercise, use the CDN for the Azure Maps spatial IO module. Add the following reference to the `<head>` element of your HTML file:
```html <script src="https://atlas.microsoft.com/sdk/javascript/spatial/0/atlas-spatial.js"></script> ```
-3. Initialize a `datasource`, and add the data source to the map. Initialize a `layer`, and add the data source to the map layer. Then, render both the data source and the layer. Before you scroll down to see the full code in the next step, think about the best places to put the data source and layer code snippets. Recall that, before we programmatically manipulate the map, we should wait until the map resource are ready.
+1. Initialize a `datasource`, and add the data source to the map. Initialize a `layer`, and add the data source to the map layer. Then, render both the data source and the layer. Before you scroll down to see the full code in the next step, think about the best places to put the data source and layer code snippets. Recall that, before we programmatically manipulate the map, we should wait until the map resource are ready.
```javascript var datasource, layer;
You can load the Azure Maps spatial IO module using one of the two options:
map.layers.add(layer); ```
-4. Putting it all together, your HTML code should look like the following code. This sample demonstrates how to read an XML file from a URL. Then, load and display the file's feature data on the map.
+1. Your HTML code should now look like the following code. This sample demonstrates how to read an XML file from a URL. Then, load and display the file's feature data on the map.
```html <!DOCTYPE html>
You can load the Azure Maps spatial IO module using one of the two options:
</html> ```
-5. Remember to replace `<Your Azure Maps Key>` with your subscription key. Open your HTML file, and you'll see results similar to the following image:
+1. Remember to replace `<Your Azure Maps Key>` with your subscription key. You should see results similar to the following image in your HTML file:
<center>
You can load the Azure Maps spatial IO module using one of the two options:
## Next steps
-The feature we demonstrated here is only one of the many features available in the Spatial IO module. Read the guides below to learn how to use other functionalities in the Spatial IO module:
+The feature we demonstrated is only one of the many features available in the Spatial IO module. Read the following guides to learn how to use other functionalities in the Spatial IO module:
> [!div class="nextstepaction"]
-> [Add a simple data layer](spatial-io-add-simple-data-layer.md)
+> [Add a simple data layer]
> [!div class="nextstepaction"]
-> [Read and write spatial data](spatial-io-read-write-spatial-data.md)
+> [Read and write spatial data]
> [!div class="nextstepaction"]
-> [Add an OGC map layer](spatial-io-add-ogc-map-layer.md)
+> [Add an OGC map layer]
> [!div class="nextstepaction"]
-> [Connect to a WFS service](spatial-io-connect-wfs-service.md)
+> [Connect to a WFS service]
> [!div class="nextstepaction"]
-> [Leverage core operations](spatial-io-core-operations.md)
+> [Leverage core operations]
> [!div class="nextstepaction"]
-> [Supported data format details](spatial-io-supported-data-format-details.md)
+> [Supported data format details]
Refer to the Azure Maps Spatial IO documentation: > [!div class="nextstepaction"]
-> [Azure Maps Spatial IO package](/javascript/api/azure-maps-spatial-io/)
+> [Azure Maps Spatial IO package]
[Azure Maps account]: quick-demo-map-app.md#create-an-azure-maps-account [subscription key]: quick-demo-map-app.md#get-the-subscription-key-for-your-account
+[Read and write spatial data]: spatial-io-read-write-spatial-data.md
+[Add a map layer from the Open Geospatial Consortium (OGC)]: spatial-io-add-ogc-map-layer.md
+[Add a simple data layer]: spatial-io-add-simple-data-layer.md
+[Core IO operations]: spatial-io-core-operations.md
+[Connect to a WFS service]: spatial-io-connect-wfs-service.md
+[azure-maps-spatial-io]: https://www.npmjs.com/package/azure-maps-spatial-io
+[Azure Maps map control]: how-to-use-map-control.md
+[Add an OGC map layer]: spatial-io-add-ogc-map-layer.md
+[Leverage core operations]: spatial-io-core-operations.md
+[Supported data format details]: spatial-io-supported-data-format-details.md
+[Azure Maps Spatial IO package]: /javascript/api/azure-maps-spatial-io
azure-maps How To View Api Usage https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/how-to-view-api-usage.md
Title: View Azure Maps API usage metrics | Microsoft Azure Maps
+ Title: View Azure Maps API usage metrics
+ description: Learn how to view Azure Maps API usage metrics, such as total requests, total errors, and availability. See how to filter data and split results.
# View Azure Maps API usage metrics
-This article shows you how to view the API usage metrics, for your Azure Maps account, in the [Azure portal](https://portal.azure.com). The metrics are shown in a convenient graph format along a customizable time duration.
+This article shows you how to view the API usage metrics, for your Azure Maps account, in the [Azure portal]. The metrics are shown in a convenient graph format along a customizable time duration.
## View metric snapshot
Continue to the next section if you need to customize these graphs for your part
## View detailed metrics
-1. Sign in to your Azure subscription in the [portal](https://portal.azure.com).
+1. Sign in to the [Azure portal](https://portal.azure.com).
2. Click the **All resources** menu item on the left-hand side and navigate to your *Azure Maps Account*.
Continue to the next section if you need to customize these graphs for your part
## Next steps Learn more about the Azure Maps APIs you want to track usage for:
-> [!div class="nextstepaction"]
-> [Azure Maps Web SDK How-To](how-to-use-map-control.md)
+> [!div class="nextstepaction"]
+> [Azure Maps Web SDK How-To]
-> [!div class="nextstepaction"]
-> [Azure Maps Android SDK How-To](how-to-use-android-map-control-library.md)
+> [!div class="nextstepaction"]
+> [Azure Maps Android SDK How-To]
> [!div class="nextstepaction"]
-> [Azure Maps REST API documentation](/rest/api/maps)
+> [Azure Maps REST API documentation]
+
+[Azure portal]: https://portal.azure.com
+[Azure Maps Web SDK How-To]: how-to-use-map-control.md
+[Azure Maps Android SDK How-To]: how-to-use-android-map-control-library.md
+[Azure Maps REST API documentation]: /rest/api/maps
azure-maps Interact Map Ios Sdk https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/interact-map-ios-sdk.md
class ShowSimpleEventsHandlingViewController: UIViewController, AzureMapDelegate
} ```
-For more information, see the [Navigating the map](how-to-use-ios-map-control-library.md) article on how to interact with the map and trigger events.
+For more information, see the [Navigating the map] article on how to interact with the map and trigger events.
## Scope feature events to layer
class ShowScopedEventsHandlingViewController: UIViewController, AzureMapDelegate
See the following articles for full code examples: -- [Navigating the map](how-to-use-ios-map-control-library.md)-- [Add a symbol layer](add-symbol-layer-ios.md)-- [Add a bubble layer](add-bubble-layer-map-ios.md)-- [Add a line layer](add-line-layer-map-ios.md)-- [Add a polygon layer](add-polygon-layer-map-ios.md)
+- [Navigating the map]
+- [Add a symbol layer]
+- [Add a bubble layer]
+- [Add a line layer]
+- [Add a polygon layer]
+
+[Navigating the map]: how-to-use-ios-map-control-library.md
+[Add a symbol layer]: add-symbol-layer-ios.md
+[Add a bubble layer]: add-bubble-layer-map-ios.md
+[Add a line layer]: add-line-layer-map-ios.md
+[Add a polygon layer]: add-polygon-layer-map-ios.md
azure-maps Map Accessibility https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/map-accessibility.md
A marker or symbol is often used to represent a location on the map. Additional
The [Accessible popups] example loads points of interests on the map using a symbol layer and adds a popup to the map for each point of interest. A reference to each popup is stored in the properties of each data point. It can also be retrieved for a marker, such as when a marker is selected. When focused on the map, pressing the tab key allows the user to step through each popup on the map. For the source code for this sample, see [Accessible popups source code]. <! <br/>
Here are some more tips to make your web-mapping application more accessible.
Learn about accessibility in the Web SDK modules. > [!div class="nextstepaction"]
-> [Drawing tools accessibility](drawing-tools-interactions-keyboard-shortcuts.md)
+> [Drawing tools accessibility]
Learn about developing accessible apps: > [!div class="nextstepaction"]
-> [Accessibility in Action Digital Badge learning path](https://techcommunity.microsoft.com/t5/microsoft-learn/how-to-get-accessibility-in-action-badge/m-p/1735188)
+> [Accessibility in Action Digital Badge learning path]
Take a look at these useful accessibility tools: > [!div class="nextstepaction"]
-> [Developing accessible apps](https://developer.microsoft.com/windows/accessible-apps)
+> [Developing accessible apps]
> [!div class="nextstepaction"]
-> [WAI-ARIA Overview](https://www.w3.org/WAI/standards-guidelines/aria/)
+> [WAI-ARIA Overview]
> [!div class="nextstepaction"]
-> [Web Accessibility Evaluation Tool (WAVE)](https://wave.webaim.org/)
+> [Web Accessibility Evaluation Tool (WAVE)]
> [!div class="nextstepaction"]
-> [WebAim color contrast checker](https://webaim.org/resources/contrastchecker/)
+> [WebAim color contrast checker]
> [!div class="nextstepaction"]
-> [No Coffee Vision Simulator](https://uxpro.cc/toolbox/nocoffee/)
+> [No Coffee Vision Simulator]
[Accessible popups]: https://samples.azuremaps.com/popups/accessible-popups [Accessible popups source code]: https://github.com/Azure-Samples/AzureMapsCodeSamples/blob/main/Samples/Popups/Accessible%20popups/Accessible%20popups.html [Accessibility Conformance Reports]: https://cloudblogs.microsoft.com/industry-blog/government/2018/09/11/accessibility-conformance-reports/ [Accessible Rich Internet Applications (ARIA)]: https://www.w3.org/WAI/standards-guidelines/aria/+
+[Drawing tools accessibility]: drawing-tools-interactions-keyboard-shortcuts.md
+[Accessibility in Action Digital Badge learning path]: https://techcommunity.microsoft.com/t5/microsoft-learn/how-to-get-accessibility-in-action-badge/m-p/1735188
+[Developing accessible apps]: https://developer.microsoft.com/windows/accessible-apps
+[WAI-ARIA Overview]: https://www.w3.org/WAI/standards-guidelines/aria
+[Web Accessibility Evaluation Tool (WAVE)]: https://wave.webaim.org
+[WebAim color contrast checker]: https://webaim.org/resources/contrastchecker
+[No Coffee Vision Simulator]: https://uxpro.cc/toolbox/nocoffee
azure-maps Map Add Bubble Layer Android https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/map-add-bubble-layer-android.md
This article shows you how to render point data from a data source as a bubble l
## Prerequisites
-Be sure to complete the steps in the [Quickstart: Create an Android app](quick-android-map.md) document. Code blocks in this article can be inserted into the maps `onReady` event handler.
+Complete the steps in the [Quickstart: Create an Android app] article. Code blocks in this article can be inserted into the maps `onReady` event handler.
## Add a bubble layer
The following screenshot shows the above code rendering a point in a bubble laye
See the following articles for more code samples to add to your maps: > [!div class="nextstepaction"]
-> [Create a data source](create-data-source-android-sdk.md)
+> [Create a data source]
> [!div class="nextstepaction"]
-> [Cluster point data](clustering-point-data-android-sdk.md)
+> [Cluster point data]
> [!div class="nextstepaction"]
-> [Add a symbol layer](how-to-add-symbol-to-android-map.md)
+> [Add a symbol layer]
> [!div class="nextstepaction"]
-> [Use data-driven style expressions](data-driven-style-expressions-android-sdk.md)
+> [Use data-driven style expressions]
> [!div class="nextstepaction"]
-> [Display feature information](display-feature-information-android.md)
+> [Display feature information]
+
+[Quickstart: Create an Android app]: quick-android-map.md
+[Create a data source]: create-data-source-android-sdk.md
+[Cluster point data]: clustering-point-data-android-sdk.md
+[Add a symbol layer]: how-to-add-symbol-to-android-map.md
+[Use data-driven style expressions]: data-driven-style-expressions-android-sdk.md
+[Display feature information]: display-feature-information-android.md
azure-maps Map Add Bubble Layer https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/map-add-bubble-layer.md
This code shows you how to use a bubble layer to render a point on the map and a
The Bubble layer only has a few styling options. Use the [Bubble Layer Options] sample to try them out. For the source code for this sample, see [Bubble Layer Options source code]. <!- <br/>
The Bubble layer only has a few styling options. Use the [Bubble Layer Options]
Learn more about the classes and methods used in this article: > [!div class="nextstepaction"]
-> [BubbleLayer](/javascript/api/azure-maps-control/atlas.layer.bubblelayer)
+> [BubbleLayer]
> [!div class="nextstepaction"]
-> [BubbleLayerOptions](/javascript/api/azure-maps-control/atlas.bubblelayeroptions)
+> [BubbleLayerOptions]
See the following articles for more code samples to add to your maps: > [!div class="nextstepaction"]
-> [Create a data source](create-data-source-web-sdk.md)
+> [Create a data source]
> [!div class="nextstepaction"]
-> [Add a symbol layer](map-add-pin.md)
+> [Add a symbol layer]
> [!div class="nextstepaction"]
-> [Use data-driven style expressions](data-driven-style-expressions-web-sdk.md)
+> [Use data-driven style expressions]
> [!div class="nextstepaction"]
-> [Code samples](/samples/browse/?products=azure-maps)
+> [Code samples]
[Bubble Layer Options]: https://samples.azuremaps.com/bubble-layer/bubble-layer-options [Bubble Layer Options source code]: https://github.com/Azure-Samples/AzureMapsCodeSamples/blob/main/Samples/Bubble%20Layer/Bubble%20Layer%20Options/Bubble%20Layer%20Options.html [bubble layer]: /javascript/api/azure-maps-control/atlas.layer.bubblelayer+
+[BubbleLayer]: /javascript/api/azure-maps-control/atlas.layer.bubblelayer
+[BubbleLayerOptions]: /javascript/api/azure-maps-control/atlas.bubblelayeroptions
+[Create a data source]: create-data-source-web-sdk.md
+[Add a symbol layer]: map-add-pin.md
+[Use data-driven style expressions]: data-driven-style-expressions-web-sdk.md
+[Code samples]: /samples/browse/?products=azure-maps
azure-maps Map Add Controls https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/map-add-controls.md
# Add controls to a map
-This article shows you how to add controls to a map. You'll also learn how to create a map with all controls and a [style picker].
+This article shows you how to add controls to a map, including how to create a map with all controls and a [style picker].
## Add zoom control
map.controls.add(new atlas.control.CompassControl(), {
## A Map with all controls
-Multiple controls can be put into an array and added to the map all at once and positioned in the same area of the map to simplify development. The following adds the standard navigation controls to the map using this approach.
+Multiple controls can be put into an array and added to the map all at once and positioned in the same area of the map to simplify development. The following code snippet adds the standard navigation controls to the map using this approach.
```javascript map.controls.add([
azure-maps Map Add Custom Html https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/map-add-custom-html.md
This article shows you how to add a custom HTML such as an image file to the map
The [HtmlMarker] class has a default style. You can customize the marker by setting the color and text options of the marker. The default style of the HTML marker class is an SVG template that has a `{color}` and `{text}` placeholder. Set the color and text properties in the HTML marker options for a quick customization.
-The following code creates an HTML marker, and sets the color property to "DodgerBlue" and the text property to "10". A popup is attached to the marker and `click` event is used to toggle the visibility of the popup.
+The following code creates an HTML marker, and sets the color property to `DodgerBlue` and the text property to `10`. A popup is attached to the marker and `click` event is used to toggle the visibility of the popup.
```javascript //Create an HTML marker and add it to the map.
The default `htmlContent` of an Html marker is an SVG template with place folder
For a complete working sample of how to create a custom SVG template and use it with the HtmlMarker class, see [HTML Marker with Custom SVG Template] in the [Azure Maps Samples]. When running this sample, select the button in the upper left hand side of the window labeled **Update Marker Options** to change the `color` and `text` options from the SVG template used in the HtmlMarker. For the source code for this sample, see [HTML Marker with Custom SVG Template source code]. <!- <iframe height='500' scrolling='no' title='HTML Marker with Custom SVG Template' src='//codepen.io/azuremaps/embed/LXqMWx/?height=500&theme-id=0&default-tab=js,result&embed-version=2&editable=true' frameborder='no' loading="lazy" allowtransparency='true' allowfullscreen='true'>See the Pen <a href='https://codepen.io/azuremaps/pen/LXqMWx/'>HTML Marker with Custom SVG Template</a> by Azure Maps (<a href='https://codepen.io/azuremaps'>@azuremaps</a>) on <a href='https://codepen.io'>CodePen</a>.
azure-maps Map Add Drawing Toolbar https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/map-add-drawing-toolbar.md
# Add a drawing tools toolbar to a map
-This article shows you how to use the Drawing Tools module and display the drawing toolbar on the map. The [DrawingToolbar](/javascript/api/azure-maps-drawing-tools/atlas.control.drawingtoolbar) control adds the drawing toolbar on the map. You will learn how to create maps with only one and all drawing tools and how to customize the rendering of the drawing shapes in the drawing manager.
+This article shows you how to use the Drawing Tools module and display the drawing toolbar on the map. The [Drawing toolbar] control adds the drawing toolbar on the map. You learn how to create maps with only one and all drawing tools and how to customize the rendering of the drawing shapes in the drawing manager.
## Add drawing toolbar
The following screenshot shows a sample of an instance of the drawing manager th
The style of the shapes that are drawn can be customized by retrieving the underlying layers of the drawing manager by using the `drawingManager.getLayers()` and `drawingManager.getPreviewLayers()` functions and then setting options on the individual layers. The drag handles that appear for coordinates when editing a shape are HTML markers. The style of the drag handles can be customized by passing HTML marker options into the `dragHandleStyle` and `secondaryDragHandleStyle` options of the drawing manager.
-The following code gets the rendering layers from the drawing manager and modifies their options to change rendering style for drawing. In this case, points will be rendered with a blue marker icon. Lines will be red and four pixels wide. Polygons will have a green fill color and an orange outline. It then changes the styles of the drag handles to be square icons.
+The following code gets the rendering layers from the drawing manager and modifies their options to change rendering style for drawing. In this case, points are rendered with a blue marker icon. Lines are red and four pixels wide. Polygons have a green fill color and an orange outline. It then changes the styles of the drag handles to be square icons.
```javascript //Get rendering layers of drawing manager.
For a complete working sample that demonstrates how to customize the rendering o
## Next steps
-Learn how to use additional features of the drawing tools module:
+Learn how to use more features of the drawing tools module:
> [!div class="nextstepaction"]
-> [Get shape data](map-get-shape-data.md)
+> [Get shape data]
> [!div class="nextstepaction"]
-> [React to drawing events](drawing-tools-events.md)
+> [React to drawing events]
> [!div class="nextstepaction"]
-> [Interaction types and keyboard shortcuts](drawing-tools-interactions-keyboard-shortcuts.md)
+> [Interaction types and keyboard shortcuts]
Learn more about the classes and methods used in this article: > [!div class="nextstepaction"]
-> [Map](/javascript/api/azure-maps-control/atlas.map)
+> [Map]
> [!div class="nextstepaction"]
-> [Drawing toolbar](/javascript/api/azure-maps-drawing-tools/atlas.control.drawingtoolbar)
+> [Drawing toolbar]
> [!div class="nextstepaction"]
-> [Drawing manager](/javascript/api/azure-maps-drawing-tools/atlas.drawing.drawingmanager)
+> [Drawing manager]
[Azure Maps Samples]: https://samples.azuremaps.com [Add drawing toolbar to map]: https://samples.azuremaps.com/drawing-tools-module/add-drawing-toolbar-to-map
Learn more about the classes and methods used in this article:
[Add drawing toolbar to map source code]: https://github.com/Azure-Samples/AzureMapsCodeSamples/blob/main/Samples/Drawing%20Tools%20Module/Add%20drawing%20toolbar%20to%20map/Add%20drawing%20toolbar%20to%20map.html [Change drawing rendering style source code]: https://github.com/Azure-Samples/AzureMapsCodeSamples/blob/main/Samples/Drawing%20Tools%20Module/Change%20drawing%20rendering%20style/Change%20drawing%20rendering%20style.html
+[Drawing toolbar]: /javascript/api/azure-maps-drawing-tools/atlas.control.drawingtoolbar
+[Get shape data]: map-get-shape-data.md
+[React to drawing events]: drawing-tools-events.md
+[Interaction types and keyboard shortcuts]: drawing-tools-interactions-keyboard-shortcuts.md
+[Map]: /javascript/api/azure-maps-control/atlas.map
+[Drawing manager]: /javascript/api/azure-maps-drawing-tools/atlas.drawing.drawingmanager
azure-maps Map Add Heat Map Layer Android https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/map-add-heat-map-layer-android.md
You can use heat maps in many different scenarios, including:
## Prerequisites
-Be sure to complete the steps in the [Quickstart: Create an Android app](quick-android-map.md) document. Code blocks in this article can be inserted into the maps `onReady` event handler.
+Be sure to complete the steps in the [Quickstart: Create an Android app] document. Code blocks in this article can be inserted into the maps `onReady` event handler.
## Add a heat map layer To render a data source of points as a heat map, pass your data source into an instance of the `HeatMapLayer` class, and add it to the map.
-The following code sample loads a GeoJSON feed of earthquakes from the past week and renders them as a heat map. Each data point is rendered with a radius of 10 pixels at all zoom levels. To ensure a better user experience, the heat map is below the label layer so the labels stay clearly visible. The data in this sample is from the [USGS Earthquake Hazards Program](https://earthquake.usgs.gov/). This sample loads GeoJSON data from the web using the data import utility code block provided in the [Create a data source](create-data-source-android-sdk.md) document.
+The following code sample loads a GeoJSON feed of earthquakes from the past week and renders them as a heat map. Each data point is rendered with a radius of 10 pixels at all zoom levels. To ensure a better user experience, the heat map is below the label layer so the labels stay clearly visible. The data in this sample is from the [USGS Earthquake Hazards Program]. This sample loads GeoJSON data from the web using the data import utility code block provided in the [Create a data source] document.
::: zone pivot="programming-language-java-android"
The previous example customized the heat map by setting the radius and opacity o
- `sourceLayer`: If the data source connected to the layer is a vector tile source, a source layer within the vector tiles must be specified. - `visible`: Hides or shows the layer.
-This following is an example of a heat map where a liner interpolation expression is used to create a smooth color gradient. The `mag` property defined in the data is used with an exponential interpolation to set the weight or relevance of each data point.
+The following code snippet is an example of a heat map where a liner interpolation expression is used to create a smooth color gradient. The `mag` property defined in the data is used with an exponential interpolation to set the weight or relevance of each data point.
::: zone pivot="programming-language-java-android"
The following video shows a map running the above code, which scales the radius
![Animation showing a map zooming with a heat map layer showing a consistent geospatial size](media/map-add-heat-map-layer-android/android-consistent-zoomable-heat-map-layer.gif)
-The `zoom` expression can only be used in `step` and `interpolate` expressions. The following expression can be used to approximate a radius in meters. This expression uses a placeholder `radiusMeters` which you should replace with your desired radius. This expression calculates the approximate pixel radius for a zoom level at the equator for zoom levels 0 and 24, and uses an `exponential interpolation` expression to scale between these values the same way the tiling system in the map works.
+The `zoom` expression can only be used in `step` and `interpolate` expressions. The following expression can be used to approximate a radius in meters. This expression uses a placeholder `radiusMeters`, which you should replace with your desired radius. This expression calculates the approximate pixel radius for a zoom level at the equator for zoom levels 0 and 24, and uses an `exponential interpolation` expression to scale between these values the same way the tiling system in the map works.
::: zone pivot="programming-language-java-android"
interpolate(
For more code examples to add to your maps, see the following articles: > [!div class="nextstepaction"]
-> [Create a data source](create-data-source-android-sdk.md)
+> [Create a data source]
> [!div class="nextstepaction"]
-> [Use data-driven style expressions](data-driven-style-expressions-android-sdk.md)
+> [Use data-driven style expressions]
+
+[Quickstart: Create an Android app]: quick-android-map.md
+[USGS Earthquake Hazards Program]: https://earthquake.usgs.gov
+[Create a data source]: create-data-source-android-sdk.md
+[Use data-driven style expressions]: data-driven-style-expressions-android-sdk.md
azure-maps Set Drawing Options https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/set-drawing-options.md
The Azure Maps Web SDK provides a *drawing tools module*. This module makes it e
`npm install azure-maps-drawing-tools`
- Then, import the JavaScript and CSS stylesheet in a source file:
+ Then, import the JavaScript in a source file:
```js import * as drawing from "azure-maps-drawing-tools";
+ ```
+
+ You would also need to embed the CSS Style Sheet for various controls to display correctly. If you're using a JavaScript bundler to bundle the dependencies and package your code, refer to your bundler's documentation on how it's done. For [Webpack], it's commonly done via a combination of `style-loader` and `css-loader` with documentation available at [style-loader].
+
+ To begin, install style-loader and css-loader:
+
+ ```powershell
+ npm install --save-dev style-loader css-loader
+ ```
+
+ Inside your source file, import atlas-drawing.min.css:
+ ```js
import "azure-maps-drawing-tools/dist/atlas-drawing.min.css"; ```
+ Then add loaders to the module rules portion of the Webpack config:
+ ```js
+ module.exports = {
+ module: {
+ rules: [
+ {
+ test: /\.css$/i,
+ use: ["style-loader", "css-loader"]
+ }
+ ]
+ }
+ };
+ ```
+ ## Use the drawing manager directly Once the drawing tools module is loaded in your application, you can enable drawing and editing capabilities using the [drawing manager](/javascript/api/azure-maps-drawing-tools/atlas.drawing.drawingmanager#setoptions-drawingmanageroptions-). You can specify options for the drawing manager while instantiating it or alternatively use the `drawingManager.setOptions()` function.
Learn more about the classes and methods used in this article:
> [Drawing toolbar](/javascript/api/azure-maps-drawing-tools/atlas.control.drawingtoolbar) [Drawing manager options]: https://samples.azuremaps.com/drawing-tools-module/drawing-manager-options
+[Webpack]: https://webpack.js.org/
+[style-loader]: https://webpack.js.org/loaders/style-loader/
[Drawing manager options source code]: https://github.com/Azure-Samples/AzureMapsCodeSamples/blob/main/Samples/Drawing%20Tools%20Module/Drawing%20manager%20options/Drawing%20manager%20options.html
azure-maps Web Sdk Best Practices https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-maps/web-sdk-best-practices.md
When a web page is loading, one of the first things you want to do is start rend
### Watch the maps ready event
-Similarly, when the map initially loads often it's desired to load data on it as quickly as possible, so the user isn't looking at an empty map. Since the map loads resources asynchronously, you have to wait until the map is ready to be interacted with before trying to render your own data on it. There are two events you can wait for, a `load` event and a `ready` event. The load event will fire after the map has finished completely loading the initial map view and every map tile has loaded. The ready event fires when the minimal map resources needed to start interacting with the map. The ready event can often fire in half the time of the load event and thus allow you to start loading your data into the map sooner.
+Similarly, when the map initially loads often it's desired to load data on it as quickly as possible, so the user isn't looking at an empty map. Since the map loads resources asynchronously, you have to wait until the map is ready to be interacted with before trying to render your own data on it. There are two events you can wait for, a `load` event and a `ready` event. The load event will fire after the map has finished completely loading the initial map view and every map tile has loaded. If you see a "Style is not done loading" error, you should use the `load` event and wait for the style to be fully loaded.
+
+The ready event fires when the minimal map resources needed to start interacting with the map. More precisely, the `ready` event is triggered when the map is loading the style data for the first time. The ready event can often fire in half the time of the load event and thus allow you to start loading your data into the map sooner.
### Lazy load the Azure Maps Web SDK
Learn more about the terminology used by Azure Maps and the geospatial industry.
[Reusing Popup with Multiple Pins]: https://samples.azuremaps.com/popups/reusing-popup-with-multiple-pins [Reusing Popup with Multiple Pins sample code]: https://github.com/Azure-Samples/AzureMapsCodeSamples/blob/main/Samples/Popups/Reusing%20Popup%20with%20Multiple%20Pins/Reusing%20Popup%20with%20Multiple%20Pins.html [Simple Symbol Animation]: https://samples.azuremaps.com/animations/simple-symbol-animation
-[Simple Symbol Animation sample code]: https://github.com/Azure-Samples/AzureMapsCodeSamples/blob/main/Samples/Animations/Simple%20Symbol%20Animation/Simple%20Symbol%20Animation.html
+[Simple Symbol Animation sample code]: https://github.com/Azure-Samples/AzureMapsCodeSamples/blob/main/Samples/Animations/Simple%20Symbol%20Animation/Simple%20Symbol%20Animation.html
azure-monitor Alerts Metric Multiple Time Series Single Rule https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/alerts/alerts-metric-multiple-time-series-single-rule.md
An alert rule monitors a single time series when it meets all the following cond
An example of such an alert rule, with only the relevant properties shown: -- **Target resource**: *myVM1*-- **Metric**: *Percentage CPU*
+- **Target resource**: *VM-a*
+- **Signal**: *Percentage CPU*
- **Operator**: *Greater Than*-- **Threshold**: *70*
+- **Threshold**: *80*
For this alert rule, a single metric time series is monitored: -- Percentage CPU where *Resource*=ΓÇÖmyVM1ΓÇÖ > 70%
+- Percentage CPU where *Resource*=ΓÇÖVM-aΓÇÖ > 80%
![Screenshot that shows an alert rule on a single time series.](media/alerts-metric-multiple-time-series-single-rule/simple-alert-rule.png)
A single metric alert rule can monitor multiple resources, provided the resource
An example of such an alert rule: -- **Target resource**: *myVM1, myVM2*-- **Metric**: *Percentage CPU*
+- **Target resource**: *VM-a, myVM2*
+- **Signal**: *Percentage CPU*
- **Operator**: *Greater Than*-- **Threshold**: *70*
+- **Threshold**: *80*
For this alert rule, two metric time series are monitored separately: -- Percentage CPU where *Resource*=ΓÇÖmyVM1ΓÇÖ > 70%-- Percentage CPU where *Resource*=ΓÇÖmyVM2ΓÇÖ > 70%
+- Percentage CPU where *Resource*=ΓÇÖVM-aΓÇÖ > 80%
+- Percentage CPU where *Resource*=ΓÇÖmyVM2ΓÇÖ > 80%
![Screenshot that shows a multi-resource alert rule.](media/alerts-metric-multiple-time-series-single-rule/multi-resource-alert-rule.png) In a multi-resource alert rule, the condition is evaluated separately for each of the resources (or more accurately, for each of the metric time series corresponded to each resource). As a result, alerts are also fired for each resource separately.
-For example, assume we've set the preceding alert rule to monitor for CPU above 70%. In the evaluated time period, that is, the last 5 minutes:
+For example, assume we've set the preceding alert rule to monitor for CPU above 80%. In the evaluated time period, that is, the last 5 minutes:
-- The *Percentage CPU* of *myVM1* is greater than 70%.
+- The *Percentage CPU* of *VM-a* is greater than 80%.
- The *Percentage CPU* of *myVM2* is at 50%.
-The alert rule triggers on *myVM1* but not *myVM2*. These triggered alerts are independent. They can also resolve at different times depending on the individual behavior of each of the virtual machines.
+The alert rule triggers on *VM-a* but not *VM-b*. These triggered alerts are independent. They can also resolve at different times depending on the individual behavior of each of the virtual machines.
For more information about multi-resource alert rules and the resource types supported for this capability, see [Monitoring at scale using metric alerts in Azure Monitor](alerts-types.md#monitor-multiple-resources).
A single metric alert rule can also monitor up to five conditions per alert rule
For example: -- **Target resource**: *myVM1*
+- **Target resource**: *VM-a*
- Condition1
- - **Metric**: *Percentage CPU*
+ - **Signa**: *Percentage CPU*
- **Operator**: *Greater Than*
- - **Threshold**: *70*
+ - **Threshold**: *80*
- Condition2
- - **Metric**: *Network In Total*
+ - **Signal**: *Network In Total*
- **Operator**: *Greater Than* - **Threshold**: *20 MB* For this alert rule, two metric time series are being monitored: -- The *Percentage CPU* where *Resource*=ΓÇÖmyVM1ΓÇÖ > 70%.-- The *Network In Total* where *Resource*=ΓÇÖmyVM1ΓÇÖ > 20 MB.
+- The *Percentage CPU* where *Resource*=ΓÇÖVM-aΓÇÖ > 80%.
+- The *Network In Total* where *Resource*=ΓÇÖVM-aΓÇÖ > 20 MB.
![Screenshot that shows a multi-condition alert rule.](media/alerts-metric-multiple-time-series-single-rule/multi-condition-alert-rule.png)
For example, you can choose to have an alert fired when the number of transactio
An example of an alert rule monitoring multiple dimensions is: -- **Target resource**: *myStorage1*-- **Metric**: *Transactions*
+- **Target resource**: *mystorage1*
+- **Signal**: *Transactions*
- **Dimensions**:
- * API name = *GetBlob, DeleteBlob, PutPage*
+ * API name = *EntityGroupTransaction, GetBlob, PutPage*
- **Operator**: *Greater Than*-- **Threshold**: *70*
+- **Threshold**: *80*
For this alert rule, three metric time series are being monitored: -- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖGetBlobΓÇÖ > 70-- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖDeleteBlobΓÇÖ > 70-- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖPutPageΓÇÖ > 70
+- Transactions where *Resource*=ΓÇÖmystorage1ΓÇÖ and *API Name*=ΓÇÖEntityGroupTransactionΓÇÖ > 80
+- Transactions where *Resource*=ΓÇÖmystorage1ΓÇÖ and *API Name*=ΓÇÖGetBlobΓÇÖ > 80
+- Transactions where *Resource*=ΓÇÖmystorage1ΓÇÖ and *API Name*=ΓÇÖPutPageΓÇÖ > 80
![Screenshot that shows a multi-dimension alert rule with values from one dimension.](media/alerts-metric-multiple-time-series-single-rule/multi-dimension-1.png)
A multi-dimension metric alert rule can also monitor multiple dimension values f
An example of this type of alert rule: - **Target resource**: *myStorage1*-- **Metric**: *Transactions*
+- **Signal**: *Transactions*
- **Dimensions**: * API name = *GetBlob, DeleteBlob, PutPage* * Authentication = *SAS, AccountKey* - **Operator**: *Greater Than*-- **Threshold**: *70*
+- **Threshold**: *80*
For this alert rule, six metric time series are being monitored separately: -- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖGetBlobΓÇÖ and *Authentication*=ΓÇÖSASΓÇÖ > 70-- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖGetBlobΓÇÖ and *Authentication*=ΓÇÖAccountKeyΓÇÖ > 70-- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖDeleteBlobΓÇÖ and *Authentication*=ΓÇÖSASΓÇÖ > 70-- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖDeleteBlobΓÇÖ and *Authentication*=ΓÇÖAccountKeyΓÇÖ > 70-- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖPutPageΓÇÖ and *Authentication*=ΓÇÖSASΓÇÖ > 70-- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖPutPageΓÇÖ and *Authentication*=ΓÇÖAccountKeyΓÇÖ > 70
+- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖGetBlobΓÇÖ and *Authentication*=ΓÇÖSASΓÇÖ > 80
+- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖGetBlobΓÇÖ and *Authentication*=ΓÇÖAccountKeyΓÇÖ > 80
+- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖDeleteBlobΓÇÖ and *Authentication*=ΓÇÖSASΓÇÖ > 80
+- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖDeleteBlobΓÇÖ and *Authentication*=ΓÇÖAccountKeyΓÇÖ > 80
+- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖPutPageΓÇÖ and *Authentication*=ΓÇÖSASΓÇÖ > 80
+- Transactions where *Resource*=ΓÇÖmyStorage1ΓÇÖ and *API Name*=ΓÇÖPutPageΓÇÖ and *Authentication*=ΓÇÖAccountKeyΓÇÖ > 80
![Screenshot that shows a multi-dimension alert rule with values from multiple dimensions.](media/alerts-metric-multiple-time-series-single-rule/multi-dimension-2.png) ### Advanced multi-dimension features -- **Select all current and future dimensions**: You can choose to monitor all possible values of a dimension, including future values. Such an alert rule will scale automatically to monitor all values of the dimension without you needing to modify the alert rule every time a dimension value is added or removed.-- **Exclude dimensions**: Selecting the **Γëá** (exclude) operator for a dimension value is equivalent to selecting all other values of that dimension, including future values.-- **Add new and custom dimensions**: The dimension values displayed in the Azure portal are based on metric data collected in the last day. If the dimension value you're looking for isn't yet emitted, you can add a custom dimension value.-- **Match dimensions with a prefix**: You can choose to monitor all dimension values that start with a specific pattern by selecting the **Starts with** operator and entering a custom prefix.
+1. **Select all current and future dimensions**: You can choose to monitor all possible values of a dimension, including future values. Such an alert rule will scale automatically to monitor all values of the dimension without you needing to modify the alert rule every time a dimension value is added or removed.
+1. **Exclude dimensions**: Selecting the **Γëá** (exclude) operator for a dimension value is equivalent to selecting all other values of that dimension, including future values.
+1. **Add new and custom dimensions**: The dimension values displayed in the Azure portal are based on metric data collected in the last day. If the dimension value you're looking for isn't yet emitted, you can add a custom dimension value.
+1. **Match dimensions with a prefix**: You can choose to monitor all dimension values that start with a specific pattern by selecting the **Starts with** operator and entering a custom prefix.
![Screenshot that shows advanced multi-dimension features.](media/alerts-metric-multiple-time-series-single-rule/advanced-features.png)
azure-monitor Opentelemetry Enable https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/app/opentelemetry-enable.md
input()
#### Copy the Connection String from your Application Insights Resource > [!TIP]
-> If you don't already have one, now is a great time to [Create an Application Insights Resource](create-workspace-resource.md#create-a-workspace-based-resource).
+> If you don't already have one, now is a great time to [Create an Application Insights Resource](create-workspace-resource.md#create-a-workspace-based-resource). Here's when we recommend you [create a new Application Insights Resource versus use an existing one](separate-resources.md#when-to-use-a-single-application-insights-resource).
To copy your unique Connection String:
azure-monitor Autoscale Get Started https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/autoscale/autoscale-get-started.md
Title: Get started with autoscale in Azure description: "Learn how to scale your resource web app, cloud service, virtual machine, or Virtual Machine Scale Set in Azure."--+ Last updated 04/10/2023-- # Get started with autoscale in Azure
azure-monitor Logs Data Export https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-monitor/logs/logs-data-export.md
description: Log Analytics workspace data export in Azure Monitor lets you conti
Previously updated : 06/21/2023 Last updated : 06/29/2023
If the data export rule includes an unsupported table, the configuration will su
| AADDomainServicesAccountLogon | | | AADDomainServicesAccountManagement | | | AADDomainServicesDirectoryServiceAccess | |
+| AADDomainServicesDNSAuditsDynamicUpdates | |
+| AADDomainServicesDNSAuditsGeneral | |
| AADDomainServicesLogonLogoff | | | AADDomainServicesPolicyChange | | | AADDomainServicesPrivilegeUse | |
If the data export rule includes an unsupported table, the configuration will su
| ACSAuthIncomingOperations | | | ACSBillingUsage | | | ACSCallAutomationIncomingOperations | |
+| ACSCallAutomationMediaSummary | |
| ACSCallDiagnostics | |
+| ACSCallRecordingIncomingOperations | |
| ACSCallRecordingSummary | | | ACSCallSummary | |
+| ACSCallSurvey | |
| ACSChatIncomingOperations | | | ACSEmailSendMailOperational | | | ACSEmailStatusUpdateOperational | |
If the data export rule includes an unsupported table, the configuration will su
| AgriFoodSensorManagementLogs | | | AgriFoodWeatherLogs | | | AGSGrafanaLoginEvents | |
+| AHDSDicomAuditLogs | |
+| AHDSDicomDiagnosticLogs | |
| AHDSMedTechDiagnosticLogs | | | AirflowDagProcessingLogs | | | AKSAudit | |
If the data export rule includes an unsupported table, the configuration will su
| AmlOnlineEndpointEventLog | | | AmlOnlineEndpointTrafficLog | | | AmlPipelineEvent | |
+| AmlRegistryReadEventsLog | |
+| AmlRegistryWriteEventsLog | |
| AmlRunEvent | | | AmlRunStatusChangedEvent | | | AMSKeyDeliveryRequests | |
If the data export rule includes an unsupported table, the configuration will su
| AppBrowserTimings | | | AppCenterError | | | AppDependencies | |
+| AppEnvSpringAppConsoleLogs | |
| AppEvents | | | AppExceptions | | | AppMetrics | |
If the data export rule includes an unsupported table, the configuration will su
| AppTraces | | | ASCAuditLogs | | | ASCDeviceEvents | |
+| ASimAuditEventLogs | |
+| ASimAuthenticationEventLogs | |
| ASimDnsActivityLogs | | | ASimNetworkSessionLogs | |
-| ASimNetworkSessionLogs, ASimWebSessionLogs | |
+| ASimNetworkSessionLogs | |
+| ASimProcessEventLogs | |
| ASimWebSessionLogs | |
+| ASRJobs | |
+| ASRReplicatedItems | |
| ATCExpressRouteCircuitIpfix | | | AuditLogs | |
-| AUIEventsAudit | |
-| AUIEventsOperational | |
| AutoscaleEvaluationsLog | | | AutoscaleScaleActionsLog | | | AVNMNetworkGroupMembershipChange | |
If the data export rule includes an unsupported table, the configuration will su
| AZFWNetworkRule | | | AZFWNetworkRuleAggregation | | | AZFWThreatIntel | |
+| AZKVAuditLogs | |
+| AZKVPolicyEvaluationDetailsLogs | |
+| AZMSApplicationMetricLogs | |
+| AZMSArchiveLogs | |
+| AZMSAutoscaleLogs | |
+| AZMSCustomerManagedKeyUserLogs | |
+| AZMSHybridConnectionsEvents | |
+| AZMSKafkaCoordinatorLogs | |
+| AZMSKafkaUserErrorLogs | |
+| AZMSOperationalLogs | |
+| AZMSRunTimeAuditLogs | |
+| AZMSVnetConnectionEvents | |
| AzureAssessmentRecommendation | | | AzureAttestationDiagnostics | | | AzureDevOpsAuditing | |
If the data export rule includes an unsupported table, the configuration will su
| CDBPartitionKeyStatistics | | | CDBQueryRuntimeStatistics | | | ChaosStudioExperimentEventLogs | |
+| CHSMManagementAuditLogs | |
| CIEventsAudit | | | CIEventsOperational | | | CloudAppEvents | |
If the data export rule includes an unsupported table, the configuration will su
| ContainerServiceLog | | | CoreAzureBackup | | | DatabricksAccounts | |
+| DatabricksCapsule8Dataplane | |
+| DatabricksClamAVScan | |
+| DatabricksClusterLibraries | |
| DatabricksClusters | | | DatabricksDBFS | |
+| DatabricksDeltaPipelines | |
| DatabricksFeatureStore | | | DatabricksGenie | |
+| DatabricksGitCredentials | |
| DatabricksGlobalInitScripts | |
+| DatabricksIAMRole | |
| DatabricksInstancePools | | | DatabricksJobs | | | DatabricksMLflowAcledArtifact | | | DatabricksMLflowExperiment | |
+| DatabricksModelRegistry | |
| DatabricksNotebook | |
+| DatabricksPartnerHub | |
| DatabricksRemoteHistoryService | |
+| DatabricksRepos | |
| DatabricksSecrets | |
+| DatabricksServerlessRealTimeInference | |
| DatabricksSQLPermissions | | | DatabricksSSH | |
+| DatabricksUnityCatalog | |
+| DatabricksWebTerminal | |
| DatabricksWorkspace | |
+| DataTransferOperations | |
| DevCenterDiagnosticLogs | | | DeviceEvents | | | DeviceFileCertificateInfo | |
If the data export rule includes an unsupported table, the configuration will su
| EmailEvents | | | EmailPostDeliveryEvents | | | EmailUrlInfo | |
+| EnrichedMicrosoft365AuditLogs | |
| Event | Partial support. Data arriving from the Log Analytics agent or Azure Monitor Agent is fully supported in export. Data arriving via the Diagnostics extension agent is collected through storage. This path isn't supported in export. | | ExchangeAssessmentRecommendation | | | ExchangeOnlineAssessmentRecommendation | |
If the data export rule includes an unsupported table, the configuration will su
| MicrosoftHealthcareApisAuditLogs | | | MicrosoftPurviewInformationProtection | | | NetworkAccessTraffic | |
-| NetworkMonitoring | |
| NSPAccessLogs | | | NTAIpDetails | | | NTANetAnalytics | |
If the data export rule includes an unsupported table, the configuration will su
| NWConnectionMonitorPathResult | | | NWConnectionMonitorTestResult | | | OEPAirFlowTask | |
+| OEPAuditLogs | |
+| OEPDataplaneLogs | |
| OEPElasticOperator | | | OEPElasticsearch | | | OfficeActivity | |
If the data export rule includes an unsupported table, the configuration will su
| Operation | Partial support. Some of the data is ingested through internal services that aren't supported in export. Currently, this portion is missing in export. | | Perf | | | PFTitleAuditLogs | |
+| PowerAppsActivity | |
+| PowerAutomateActivity | |
| PowerBIActivity | | | PowerBIAuditTenant | | | PowerBIDatasetsTenant | | | PowerBIDatasetsWorkspace | | | PowerBIReportUsageWorkspace | |
+| PowerPlatformConnectorActivity | |
+| PowerPlatformDlpActivity | |
| ProjectActivity | | | PurviewDataSensitivityLogs | | | PurviewScanStatusLogs | |
If the data export rule includes an unsupported table, the configuration will su
| SecurityRegulatoryCompliance | | | SentinelAudit | | | SentinelHealth | |
-| SfBAssessmentRecommendation | |
-| SfBOnlineAssessmentRecommendation | |
| SharePointOnlineAssessmentRecommendation | | | SignalRServiceDiagnosticLogs | | | SigninLogs | |
If the data export rule includes an unsupported table, the configuration will su
| SQLAssessmentRecommendation | | | SQLSecurityAuditEvents | | | SqlVulnerabilityAssessmentScanStatus | |
-| StorageAntimalwareScanResults | |
| StorageBlobLogs | | | StorageCacheOperationEvents | | | StorageCacheUpgradeEvents | |
If the data export rule includes an unsupported table, the configuration will su
| ThreatIntelligenceIndicator | | | TSIIngress | | | UCClient | |
-| UCDOAggregatedStatus | |
| UCClientReadinessStatus | | | UCClientUpdateStatus | | | UCDeviceAlert | |
+| UCDOAggregatedStatus | |
| UCDOStatus | | | UCServiceUpdateStatus | |
+| UCUpdateAlert | |
| Update | Partial support. Some of the data is ingested through internal services that aren't supported in export. Currently, this portion is missing in export. | | UpdateRunProgress | | | UpdateSummary | |
If the data export rule includes an unsupported table, the configuration will su
| UserPeerAnalytics | | | VIAudit | | | VIIndexing | |
-| W3CIISLog | Partial support. Data arriving from the Azure Monitor Agent is fully supported in export. Data arriving via the Diagnostics extension agent is collected through storage. This path isn't supported in export. |
+| W3CIISLog | Partial support. Data arriving from the Log Analytics agent or Azure Monitor Agent is fully supported in export. Data arriving via the Diagnostics extension agent is collected through storage. This path isn't supported in export. |
| WaaSDeploymentStatus | | | WaaSInsiderStatus | | | WaaSUpdateStatus | |
azure-sql-edge Features https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql-edge/features.md
Title: Supported features of Azure SQL Edge
description: Learn about details of features supported by Azure SQL Edge. Previously updated : 01/13/2023 Last updated : 06/29/2023 keywords:
keywords:
# Supported features of Azure SQL Edge
-Azure SQL Edge is built on the latest version of the SQL Database Engine. It supports a subset of the features supported in SQL Server 2019 on Linux, in addition to some features that are currently not supported or available in SQL Server 2019 on Linux (or in SQL Server on Windows).
+Azure SQL Edge is built on the latest version of the SQL Database Engine. It supports a subset of the features supported in SQL Server 2022 on Linux, in addition to some features that are currently not supported or available in SQL Server 2022 on Linux (or in SQL Server on Windows).
-For a complete list of the features supported in SQL Server on Linux, see [Editions and supported features of SQL Server 2019 on Linux](/sql/linux/sql-server-linux-editions-and-components-2019). For editions and supported features of SQL Server on Windows, see [Editions and supported features of SQL Server 2019 (15.x)](/sql/sql-server/editions-and-components-of-sql-server-version-15).
+For a complete list of the features supported in SQL Server on Linux, see [Editions and supported features of SQL Server 2022 on Linux](/sql/linux/sql-server-linux-editions-and-components-2022). For editions and supported features of SQL Server on Windows, see [Editions and supported features of SQL Server 2022 (16.x)](/sql/sql-server/editions-and-components-of-sql-server-2022).
## Azure SQL Edge editions Azure SQL Edge is available with two different editions or software plans. These editions have identical feature sets, and only differ in terms of their usage rights and the amount of memory and cores they can access on the host system.
- | **Plan** | **Description** |
- | | |
- | Azure SQL Edge Developer | For development only. Each Azure SQL Edge Developer container is limited to a maximum of 4 cores and 32 GB of RAM. |
- | Azure SQL Edge | For production. Each Azure SQL Edge container is limited to a maximum of 8 cores and 64 GB of RAM. |
+| Plan | Description |
+| | |
+| Azure SQL Edge Developer | For development only. Each Azure SQL Edge Developer container is limited to a maximum of 4 cores and 32 GB of RAM. |
+| Azure SQL Edge | For production. Each Azure SQL Edge container is limited to a maximum of 8 cores and 64 GB of RAM. |
## Operating system
Azure SQL Edge requires a 64-bit processor (either x64 or ARM64), with a minimum
## Azure SQL Edge components
-Azure SQL Edge only supports the database engine. It doesn't include support for other components available with SQL Server 2019 on Windows or with SQL Server 2019 on Linux. Specifically, Azure SQL Edge doesn't support SQL Server components like Analysis Services, Reporting Services, Integration Services, Master Data Services, Machine Learning Services (In-Database), and Machine Learning Server (standalone).
+Azure SQL Edge only supports the database engine. It doesn't include support for other components available with SQL Server 2022 on Windows or with SQL Server 2022 on Linux. Specifically, Azure SQL Edge doesn't support SQL Server components like Analysis Services, Reporting Services, Integration Services, Master Data Services, Machine Learning Services (In-Database), and Machine Learning Server (standalone).
## Supported features
In addition to supporting a subset of features of SQL Server on Linux, Azure SQL
## Unsupported features
-The following list includes the SQL Server 2019 on Linux features that aren't currently supported in Azure SQL Edge.
+The following list includes the SQL Server 2022 on Linux features that aren't currently supported in Azure SQL Edge.
| Area | Unsupported feature or service | | | |
-| **Database Design** | In-memory OLTP, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views. |
-| | `HierarchyID` data type, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views. |
-| | `Spatial` data type, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views. |
-| | Stretch DB, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views. |
-| | Full-text indexes and search, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views. |
-| | `FileTable`, `FILESTREAM`, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views. |
+| **Database Design** | In-memory OLTP, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views |
+| | **HierarchyID** data type, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views |
+| | **Spatial** data type, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views |
+| | Stretch DB, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views |
+| | Full-text indexes and search, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views |
+| | FileTable, FILESTREAM, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views |
| **Database Engine** | Replication. You can configure Azure SQL Edge as a push subscriber of a replication topology. | | | PolyBase. You can configure Azure SQL Edge as a target for external tables in PolyBase. |
-| | Language extensibility through Java and Spark. |
-| | Active Directory integration. |
-| | Database Auto Shrink. The Auto shrink property for a database can be set using the `ALTER DATABASE <database_name> SET AUTO_SHRINK ON` command, however that change has no effect. The automatic shrink task won't run against the database. Users can still shrink the database files using the 'DBCC' commands. |
-| | Database snapshots. |
-| | Support for persistent memory. |
-| | Microsoft Distributed Transaction Coordinator. |
-| | Resource governor and IO resource governance. |
-| | Buffer pool extension. |
-| | Distributed query with third-party connections. |
-| | Linked servers. |
-| | System extended stored procedures (such as `XP_CMDSHELL`). |
-| | CLR assemblies, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views. |
-| | CLR-dependent T-SQL functions, such as `ASSEMBLYPROPERTY`, `FORMAT`, `PARSE`, and `TRY_PARSE`. |
-| | CLR-dependent date and time catalog views, functions, and query clauses. |
-| | Buffer pool extension. |
-| | Database mail. |
+| | Language extensibility through Java and Spark |
+| | Active Directory integration |
+| | Database Auto Shrink. The Auto shrink property for a database can be set using the `ALTER DATABASE <database_name> SET AUTO_SHRINK ON` command, however that change has no effect. The automatic shrink task won't run against the database. Users can still shrink the database files using the `DBCC` commands. |
+| | Database snapshots |
+| | Support for persistent memory |
+| | Microsoft Distributed Transaction Coordinator |
+| | Resource governor and IO resource governance |
+| | Buffer pool extension |
+| | Distributed query with third-party connections |
+| | Linked servers |
+| | System extended stored procedures (such as `xp_cmdshell`). |
+| | CLR assemblies, and related DDL commands and Transact-SQL functions, catalog views, and dynamic management views |
+| | CLR-dependent T-SQL functions, such as `ASSEMBLYPROPERTY`, `FORMAT`, `PARSE`, and `TRY_PARSE` |
+| | CLR-dependent date and time catalog views, functions, and query clauses |
+| | Buffer pool extension |
+| | Database mail |
| | Service Broker | | | Policy Based Management | | | Management Data Warehouse | | | Contained Databases |
-| **SQL Server Agent** | Subsystems: CmdExec, PowerShell, Queue Reader, SSIS, SSAS, and SSRS. |
-| | Alerts. |
-| | Managed backup. |
-| **High Availability** | Always On availability groups. |
-| | Basic availability groups. |
-| | Always On failover cluster instance. |
-| | Database mirroring. |
-| | Hot add memory and CPU. |
-| **Security** | Extensible key management. |
-| | Active Directory integration. |
-| | Support for secure enclaves. |
-| **Services** | SQL Server Browser. |
-| | Machine Learning through R and Python. |
-| | StreamInsight. |
-| | Analysis Services. |
-| | Reporting Services. |
-| | Data Quality Services. |
-| | Master Data Services. |
-| | Distributed Replay. |
-| **Manageability** | SQL Server Utility Control Point. |
+| | S3-compatible object storage integration |
+| | Azure Active Directory authentication |
+| | Buffer pool parallel scan |
+| | Hybrid buffer pool with direct write |
+| | Concurrent updates to global allocation map (GAM) pages and shared global allocation map (SGAM) pages |
+| | Integrated acceleration & offloading (Intel QAT) |
+| | Intelligent Query Processing:<br /><br />- Parameter sensitive plan optimization<br />- Degree of Parallelism (DOP) feedback<br />- Optimized plan forcing<br />- Query Store Hints |
+| | Language:<br /><br />- `SELECT ... WINDOW` clause<br />- `IS [NOT] DISTINCT FROM`<br />- JSON function enhancements (`ISJSON()`, `JSON_PATH_EXISTS()`, `JSON_OBJECT()`, `JSON_ARRAY()`)<br />- `LTRIM()` / `RTRIM()` enhancements<br />- `DATETRUNC()`<br />- Resumable add table constraints |
+| **SQL Server Agent** | Subsystems: CmdExec, PowerShell, Queue Reader, SSIS, SSAS, and SSRS |
+| | Alerts |
+| | Managed backup |
+| **High Availability** | Always On availability groups |
+| | Basic availability groups |
+| | Always On failover cluster instance |
+| | Database mirroring |
+| | Hot add memory and CPU |
+| | Managed Instance link |
+| | Contained Availability Groups |
+| **Security** | Extensible key management |
+| | Active Directory integration |
+| | Support for secure enclaves |
+| | Microsoft Defender for Cloud integration |
+| | Microsoft Purview integration |
+| | Ledger |
+| **Services** | SQL Server Browser |
+| | Machine Learning through R and Python |
+| | StreamInsight |
+| | Analysis Services |
+| | Reporting Services |
+| | Data Quality Services |
+| | Master Data Services |
+| | Distributed Replay |
+| **Manageability** | SQL Server Utility Control Point |
## Next steps
azure-sql-edge Release Notes https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/azure-sql-edge/release-notes.md
description: Release notes detailing what's new or what has changed in the Azure
Previously updated : 6/21/2022 Last updated : 06/29/2023 keywords: release notes SQL Edge-
-# Azure SQL Edge release notes
+# Azure SQL Edge release notes
This article describes what's new and what has changed with every new build of Azure SQL Edge.
+## Azure SQL Edge 2.0.0
+
+SQL Engine build: 16.0.5100.7245
+
+**Applies to:** AMD64 only. No ARM64 update is available for this version.
+
+### What's new?
+
+- Support for SQL Server 2022 features relevant for Azure SQL Edge
+- Upgraded base image to Ubuntu 20.04
+- Upgraded ONNX runtime to [v1.12.1](https://github.com/microsoft/onnxruntime/releases/tag/v1.12.1)
+ ## Azure SQL Edge 1.0.7
-SQL engine build 15.0.2000.1574
+SQL Engine build 15.0.2000.1574
### What's new?
SQL engine build 15.0.2000.1574
## Azure SQL Edge 1.0.6
-SQL engine build 15.0.2000.1565
+SQL Engine build 15.0.2000.1565
### What's new?
SQL engine build 15.0.2000.1565
## Azure SQL Edge 1.0.5
-SQL engine build 15.0.2000.1562
+SQL Engine build 15.0.2000.1562
### What's new?
SQL engine build 15.0.2000.1562
## Azure SQL Edge 1.0.4
-SQL engine build 15.0.2000.1559
+SQL Engine build 15.0.2000.1559
### What's new? -- PREDICT support for ONNX
- - Improvements in handling of null data in PREDICT for ONNX
+- PREDICT support for ONNX
+ - Improvements in handling of null data in PREDICT for ONNX
## Azure SQL Edge 1.0.3
-SQL engine build 15.0.2000.1557
+SQL Engine build 15.0.2000.1557
### Fixes - Upgrade ONNX runtime to 1.5.3 - Update to Microsoft.SqlServer.DACFx version 150.5084.2-- Miscellaneous bug fixes
-
+- Miscellaneous bug fixes
+ ## Azure SQL Edge 1.0.2
-SQL engine build 15.0.2000.1557
+SQL Engine build 15.0.2000.1557
### Fixes -- T-SQL streaming
- - Fix in ownership and permissions for streaming objects
- - Logging improvements with log rotation and log prefixing
- - Azure Stream Analytics: Logging improvements, improve error code/ error messages in adapters
+- T-SQL streaming
+ - Fix in ownership and permissions for streaming objects
+ - Logging improvements with log rotation and log prefixing
+ - Azure Stream Analytics: Logging improvements, improve error code/ error messages in adapters
- ONNX
- - Bug fixes for parallel query scenario and model cleanup failures
- - Upgraded ONNX runtime to 1.5.1
+ - Bug fixes for parallel query scenario and model cleanup failures
+ - Upgraded ONNX runtime to 1.5.1
## Azure SQL Edge 1.0.1
-SQL engine build 15.0.2000.1553
+SQL Engine build 15.0.2000.1553
### What's new? -- Allow Date_Bucket expressions defined in computed columns.
+- Allow DATE_BUCKET expressions defined in computed columns.
### Fixes - Retention policy fix for dropping a table that has a retention policy enabled with an infinite timeout-- DacFx deployment support for streaming features and retention-policy features -- DacFx deployment fix to enable deployment from a nested folder in a SAS URL
+- DacFx deployment support for streaming features and retention-policy features
+- DacFx deployment fix to enable deployment from a nested folder in a SAS URL
- PREDICT fix to support long column names in error messages ## Azure SQL Edge 1.0.0 (RTM)
-SQL engine build 15.0.2000.1552
+SQL Engine build 15.0.2000.1552
### What's new?-- Container images based on Ubuntu 18.04 -- Support for `IGNORE NULL` and `RESPECT NULL` syntax with `LAST_VALUE()` and `FIRST_VALUE()` functions +
+- Container images based on Ubuntu 18.04
+- Support for `IGNORE NULL` and `RESPECT NULL` syntax with `LAST_VALUE()` and `FIRST_VALUE()` functions
- Reliability improvements for PREDICT with ONNX - Support for cleanup based on the data-retention policy:
- - Ring buffer support for a retention cleanup task for troubleshooting
-- New feature support:
- - Fast recovery
- - Automatic tuning of queries
- - Parallel-execution scenarios
+ - Ring buffer support for a retention cleanup task for troubleshooting
+- New feature support:
+ - Fast recovery
+ - Automatic tuning of queries
+ - Parallel-execution scenarios
- Power-saving improvements for low-power mode-- Streaming new-feature support:
- - [Snapshot windows](/stream-analytics-query/snapshot-window-azure-stream-analytics): A new window type allows you to group by events that arrive at the same time.
- - [TopOne](/stream-analytics-query/topone-azure-stream-analytics) and [CollectTop](/stream-analytics-query/collecttop-azure-stream-analytics) can be enabled as analytic functions. You can return records ordered by the column of your choice. They don't need to be part of a window.
- - Improvements to [MATCH_RECOGNIZE](/stream-analytics-query/match-recognize-stream-analytics).
+- Streaming new-feature support:
+ - [Snapshot windows](/stream-analytics-query/snapshot-window-azure-stream-analytics): A new window type allows you to group by events that arrive at the same time.
+ - [TopOne](/stream-analytics-query/topone-azure-stream-analytics) and [CollectTop](/stream-analytics-query/collecttop-azure-stream-analytics) can be enabled as analytic functions. You can return records ordered by the column of your choice. They don't need to be part of a window.
+ - Improvements to [MATCH_RECOGNIZE](/stream-analytics-query/match-recognize-stream-analytics).
### Fixes-- Additional error messages and details for troubleshooting T-SQL streaming operations -- Improvements to preserve battery life in idle mode -- T-SQL streaming engine fixes:
- - Cleanup for stopped streaming jobs
- - Fixes for localization
- - Improved Unicode handling
- - Improved debugging for SQL Edge T-SQL streaming, allowing users to query job-failure errors from get_streaming_job
-- Cleanup based on data-retention policy:
- - Fixes for retention-policy creation and cleanup scenarios
+
+- Additional error messages and details for troubleshooting T-SQL streaming operations
+- Improvements to preserve battery life in idle mode
+- T-SQL streaming engine fixes:
+ - Cleanup for stopped streaming jobs
+ - Fixes for localization
+ - Improved Unicode handling
+ - Improved debugging for SQL Edge T-SQL streaming, allowing users to query job-failure errors from get_streaming_job
+- Cleanup based on data-retention policy:
+ - Fixes for retention-policy creation and cleanup scenarios
- Fixes for background timer tasks to improve power savings for low-power mode
-### Known issues
-- The Date_Bucket T-SQL function can't be used in a computed column.
+### Known issues
+- The DATE_BUCKET T-SQL function can't be used in a computed column.
## CTP 2.3
-SQL engine build 15.0.2000.1549
+
+SQL Engine build 15.0.2000.1549
+ ### What's new?-- Support for custom origins in the Date_Bucket() function +
+- Support for custom origins in the DATE_BUCKET() function
- Support for BACPAC files as part of SQL deployment-- Support for cleanup based on the data-retention policy:
- - DDL support for enabling the retention policy
- - Cleanup for stored procedures and the background cleanup task
- - Extended events to monitor cleanup tasks
+- Support for cleanup based on the data-retention policy:
+ - DDL support for enabling the retention policy
+ - Cleanup for stored procedures and the background cleanup task
+ - Extended events to monitor cleanup tasks
### Fixes-- Additional error messages and details for troubleshooting T-SQL streaming operations -- Improvements to preserve battery life in idle mode -- T-SQL streaming engine:
- - Fix for stuck watermark in the substreamed hopping window
- - Fix for framework exception handling to make sure it's collected as a user-actionable error
+- Additional error messages and details for troubleshooting T-SQL streaming operations
+- Improvements to preserve battery life in idle mode
+- T-SQL streaming engine:
+ - Fix for stuck watermark in the substreamed hopping window
+ - Fix for framework exception handling to make sure it's collected as a user-actionable error
## CTP 2.2
-SQL engine build 15.0.2000.1546
+
+SQL Engine build 15.0.2000.1546
+ ### What's new?-- Support for non root containers -- Support for the usage and diagnostic data collection +
+- Support for non root containers
+- Support for the usage and diagnostic data collection
- T-SQL streaming updates:
- - Support for Unicode characters for stream object names
+ - Support for Unicode characters for stream object names
### Fixes+ - T-SQL streaming updates:
- - Process cleanup improvements
- - Logging and diagnostics improvements
+ - Process cleanup improvements
+ - Logging and diagnostics improvements
- Performance improvement for data ingestion
-## CTP 2.1
-SQL engine build 15.0.2000.1545
+## CTP 2.1
+
+SQL Engine build 15.0.2000.1545
+ ### Fixes-- Allowed the PREDICT-with-ONNX models to handle a CPUID issue in ARM +
+- Allowed the PREDICT-with-ONNX models to handle a CPUID issue in ARM64
- Improved handling of the failure path when T-SQL streaming starts - Corrected value of the watermark delay in job metrics when there's no data.-- Fix for an issue with the output adapter when the adapter has a variable schema between batches
+- Fix for an issue with the output adapter when the adapter has a variable schema between batches
+
+## CTP 2.0
+
+SQL Engine build 15.0.2000.1401
-## CTP 2.0
-SQL engine build 15.0.2000.1401
### What's new?-- Product name updated to *Azure SQL Edge*-- Date_Bucket function:
- - Support for Date, Time, and DateTime types
+
+- Product name updated to *Azure SQL Edge*
+- DATE_BUCKET function:
+ - Support for **date**, **time**, and **datetime** types
- PREDICT with ONNX:
- - ONNX requirement for the RUNTIME parameter
-- T-SQL streaming support (limited preview)
-
+ - ONNX requirement for the RUNTIME parameter
+- T-SQL streaming support (limited preview)
+ ### Known issues - Issue: Potential failures with applying DACPAC on startup because of a timing issue.-- Workaround: Restart SQL Server. Otherwise, the container will retry applying the DACPAC.
+- Workaround: Restart SQL Server. Otherwise, the container retries applying the DACPAC.
### Request support
-You can request support on the [support page](https://portal.azure.com/#blade/Microsoft_Azure_Support/HelpAndSupportBlade/newsupportrequest). Select the following fields:
-- **Issue type**: *Technical* +
+You can request support on the [support page](https://portal.azure.com/#blade/Microsoft_Azure_Support/HelpAndSupportBlade/newsupportrequest). Select the following fields:
+
+- **Issue type**: *Technical*
- **Service**: *IoT Edge* - **Problem type**: *My problem relates to an IoT Edge module* - **Problem subtype**: *Azure SQL Edge*
You can request support on the [support page](https://portal.azure.com/#blade/Mi
:::image type="content" source="media/get-support/support-ticket.png" alt-text="Screenshot showing a sample support ticket."::: ## CTP 1.5
-SQL engine build 15.0.2000.1331
+
+SQL Engine build 15.0.2000.1331
+ ### What's new?-- Date_Bucket function:
- - Support for the DateTimeOffset type
+
+- DATE_BUCKET function:
+ - Support for the DateTimeOffset type
- PREDICT with ONNX models:
- - NVARCHAR support
-
+ - **nvarchar** support
+ ## CTP 1.4
-SQL engine build 15.0.2000.1247
+
+SQL Engine build 15.0.2000.1247
+ ### What's new?-- PREDICT with ONNX models:
- - VARCHAR support
- - Migration to ONNX runtime version 1.0
+
+- PREDICT with ONNX models:
+ - **varchar** support
+ - Migration to ONNX runtime version 1.0
- The following features are enabled: - CDC support
SQL engine build 15.0.2000.1247
- A higher-scale factor for log read-ahead - Batch mode ES filter pushdown - Read-ahead optimizations
-
+ ## CTP 1.3
-SQL engine build 15.0.2000.1147
+
+SQL Engine build 15.0.2000.1147
+ ### What's new?-- Azure IoT portal deployment:
- - Support for deploying AMD64 and ARM images
+
+- Azure IoT portal deployment:
+ - Support for deploying AMD64 and ARM64 images
- Support for streaming job creation - DACPAC deployment - PREDICT with ONNX models:
backup Backup Azure Restore Files From Vm https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/backup/backup-azure-restore-files-from-vm.md
Title: Recover files and folders from Azure VM backup description: In this article, learn how to recover files and folders from an Azure virtual machine recovery point. Previously updated : 11/04/2022 Last updated : 06/30/2023
You can't run the executable script on the VM with any of the following characte
### Windows Storage Spaces
-You cannot run the downloaded executable on the same backed-up VM if the backed up VM has Windows Storage Spaces. Choose an alternate machine.
+You can't run the downloaded executable on the same backed-up VM if the backed-up VM has Windows Storage Spaces. Choose an alternate machine.
### Virtual machine backups having large disks
In Linux, the OS of the computer used to restore files must support the file sys
| SLES | 12 and above | | openSUSE | 42.2 and above |
+### Additional components
+ The script also requires Python and bash components to execute and connect securely to the recovery point.
-|Component | Version |
-| | - |
-| bash | 4 and above |
-| Python | 2.6.6 and above |
-| .NET | 4.6.2 and above |
-| TLS | 1.2 should be supported |
+|Component | Version | OS type |
+| | - | |
+| bash | 4 and above | Linux |
+| Python | 2.6.6 and above | Linux |
+| .NET | 4.6.2 and above | Windows |
+| TLS | 1.2 should be supported | Linux/ Windows |
Also, ensure that you have the [right machine to execute the ILR script](#step-2-ensure-the-machine-meets-the-requirements-before-executing-the-script) and it meets the [access requirements](#step-4-access-requirements-to-successfully-run-the-script).
Also, ensure that you have the [right machine to execute the ILR script](#step-2
After you meet all the requirements listed in [Step 2](#step-2-ensure-the-machine-meets-the-requirements-before-executing-the-script), [Step 3](#step-3-os-requirements-to-successfully-run-the-script) and [Step 4](#step-4-access-requirements-to-successfully-run-the-script), copy the script from the downloaded location (usually the Downloads folder), see [Step 1 to learn how to generate and download script](#step-1-generate-and-download-script-to-browse-and-recover-files). Right-click the executable file and run it with Administrator credentials. When prompted, type the password or paste the password from memory, and press Enter. Once the valid password is entered, the script connects to the recovery point.
- ![Executable output](./media/backup-azure-restore-files-from-vm/executable-output.png)
+ :::image type="content" source="./media/backup-azure-restore-files-from-vm/executable-output.png" alt-text="Screenshot shows the executable output for file restore from VM." lightbox="./media/backup-azure-restore-files-from-vm/executable-output.png":::
When you run the executable, the operating system mounts the new volumes and assigns drive letters. You can use Windows Explorer or File Explorer to browse those drives. The drive letters assigned to the volumes may not be the same letters as the original virtual machine. However, the volume name is preserved. For example, if the volume on the original virtual machine was "Data Disk (E:`\`)", that volume can be attached on the local computer as "Data Disk ('Any letter':`\`). Browse through all volumes mentioned in the script output until you find your files or folder.
We use a mutual CHAP authentication mechanism so that each component authenticat
The data flow between the recovery service and the machine is protected by building a secure TLS tunnel over TCP ([TLS 1.2 should be supported](#step-3-os-requirements-to-successfully-run-the-script) in the machine where script is run).
-Any file Access Control List (ACL) present in the parent/backed up VM is preserved in the mounted file system as well.
+Any file Access Control List (ACL) present in the parent/backed-up VM is preserved in the mounted file system as well.
The script gives read-only access to a recovery point and is valid for only 12 hours. If you wish to remove the access earlier, then sign into Azure portal/PowerShell/CLI and perform **unmount disks** for that particular recovery point. The script will be invalidated immediately.
chaos-studio Chaos Studio Fault Library https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/chaos-studio/chaos-studio-fault-library.md
The faults listed in this article are currently available for use. To understand
|-|-| | Fault provider | N/A | | Supported OS types | N/A |
-| Description | Adds a time delay before, between, or after other actions. This fault is useful for waiting for the effect of a fault to appear in a service, or for waiting for an activity outside of the experiment to complete. An example is waiting for autohealing to occur before injecting another fault. |
+| Description | Adds a time delay before, between, or after other experiment actions. This is not a fault and is used to synchronize actions within an experiment. Use this action to wait for the impact of a fault to appear in a service, or wait for an activity outside of the experiment to complete. For example, waiting for autohealing to occur before injecting another fault.|
| Prerequisites | N/A | | Urn | urn:csci:microsoft:chaosStudio:timedDelay/1.0 | | Duration | The duration of the delay in ISO 8601 format (for example, PT10M). |
chaos-studio Chaos Studio Tutorial Aks Cli https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/chaos-studio/chaos-studio-tutorial-aks-cli.md
When you create a chaos experiment, Chaos Studio creates a system-assigned manag
Give the experiment access to your resources by using the following command. Replace `$EXPERIMENT_PRINCIPAL_ID` with the principal ID from the previous step. Replace `$RESOURCE_ID` with the resource ID of the target resource. In this case, it's the AKS cluster resource ID. Run this command for each resource targeted in your experiment. ```azurecli-interactive
-az role assignment create --role "Azure Kubernetes Cluster Admin Role" --assignee-object-id $EXPERIMENT_PRINCIPAL_ID --scope $RESOURCE_ID
+az role assignment create --role "Azure Kubernetes Service Cluster Admin Role" --assignee-object-id $EXPERIMENT_PRINCIPAL_ID --scope $RESOURCE_ID
``` ## Run your experiment
cloud-shell Quickstart Deploy Vnet https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cloud-shell/quickstart-deploy-vnet.md
description: This article provides step-by-step instructions to deploy Azure Cloud Shell in a private virtual network. ms.contributor: jahelmic Previously updated : 06/07/2023 Last updated : 06/29/2023 Title: Deploy Azure Cloud Shell in a VNET with quickstart templates
deployment. All resources must be in the same Azure region and contained in the
- **Resource Group** - The name of the resource group used for the Azure Cloud Shell VNET deployment - **Region** - The location of the resource group - **Virtual Network** - The name of the virtual network created for Azure Cloud Shell VNET-- **Azure Container Instance ID** - The ID of the Azure Container Instance for your resource group
+- **Azure Container Instance OID** - The ID of the Azure Container Instance for your resource group
- **Azure Relay Namespace** - The name that you want to assign to the Relay resource created by the template
register the provider:
Register-AzResourceProvider -ProviderNamespace Microsoft.ContainerInstance ```
-### Azure Container Instance Id
+### Azure Container Instance ID
To configure the VNET for Cloud Shell using the quickstarts, retrieve the `Azure Container Instance` ID for your organization.
Fill out the form with the following information:
| Existing VNET Name | Fill in the value from the prerequisite information you gathered.<br>For this example, we're using `vnet-cloudshell-eastus`. | | Relay Namespace Name | Create a name that you want to assign to the Relay resource created by the template.<br>For this example, we're using `arn-cloudshell-eastus`. | | Azure Container Instance OID | Fill in the value from the prerequisite information you gathered.<br>For this example, we're using `8fe7fd25-33fe-4f89-ade3-0e705fcf4370`. |
-| Container Subnet Name | Defaults to `cloudshellsubnet`. Enter the name of the subnet containing your container. |
+| Container Subnet Name | Defaults to `cloudshellsubnet`. Enter the name of the subnet for your container. |
| Container Subnet Address Prefix | For this example, we use `10.0.1.0/24`. | | Relay Subnet Name | Defaults to `relaysubnet`. Enter the name of the subnet containing your relay. | | Relay Subnet Address Prefix | For this example, we use `10.0.2.0/24`. |
Fill out the form with the following information:
| Subscription | Defaults to the current subscription context.<br>For this example, we're using `MyCompany Subscription` | | Resource group | Enter the name of the resource group from the prerequisite information.<br>For this example, we're using `rg-cloudshell-eastus`. |
-| Instance details | Value |
-| | -- |
-| Region | Prefilled with your default region.<br>For this example, we're using `East US`. |
-| Existing VNET Name | For this example, we're using `vnet-cloudshell-eastus`. |
-| Existing Storage Subnet Name | Fill in the name of the resource created by the network template. |
-| Existing Container Subnet Name | Fill in the name of the resource created by the network template. |
-| Storage Account Name | Create a name for the new storage account.<br>For this example, we're using `MyVnetStorage`. |
-| File Share Name | Defaults to `acsshare`. Enter the name of the file share want to create. |
-| Resource Tags | Defaults to `{"Environment":"cloudshell"}`. Leave unchanged or add more tags. |
-| Location | Defaults to `[resourceGroup().location]`. Leave unchanged. |
+| Instance details | Value |
+| | |
+| Region | Prefilled with your default region.<br>For this example, we're using `East US`. |
+| Existing VNET Name | For this example, we're using `vnet-cloudshell-eastus`. |
+| Existing Storage Subnet Name | Fill in the name of the resource created by the network template. |
+| Existing Container Subnet Name | Fill in the name of the resource created by the network template. |
+| Storage Account Name | Create a name for the new storage account.<br>For this example, we're using `myvnetstorage1138`. |
+| File Share Name | Defaults to `acsshare`. Enter the name of the file share want to create. |
+| Resource Tags | Defaults to `{"Environment":"cloudshell"}`. Leave unchanged or add more tags. |
+| Location | Defaults to `[resourceGroup().location]`. Leave unchanged. |
Once the form is complete, select **Review + Create** and deploy the network ARM template to your subscription.
cognitive-services Overview Image Analysis https://github.com/MicrosoftDocs/azure-docs/commits/main/articles/cognitive-services/Computer-vision/overview-image-analysis.md
The Computer Vision Image Analysis service can extract a wide variety of visual
The latest version of Image Analysis, 4.0, which is now in public preview, has new features like synchronous OCR and people detection. We recommend you use this version going forward.
-You can use Image Analysis through a client library SDK or by calling the [REST API](https://aka.ms/vision-4-0-ref) directly. Follow the [quickstart](quickstarts-sdk/image-analysis-client-library.md) to get started.
+You can use Image Analysis through a client library SDK or by calling the [REST API](https://aka.ms/vision-4-0-ref) directly. Follow the [quickstart](quickstarts-sdk/image-analysis-client-library-40.md) to get started.
> [!div class="nextstepaction"]
-> [Quickstart](quickstarts-sdk/image-analysis-client-library.md)
+> [Quickstart](quickstarts-sdk/image-analysis-client-library-40.md)
Or, you can try out the capabilities of Image Analysis quickly and easily in your browser using Vision Studio. </