diff --git a/.openpublishing.publish.config.json b/.openpublishing.publish.config.json
index 897fdda1fd267..86d672d12eced 100644
--- a/.openpublishing.publish.config.json
+++ b/.openpublishing.publish.config.json
@@ -21,7 +21,9 @@
"version": 0
}
],
- "notification_subscribers": [],
+ "notification_subscribers": [
+ "azure-docs-publish@microsoft.com"
+ ],
"sync_notification_subscribers": [
"tysonn@microsoft.com"
],
@@ -74,11 +76,13 @@
"path_to_root": "policy-templates",
"url": "https://github.com/Azure/azure-policy",
"branch": "master",
- "branch_mapping": {
- "release-build-mysql": "release-build",
- "release-build-postgresql": "release-build",
- "release-build-stellar": "release-build"
- }
+ "branch_mapping": {}
+ },
+ {
+ "path_to_root": "blueprints-templates",
+ "url": "https://github.com/Azure/azure-blueprints",
+ "branch": "master",
+ "branch_mapping": {}
},
{
"path_to_root": "azure-docs-json-samples",
diff --git a/.openpublishing.redirection.json b/.openpublishing.redirection.json
index 665c34fcf1a6a..e7e5551e92b25 100644
--- a/.openpublishing.redirection.json
+++ b/.openpublishing.redirection.json
@@ -855,6 +855,11 @@
"redirect_url": "/azure/avere-vfxt/avere-vfxt-additional-resources",
"redirect_document_id": true
},
+ {
+ "source_path": "articles/avere-vfxt/avere-vfxt-controller-role.md",
+ "redirect_url": "/azure/avere-vfxt/avere-vfxt-deploy-plan#vm-access-roles",
+ "redirect_document_id": true
+ },
{
"source_path": "articles/machine-learning/service/how-to-choose-a-dev-environment.md",
"redirect_url": "/azure/machine-learning/service/how-to-configure-environment",
@@ -1250,6 +1255,16 @@
"redirect_url": "/azure/iot-fundamentals/iot-introduction",
"redirect_document_id": false
},
+ {
+ "source_path": "articles/iot-hub/iot-hub-auto-device-config.md",
+ "redirect_url": "/azure/iot-hub/iot-hub-automatic-device-management",
+ "redirect_document_id": true
+ },
+ {
+ "source_path": "articles/iot-hub/iot-hub-auto-device-config-cli.md",
+ "redirect_url": "/azure/iot-hub/iot-hub-automatic-device-management-cli",
+ "redirect_document_id": true
+ },
{
"source_path": "articles/iot-hub/iot-hub-create-using-cli-nodejs.md",
"redirect_url": "/azure/iot-hub/iot-hub-create-using-cli",
@@ -1635,6 +1650,11 @@
"redirect_url": "/azure/active-directory/managed-service-identity/how-to-use-vm-sdk",
"redirect_document_id": false
},
+ {
+ "source_path": "articles/machine-learning/service/support-for-aml-services.md",
+ "redirect_url": "https://aka.ms/aml-forum-service",
+ "redirect_document_id": true
+ },
{
"source_path": "articles/machine-learning/preview/model-management-service-deploy.md",
"redirect_url": "/azure/machine-learning/desktop-workbench/model-management-service-deploy",
@@ -2850,6 +2870,11 @@
"redirect_url": "/azure/azure-portal/azure-portal-dashboards",
"redirect_document_id": false
},
+ {
+ "source_path": "articles/azure-resource-manager/resource-manager-tutorial-move-resources.md",
+ "redirect_url": "/azure/azure-resource-manager/resource-group-move-resources",
+ "redirect_document_id": false
+ },
{
"source_path": "articles/azure-resource-manager/resource-manager-templates-parameters.md",
"redirect_url": "/azure/azure-resource-manager/resource-group-authoring-templates#parameters",
@@ -4655,6 +4680,12 @@
"redirect_url": "/azure/automation/source-control-integration",
"redirect_document_id": false
},
+
+ {
+ "source_path": "articles/automation/automation-credentials.md",
+ "redirect_url": "/azure/automation/shared-resources/credentials",
+ "redirect_document_id": false
+ },
{
"source_path": "articles/automation/automation-certificates.md",
"redirect_url": "/azure/automation/shared-resources/certificates",
@@ -10853,6 +10884,11 @@
"redirect_url": "https://azure.microsoft.com/services/data-factory/",
"redirect_document_id": false
},
+ {
+ "source_path": "articles/hdinsight/hdinsight-hadoop-install-mono.md",
+ "redirect_url": "/azure/hdinsight/hdinsight-hadoop-migrate-dotnet-to-linux",
+ "redirect_document_id": false
+ },
{
"source_path": "articles/hdinsight/hdinsight-hadoop-r-scripts.md",
"redirect_url": "/azure/hdinsight/r-server/r-server-get-started",
@@ -27598,9 +27634,14 @@
},
{
"source_path": "articles/active-directory/active-directory-tou.md",
- "redirect_url": "/azure/active-directory/governance/active-directory-tou",
+ "redirect_url": "/azure/active-directory/conditional-access/terms-of-use",
"redirect_document_id": true
},
+ {
+ "source_path": "articles/active-directory/governance/active-directory-tou.md",
+ "redirect_url": "/azure/active-directory/conditional-access/terms-of-use",
+ "redirect_document_id": false
+ },
{
"source_path": "articles/cosmos-db/troubleshoot-azure-cosmosdb.md",
"redirect_url": "/azure/cosmos-db/storage-explorer",
@@ -30516,6 +30557,11 @@
"redirect_url": "/azure/active-directory/saas-apps/ms-confluence-jira-plugin-adminguide",
"redirect_document_id": false
},
+ {
+ "source_path": "articles/active-directory/saas-apps/alibaba-cloud-service-(role-based-sso)-tutorial.md",
+ "redirect_url": "/azure/active-directory/saas-apps/alibaba-cloud-service-role-based-sso-tutorial",
+ "redirect_document_id": false
+ },
{
"source_path": "articles/active-directory/saas-apps/index.md",
"redirect_url": "/azure/active-directory/saas-apps/tutorial-list",
@@ -30621,6 +30667,11 @@
"redirect_url": "/azure/active-directory/b2b/what-is-b2b",
"redirect_document_id": true
},
+ {
+ "source_path": "articles/active-directory/b2b/b2b-tutorial-bulk-invite.md",
+ "redirect_url": "/azure/active-directory/b2b/tutorial-bulk-invite",
+ "redirect_document_id": false
+ },
{
"source_path": "articles/security/manage-personal-data-azure.md",
"redirect_url": "/azure/security",
@@ -35365,6 +35416,11 @@
"redirect_url": "/azure/storage/common/storage-lifecycle-management-concepts",
"redirect_document_id": true
},
+ {
+ "source_path": "articles/storage/common/storage-enable-and-view-metrics.md",
+ "redirect_url": "/azure/storage/common/storage-metrics-in-azure-monitor",
+ "redirect_document_id": true
+ },
{
"source_path": "articles/azure-stack/partner/azure-stack-vaas-set-up-account.md",
"redirect_url": "/azure/azure-stack/partner/azure-stack-vaas-set-up-resources",
@@ -36746,8 +36802,6 @@
"redirect_url": "/azure/hdinsight/hbase/apache-hbase-overview",
"redirect_document_id": false
},
-
-
{
"source_path": "articles/spatial-anchors/concepts/create-locate-anchors-unity.md",
"redirect_url": "/azure/spatial-anchors/how-tos/create-locate-anchors-unity",
@@ -36763,8 +36817,6 @@
"redirect_url": "/azure/spatial-anchors/how-tos/create-locate-anchors-cpp-ndk",
"redirect_document_id": false
},
-
-
{
"source_path": "articles/cognitive-services/LUIS/luis-how-to-review-endoint-utt.md",
"redirect_url": "/azure/cognitive-services/LUIS/luis-how-to-review-endpoint-utterances",
@@ -36772,8 +36824,113 @@
},
{
"source_path": "articles/cognitive-services/Custom-Vision-Service/rest-api-tutorial.md",
- "redirect_url": "/azure/cognitive-services/Custom-Vision-Service/getting-started-build-a-classifier",
+ "redirect_url": "/azure/cognitive-services/Custom-Vision-Service/getting-started-build-a-classifier",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/data-catalog/data-catalog-prerequisites.md",
+ "redirect_url": "/azure/data-catalog/data-catalog-get-started",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/data-catalog/data-catalog-release-notes.md",
+ "redirect_url": "/azure/data-catalog/data-catalog-get-started",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/data-catalog/data-catalog-whats-new.md",
+ "redirect_url": "/azure/data-catalog/data-catalog-get-started",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/data-catalog/data-catalog-what-is-data-catalog.md",
+ "redirect_url": "/azure/data-catalog/overview",
+ "redirect_document_id": true
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-backup-restore.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-dashboard-monitor-scale-tabs.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-editions-feature-chart.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-issuer-name-issuer-key.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-migrating-to-edi-guide.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-process-edifact-invoice.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-provision-services.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-release-notes.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-services-administration-and-development-task-list.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-service-state-chart.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-throttling-thresholds.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/biztalk-troubleshoot-using-ops-logs.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/index.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
"redirect_document_id": false
- }
+ },
+ {
+ "source_path": "articles/biztalk-services/integration-hybrid-connection-create-manage.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/biztalk-services/integration-hybrid-connection-overview.md",
+ "redirect_url": "/azure/logic-apps/logic-apps-move-from-mabs",
+ "redirect_document_id": false
+ },
+ {
+ "source_path": "articles/cognitive-services/QnAMaker/How-To/publish-knowledge-base.md",
+ "redirect_url": "/azure/cognitive-services/QnAMaker/quickstarts/create-publish-knowledge-base",
+ "redirect_document_id": true
+ },
+ {
+ "source_path": "articles/cognitive-services/LUIS/luis-quickstart-intent-and-hier-entity.md",
+ "redirect_url": "/azure/cognitive-services/LUIS/tutorial-entity-roles",
+ "redirect_document_id": true
+ }
]
}
\ No newline at end of file
diff --git a/articles/active-directory-b2c/active-directory-b2c-reference-password-complexity.md b/articles/active-directory-b2c/active-directory-b2c-reference-password-complexity.md
index 7093517f6d5ba..b8cd4e48489d4 100644
--- a/articles/active-directory-b2c/active-directory-b2c-reference-password-complexity.md
+++ b/articles/active-directory-b2c/active-directory-b2c-reference-password-complexity.md
@@ -19,7 +19,7 @@ Azure Active Directory (Azure AD) B2C supports changing the complexity requireme
## Password rule enforcement
-During sign-up or password reset, an end user must supply a password that meets the complexity rules. Password complexity rules are enforced per user flow. It is possible to have one user flow require a four-digit pin during sign-up while another user flow requires a eight character string during sign-up. For example, you may use a user flow with different password complexity for adults than for children.
+During sign-up or password reset, an end user must supply a password that meets the complexity rules. Password complexity rules are enforced per user flow. It is possible to have one user flow require a four-digit pin during sign-up while another user flow requires an eight character string during sign-up. For example, you may use a user flow with different password complexity for adults than for children.
Password complexity is never enforced during sign-in. Users are never prompted during sign-in to change their password because it doesn't meet the current complexity requirement.
diff --git a/articles/active-directory-b2c/active-directory-b2c-ui-customization-custom.md b/articles/active-directory-b2c/active-directory-b2c-ui-customization-custom.md
index 35a37271fb548..dfc70df5da3c7 100644
--- a/articles/active-directory-b2c/active-directory-b2c-ui-customization-custom.md
+++ b/articles/active-directory-b2c/active-directory-b2c-ui-customization-custom.md
@@ -92,7 +92,7 @@ To create a public container in Blob storage, do the following:
Configure Blob storage for Cross-Origin Resource Sharing by doing the following:
1. In the menu, select **CORS**.
-2. For **Allowed origins**, enter `your-tenant-name.b2clogin.com`. Replace `your-tenant-name` with the name of your Azure AD B2C tenant. For example, `fabrikam.b2clogin.com`. You need to use all lowercase letters when entering your tenant name.
+2. For **Allowed origins**, enter `https://your-tenant-name.b2clogin.com`. Replace `your-tenant-name` with the name of your Azure AD B2C tenant. For example, `https://fabrikam.b2clogin.com`. You need to use all lowercase letters when entering your tenant name.
3. For **Allowed Methods**, select both `GET` and `OPTIONS`.
4. For **Allowed Headers**, enter an asterisk (*).
5. For **Exposed Headers**, enter an asterisk (*).
diff --git a/articles/active-directory-b2c/tutorial-register-applications.md b/articles/active-directory-b2c/tutorial-register-applications.md
index 085847e98575c..952f7b06c38c8 100644
--- a/articles/active-directory-b2c/tutorial-register-applications.md
+++ b/articles/active-directory-b2c/tutorial-register-applications.md
@@ -44,7 +44,7 @@ If you haven't already created your own [Azure AD B2C Tenant](tutorial-create-te
## Create a client secret
-If you’re application exchanges a code for a token, you need to create an application secret.
+If your application exchanges a code for a token, you need to create an application secret.
1. Select **Keys** and then click **Generate key**.
2. Select **Save** to view the key. Make note of the **App key** value. You use the value as the application secret in your application's code.
@@ -58,4 +58,4 @@ In this article, you learned how to:
> * Create a client secret
> [!div class="nextstepaction"]
-> [Create user flows in Azure Active Directory B2C](tutorial-create-user-flows.md)
\ No newline at end of file
+> [Create user flows in Azure Active Directory B2C](tutorial-create-user-flows.md)
diff --git a/articles/active-directory-b2c/userjourneys.md b/articles/active-directory-b2c/userjourneys.md
index 2f64cd5c46426..6e57377c67d54 100644
--- a/articles/active-directory-b2c/userjourneys.md
+++ b/articles/active-directory-b2c/userjourneys.md
@@ -173,7 +173,7 @@ The **ClaimsProviderSelection** element contains the following attributes:
### ClaimsProviderSelection example
-In the following orchestration step, the user can choose to sign in with, Facebook, LinkIn, Twitter, Google, or a local account. If the user selects one of the social identity providers, the second orchestration step executes with the selected claim exchange specified in the `TargetClaimsExchangeId` attribute. The second orchestration step redirects the user to the social identity provider to complete the sign-in process. If the user chooses to sign in with the local account, Azure AD B2C stays on the same orchestration step (the same sign-up page or sign-in page) and skips the second orchestration step.
+In the following orchestration step, the user can choose to sign in with, Facebook, LinkedIn, Twitter, Google, or a local account. If the user selects one of the social identity providers, the second orchestration step executes with the selected claim exchange specified in the `TargetClaimsExchangeId` attribute. The second orchestration step redirects the user to the social identity provider to complete the sign-in process. If the user chooses to sign in with the local account, Azure AD B2C stays on the same orchestration step (the same sign-up page or sign-in page) and skips the second orchestration step.
```XML
diff --git a/articles/active-directory/authentication/active-directory-passwords-troubleshoot.md b/articles/active-directory/authentication/active-directory-passwords-troubleshoot.md
index a3edf6b30e397..19f45a6a2d475 100644
--- a/articles/active-directory/authentication/active-directory-passwords-troubleshoot.md
+++ b/articles/active-directory/authentication/active-directory-passwords-troubleshoot.md
@@ -165,8 +165,8 @@ The most common point of failure is that firewall and or proxy ports and idle ti
For Azure AD Connect version 1.1.443.0 and above, you need outbound HTTPS access to the following:
-* passwordreset.microsoftonline.com
-* servicebus.windows.net
+* \*.passwordreset.microsoftonline.com
+* \*.servicebus.windows.net
For more granularity, reference the updated list of [Microsoft Azure Datacenter IP Ranges](https://www.microsoft.com/download/details.aspx?id=41653) updated every Wednesday and put into effect the next Monday.
diff --git a/articles/active-directory/authentication/concept-authentication-methods.md b/articles/active-directory/authentication/concept-authentication-methods.md
index 81d303ed47a8a..42be5dd0c39a8 100644
--- a/articles/active-directory/authentication/concept-authentication-methods.md
+++ b/articles/active-directory/authentication/concept-authentication-methods.md
@@ -17,7 +17,7 @@ ms.collection: M365-identity-device-management
---
# What are authentication methods?
-As an administrator choosing authentication methods for Azure Multi-Factor Authentication and self-service password reset (SSPR) it is recommended that you require users to register multiple authentication methods. When an authentication method is not available for a user, they can choose to authenticate with another method.
+As an administrator, choosing authentication methods for Azure Multi-Factor Authentication and self-service password reset (SSPR) it is recommended that you require users to register multiple authentication methods. When an authentication method is not available for a user, they can choose to authenticate with another method.
Administrators can define in policy which authentication methods are available to users of SSPR and MFA. Some authentication methods may not be available to all features. For more information about configuring your policies see the articles [How to successfully roll out self-service password reset](howto-sspr-deployment.md) and [Planning a cloud-based Azure Multi-Factor Authentication](howto-mfa-getstarted.md)
@@ -138,6 +138,9 @@ The Microsoft Authenticator app can help prevent unauthorized access to accounts
If you enable the use of both notification through mobile app and verification code from mobile app, users who register the Microsoft Authenticator app using a notification are able to use both notification and code to verify their identity.
+> [!NOTE]
+> If your organization has staff working in or traveling to China, the **Notification through mobile app** method on **Android devices** does not work in that country. Alternate methods should be made available for those users.
+
### Verification code from mobile app
The Microsoft Authenticator app or other third-party apps can be used as a software token to generate an OATH verification code. After entering your username and password, you enter the code provided by the app into the sign-in screen. The verification code provides a second form of authentication.
@@ -146,11 +149,11 @@ The Microsoft Authenticator app or other third-party apps can be used as a softw
> For self-service password reset when only one method is required for reset verification code is the only option available to users **to ensure the highest level of security**.
>
-Users may have a combination of up to 5 OATH hardware tokens or authenticator applications such as the Microsoft Authenticator app configured for use at any time.
+Users may have a combination of up to five OATH hardware tokens or authenticator applications such as the Microsoft Authenticator app configured for use at any time.
## OATH hardware tokens (public preview)
-OATH is an open standard that specifies how one-time password (OTP) codes are generated. Azure AD will support the use of OATH-TOTP SHA-1 tokens of the 30-second or 60-second variety. Customers can procure these tokens from the vendor of their choice. Note that secret keys are limited to 128 characters, which may not be compatible with all tokens.
+OATH is an open standard that specifies how one-time password (OTP) codes are generated. Azure AD will support the use of OATH-TOTP SHA-1 tokens of the 30-second or 60-second variety. Customers can procure these tokens from the vendor of their choice. Secret keys are limited to 128 characters, which may not be compatible with all tokens.
![Uploading OATH tokens to the MFA Server OATH tokens blade](media/concept-authentication-methods/oath-tokens-azure-ad.png)
@@ -172,7 +175,7 @@ Depending on the size of the CSV file, it may take a few minutes to process. Cli
Once any errors have been addressed, the administrator then can activate each key by clicking **Activate** for the token to be activated and entering the OTP displayed on the token.
-Users may have a combination of up to 5 OATH hardware tokens or authenticator applications such as the Microsoft Authenticator app configured for use at any time.
+Users may have a combination of up to five OATH hardware tokens or authenticator applications such as the Microsoft Authenticator app configured for use at any time.
## Mobile phone
diff --git a/articles/active-directory/authentication/concept-password-ban-bad-on-premises.md b/articles/active-directory/authentication/concept-password-ban-bad-on-premises.md
index 55fa5278aca25..3433c84ceff20 100644
--- a/articles/active-directory/authentication/concept-password-ban-bad-on-premises.md
+++ b/articles/active-directory/authentication/concept-password-ban-bad-on-premises.md
@@ -28,7 +28,8 @@ Azure AD password protection is designed with these principles in mind:
* No Active Directory schema changes are required. The software uses the existing Active Directory **container** and **serviceConnectionPoint** schema objects.
* No minimum Active Directory domain or forest functional level (DFL/FFL) is required.
* The software doesn't create or require accounts in the Active Directory domains that it protects.
-* User clear-text passwords don't leave the domain controller during password validation operations or at any other time.
+* User clear-text passwords never leave the domain controller, either during password validation operations or at any other time.
+* The software is not dependent on other Azure AD features; for example Azure AD password hash sync is not related and is not required in order for Azure AD password protection to function.
* Incremental deployment is supported, however the password policy is only enforced where the Domain Controller Agent (DC Agent) is installed. See next topic for more details.
## Incremental deployment
@@ -59,7 +60,7 @@ The DC Agent service is responsible for initiating the download of a new passwor
After the DC Agent service receives a new password policy from Azure AD, the service stores the policy in a dedicated folder at the root of its domain *sysvol* folder share. The DC Agent service also monitors this folder in case newer policies replicate in from other DC Agent services in the domain.
-The DC Agent service always requests a new policy at service startup. After the DC Agent service is started, it checks the age of the current locally available policy hourly. If the policy is older than one hour, the DC Agent requests a new policy from Azure AD, as described previously. If the current policy isn't older than one hour, the DC Agent continues to use that policy.
+The DC Agent service always requests a new policy at service startup. After the DC Agent service is started, it checks the age of the current locally available policy hourly. If the policy is older than one hour, the DC Agent requests a new policy from Azure AD via the proxy service, as described previously. If the current policy isn't older than one hour, the DC Agent continues to use that policy.
Whenever an Azure AD password protection password policy is downloaded, that policy is specific to a tenant. In other words, password policies are always a combination of the Microsoft global banned-password list and the per-tenant custom banned-password list.
@@ -75,6 +76,8 @@ The DC Agent service always uses the most recent locally available password poli
Azure AD password protection isn't a real-time policy application engine. There can be a delay between when a password policy configuration change is made in Azure AD and when that change reaches and is enforced on all domain controllers.
+Azure AD password protection acts as a supplement to the existing Active Directory password policies, not a replacement. This includes any other 3rd-party password filter dlls that may be installed. Active Directory always requires that all password validation components agree before accepting a password.
+
## Forest/tenant binding for password protection
Deployment of Azure AD password protection in an Active Directory forest requires registration of that forest with Azure AD. Each proxy service that is deployed must also be registered with Azure AD. These forest and proxy registrations are associated with a specific Azure AD tenant, which is identified implicitly by the credentials that are used during registration.
diff --git a/articles/active-directory/authentication/concept-registration-mfa-sspr-combined.md b/articles/active-directory/authentication/concept-registration-mfa-sspr-combined.md
index a3413e1902b4e..36b2e2639bb07 100644
--- a/articles/active-directory/authentication/concept-registration-mfa-sspr-combined.md
+++ b/articles/active-directory/authentication/concept-registration-mfa-sspr-combined.md
@@ -1,5 +1,5 @@
---
-title: Combined registration for Azure AD SSPR and MFA (preview) - Azure Active Directory
+title: Combined registration for Azure AD SSPR and Multi-Factor Authentication (preview) - Azure Active Directory
description: Azure AD Multi-Factor Authentication and self-service password reset registration (preview)
services: active-directory
@@ -17,32 +17,34 @@ ms.collection: M365-identity-device-management
---
# Combined security information registration (preview)
-Before combined registration, users registered authentication methods for Azure Multi-Factor Authentication (MFA) and self-service password reset (SSPR) through two different experiences. People were confused that similar methods were used for both Azure MFA and SSPR but they had to register for each feature separately. Now, with combined registration, users can register once and get the benefits of both Azure MFA and SSPR.
+Before combined registration, users registered authentication methods for Azure Multi-Factor Authentication and self-service password reset (SSPR) separately. People were confused that similar methods were used for Multi-Factor Authentication and SSPR but they had to register for both features. Now, with combined registration, users can register once and get the benefits of both Multi-Factor Authentication and SSPR.
![My Profile showing registered Security info for a user](media/concept-registration-mfa-sspr-combined/combined-security-info-defualts-registered.png)
-Before enabling the new experience, review this administrator-focused documentation and the user-focused documentation to ensure you understand the functionality and impact of this feature. Base your training on the user documentation to prepare your users for the new experience and help to ensure a successful rollout.
+Before enabling the new experience, review this administrator-focused documentation and the user-focused documentation to ensure you understand the functionality and effect of this feature. Base your training on the user documentation to prepare your users for the new experience and help to ensure a successful rollout.
+
+Azure AD combined security information registration is not currently available to national clouds like Azure US Government, Azure Germany, or Azure China 21Vianet.
| |
| --- |
-| Combined security information registration for Azure Multi-Factor Authentication and Azure AD self-service password reset is a public preview feature of Azure Active Directory. For more information about previews, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/)|
+| Combined security information registration for Multi-Factor Authentication and Azure Active Directory (Azure AD) self-service password reset is a public preview feature of Azure AD. For more information about previews, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).|
| |
> [!IMPORTANT]
-> If a user is enabled for both the original preview and the enhanced combined registration experience, they will see the new experience. Users who are enabled for both experiences will only see the new My Profile experience. The new My Profile aligns with the look and feel of combined registration and provides a seamless experience for users. Users can see My Profile by going to [https://myprofile.microsoft.com](https://myprofile.microsoft.com).
+> Users who are enabled for both the original preview and the enhanced combined registration experience will see the new behavior. Users who are enabled for both experiences will see only the new My Profile experience. The new My Profile aligns with the look and feel of combined registration and provides a seamless experience for users. Users can see My Profile by going to [https://myprofile.microsoft.com](https://myprofile.microsoft.com).
-The MyProfile pages are localized based on the current language settings on the machine accessing the page. Microsoft stores the most recent language utilized in the browser cache so subsequent attempts to access will continue to render in the last language used. Clearing the cache will cause the pages to re-render. If you would like to force a specific language adding a `?lng=de-DE` to the end of the URL where `de-DE` is set to the appropriate language code will force the pages to render in that language.
+My Profile pages are localized based on the language settings of the computer accessing the page. Microsoft stores the most recent language used in the browser cache, so subsequent attempts to access the pages will continue to render in the last language used. If you clear the cache, the pages will re-render. If you want to force a specific language, you can add `?lng=` to the end of the URL, where `` is the code of the language you want to render.
-![Setup SSPR or other additional security verification methods](media/howto-registration-mfa-sspr-combined/combined-security-info-my-profile.png)
+![Set up SSPR or other security verification methods](media/howto-registration-mfa-sspr-combined/combined-security-info-my-profile.png)
-## Methods available in converged registration
+## Methods available in combined registration
-At this time, combined registration supports the following methods and actions for those methods:
+Combined registration supports the following authentication methods and actions:
| | Register | Change | Delete |
| --- | --- | --- | --- |
-| Microsoft Authenticator | Yes (max 5) | No | Yes |
-| Other authenticator app | Yes (max 5) | No | Yes |
+| Microsoft Authenticator | Yes (maximum of 5) | No | Yes |
+| Other authenticator app | Yes (maximum of 5) | No | Yes |
| Hardware token | No | No | Yes |
| Phone | Yes | Yes | Yes |
| Alternate phone | Yes | Yes | Yes |
@@ -52,87 +54,87 @@ At this time, combined registration supports the following methods and actions f
| App passwords | Yes | No | Yes |
> [!NOTE]
-> App passwords are only available to users who have been enforced for MFA. App passwords are not available to users who are enabled for MFA via a conditional access policy.
+> App passwords are available only to users who have been enforced for Multi-Factor Authentication. App passwords are not available to users who are enabled for Multi-Factor Authentication via a conditional access policy.
-Users can set the following options as their default method for MFA:
+Users can set one of the following options as the default Multi-Factor Authentication method:
-- Microsoft Authenticator – notification
-- Authenticator app or hardware token – code
-- Phone call
-- Text message
+- Microsoft Authenticator – notification.
+- Authenticator app or hardware token – code.
+- Phone call.
+- Text message.
-As we continue to add more authentication methods such to Azure AD, those methods will be available in combined registration.
+As we continue to add more authentication methods to Azure AD, those methods will be available in combined registration.
-## Combined registration Modes
+## Combined registration modes
-There are two “modes” of combined registration: interrupt and manage.
+There are two modes of combined registration: interrupt and manage.
-Interrupt mode, is a wizard-like experience, shown to a user when they register or refresh their security info at sign in.
+- **Interrupt mode** is a wizard-like experience, presented to users when they register or refresh their security info at sign-in.
-Manage mode is part of the user’s profile and allows them to manage their security info.
+- **Manage mode** is part of the user profile and allows users to manage their security info.
-For both modes, if a user has previously registered a method that can be used for MFA, they will need to perform MFA before they can access their security info.
+For both modes, users who have previously registered a method that can be used for Multi-Factor Authentication will need to perform Multi-Factor Authentication before they can access their security info.
### Interrupt mode
-Combined registration respects both MFA and SSPR policies, if both are enabled for your tenant. These policies control, whether a user is interrupted to register during sign in, and which methods are available to register.
+Combined registration respects both Multi-Factor Authentication and SSPR policies, if both are enabled for your tenant. These policies control whether a user is interrupted for registration during sign-in and which methods are available for registration.
-The following list several scenarios where a user may be prompted to register or refresh their security info:
+Here are several scenarios in which users might be prompted to register or refresh their security info:
-* MFA registration enforced through Identity Protection: Users will be asked to register during sign in. They register MFA methods and SSPR methods (if the user is enabled for SSPR).
-* MFA registration enforced through per-user MFA: Users will be asked to register during sign in. They register MFA methods and SSPR methods (if the user is enabled for SSPR).
-* MFA registration enforced through conditional access or other policies: Users are asked to register when accessing a resource that requires MFA. Users will register MFA methods and SSPR methods (if the user is enabled for SSPR).
-* SSPR registration enforced: Users are asked to register during sign in. They only register SSPR methods
-* SSPR refresh enforced: Users are required to review their security info at an interval set by the admin. Users are shown their info and can choose "Looks good" or make changes if needed.
+* Multi-Factor Authentication registration enforced through Identity Protection: Users are asked to register during sign-in. They register Multi-Factor Authentication methods and SSPR methods (if the user is enabled for SSPR).
+* Multi-Factor Authentication registration enforced through per-user Multi-Factor Authentication: Users are asked to register during sign-in. They register Multi-Factor Authentication methods and SSPR methods (if the user is enabled for SSPR).
+* Multi-Factor Authentication registration enforced through conditional access or other policies: Users are asked to register when they use a resource that requires Multi-Factor Authentication. They register Multi-Factor Authentication methods and SSPR methods (if the user is enabled for SSPR).
+* SSPR registration enforced: Users are asked to register during sign-in. They register only SSPR methods.
+* SSPR refresh enforced: Users are required to review their security info at an interval set by the admin. Users are shown their info and can confirm the current info or make changes if needed.
-When registration is enforced, users are shown the minimum number of methods needed to be compliant with both MFA and SSPR policies from most to least secure.
+When registration is enforced, users are shown the minimum number of methods needed to be compliant with both Multi-Factor Authentication and SSPR policies, from most to least secure.
-Example:
+For example:
* A user is enabled for SSPR. The SSPR policy required two methods to reset and has enabled mobile app code, email, and phone.
* This user is required to register two methods.
- * They're shown authenticator app and phone by default.
+ * The user is shown authenticator app and phone by default.
* The user can choose to register email instead of authenticator app or phone.
-The following flowchart describes which methods are shown to a user when interrupted to register during sign in:
+This flowchart describes which methods are shown to a user when interrupted to register during sign-in:
-![Combined security info flow chart](media/concept-registration-mfa-sspr-combined/combined-security-info-flow-chart.png)
+![Combined security info flowchart](media/concept-registration-mfa-sspr-combined/combined-security-info-flow-chart.png)
-If you have both MFA and SSPR enabled, we recommend that you enforce MFA registration.
+If you have both Multi-Factor Authentication and SSPR enabled, we recommend that you enforce Multi-Factor Authentication registration.
-If the SSPR policy requires users to review their security info at a regular interval, users are interrupted during sign in and shown all their registered methods. They can choose “Looks good” if the info is up-to-date or they can choose “Edit info” to make changes.
+If the SSPR policy requires users to review their security info at regular intervals, users are interrupted during sign-in and shown all their registered methods. They can confirm the current info if it's up-to-date, or they can make changes if they need to.
### Manage mode
-Users can access manage mode by going to [https://aka.ms/mysecurityinfo](https://aka.ms/mysecurityinfo) or by choosing “Security info” from My Profile. From there, users can add methods, delete or change existing methods, change their default method, and more.
+Users can access manage mode by going to [https://aka.ms/mysecurityinfo](https://aka.ms/mysecurityinfo) or by selecting **Security info** from My Profile. From there, users can add methods, delete or change existing methods, change the default method, and more.
## Key usage scenarios
-### Set up security info during sign in
+### Set up security info during sign-in
An admin has enforced registration.
-A user has not set up all required security info and navigates to the Azure portal. After entering their username and password, the user is prompted to set up security info. The user then follows the steps shown in the wizard to set up the required security info. The user can choose to set up methods other than what is shown by default if your settings allow. At the end of the wizard, the user reviews the methods they set up and their default method for MFA. To complete the setup process, the user confirms the info and continues to the Azure portal.
+A user has not set up all required security info and goes to the Azure portal. After entering the user name and password, the user is prompted to set up security info. The user then follows the steps shown in the wizard to set up the required security info. If your settings allow it, the user can choose to set up methods other than those shown by default. After completing the wizard, users review the methods they set up and their default method for Multi-Factor Authentication. To complete the setup process, the user confirms the info and continues to the Azure portal.
### Set up security info from My Profile
An admin has not enforced registration.
-A user who has not yet set up all required security info navigates to [https://myprofile.microsoft.com](https://myprofile.microsoft.com). The user then chooses **Security info** from the left-hand navigation. From there, the user chooses to add a method, selects any of the methods available to them, and follows the steps to set up that method. When finished, the user sees the method they just set up on the security info page.
+A user who hasn't yet set up all required security info goes to [https://myprofile.microsoft.com](https://myprofile.microsoft.com). The user selects **Security info** in the left pane. From there, the user chooses to add a method, selects any of the methods available, and follows the steps to set up that method. When finished, the user sees the method that was just set up on the Security info page.
### Delete security info from My Profile
-A user who has previously set up at least one method navigates to [https://aka.ms/mysecurityinfo](https://aka.ms/mysecurityinfo). The user chooses to delete one of the previously registered methods. When finished, the user no longer sees that method on the security info page.
+A user who has previously set up at least one method navigates to [https://aka.ms/mysecurityinfo](https://aka.ms/mysecurityinfo). The user chooses to delete one of the previously registered methods. When finished, the user no longer sees that method on the Security info page.
-### Change default method from My Profile
+### Change the default method from My Profile
-A user who has previously set up at least one method that can be used for MFA navigates to [https://aka.ms/mysecurityinfo](https://aka.ms/mysecurityinfo). The user changes their current default method to a different default method. When finished, the user sees their new default method on the security info page.
+A user who has previously set up at least one method that can be used for Multi-Factor Authentication navigates to [https://aka.ms/mysecurityinfo](https://aka.ms/mysecurityinfo). The user changes the current default method to a different default method. When finished, the user sees the new default method on the Security info page.
## Next steps
[Enable combined registration in your tenant](howto-registration-mfa-sspr-combined.md)
-[Available methods for MFA and SSPR](concept-authentication-methods.md)
+[Available methods for Multi-Factor Authentication and SSPR](concept-authentication-methods.md)
[Configure self-service password reset](howto-sspr-deployment.md)
diff --git a/articles/active-directory/authentication/howto-mfa-getstarted.md b/articles/active-directory/authentication/howto-mfa-getstarted.md
index eca726076dae5..772eb8f18022b 100644
--- a/articles/active-directory/authentication/howto-mfa-getstarted.md
+++ b/articles/active-directory/authentication/howto-mfa-getstarted.md
@@ -57,9 +57,15 @@ Azure Multi-factor Authentication is deployed by enforcing policies with conditi
* Compliant device
* Hybrid Azure AD joined device
* Approved client application
+
+
+Use the customizable posters and email templates in [multi-factor authentication rollout materials] to roll out multi-factor authentication to your organization. (https://www.microsoft.com/en-us/download/details.aspx?id=57600&WT.mc_id=rss_alldownloads_all)
+
+## Enable Multi-Factor Authentication with Conditional Access
Conditional access policies enforce registration, requiring unregistered users to complete registration at first sign-in, an important security consideration.
+
[Azure AD Identity Protection](../identity-protection/howto-configure-risk-policies.md) contributes both a registration policy for and automated risk detection and remediation policies to the Azure Multi-Factor Authentication story. Policies can be created to force password changes when there is a threat of compromised identity or require MFA when a sign-in is deemed risky by the following [events](../reports-monitoring/concept-risk-events.md):
* Leaked credentials
@@ -99,6 +105,9 @@ Administrators can choose the [authentication methods](../authentication/concept
A push notification is sent to the Microsoft Authenticator app on your mobile device. The user views the notification and selects **Approve** to complete verification. Push notifications through a mobile app provide the least intrusive option for users. They are also the most reliable and secure option because they use a data connection rather than telephony.
+> [!NOTE]
+> If your organization has staff working in or traveling to China, the **Notification through mobile app** method on **Android devices** does not work in that country. Alternate methods should be made available for those users.
+
### Verification code from mobile app
A mobile app like the Microsoft Authenticator app generates a new OATH verification code every 30 seconds. The user enters the verification code into the sign-in interface. The mobile app option can be used whether or not the phone has a data or cellular signal.
@@ -304,4 +313,4 @@ Find solutions for common issues with Azure MFA at the [Troubleshooting Azure Mu
* [What are authentication methods?](concept-authentication-methods.md)
* [Enable converged registration for Azure Multi-Factor Authentication and Azure AD self-service password reset](concept-registration-mfa-sspr-converged.md)
-* Why was a user prompted or not prompted to perform MFA? See the section [Azure AD sign-ins report in the Reports in Azure Multi-Factor Authentication document](howto-mfa-reporting.md#azure-ad-sign-ins-report).
\ No newline at end of file
+* Why was a user prompted or not prompted to perform MFA? See the section [Azure AD sign-ins report in the Reports in Azure Multi-Factor Authentication document](howto-mfa-reporting.md#azure-ad-sign-ins-report).
diff --git a/articles/active-directory/authentication/howto-mfa-nps-extension.md b/articles/active-directory/authentication/howto-mfa-nps-extension.md
index 01e348ccb86f4..22506706a5856 100644
--- a/articles/active-directory/authentication/howto-mfa-nps-extension.md
+++ b/articles/active-directory/authentication/howto-mfa-nps-extension.md
@@ -6,7 +6,7 @@ services: multi-factor-authentication
ms.service: active-directory
ms.subservice: authentication
ms.topic: conceptual
-ms.date: 07/11/2018
+ms.date: 04/12/2019
ms.author: joflore
author: MicrosoftGuyJFlo
@@ -76,6 +76,12 @@ The NPS server needs to be able to communicate with the following URLs over port
* https://adnotifications.windowsazure.com
* https://login.microsoftonline.com
+Additionally, connectivity to the following URLs is required to complete the [setup of the adapter using the provided PowerShell script](#run-the-powershell-script)
+
+- https://login.microsoftonline.com
+- https://provisioningapi.microsoftonline.com
+- https://aadcdn.msauth.net
+
## Prepare your environment
Before you install the NPS extension, you want to prepare you environment to handle the authentication traffic.
@@ -140,6 +146,14 @@ Your users also need to follow these steps to enroll before they can authenticat
2. Copy the binary to the Network Policy Server you want to configure.
3. Run *setup.exe* and follow the installation instructions. If you encounter errors, double-check that the two libraries from the prerequisite section were successfully installed.
+#### Upgrade the NPS extension
+
+When upgrading an existing NPS extension install, to avoid a reboot of the underlying server complete the following steps:
+
+1. Uninstall the existing version
+1. Run the new installer
+1. Restart the Network Policy Server (IAS) service
+
### Run the PowerShell script
The installer creates a PowerShell script in this location: `C:\Program Files\Microsoft\AzureMfa\Config` (where C:\ is your installation drive). This PowerShell script performs the following actions each time it is run:
@@ -204,6 +218,8 @@ You can choose to create this key and set it to FALSE while your users are onboa
Look for the self-signed certificate created by the installer in the cert store, and check that the private key has permissions granted to user **NETWORK SERVICE**. The cert has a subject name of **CN \, OU = Microsoft NPS Extension**
+Self-signed certificates generated by the *AzureMfaNpsExtnConfigSetup.ps1* script also have a validity lifetime of two years. When verifying that the certificate is installed, you should also check that the certificate has not expired.
+
-------------------------------------------------------------
### How can I verify that my client cert is associated to my tenant in Azure Active Directory?
@@ -226,7 +242,7 @@ Connect-MsolService
Get-MsolServicePrincipalCredential -AppPrincipalId "981f26a1-7f43-403b-a875-f8b09b8cd720" -ReturnKeyValues 1 | select -ExpandProperty "value" | out-file c:\npscertficicate.cer
```
-Once you run this command, go to your C drive, locate the file and double click on it. Go to details and scroll down to "thumbprint", compare the thumbprint of the certificate installed on the server to this one. The certificate thumbprints should match.
+Once you run this command, go to your C drive, locate the file and double-click on it. Go to details and scroll down to "thumbprint", compare the thumbprint of the certificate installed on the server to this one. The certificate thumbprints should match.
Valid-From and Valid-Until timestamps, which are in human-readable form, can be used to filter out obvious misfits if the command returns more than one cert.
@@ -234,7 +250,7 @@ Valid-From and Valid-Until timestamps, which are in human-readable form, can be
### Why cant I sign in?
-Check that your password hasn't expired. The NPS Extension does not support changing passwords as part of the sign-in workflow. Please contact your organization's IT Staff for further assistance.
+Check that your password hasn't expired. The NPS Extension does not support changing passwords as part of the sign-in workflow. Contact your organization's IT Staff for further assistance.
-------------------------------------------------------------
@@ -259,6 +275,14 @@ Verify that AD Connect is running, and that the user is present in both Windows
Verify that https://adnotifications.windowsazure.com is reachable from the server running the NPS extension.
+-------------------------------------------------------------
+
+### Why is authentication not working, despite a valid certificate being present?
+
+If your previous computer certificate has expired, and a new certificate has been generated, you should delete any expired certificates. Having expired certificates can cause issues with the NPS Extension starting.
+
+To check if you have a valid certificate, check the local Computer Account's Certificate Store using MMC, and ensure the certificate has not passed its expiry date. To generate a newly valid certificate, rerun the steps under the section "[Run the PowerShell script](#run-the-powershell-script)"
+
## Managing the TLS/SSL Protocols and Cipher Suites
It is recommended that older and weaker cipher suites be disabled or removed unless required by your organization. Information on how to complete this task can be found in the article [Managing SSL/TLS Protocols and Cipher Suites for AD FS](https://docs.microsoft.com/windows-server/identity/ad-fs/operations/manage-ssl-protocols-in-ad-fs)
diff --git a/articles/active-directory/authentication/howto-mfaserver-adfs-2012.md b/articles/active-directory/authentication/howto-mfaserver-adfs-2012.md
index ff9427b3b6cc1..3a34621dd5253 100644
--- a/articles/active-directory/authentication/howto-mfaserver-adfs-2012.md
+++ b/articles/active-directory/authentication/howto-mfaserver-adfs-2012.md
@@ -78,7 +78,7 @@ At this point, Multi-Factor Authentication Server is set up to be an additional
Follow these steps to edit the MultiFactorAuthenticationAdfsAdapter.config file:
1. Set the **UseWebServiceSdk** node to **true**.
-2. Set the value for **WebServiceSdkUrl** to the URL of the Multi-Factor Authentication Web Service SDK. For example: **, Where *certificatename* is the name of your certificate.
+2. Set the value for **WebServiceSdkUrl** to the URL of the Multi-Factor Authentication Web Service SDK. For example: *https:\/\/contoso.com/\/MultiFactorAuthWebServiceSdk/PfWsSdk.asmx*, Where *\* is the name of your certificate.
3. Edit the Register-MultiFactorAuthenticationAdfsAdapter.ps1 script by adding `-ConfigurationFilePath <path>` to the end of the `Register-AdfsAuthenticationProvider` command, where *<path>* is the full path to the MultiFactorAuthenticationAdfsAdapter.config file.
### Configure the Web Service SDK with a username and password
diff --git a/articles/active-directory/authentication/howto-mfaserver-deploy-ha.md b/articles/active-directory/authentication/howto-mfaserver-deploy-ha.md
index be9868b62195f..ac0b252774d11 100644
--- a/articles/active-directory/authentication/howto-mfaserver-deploy-ha.md
+++ b/articles/active-directory/authentication/howto-mfaserver-deploy-ha.md
@@ -33,7 +33,7 @@ Both MFA master and subordinate MFA Servers communicate with the MFA Service whe
After successful authentication with AD, the MFA Server will communicate with the MFA Service. The MFA Server waits for notification from the MFA Service to allow or deny the user access to the application.
-If the MFA master server goes offline, authentications can still be processed, but operations that require changes to the MFA database cannot be processed. (Examples include: the addition of users, self-service PIN changes, and changing user information)
+If the MFA master server goes offline, authentications can still be processed, but operations that require changes to the MFA database cannot be processed. (Examples include: the addition of users, self-service PIN changes, changing user information, or access to the user portal)
## Deployment
diff --git a/articles/active-directory/authentication/howto-registration-mfa-sspr-combined-troubleshoot.md b/articles/active-directory/authentication/howto-registration-mfa-sspr-combined-troubleshoot.md
index a0ca70752a24e..b2d7c54154d03 100644
--- a/articles/active-directory/authentication/howto-registration-mfa-sspr-combined-troubleshoot.md
+++ b/articles/active-directory/authentication/howto-registration-mfa-sspr-combined-troubleshoot.md
@@ -1,5 +1,5 @@
---
-title: Troubleshoot combined registration for Azure AD SSPR and MFA (preview) - Azure Active Directory
+title: Troubleshoot combined registration for Azure AD SSPR and Multi-Factor Authentication (preview) - Azure Active Directory
description: Troubleshoot Azure AD Multi-Factor Authentication and self-service password reset combined registration (preview)
services: active-directory
@@ -17,145 +17,145 @@ ms.collection: M365-identity-device-management
---
# Troubleshooting combined security information registration (preview)
-The information provided in this article can guide administrators who are troubleshooting issues with the combined registration experience reported by their end-users.
+The information in this article is meant to guide admins who are troubleshooting issues reported by users of the combined registration experience.
| |
| --- |
-| Combined security information registration for Azure Multi-Factor Authentication and Azure AD self-service password reset is a public preview feature of Azure Active Directory. For more information about previews, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/)|
+| Combined security information registration for Azure Multi-Factor Authentication and Azure Active Directory (Azure AD) self-service password reset is a public preview feature of Azure AD. For more information about previews, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).|
| |
## Audit logs
-The events logged for combined registration are under the “Authentication Methods” category in the Azure AD audit logs.
+The events logged for combined registration are in the Authentication Methods category in the Azure AD audit logs.
![Azure AD Audit logs interface showing registration events](media/howto-registration-mfa-sspr-combined-troubleshoot/combined-security-info-audit-log.png)
-The following lists all audit events generated by combined registration:
+The following table lists all audit events generated by combined registration:
| Activity | Status | Reason | Description |
| --- | --- | --- | --- |
| User registered all required security info | Success | User registered all required security info. | This event occurs when a user has successfully completed registration.|
| User registered all required security info | Failure | User canceled security info registration. | This event occurs when a user cancels registration from interrupt mode.|
-| User registered security info | Success | User registered "method". | This event occurs when a user registers an individual method. "Method" can be Authenticator app, Phone, Email, Security questions, App password, Alternate phone, etc.|
-| User reviewed security info | Success | User successfully reviewed security info. | This event occurs when a user clicks "Looks good" on the security info review page.|
-| User reviewed security info | Failure | User failed to review security info. | This event occurs when a user clicks “Looks good” on the security info review page but something fails in the backend.|
-| User deleted security info | Success | User deleted "method". | This event occurs when a user deletes an individual method. "Method" can be Authenticator app, Phone, Email, Security questions, App password, Alternate phone, etc.|
-| User deleted security info | Failure | User failed to delete "method". | This event occurs when a user tries to delete a method but it fails for some reason. "Method" can be Authenticator app, Phone, Email, Security questions, App password, Alternate phone, etc.|
-| User changed default security info | Success | User changed default security info to "method". | This event occurs when a user changes their default method. "Method" can be Authenticator app notification, code from my authenticator app or token, Call +X XXXXXXXXXX, Text a code to +X XXXXXXXXX, etc.|
-| User changed default security info | Failure | User failed to change default security info to "method". | This event occurs when a user tries to change their default method but it fails for some reason. "Method" can be Authenticator app notification, a code from my authenticator app or token, Call +X XXXXXXXXXX, Text a code to +X XXXXXXXXX, etc.|
+| User registered security info | Success | User registered *method*. | This event occurs when a user registers an individual method. *Method* can be Authenticator app, Phone, Email, Security questions, App password, Alternate phone, and so on.|
+| User reviewed security info | Success | User successfully reviewed security info. | This event occurs when a user selects **Looks good** on the security info review page.|
+| User reviewed security info | Failure | User failed to review security info. | This event occurs when a user selects **Looks good** on the security info review page but something fails on the backend.|
+| User deleted security info | Success | User deleted *method*. | This event occurs when a user deletes an individual method. *Method* can be Authenticator app, Phone, Email, Security questions, App password, Alternate phone, and so on.|
+| User deleted security info | Failure | User failed to delete *method*. | This event occurs when a user tries to delete a method but the attempt fails for some reason. *Method* can be Authenticator app, Phone, Email, Security questions, App password, Alternate phone, and so on.|
+| User changed default security info | Success | User changed the default security info for *method*. | This event occurs when a user changes the default method. *Method* can be Authenticator app notification, A code from my authenticator app or token, Call +X XXXXXXXXXX, Text a code to +X XXXXXXXXX, and so on.|
+| User changed default security info | Failure | User failed to change the default security info for *method*. | This event occurs when a user tries to change the default method but the attempt fails for some reason. *Method* can be Authenticator app notification, A code from my authenticator app or token, Call +X XXXXXXXXXX, Text a code to +X XXXXXXXXX, and so on.|
## Troubleshooting interrupt mode
| Symptom | Troubleshooting steps |
| --- | --- |
-| I’m not seeing the methods I expected to see. | 1. Check if the user has an Azure AD administrator role. If yes, review the SSPR administrator policy differences. 2. Determine whether the user is being interrupted due to MFA registration enforcement or SSPR registration enforcement. Review the flowchart under combined registration modes to determine which methods should be shown. 3. Determine how recently the MFA or SSPR policy was changed. If the change was recent, it may take some time for the updated policy to propagate.|
+| I’m not seeing the methods I expected to see. | 1. Check if the user has an Azure AD admin role. If yes, view the SSPR admin policy differences. 2. Determine whether the user is being interrupted because of Multi-Factor Authentication registration enforcement or SSPR registration enforcement. See the [flowchart](../../active-directory/authentication/concept-registration-mfa-sspr-combined.md#combined-registration-modes) under "Combined registration modes" to determine which methods should be shown. 3. Determine how recently the Multi-Factor Authentication or SSPR policy was changed. If the change was recent, it might take some time for the updated policy to propagate.|
## Troubleshooting manage mode
| Symptom | Troubleshooting steps |
| --- | --- |
-| I don’t have the option to add a particular method. | 1. Determine whether the method is enabled for MFA or for SSPR. 2. If the method is enabled, resave the policies and wait 1-2 hours before testing again. 3. If the method is enabled, ensure that the user hasn’t already set up the maximum number of that method that they're allowed to set up.|
+| I don’t have the option to add a particular method. | 1. Determine whether the method is enabled for Multi-Factor Authentication or for SSPR. 2. If the method is enabled, save the policies again and wait 1-2 hours before testing again. 3. If the method is enabled, ensure that the user hasn’t already set up the maximum number of that method that they're allowed to set up.|
## Disable combined registration
-When a user registers their phone number and/or mobile app in the new combined experience, our service stamps a set of flags (StrongAuthenticationMethods) for those methods on that user. This functionality allows the user to perform Azure Multi-Factor Authentication (MFA) with those methods whenever MFA is required.
+When a user registers a phone number and/or mobile app in the new combined experience, our service stamps a set of flags (StrongAuthenticationMethods) for those methods on that user. This functionality allows the user to perform Multi-Factor Authentication with those methods whenever Multi-Factor Authentication is required.
-The methods that users register through the new experience have the StrongAuthenticationMethods property set. If an admin enables the preview, users register through the new experience, and then the admin disables the preview, users may unknowingly be registered for MFA also.
+If an admin enables the preview, users register through the new experience, and then the admin disables the preview, users might unknowingly be registered for Multi-Factor Authentication also.
-If a user who has completed combined registration navigates to the current self-service password reset (SSPR) registration page, at [https://aka.ms/ssprsetup](https://aka.ms/ssprsetup), they will be prompted to perform MFA before they can access that page. This step is an expected behavior from a technical standpoint, but for users who were previously registered for SSPR only, this step is a new behavior. Although this extra step does improve the user’s security posture by providing an additional level of security, admins may want to roll back their users so that they are no longer capable of performing MFA.
+If a user who has completed combined registration goes to the current self-service password reset (SSPR) registration page at [https://aka.ms/ssprsetup](https://aka.ms/ssprsetup), the user will be prompted to perform Multi-Factor Authentication before they can access that page. This step is expected from a technical standpoint, but it's new for users who were previously registered for SSPR only. Though this extra step does improve the user’s security posture by providing another level of security, admins might want to roll back their users so that they're no longer able to perform Multi-Factor Authentication.
### How to roll back users
-If you as an administrator want to reset a user's MFA settings, we have created a PowerShell script that will clear the StrongAuthenticationMethods property for a user’s mobile app and/or phone number. Running this script for your users means that they will need to re-register for MFA if needed. We recommend testing rollback with one or two users before rolling back all the affected users.
+If you, as an admin, want to reset a user's Multi-Factor Authentication settings, you can use the PowerShell script provided in the next section. The script will clear the StrongAuthenticationMethods property for a user’s mobile app and/or phone number. If you run this script for your users, they'll need to re-register for Multi-Factor Authentication if they need it. We recommend testing rollback with one or two users before rolling back all affected users.
-The steps that follow will help you roll back a user or group of users:
+The steps that follow will help you roll back a user or group of users.
#### Prerequisites
-1. You will need to install the appropriate Azure AD PowerShell modules. In a PowerShell window, run these commands to install the modules:
+1. Install the appropriate Azure AD PowerShell modules. In a PowerShell window, run these commands to install the modules:
```powershell
Install-Module -Name MSOnline
Import-Module MSOnline
```
-1. Save the list of affected user object ID/IDs to your machine as a text file with one ID per line. Make note of the location of the file.
-1. Save the following script to your machine and make note of the location of the script:
-
-```powershell
-<#
-//********************************************************
-//* *
-//* Copyright (C) Microsoft. All rights reserved. *
-//* *
-//********************************************************
-#>
-
-param($path)
-
-# Define Remediation Fn
-function RemediateUser {
-
- param
- (
- $ObjectId
- )
-
- $user = Get-MsolUser -ObjectId $ObjectId
-
- Write-Host "Checking if user is eligible for rollback: UPN: " $user.UserPrincipalName " ObjectId: " $user.ObjectId -ForegroundColor Yellow
-
- $hasMfaRelyingParty = $false
- foreach($p in $user.StrongAuthenticationRequirements)
- {
- if ($p.RelyingParty -eq "*")
- {
- $hasMfaRelyingParty = $true
- Write-Host "User was enabled for per-user MFA." -ForegroundColor Yellow
- }
- }
-
- if ($user.StrongAuthenticationMethods.Count -gt 0 -and -not $hasMfaRelyingParty)
- {
- Write-Host $user.UserPrincipalName " is eligible for rollback" -ForegroundColor Yellow
- Write-Host "Rolling back user ..." -ForegroundColor Yellow
- Reset-MsolStrongAuthenticationMethodByUpn -UserPrincipalName $user.UserPrincipalName
- Write-Host "Successfully rolled back user " $user.UserPrincipalName -ForegroundColor Green
- }
- else
- {
- Write-Host $user.UserPrincipalName " is not eligible for rollback. No action required."
- }
-
- Write-Host ""
- Start-Sleep -Milliseconds 750
-}
-
-# Connect
-Import-Module MSOnline
-Connect-MsolService
-
-foreach($line in Get-Content $path)
-{
- RemediateUser -ObjectId $line
-}
-```
+1. Save the list of affected user object IDs to your computer as a text file with one ID per line. Make note of the location of the file.
+1. Save the following script to your computer and make note of the location of the script:
+
+ ```powershell
+ <#
+ //********************************************************
+ //* *
+ //* Copyright (C) Microsoft. All rights reserved. *
+ //* *
+ //********************************************************
+ #>
+
+ param($path)
+
+ # Define Remediation Fn
+ function RemediateUser {
+
+ param
+ (
+ $ObjectId
+ )
+
+ $user = Get-MsolUser -ObjectId $ObjectId
+
+ Write-Host "Checking if user is eligible for rollback: UPN: " $user.UserPrincipalName " ObjectId: " $user.ObjectId -ForegroundColor Yellow
+
+ $hasMfaRelyingParty = $false
+ foreach($p in $user.StrongAuthenticationRequirements)
+ {
+ if ($p.RelyingParty -eq "*")
+ {
+ $hasMfaRelyingParty = $true
+ Write-Host "User was enabled for per-user MFA." -ForegroundColor Yellow
+ }
+ }
+
+ if ($user.StrongAuthenticationMethods.Count -gt 0 -and -not $hasMfaRelyingParty)
+ {
+ Write-Host $user.UserPrincipalName " is eligible for rollback" -ForegroundColor Yellow
+ Write-Host "Rolling back user ..." -ForegroundColor Yellow
+ Reset-MsolStrongAuthenticationMethodByUpn -UserPrincipalName $user.UserPrincipalName
+ Write-Host "Successfully rolled back user " $user.UserPrincipalName -ForegroundColor Green
+ }
+ else
+ {
+ Write-Host $user.UserPrincipalName " is not eligible for rollback. No action required."
+ }
+
+ Write-Host ""
+ Start-Sleep -Milliseconds 750
+ }
+
+ # Connect
+ Import-Module MSOnline
+ Connect-MsolService
+
+ foreach($line in Get-Content $path)
+ {
+ RemediateUser -ObjectId $line
+ }
+ ```
#### Rollback
-In a PowerShell window, run the following command after updating the highlighted locations. Enter global administrator credentials when prompted. The script will output the outcome of each user update operation.
+In a PowerShell window, run the following command, providing the script and user file locations. Enter global administrator credentials when prompted. The script will output the outcome of each user update operation.
`
+
```
Alternatively, if you have Node installed, you can download it through npm:
@@ -187,14 +200,14 @@ myMSALObj.acquireTokenSilent(applicationConfig.graphScopes).then(function (acces
#### Get a user token interactively
-There are situations where you need to force users to interact with Azure AD v2.0 endpoint. For example:
+There are situations where you need to force users to interact with Microsoft identity platform endpoint. For example:
* Users may need to reenter their credentials because their password has expired
* Your application is requesting access to additional resource scopes that the user needs to consent to
* Two factor authentication is required
The usual recommended pattern for most applications is to call `acquireTokenSilent` first, then catch the exception and then call `acquireTokenRedirect` (or `acquireTokenPopup`) to start an interactive request.
-Calling the `acquireTokenPopup(scope)` results in a popup window to sign in (or `acquireTokenRedirect(scope)` results in redirecting users to the Azure AD v2.0 endpoint) where users need to interact by either confirming their credentials, giving the consent to the required resource, or completing the two factor authentication.
+Calling the `acquireTokenPopup(scope)` results in a popup window to sign in (or `acquireTokenRedirect(scope)` results in redirecting users to the Microsoft identity platform endpoint) where users need to interact by either confirming their credentials, giving the consent to the required resource, or completing the two factor authentication.
```javascript
myMSALObj.acquireTokenPopup(applicationConfig.graphScopes).then(function (accessToken) {
diff --git a/articles/active-directory/develop/quickstart-v2-netcore-daemon.md b/articles/active-directory/develop/quickstart-v2-netcore-daemon.md
index 81302e3ff9d70..56f8d168bf714 100644
--- a/articles/active-directory/develop/quickstart-v2-netcore-daemon.md
+++ b/articles/active-directory/develop/quickstart-v2-netcore-daemon.md
@@ -1,6 +1,6 @@
---
-title: Azure AD v2 .NET Core daemon | Microsoft Docs
-description: Learn how a .NET Core process can get an access token and call an API protected by an Azure Active Directory v2.0 endpoint using the app's own identity
+title: Microsoft identity platform .NET Core daemon | Azure
+description: Learn how a .NET Core process can get an access token and call an API protected by Microsoft identity platform endpoint using the app's own identity
services: active-directory
documentationcenter: dev-center-name
author: jmprieur
@@ -14,10 +14,10 @@ ms.devlang: na
ms.topic: quickstart
ms.tgt_pltfrm: na
ms.workload: identity
-ms.date: 03/20/2019
+ms.date: 04/10/2019
ms.author: jmprieur
ms.custom: aaddev
-#Customer intent: As an application developer, I want to learn how my .NET Core app can get an access token and call an API that's protected by an Azure AD v2.0 endpoint using client credentials flow.
+#Customer intent: As an application developer, I want to learn how my .NET Core app can get an access token and call an API that's protected by an Microsoft identity platform endpoint using client credentials flow.
ms.collection: M365-identity-device-management
---
@@ -27,11 +27,11 @@ ms.collection: M365-identity-device-management
In this quickstart, you'll learn how to write a .NET Core application that can get an access token using the app's own identity and then call the Microsoft Graph API to display a [list of users](https://docs.microsoft.com/graph/api/user-list) in the directory. This scenario is useful for situations where headless, unattended job or a windows service needs to run with an application identity, instead of a user's identity.
-![Shows how the sample app generated by this quickstart works](media/quickstart-v2-netcore-daemon/netcore-daemon-intro-updated.png)
+![Shows how the sample app generated by this quickstart works](media/quickstart-v2-netcore-daemon/netcore-daemon-intro.svg)
## Prerequisites
-This quickstart requires [.NET Core 2.1](https://www.microsoft.com/net/download/dotnet-core/2.1).
+This quickstart requires [.NET Core 2.2](https://www.microsoft.com/net/download/dotnet-core/2.2).
> [!div renderon="docs"]
> ## Register and download your quickstart app
@@ -44,7 +44,7 @@ This quickstart requires [.NET Core 2.1](https://www.microsoft.com/net/download/
>
> ### Option 1: Register and auto configure your app and then download your code sample
>
-> 1. Go to the [Azure portal - Application Registration (Preview)](https://portal.azure.com/?Microsoft_AAD_RegisteredApps=true#blade/Microsoft_AAD_RegisteredApps/applicationsListBlade/quickStartType/DotNetCoreDaemonQuickstartPage/sourceType/docs).
+> 1. Go to the new [Azure portal - App registrations](https://portal.azure.com/?Microsoft_AAD_RegisteredApps=true#blade/Microsoft_AAD_RegisteredApps/applicationsListBlade/quickStartType/DotNetCoreDaemonQuickstartPage/sourceType/docs) pane.
> 1. Enter a name for your application and select **Register**.
> 1. Follow the instructions to download and automatically configure your new application with just one click.
>
@@ -54,9 +54,11 @@ This quickstart requires [.NET Core 2.1](https://www.microsoft.com/net/download/
> #### Step 1: Register your application
> To register your application and add the app's registration information to your solution manually, follow these steps:
>
-> 1. Sign in to the [Azure portal](https://portal.azure.com) using either a work or school account or a personal Microsoft account.
+> 1. Sign in to the [Azure portal](https://portal.azure.com) using either a work or school account, or a personal Microsoft account.
> 1. If your account gives you access to more than one tenant, select your account in the top right corner, and set your portal session to the desired Azure AD tenant.
-> 1. In the left-hand navigation pane, select the **Azure Active Directory** service, and then select **App registrations (Preview)** > **New registration**.
+> 1. Navigate to the Microsoft identity platform for developers [App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page.
+> 1. Select **New registration**.
+> 1. When the **Register an application** page appears, enter your application's registration information.
> 1. In the **Name** section, enter a meaningful application name that will be displayed to users of the app, for example `Daemon-console`, then select **Register** to create the application.
> 1. Once registered, select the **Certificates & secrets** menu.
> 1. Under **Client secrets**, select **+ New client secret**. Give it a name and select **Add**. Copy the secret on a safe location. You will need it to use in your code.
@@ -77,7 +79,7 @@ This quickstart requires [.NET Core 2.1](https://www.microsoft.com/net/download/
#### Step 2: Download your Visual Studio project
-[Download the Visual Studio project](https://github.com/Azure-Samples/active-directory-dotnetcore-daemon-v2/archive/master.zip)
+[Download the Visual Studio project](https://github.com/Azure-Samples/active-directory-dotnetcore-daemon-v2/archive/msal3x.zip)
#### Step 3: Configure your Visual Studio project
@@ -105,7 +107,7 @@ This quickstart requires [.NET Core 2.1](https://www.microsoft.com/net/download/
#### Step 4: Admin consent
-If you try to run the application at this point, you will receive *HTTP 403 - Forbidden* error: `Insufficient privileges to complete the operation`. This happens because any *app-only permission* requires Admin consent, which means that an global administrator of your directory must give consent to your application. Select one of the options below depending your role:
+If you try to run the application at this point, you will receive *HTTP 403 - Forbidden* error: `Insufficient privileges to complete the operation`. This happens because any *app-only permission* requires Admin consent, which means that a global administrator of your directory must give consent to your application. Select one of the options below depending on your role:
##### Global tenant administrator
@@ -154,12 +156,12 @@ You should see a list of users in your Azure AD directory as result.
### MSAL.NET
-MSAL ([Microsoft.Identity.Client](https://www.nuget.org/packages/Microsoft.Identity.Client)) is the library used to sign in users and request tokens used to access an API protected by Microsoft Azure Active Directory (Azure AD). As described, this quickstart request tokens by using the application own identity instead of delegated permissions. The authentication flow used in this case is known as *[client credentials oauth flow](v2-oauth2-client-creds-grant-flow.md)*. For more information on how to use MSAL.NET with client credentials flow, please see [this article](https://aka.ms/msal-net-client-credentials).
+MSAL ([Microsoft.Identity.Client](https://www.nuget.org/packages/Microsoft.Identity.Client)) is the library used to sign in users and request tokens used to access an API protected by Microsoft identity platform. As described, this quickstart requests tokens by using the application own identity instead of delegated permissions. The authentication flow used in this case is known as *[client credentials oauth flow](v2-oauth2-client-creds-grant-flow.md)*. For more information on how to use MSAL.NET with client credentials flow, see [this article](https://aka.ms/msal-net-client-credentials).
You can install MSAL.NET by running the following command in Visual Studio's **Package Manager Console**:
```powershell
-Install-Package Microsoft.Identity.Client
+Install-Package Microsoft.Identity.Client -Pre
```
Alternatively, if you are not using Visual Studio, you can run the following command to add MSAL to your project:
@@ -179,48 +181,44 @@ using Microsoft.Identity.Client;
Then, initialize MSAL using the following code:
```csharp
-ClientCredential clientCredentials = new ClientCredential(secret: config.ClientSecret);
-
-var app = new ConfidentialClientApplication(
- clientId: config.ClientId,
- authority: config.Authority,
- redirectUri: "https://daemon",
- clientCredential: clientCredentials,
- userTokenCache: null,
- appTokenCache: new TokenCache()
+IConfidentialClientApplication app;
+app = ConfidentialClientApplicationBuilder.Create(config.ClientId)
+ .WithClientSecret(config.ClientSecret)
+ .WithAuthority(new Uri(config.Authority))
+ .Build();
);
```
> | Where: ||
> |---------|---------|
-> | `secret` | Is the client secret created for the application in Azure Portal. |
-> | `clientId` | Is the **Application (client) ID** for the application registered in the Azure portal. You can find this value in the app's **Overview** page in the Azure portal. |
-> | `Authority` | (Optional) The STS endpoint for user to authenticate. Usually for public cloud, where {tenant} is the name of your tenant or your tenant Id.|
-> | `redirectUri` | URL where users are sent after authentication. In this case, because this is a console/non-interactive application, this parameter is not used |
-> | `clientCredentials` | The client credentials object, containing either the secret or certificate |
-> | `userTokenCache` | Instance of a token cache for the user. In this case, because this app runs in context of the app, and not the user, this value is null|
-> | `appTokenCache` | Instance of a token cache for the app|
+> | `config.ClientSecret` | Is the client secret created for the application in Azure Portal. |
+> | `config.ClientId` | Is the **Application (client) ID** for the application registered in the Azure portal. You can find this value in the app's **Overview** page in the Azure portal. |
+> | `config.Authority` | (Optional) The STS endpoint for user to authenticate. Usually for public cloud, where {tenant} is the name of your tenant or your tenant Id.|
-For more information, please see the [reference documentation for `ConfidentialClientApplication`](https://docs.microsoft.com/dotnet/api/microsoft.identity.client.confidentialclientapplication.-ctor?view=azure-dotnet)
+For more information, please see the [reference documentation for `ConfidentialClientApplication`](https://docs.microsoft.com/en-us/dotnet/api/microsoft.identity.client.iconfidentialclientapplication?view=azure-dotnet)
### Requesting tokens
-To request a token using app's identity, use `AcquireTokenForClientAsync` method:
+To request a token using app's identity, use `AcquireTokenForClient` method:
```csharp
-result = await app.AcquireTokenForClientAsync(scopes);
+result = await app.AcquireTokenForClient(scopes)
+ .ExecuteAsync();
```
> |Where:| |
> |---------|---------|
> | `scopes` | Contains the scopes requested. For confidential clients, this should use the format similar to `{Application ID URI}/.default` to indicate that the scopes being requested are the ones statically defined in the app object set in the Azure Portal (for Microsoft Graph, `{Application ID URI}` points to `https://graph.microsoft.com`). For custom Web APIs, `{Application ID URI}` is defined under **Expose an API** section in Azure Portal's Application Registration (Preview). |
-For more information, please see the [reference documentation for `AcquireTokenForClientAsync`](https://docs.microsoft.com/dotnet/api/microsoft.identity.client.confidentialclientapplication.acquiretokenforclientasync?view=azure-dotnet#Microsoft_Identity_Client_ConfidentialClientApplication_AcquireTokenForClientAsync_System_Collections_Generic_IEnumerable_System_String__)
+For more information, please see the [reference documentation for `AcquireTokenForClient`](https://docs.microsoft.com/dotnet/api/microsoft.identity.client.confidentialclientapplication.acquiretokenforclientasync?view=azure-dotnet#Microsoft_Identity_Client_ConfidentialClientApplication_AcquireTokenForClientAsync_System_Collections_Generic_IEnumerable_System_String__)
[!INCLUDE [Help and support](../../../includes/active-directory-develop-help-support-include.md)]
## Next steps
+> [!div class="nextstepaction"]
+> [.NET Core daemon sample](https://github.com/Azure-Samples/active-directory-dotnetcore-daemon-v2)
+
Learn more about permissions and consent:
> [!div class="nextstepaction"]
diff --git a/articles/active-directory/develop/quickstart-v2-uwp.md b/articles/active-directory/develop/quickstart-v2-uwp.md
index c963186a21f7b..bef83bacf57ba 100644
--- a/articles/active-directory/develop/quickstart-v2-uwp.md
+++ b/articles/active-directory/develop/quickstart-v2-uwp.md
@@ -1,6 +1,6 @@
---
-title: Azure AD v2 Windows UWP quickstart | Microsoft Docs
-description: Learn how a Universal Windows Platform (XAML) application can get an access token and call an API protected by an Azure Active Directory v2.0 endpoint.
+title: Microsoft identity platform Windows UWP quickstart | Azure
+description: Learn how a Universal Windows Platform (XAML) application can get an access token and call an API protected by Microsoft identity platform endpoint.
services: active-directory
documentationcenter: dev-center-name
author: jmprieur
@@ -14,10 +14,10 @@ ms.devlang: na
ms.topic: quickstart
ms.tgt_pltfrm: na
ms.workload: identity
-ms.date: 04/01/2019
+ms.date: 04/12/2019
ms.author: jmprieur
ms.custom: aaddev
-#Customer intent: As an application developer, I want to learn how my Universal Windows Platform (XAML) application can get an access token and call an API that's protected by an Azure AD v2.0 endpoint.
+#Customer intent: As an application developer, I want to learn how my Universal Windows Platform (XAML) application can get an access token and call an API that's protected by an Microsoft identity platform endpoint.
ms.collection: M365-identity-device-management
---
@@ -27,7 +27,7 @@ ms.collection: M365-identity-device-management
This quickstart contains a code sample that demonstrates how a Universal Windows Platform (UWP) application can sign in users with personal or work and school accounts, get an access token, and call the Microsoft Graph API.
-![Shows how the sample app generated by this quickstart works](media/quickstart-v2-uwp/uwp-intro-updated.png)
+![Shows how the sample app generated by this quickstart works](media/quickstart-v2-uwp/uwp-intro.svg)
> [!div renderon="docs"]
> ## Register and download your quickstart app
@@ -38,7 +38,7 @@ This quickstart contains a code sample that demonstrates how a Universal Windows
>
> ### Option 1: Register and auto configure your app and then download your code sample
>
-> 1. Go to the [Azure portal - Application Registration](https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/applicationsListBlade/quickStartType/UwpQuickstartPage/sourceType/docs)
+> 1. Go to the new [Azure portal - App registrations](https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/applicationsListBlade/quickStartType/UwpQuickstartPage/sourceType/docs) pane.
> 1. Enter a name for your application and click **Register**.
> 1. Follow the instructions to download and automatically configure your new application for you in one click.
>
@@ -48,7 +48,8 @@ This quickstart contains a code sample that demonstrates how a Universal Windows
> To register your application and add the app's registration information to your solution, follow these steps:
> 1. Sign in to the [Azure portal](https://portal.azure.com) using either a work or school account, or a personal Microsoft account.
> 1. If your account gives you access to more than one tenant, select your account in the top right corner, and set your portal session to the desired Azure AD tenant.
-> 1. In the left-hand navigation pane, select the **Azure Active Directory** service, and then select **App registrations (Preview)** > **New registration**.
+> 1. Navigate to the Microsoft identity platform for developers [App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page.
+> 1. Select **New registration**.
> 1. When the **Register an application** page appears, enter your application's registration information:
> - In the **Name** section, enter a meaningful application name that will be displayed to users of the app, for example `UWP-App-calling-MsGraph`.
> - In the **Supported account types** section, select **Accounts in any organizational directory and personal Microsoft accounts (for example, Skype, Xbox, Outlook.com)**.
@@ -68,29 +69,32 @@ This quickstart contains a code sample that demonstrates how a Universal Windows
#### Step 2: Download your Visual Studio project
- - [Download the Visual Studio 2017 project](https://github.com/Azure-Samples/active-directory-dotnet-native-uwp-v2/archive/master.zip)
+ - [Download the Visual Studio 2017 project](https://github.com/Azure-Samples/active-directory-dotnet-native-uwp-v2/archive/msal3x.zip)
#### Step 3: Configure your Visual Studio project
1. Extract the zip file to a local folder close to the root of the disk, for example, **C:\Azure-Samples**.
-1. Open the project in Visual Studio.
-1. Edit **App.Xaml.cs** and replace the values of the fields `ClientId` and `Tenant` with:
+1. Open the project in Visual Studio. You might be prompted to install a UWP SDK. In that case, accept.
+1. Edit **MainPage.Xaml.cs** and replace the values of the `ClientId` field:
```csharp
- private static string ClientId = "Enter_the_Application_Id_here";
- private static string Tenant = "Enter_the_Tenant_Info_Here";
+ private const string ClientId = "Enter_the_Application_Id_here";
```
> [!div renderon="docs"]
> Where:
> - `Enter_the_Application_Id_here` - is the Application Id for the application you registered.
-> - `Enter_the_Tenant_Info_Here` - is one of the options below:
-> - If your application supports **My organization only**, replace this value with the **Tenant Id** or **Tenant name** (for example, contoso.microsoft.com)
-> - If your application supports **Accounts in any organizational directory**, replace this value with `organizations`
-> - If your application supports **All Microsoft account users**, replace this value with `common`
>
> > [!TIP]
-> > To find the values of *Application ID*, *Directory (tenant) ID*, and *Supported account types*, go to the **Overview** page
+> > To find the values of *Application ID*, go to the **Overview** page
+
+#### Step 4: Run your application
+
+If you want to try the quickstart on your Windows machine:
+
+1. In the Visual Studio toolbar, choose the right platform (probably **x64** or **x86**, not ARM).
+ > Observe that the target device changes from *Device* to *Local Machine*
+1. select Debug | **Start Without Debugging**
## More information
@@ -98,10 +102,10 @@ This section provides more information about the quickstart.
### MSAL.NET
-MSAL ([Microsoft.Identity.Client](https://www.nuget.org/packages/Microsoft.Identity.Client)) is the library used to sign in users and request tokens used to access an API protected by Microsoft Azure Active Directory. You can install MSAL by running the following command in Visual Studio's *Package Manager Console*:
+MSAL ([Microsoft.Identity.Client](https://www.nuget.org/packages/Microsoft.Identity.Client)) is the library used to sign in users and request security tokens. The security tokens are used to access an API protected by Microsoft Identity platform for developers. You can install MSAL by running the following command in Visual Studio's *Package Manager Console*:
```powershell
-Install-Package Microsoft.Identity.Client -Pre
+Install-Package Microsoft.Identity.Client -IncludePrerelease
```
### MSAL initialization
@@ -115,7 +119,9 @@ using Microsoft.Identity.Client;
Then, initialize MSAL using the following code:
```csharp
-public static PublicClientApplication PublicClientApp = new PublicClientApplication(ClientId);
+public static IPublicClientApplication PublicClientApp;
+PublicClientApp = new PublicClientApplicationBuilder.Create(ClientId)
+ .Build();
```
> |Where: ||
@@ -124,19 +130,20 @@ public static PublicClientApplication PublicClientApp = new PublicClientApplicat
### Requesting tokens
-MSAL has two methods for acquiring tokens: `AcquireTokenAsync` and `AcquireTokenSilentAsync`.
+MSAL has two methods used to acquiring tokens interactively: `AcquireTokenInteractive` and `AcquireTokenSilent`.
#### Get a user token interactively
-Some situations require forcing users interact with the Azure AD v2.0 endpoint through a popup window to either validate their credentials or to give consent. Some examples include:
+Some situations require forcing users interact with the Microsoft identity platform endpoint through a popup window to either validate their credentials or to give consent. Some examples include:
-- The first time users sign in to the application
+- The first-time users sign in to the application
- When users may need to reenter their credentials because the password has expired
-- When your application is requesting access to a resource that the user needs to consent to
+- When your application is requesting access to a resource, that the user needs to consent to
- When two factor authentication is required
```csharp
-authResult = await App.PublicClientApp.AcquireTokenAsync(scopes);
+authResult = await App.PublicClientApp.AcquireTokenInteractive(scopes)
+ .ExecuteAsync();
```
> |Where:||
@@ -145,17 +152,19 @@ authResult = await App.PublicClientApp.AcquireTokenAsync(scopes);
#### Get a user token silently
-You don't want to require the user to validate their credentials every time they need to access a resource. Most of the time you want token acquisitions and renewal without any user interaction. You can use the `AcquireTokenSilentAsync` method to obtain tokens to access protected resources after the initial `AcquireTokenAsync` method:
+You don't want to require the user to validate their credentials every time they need to access a resource. Most of the time you want token acquisitions and renewal without any user interaction. You can use the `AcquireTokenSilent` method to obtain tokens to access protected resources after the initial `AcquireTokenAsync` method:
```csharp
var accounts = await App.PublicClientApp.GetAccountsAsync();
-authResult = await App.PublicClientApp.AcquireTokenSilentAsync(scopes, accounts.FirstOrDefault());
+var firstAccount = accounts.FirstOrDefault();
+authResult = await App.PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
+ .ExecuteAsync();
```
> |Where: ||
> |---------|---------|
> | `scopes` | Contains the scopes being requested, such as `{ "user.read" }` for Microsoft Graph or `{ "api:///access_as_user" }` for custom Web APIs |
-> | `accounts.FirstOrDefault()` | Specifies the first user in the cache (MSAL supports multiple users in a single app) |
+> | `firstAccount` | Specifies the first user account in the cache (MSAL supports multiple users in a single app) |
[!INCLUDE [Help and support](../../../includes/active-directory-develop-help-support-include.md)]
diff --git a/articles/active-directory/develop/quickstart-v2-windows-desktop.md b/articles/active-directory/develop/quickstart-v2-windows-desktop.md
index 8178d3dd576e7..45b7a06a4971e 100644
--- a/articles/active-directory/develop/quickstart-v2-windows-desktop.md
+++ b/articles/active-directory/develop/quickstart-v2-windows-desktop.md
@@ -1,6 +1,6 @@
---
-title: Azure AD v2 Windows desktop quickstart | Microsoft Docs
-description: Learn how a Windows desktop .NET (XAML) application can get an access token and call an API protected by an Azure Active Directory v2.0 endpoint
+title: Microsoft identity platform Windows desktop quickstart | Microsoft Docs
+description: Learn how a Windows desktop .NET (XAML) application can get an access token and call an API protected by an Microsoft identity platform endpoint
services: active-directory
documentationcenter: dev-center-name
author: jmprieur
@@ -14,10 +14,10 @@ ms.devlang: na
ms.topic: quickstart
ms.tgt_pltfrm: na
ms.workload: identity
-ms.date: 04/01/2019
+ms.date: 04/11/2019
ms.author: jmprieur
ms.custom: aaddev
-#Customer intent: As an application developer, I want to learn how my Windows desktop .NET application can get an access token and call an API that's protected by an Azure AD v2.0 endpoint.
+#Customer intent: As an application developer, I want to learn how my Windows desktop .NET application can get an access token and call an API that's protected by an Microsoft identity platform endpoint.
ms.collection: M365-identity-device-management
---
@@ -27,7 +27,7 @@ ms.collection: M365-identity-device-management
In this quickstart, you'll learn how to write a Windows desktop .NET (WPF) application that can sign in personal, work and school accounts, get an access token, and call the Microsoft Graph API.
-![Shows how the sample app generated by this quickstart works](media/quickstart-v2-windows-desktop/windesktop-intro-updated.png)
+![Shows how the sample app generated by this quickstart works](media/quickstart-v2-windows-desktop/windesktop-intro.svg)
> [!div renderon="docs"]
> ## Register and download your quickstart app
@@ -37,7 +37,7 @@ In this quickstart, you'll learn how to write a Windows desktop .NET (WPF) appli
>
> ### Option 1: Register and auto configure your app and then download your code sample
>
-> 1. Go to the [Azure portal - Application Registration](https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/applicationsListBlade/quickStartType/WinDesktopQuickstartPage/sourceType/docs).
+> 1. Go to the new [Azure portal - App registrations](https://portal.azure.com/#blade/Microsoft_AAD_RegisteredApps/applicationsListBlade/quickStartType/WinDesktopQuickstartPage/sourceType/docs).
> 1. Enter a name for your application and select **Register**.
> 1. Follow the instructions to download and automatically configure your new application with just one click.
>
@@ -46,10 +46,10 @@ In this quickstart, you'll learn how to write a Windows desktop .NET (WPF) appli
> #### Step 1: Register your application
> To register your application and add the app's registration information to your solution manually, follow these steps:
>
-> 1. Sign in to the [Azure portal](https://portal.azure.com) using either a work or school account or a personal Microsoft account.
+> 1. Sign in to the [Azure portal](https://portal.azure.com) using either a work or school account, or a personal Microsoft account.
> 1. If your account gives you access to more than one tenant, select your account in the top right corner, and set your portal session to the desired Azure AD tenant.
-> 1. In the left-hand navigation pane, select the **Azure Active Directory** service, and then select **App registrations (Preview)** > **New registration**.
-> 1. When the **Register an application** page appears, enter your application's registration information:
+> 1. Navigate to the Microsoft identity platform for developers [App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page.
+> 1. Select **New registration**.
> - In the **Name** section, enter a meaningful application name that will be displayed to users of the app, for example `Win-App-calling-MsGraph`.
> - In the **Supported account types** section, select **Accounts in any organizational directory and personal Microsoft accounts (for example, Skype, Xbox, Outlook.com)**.
> - Select **Register** to create the application.
@@ -68,7 +68,7 @@ In this quickstart, you'll learn how to write a Windows desktop .NET (WPF) appli
#### Step 2: Download your Visual Studio project
-[Download the Visual Studio 2017 project](https://github.com/Azure-Samples/active-directory-dotnet-desktop-msgraph-v2/archive/master.zip)
+[Download the Visual Studio 2017 project](https://github.com/Azure-Samples/active-directory-dotnet-desktop-msgraph-v2/archive/msal3x.zip)
#### Step 3: Configure your Visual Studio project
@@ -96,10 +96,10 @@ In this quickstart, you'll learn how to write a Windows desktop .NET (WPF) appli
### MSAL.NET
-MSAL ([Microsoft.Identity.Client](https://www.nuget.org/packages/Microsoft.Identity.Client)) is the library used to sign in users and request tokens used to access an API protected by Microsoft Azure Active Directory (Azure AD). You can install MSAL by running the following command in Visual Studio's **Package Manager Console**:
+MSAL ([Microsoft.Identity.Client](https://www.nuget.org/packages/Microsoft.Identity.Client)) is the library used to sign in users and request tokens used to access an API protected by Microsoft identity platform. You can install MSAL by running the following command in Visual Studio's **Package Manager Console**:
```powershell
-Install-Package Microsoft.Identity.Client
+Install-Package Microsoft.Identity.Client -IncludePrerelease
```
### MSAL initialization
@@ -113,7 +113,10 @@ using Microsoft.Identity.Client;
Then, initialize MSAL using the following code:
```csharp
-public static PublicClientApplication PublicClientApp = new PublicClientApplication(ClientId);
+public static IPublicClientApplication PublicClientApp;
+PublicClientApplicationBuilder.Create(ClientId)
+ .WithAuthority(AzureCloudInstance.AzurePublic, Tenant)
+ .Build();
```
> |Where: ||
@@ -122,11 +125,11 @@ public static PublicClientApplication PublicClientApp = new PublicClientApplicat
### Requesting tokens
-MSAL has two methods for acquiring tokens: `AcquireTokenAsync` and `AcquireTokenSilentAsync`.
+MSAL has two methods for acquiring tokens: `AcquireTokenInteractive` and `AcquireTokenSilent`.
#### Get a user token interactively
-Some situations require forcing users interact with the Azure AD v2.0 endpoint through a popup window to either validate their credentials or to give consent. Some examples include:
+Some situations require forcing users interact with the Microsoft identity platform endpoint through a popup window to either validate their credentials or to give consent. Some examples include:
- The first time users sign in to the application
- When users may need to reenter their credentials because the password has expired
@@ -134,7 +137,8 @@ Some situations require forcing users interact with the Azure AD v2.0 endpoint t
- When two factor authentication is required
```csharp
-authResult = await App.PublicClientApp.AcquireTokenAsync(_scopes);
+authResult = await App.PublicClientApp.AcquireTokenInteractive(_scopes)
+ .ExecuteAsync();
```
> |Where:||
@@ -143,17 +147,19 @@ authResult = await App.PublicClientApp.AcquireTokenAsync(_scopes);
#### Get a user token silently
-You don't want to require the user to validate their credentials every time they need to access a resource. Most of the time you want token acquisitions and renewal without any user interaction. You can use the `AcquireTokenSilentAsync` method to obtain tokens to access protected resources after the initial `AcquireTokenAsync` method:
+You don't want to require the user to validate their credentials every time they need to access a resource. Most of the time you want token acquisitions and renewal without any user interaction. You can use the `AcquireTokenSilentAsync` method to obtain tokens to access protected resources after the initial `AcquireTokenInteractive` method:
```csharp
var accounts = await App.PublicClientApp.GetAccountsAsync();
-authResult = await App.PublicClientApp.AcquireTokenSilentAsync(scopes, accounts.FirstOrDefault());
+var firstAccount = accounts.FirstOrDefault();
+authResult = await App.PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
+ .ExecuteAsync();
```
> |Where: ||
> |---------|---------|
> | `scopes` | Contains the scopes being requested, such as `{ "user.read" }` for Microsoft Graph or `{ "api:///access_as_user" }` for custom Web APIs. |
-> | `accounts.FirstOrDefault()` | Specifies the first user in the cache (MSAL support multiple users in a single app). |
+> | `firstAccount` | Specifies the first user in the cache (MSAL support multiple users in a single app). |
[!INCLUDE [Help and support](../../../includes/active-directory-develop-help-support-include.md)]
diff --git a/articles/active-directory/develop/reference-aadsts-error-codes.md b/articles/active-directory/develop/reference-aadsts-error-codes.md
index 3f6b16c9f0de2..c3ef69c6f5d56 100644
--- a/articles/active-directory/develop/reference-aadsts-error-codes.md
+++ b/articles/active-directory/develop/reference-aadsts-error-codes.md
@@ -54,7 +54,7 @@ Looking for info about the AADSTS error codes that are returned from the Azure A
| AADSTS50007 | PartnerEncryptionCertificateMissing - The partner encryption certificate was not found for this app. [Open a support ticket](../fundamentals/active-directory-troubleshooting-support-howto.md) with Microsoft to get this fixed. |
| AADSTS50008 | InvalidSamlToken - SAML assertion is missing or misconfigured in the token. Contact your federation provider. |
| AADSTS50010 | AudienceUriValidationFailed - Audience URI validation for the app failed since no token audiences were configured. |
-| AADSTS50011 | InvalidReplyTo - The reply address is missing, misconfigured, or does not match reply addresses configured for the app. Try out the resolution listed at [https://docs.microsoft.com/azure/active-directory/application-sign-in-problem-federated-sso-gallery#the-reply-address-does-not-match-the-reply-addresses-configured-for-the-application](https://docs.microsoft.com/azure/active-directory/application-sign-in-problem-federated-sso-gallery#the-reply-address-does-not-match-the-reply-addresses-configured-for-the-application). If you still see issues, contact the app owner or app admin. |
+| AADSTS50011 | InvalidReplyTo - The reply address is missing, misconfigured, or does not match reply addresses configured for the app. As a resolution ensure to add this missing reply address to the Azure Active Directory application or have someone with the permissions to manage your application in Active Directory do this for you.|
| AADSTS50012 | AuthenticationFailed - Authentication failed for one of the following reasons:The subject name of the signing certificate is not authorized A matching trusted authority policy was not found for the authorized subject name The certificate chain is not valid The signing certificate is not valid Policy is not configured on the tenant Thumbprint of the signing certificate is not authorized Client assertion contains an invalid signature |
| AADSTS50013 | InvalidAssertion - Assertion is invalid because of various reasons - The token issuer doesn't match the api version within its valid time range -expired -malformed - Refresh token in the assertion is not a primary refresh token. |
| AADSTS50014 | GuestUserInPendingState - The user's redemption is in a pending state. The guest user account is not fully created yet. |
diff --git a/articles/active-directory/develop/reference-app-manifest.md b/articles/active-directory/develop/reference-app-manifest.md
index 8fca79bf24d7a..5886f34adcaf7 100644
--- a/articles/active-directory/develop/reference-app-manifest.md
+++ b/articles/active-directory/develop/reference-app-manifest.md
@@ -45,7 +45,7 @@ To configure the application manifest:
| Key | Value type | Description | Example value |
|---------|---------|---------|---------|
-| `accessTokenAcceptedVersion` | Nullable Int32 | Specifies the access token version expected by the resource. This changes the version and format of the JWT produced independent of the endpoint or client used to request the access token. The endpoint used, v1.0 or v2.0, is chosen by the client and only impacts the version of id_tokens. Resources need to explicitly configure `accesstokenAcceptedVersion` to indicate the supported access token format. Possible values for `accesstokenAcceptedVersion` are 1, 2, or null. If the value is null, this defaults to 1, which corresponds to the v1.0 endpoint. | `2` |
+| `accessTokenAcceptedVersion` | Nullable Int32 | Specifies the access token version expected by the resource. This changes the version and format of the JWT produced independent of the endpoint or client used to request the access token. The endpoint used, v1.0 or v2.0, is chosen by the client and only impacts the version of id_tokens. Resources need to explicitly configure `accesstokenAcceptedVersion` to indicate the supported access token format. Possible values for `accesstokenAcceptedVersion` are 1, 2, or null. If the value is null, this defaults to 1, which corresponds to the v1.0 endpoint. If `signInAudience` is `AzureADandPersonalMicrosoftAccount`, the value must be `2` | `2` |
| `allowPublicClient` | boolean | Specifies the fallback application type. Azure AD infers the application type from the replyUrlsWithType by default. There are certain scenarios where Azure AD cannot determine the client app type (e.g. [ROPC](https://tools.ietf.org/html/rfc6749#section-4.3) flow where HTTP request happens without a URL redirection). In those cases Azure AD will interpret the application type based on the value of this property. If this value is set to true the fallback application type is set as public client, such as an installed app running on a mobile device. The default value is false which means the fallback application type is confidential client such as web app. | `false` |
| `appId` | Identifier string | Specifies the unique identifier for the app that is assigned to an app by Azure AD. | `"601790de-b632-4f57-9523-ee7cb6ceba95"` |
| `appRoles` | Type of array | Specifies the collection of roles that an app may declare. These roles can be assigned to users, groups, or service principals. For more examples and info, see [Add app roles in your application and receive them in the token](howto-add-app-roles-in-azure-ad-apps.md) | [ { "allowedMemberTypes": [ "User" ], "description":"Read-only access to device information", "displayName":"Read Only", "id":guid, "isEnabled":true, "value":"ReadOnly" } ]
|
diff --git a/articles/active-directory/develop/registration-config-change-token-lifetime-how-to.md b/articles/active-directory/develop/registration-config-change-token-lifetime-how-to.md
index fbf0a41a3388e..7940f143d63a3 100644
--- a/articles/active-directory/develop/registration-config-change-token-lifetime-how-to.md
+++ b/articles/active-directory/develop/registration-config-change-token-lifetime-how-to.md
@@ -13,16 +13,16 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 09/11/2018
+ms.date: 04/08/2019
ms.author: celested
-
+ms.custom: seoapril2019
ms.collection: M365-identity-device-management
---
# How to change the token lifetime defaults for a custom-developed application
-Azure AD Premium allows app developers and tenant admins to configure the lifetime of tokens issued for non-confidential clients. Token lifetime policies are set on a tenant-wide basis or the resources being accessed.
+This article shows how to use Azure AD PowerShell to set a token lifetime policy. Azure AD Premium allows app developers and tenant admins to configure the lifetime of tokens issued for non-confidential clients. Token lifetime policies are set on a tenant-wide basis or the resources being accessed.
1. To set a token lifetime policy, you need to download the [Azure AD PowerShell Module](https://www.powershellgallery.com/packages/AzureADPreview).
1. Run the **Connect-AzureAD -Confirm** command.
diff --git a/articles/active-directory/develop/sample-v2-code.md b/articles/active-directory/develop/sample-v2-code.md
index e78c41af6d490..60fa75921888f 100644
--- a/articles/active-directory/develop/sample-v2-code.md
+++ b/articles/active-directory/develop/sample-v2-code.md
@@ -1,6 +1,6 @@
---
-title: Azure Active Directory code samples | Microsoft Docs
-description: Provides an index of available Azure Active Directory (V2 endpoint) code samples, organized by scenario.
+title: Microsoft identity platform code samples | Microsoft Docs
+description: Provides an index of available Microsoft identity platform (V2 endpoint) code samples, organized by scenario.
services: active-directory
documentationcenter: dev-center-name
author: CelesteDG
@@ -21,7 +21,7 @@ ms.custom: aaddev
ms.collection: M365-identity-device-management
---
-# Azure Active Directory code samples (v2.0 endpoint)
+# Microsoft identity platform code samples (v2.0 endpoint)
[!INCLUDE [active-directory-develop-applies-v2-msal](../../../includes/active-directory-develop-applies-v2-msal.md)]
@@ -30,78 +30,77 @@ You can use Microsoft identity platform to:
- Add authentication and authorization to your web applications and web APIs.
- Require an access token to access a protected web API.
-This article briefly describes and provides you with links to samples for the Azure AD v2.0 endpoint. These samples show you how it's done, along with code snippets that you can use in your applications. On the code sample page, you'll find detailed readme topics that help with requirements, installation, and set up. Comments within the code are there to help you understand the critical sections.
+This article briefly describes and provides you with links to samples for the Microsoft identity platform endpoint. These samples show you how it's done, along with code snippets that you can use in your applications. On the code sample page, you'll find detailed readme topics that help with requirements, installation, and set up. Comments within the code are there to help you understand the critical sections.
> [!NOTE]
> If you are interested in v1.0 samples, see [Azure AD code samples (v1.0 endpoint)](sample-v1-code.md).
-To understand the basic scenario for each sample type, see [App types for the Azure Active Directory v2.0 endpoint](v2-app-types.md).
+To understand the basic scenario for each sample type, see [App types for the Microsoft identity platform endpoint](v2-app-types.md).
You can also contribute to the samples on GitHub. To learn how, see [Microsoft Azure Active Directory samples and documentation](https://github.com/Azure-Samples?page=3&query=active-directory).
## Single-page applications (SPA)
-These samples show how to write a single-page application secured with Azure AD. These samples use one of the flavors of MSAL.js:
+These samples show how to write a single-page application secured with Microsoft identity platform. These samples use one of the flavors of MSAL.js:
* [Microsoft Authentication Library for JavaScript](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core)
* [Microsoft Authentication Library for Angular](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angular)
* [Microsoft Authentication Library for AngularJS](https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-angularjs)
- Platform | Calls Microsoft Graph
- -------- | ---------------------
- ![JavaScript](media/sample-v2-code/logo_js.png) JavaScript (msal.js) | [javascript-graphapi-web-v2](https://github.com/Azure-Samples/active-directory-javascript-graphapi-web-v2)
- ![Angular JS](media/sample-v2-code/logo_angular.png) JavaScript (MSAL AngularJS) | [MsalAngularjsDemoApp](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angularjs/samples/MsalAngularjsDemoApp)
- ![Angular](media/sample-v2-code/logo_angular.png) JavaScript (MSAL Angular) | [MSALAngularDemoApp](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/samples/MSALAngularDemoApp)
+| Platform | Calls Microsoft Graph |
+| -------- | --------------------- |
+| ![JavaScript](media/sample-v2-code/logo_js.png) JavaScript (msal.js) | [javascript-graphapi-web-v2](https://github.com/Azure-Samples/active-directory-javascript-graphapi-web-v2) |
+| ![Angular JS](media/sample-v2-code/logo_angular.png) JavaScript (MSAL AngularJS) | [MsalAngularjsDemoApp](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angularjs/samples/MsalAngularjsDemoApp)
+| ![Angular](media/sample-v2-code/logo_angular.png) JavaScript (MSAL Angular) | [MSALAngularDemoApp](https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular/samples/MSALAngularDemoApp) |
## Web applications
The following samples illustrate web applications that sign in users. Some samples also demonstrate the application calling Microsoft Graph, or your own web API with the user's identity.
- Platform | Only signs in users | Signs in users and calls Microsoft Graph
- -------- | ------------------- | ---------------------------------
-![ASP.NET Core](media/sample-v2-code/logo_NETcore.png)
ASP.NET Core 2.1 | [ASP.NET Core WebApp signs-in users tutorial](https://aka.ms/aspnetcore-webapp-sign-in) | Same sample in the [ASP.NET Core Web App calls Microsoft Graph](https://aka.ms/aspnetcore-webapp-call-msgraph) phase
-![ASP.NET](media/sample-v2-code/logo_NETframework.png) ASP.NET | [ASP.NET Quickstart](https://github.com/AzureAdQuickstarts/AppModelv2-WebApp-OpenIDConnect-DotNet) [dotnet-webapp-openidconnect-v2](https://github.com/azure-samples/active-directory-dotnet-webapp-openidconnect-v2) | [dotnet-admin-restricted-scopes-v2](https://github.com/azure-samples/active-directory-dotnet-admin-restricted-scopes-v2) [msgraph-training-aspnetmvcapp](https://github.com/microsoftgraph/msgraph-training-aspnetmvcapp)
-![Node.js](media/sample-v2-code/logo_nodejs.png) | | [Node.js Quickstart](https://github.com/azureadquickstarts/appmodelv2-webapp-openidconnect-nodejs)
-![Ruby](media/sample-v2-code/logo_ruby.png) | | [msgraph-training-rubyrailsapp](https://github.com/microsoftgraph/msgraph-training-rubyrailsapp)
+| Platform | Only signs in users | Signs in users and calls Microsoft Graph |
+| -------- | ------------------- | --------------------------------- |
+| ![ASP.NET Core](media/sample-v2-code/logo_NETcore.png)ASP.NET Core 2.1 | [ASP.NET Core WebApp signs-in users tutorial](https://aka.ms/aspnetcore-webapp-sign-in) | Same sample in the [ASP.NET Core Web App calls Microsoft Graph](https://aka.ms/aspnetcore-webapp-call-msgraph) phase |
+| ![ASP.NET](media/sample-v2-code/logo_NETframework.png) ASP.NET | [ASP.NET Quickstart](https://github.com/AzureAdQuickstarts/AppModelv2-WebApp-OpenIDConnect-DotNet) [dotnet-webapp-openidconnect-v2](https://github.com/azure-samples/active-directory-dotnet-webapp-openidconnect-v2) | [dotnet-admin-restricted-scopes-v2](https://github.com/azure-samples/active-directory-dotnet-admin-restricted-scopes-v2) |[msgraph-training-aspnetmvcapp](https://github.com/microsoftgraph/msgraph-training-aspnetmvcapp)
+| ![Node.js](media/sample-v2-code/logo_nodejs.png) | | [Node.js Quickstart](https://github.com/azureadquickstarts/appmodelv2-webapp-openidconnect-nodejs) |
+| ![Ruby](media/sample-v2-code/logo_ruby.png) | | [msgraph-training-rubyrailsapp](https://github.com/microsoftgraph/msgraph-training-rubyrailsapp) |
## Desktop and mobile public client apps
The following samples show public client applications (desktop/mobile applications) that access the Microsoft Graph API or your own Web API in the name of a user. All these client applications use Microsoft Authentication Libraries (MSAL).
-Client application | Platform | Flow/Grant | Calls Microsoft Graph | Calls an ASP.NET Core 2.0 Web API
------------------- | -------- | ----------| ---------- | -------------------------
-Desktop (WPF) | ![.NET/C#](media/sample-v2-code/logo_NET.png) | interactive | [dotnet-desktop-msgraph-v2](https://github.com/azure-samples/active-directory-dotnet-desktop-msgraph-v2) | [dotnet-native-aspnetcore-v2](https://aka.ms/msidentity-aspnetcore-webapi)
-Desktop (Console) | ![.NET/C# (Desktop)](media/sample-v2-code/logo_NET.png) | Integrated Windows Authentication |[dotnet-iwa-v2](https://github.com/azure-samples/active-directory-dotnet-iwa-v2)
-Desktop (Console) | ![.NET/C# (Desktop)](media/sample-v2-code/logo_NETcore.png) | Username/Password |[dotnetcore-up-v2](https://github.com/azure-samples/active-directory-dotnetcore-console-up-v2)
-Mobile (UWP) | ![.NET/C# (UWP)](media/sample-v2-code/logo_windows.png) | interactive |[dotnet-native-uwp-v2](https://github.com/azure-samples/active-directory-dotnet-native-uwp-v2) |
-Mobile (Android, iOS, UWP) | ![.NET/C# (Xamarin)](media/sample-v2-code/logo_xamarin.png) | interactive |[xamarin-native-v2](https://github.com/azure-samples/active-directory-xamarin-native-v2) |
-Mobile (iOS) | ![iOS / Objective C or swift](media/sample-v2-code/logo_iOS.png) | interactive |[ios-swift-native-v2](https://github.com/azure-samples/active-directory-ios-swift-native-v2) [ios-native-nxoauth2-v2](https://github.com/azure-samples/active-directory-ios-native-nxoauth2-v2) |
-Mobile (Android) | ![Android / Java](media/sample-v2-code/logo_Android.png) | interactive | [android-native-v2](https://github.com/azure-samples/active-directory-android-native-v2 ) |
+| Client application | Platform | Flow/Grant | Calls Microsoft Graph | Calls an ASP.NET Core 2.0 Web API |
+| ------------------ | -------- | ----------| ---------- | ------------------------- |
+| Desktop (WPF) | ![.NET/C#](media/sample-v2-code/logo_NET.png) | interactive | [dotnet-desktop-msgraph-v2](https://github.com/azure-samples/active-directory-dotnet-desktop-msgraph-v2) | [dotnet-native-aspnetcore-v2](https://aka.ms/msidentity-aspnetcore-webapi) |
+| Desktop (Console) | ![.NET/C# (Desktop)](media/sample-v2-code/logo_NET.png) | Integrated Windows Authentication | [dotnet-iwa-v2](https://github.com/azure-samples/active-directory-dotnet-iwa-v2) | |
+| Desktop (Console) | ![.NET/C# (Desktop)](media/sample-v2-code/logo_NETcore.png) | Username/Password |[dotnetcore-up-v2](https://github.com/azure-samples/active-directory-dotnetcore-console-up-v2) | |
+| Mobile (Android, iOS, UWP) | ![.NET/C# (Xamarin)](media/sample-v2-code/logo_xamarin.png) | interactive |[xamarin-native-v2](https://github.com/azure-samples/active-directory-xamarin-native-v2) | |
+| Mobile (iOS) | ![iOS / Objective C or swift](media/sample-v2-code/logo_iOS.png) | interactive |[ios-swift-native-v2](https://github.com/azure-samples/active-directory-ios-swift-native-v2) [ios-native-nxoauth2-v2](https://github.com/azure-samples/active-directory-ios-native-nxoauth2-v2) | |
+| Mobile (Android) | ![Android / Java](media/sample-v2-code/logo_Android.png) | interactive | [android-native-v2](https://github.com/azure-samples/active-directory-android-native-v2 ) | |
## Daemon applications
The following samples show an application that accesses the Microsoft Graph API with its own identity (with no user).
-Client application | Platform | Flow/Grant | Calls Microsoft Graph
------------------- | -------- | ---------- | --------------------
-Console | ![.NET Core](media/sample-v2-code/logo_NETcore.png) ASP.NET | Client Credentials | [dotnetcore-daemon-v2](https://github.com/azure-samples/active-directory-dotnetcore-daemon-v2)
-Web app | ![ASP.NET](media/sample-v2-code/logo_NETframework.png) ASP.NET | Client Credentials | [dotnet-daemon-v2](https://github.com/azure-samples/active-directory-dotnet-daemon-v2)
+| Client application | Platform | Flow/Grant | Calls Microsoft Graph |
+| ------------------ | -------- | ---------- | -------------------- |
+| Console | ![.NET Core](media/sample-v2-code/logo_NETcore.png) ASP.NET | Client Credentials | [dotnetcore-daemon-v2](https://github.com/azure-samples/active-directory-dotnetcore-daemon-v2) |
+| Web app | ![ASP.NET](media/sample-v2-code/logo_NETframework.png) ASP.NET | Client Credentials | [dotnet-daemon-v2](https://github.com/azure-samples/active-directory-dotnet-daemon-v2) |
## Headless applications
The following sample shows a public client application running on a device without a web browser. The app can be a command-line tool, or running on Linux/Mac, or an IoT application. The sample features an app accessing the Microsoft Graph API in the name of a user who signs-in interactively on another device (such as a mobile phone). This client application uses MicroSoft Authentication Libraries (MSAL).
-Client application | Platform | Flow/Grant | Calls Microsoft Graph
------------------- | -------- | ----------| ----------
-Desktop (Console) | ![.NET/C# (Desktop)](media/sample-v2-code/logo_NETcore.png) | Device code flow |[dotnetcore-devicecodeflow-v2](https://github.com/azure-samples/active-directory-dotnetcore-devicecodeflow-v2)
+| Client application | Platform | Flow/Grant | Calls Microsoft Graph |
+| ------------------ | -------- | ----------| ---------- |
+| Desktop (Console) | ![.NET/C# (Desktop)](media/sample-v2-code/logo_NETcore.png) | Device code flow |[dotnetcore-devicecodeflow-v2](https://github.com/azure-samples/active-directory-dotnetcore-devicecodeflow-v2) |
## Web APIs
-The following sample shows how to protect a web API with the Azure AD v2.0 endpoint. This API is exercised by a WPF application, but it can be called by any application. The web API also calls Microsoft Graph.
+The following sample shows how to protect a web API with the Microsoft identity platform endpoint. This API is exercised by a WPF application, but it can be called by any application. The web API also calls Microsoft Graph.
-Platform | Sample
- -------- | -------------------
-![.NET/C#](media/sample-v2-code/logo_NET.png) | WebAPI (service) of [dotnet-native-aspnetcore-v2](https://aka.ms/msidentity-aspnetcore-webapi-calls-msgraph)
+| Platform | Sample |
+| -------- | ------------------- |
+| ![.NET/C#](media/sample-v2-code/logo_NET.png) | WebAPI (service) of [dotnet-native-aspnetcore-v2](https://aka.ms/msidentity-aspnetcore-webapi-calls-msgraph) |
## Other Microsoft Graph samples
@@ -109,8 +108,6 @@ To learn about [samples](https://github.com/microsoftgraph/msgraph-community-sam
## See also
-[Azure Active Directory developer's guide](v1-overview.md)
-
-[Azure AD Graph API conceptual and reference](https://msdn.microsoft.com/library/azure/hh974476.aspx)
-
-[Azure AD Graph API Helper Library](https://www.nuget.org/packages/Microsoft.Azure.ActiveDirectory.GraphClient)
+- [Azure Active Directory (v1.0) developer's guide](v1-overview.md)
+- [Azure AD Graph API conceptual and reference](https://msdn.microsoft.com/library/azure/hh974476.aspx)
+- [Azure AD Graph API Helper Library](https://www.nuget.org/packages/Microsoft.Azure.ActiveDirectory.GraphClient)
diff --git a/articles/active-directory/develop/setup-multi-tenant-app.md b/articles/active-directory/develop/setup-multi-tenant-app.md
index e7c07a619273b..81d02741e2788 100644
--- a/articles/active-directory/develop/setup-multi-tenant-app.md
+++ b/articles/active-directory/develop/setup-multi-tenant-app.md
@@ -24,7 +24,7 @@ ms.collection: M365-identity-device-management
Here is a list of recommended topics to learn more about multi-tenant applications:
- Get a general understanding of [what it means to be a multi-tenant application](https://docs.microsoft.com/azure/active-directory/develop/active-directory-dev-glossary#multi-tenant-application)
-- Get a general understanding of [how to configure an application to be multi-tenant](https://docs.microsoft.com/azure/active-directory/develop/active-directory-integrating-applications)
+- Get a general understanding of [how to configure an application to be multi-tenant](https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-convert-app-to-be-multi-tenant)
- Get a step-by-step overview of [how the Azure AD consent framework is used to implement consent](https://docs.microsoft.com/azure/active-directory/develop/active-directory-integrating-applications), which is required for multi-tenant applications
- For more depth, learn [how a multi-tenant application is configured and coded end-to-end](https://docs.microsoft.com/azure/active-directory/develop/active-directory-devhowto-multi-tenant-overview), including how to register, use the "common" endpoint, implement "user" and "admin" consent, how to implement more advanced multi-tier scenarios
diff --git a/articles/active-directory/develop/tutorial-v2-asp-webapp.md b/articles/active-directory/develop/tutorial-v2-asp-webapp.md
index 53e64e7d52bfe..36d4466eadba1 100644
--- a/articles/active-directory/develop/tutorial-v2-asp-webapp.md
+++ b/articles/active-directory/develop/tutorial-v2-asp-webapp.md
@@ -13,7 +13,7 @@ ms.devlang: na
ms.topic: tutorial
ms.tgt_pltfrm: na
ms.workload: identity
-ms.date: 03/20/2019
+ms.date: 04/11/2019
ms.author: jmprieur
ms.custom: aaddev
ms.collection: M365-identity-device-management
@@ -24,3 +24,14 @@ ms.collection: M365-identity-device-management
[!INCLUDE [3. Use](../../../includes/active-directory-develop-guidedsetup-aspnetwebapp-use.md)]
[!INCLUDE [4. Configure](../../../includes/active-directory-develop-guidedsetup-aspnetwebapp-configure.md)]
[!INCLUDE [5. Test and Validate](../../../includes/active-directory-develop-guidedsetup-aspnetwebapp-test.md)]
+
+## Next steps
+
+Learn about Web apps calling web APIs:.
+
+### Learn the steps to create the application used in this quickstart
+
+> [!div class="nextstepaction"]
+> [Web apps calling Web APIs]( https://aka.ms/msal-net-authorization-code)
+
+[!INCLUDE [Help and support](../../../includes/active-directory-develop-help-support-include.md)]
\ No newline at end of file
diff --git a/articles/active-directory/develop/tutorial-v2-windows-desktop.md b/articles/active-directory/develop/tutorial-v2-windows-desktop.md
index eca112e021650..48f14e3810923 100644
--- a/articles/active-directory/develop/tutorial-v2-windows-desktop.md
+++ b/articles/active-directory/develop/tutorial-v2-windows-desktop.md
@@ -1,6 +1,6 @@
---
-title: Get started with Azure Active Directory v2.0 Windows desktop | Microsoft Docs
-description: How a Windows Desktop .NET (XAML) application can get an access token and call an API protected by an Azure Active Directory v2.0 endpoint.
+title: Get started with Microsoft identity platform Windows desktop | Microsoft Docs
+description: How a Windows Desktop .NET (XAML) application can get an access token and call an API protected by the Microsoft identity platform.
services: active-directory
documentationcenter: dev-center-name
author: jmprieur
@@ -13,7 +13,7 @@ ms.devlang: na
ms.topic: tutorial
ms.tgt_pltfrm: na
ms.workload: identity
-ms.date: 03/20/2019
+ms.date: 04/10/2019
ms.author: jmprieur
ms.custom: aaddev
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/develop/tutorial-v2-windows-uwp.md b/articles/active-directory/develop/tutorial-v2-windows-uwp.md
index a77abf45393fd..986e11fddeabc 100644
--- a/articles/active-directory/develop/tutorial-v2-windows-uwp.md
+++ b/articles/active-directory/develop/tutorial-v2-windows-uwp.md
@@ -1,6 +1,6 @@
---
-title: Azure AD v2.0 UWP getting started | Microsoft Docs
-description: How Universal Windows Platform applications (UWP) can call an API that requires access tokens by the Azure Active Directory v2.0 endpoint
+title: Microsoft identity platform UWP getting started | Azure
+description: How Universal Windows Platform applications (UWP) can call an API that requires access tokens by the Microsoft identity platform endpoint.
services: active-directory
documentationcenter: dev-center-name
author: jmprieur
@@ -13,7 +13,7 @@ ms.devlang: na
ms.topic: tutorial
ms.tgt_pltfrm: na
ms.workload: identity
-ms.date: 03/20/2019
+ms.date: 04/11/2019
ms.author: jmprieur
ms.custom: aaddev
ms.collection: M365-identity-device-management
@@ -24,18 +24,18 @@ ms.collection: M365-identity-device-management
> [!div renderon="docs"]
> [!INCLUDE [active-directory-develop-applies-v2-msal](../../../includes/active-directory-develop-applies-v2-msal.md)]
-This guide explains how a native Universal Windows Platform (UWP) application can request an access token and then call Microsoft Graph API. The guide also applies to other APIs that require access tokens from the Azure Active Directory v2.0 endpoint.
+This guide explains how a native Universal Windows Platform (UWP) application can request an access token and then call Microsoft Graph API. The guide also applies to other APIs that require access tokens from the Microsoft identity platform endpoint.
-At the end of this guide, your application calls a protected API by using personal accounts. Examples are outlook.com, live.com, and others. Your application also calls work and school accounts from any company or organization that has Azure Active Directory.
+At the end of this guide, your application calls a protected API by using personal accounts. Examples are outlook.com, live.com, and others. Your application also calls work and school accounts from any company or organization that has Azure Active Directory (Azure AD).
>[!NOTE]
> This guide requires Visual Studio 2017 with Universal Windows Platform development installed. See [Get set up](https://docs.microsoft.com/windows/uwp/get-started/get-set-up) for instructions to download and configure Visual Studio to develop Universal Windows Platform apps.
## How this guide works
-![Shows how the sample app generated by this tutorial works](./media/tutorial-v2-windows-uwp/uwp-intro-updated.png)
+![Shows how the sample app generated by this tutorial works](./media/tutorial-v2-windows-uwp/uwp-intro.svg)
-This guide creates a sample UWP application that queries Microsoft Graph API or a Web API that accepts tokens from the Azure Active Directory v2.0 endpoint. For this scenario, a token is added to HTTP requests via the Authorization header. Microsoft Authentication Library (MSAL) handles token acquisitions and renewals.
+This guide creates a sample UWP application that queries Microsoft Graph API or a Web API that accepts tokens from the Microsoft identity platform endpoint. For this scenario, a token is added to HTTP requests via the Authorization header. Microsoft Authentication Library (MSAL) handles token acquisitions and renewals.
## NuGet packages
@@ -52,8 +52,7 @@ This section provides step-by-step instructions to integrate a Windows Desktop .
This guide creates an application that displays a button that queries Graph API, a sign-out button, and text boxes that display the results of the calls.
> [!NOTE]
-> Do you want to download this sample's Visual Studio project instead? [Download a project](https://github.com/Azure-Samples/active-directory-dotnet-native-uwp-v2/archive/master.zip) and skip to the [application registration](#register-your-application "application registration step") step to configure the code sample before it runs.
-
+> Do you want to download this sample's Visual Studio project instead? [Download a project](https://github.com/Azure-Samples/active-directory-dotnet-native-uwp-v2/archive/msal3x.zip) and skip to the [application registration](#register-your-application "application registration step") step to configure the code sample before it runs.
### Create your application
@@ -70,30 +69,11 @@ This guide creates an application that displays a button that queries Graph API,
2. Copy and paste the following command in the **Package Manager Console** window:
```powershell
- Install-Package Microsoft.Identity.Client
+ Install-Package Microsoft.Identity.Client -IncludePrerelease
```
> [!NOTE]
-> This command installs [Microsoft Authentication Library](https://aka.ms/msal-net). MSAL acquires, caches, and refreshes user tokens that access APIs protected by Azure Active Directory v2.0.
-
-## Initialize MSAL
-This step helps you create a class to handle interaction with MSAL, such as handling tokens.
-
-1. Open the **App.xaml.cs** file and add the reference for MSAL to the class:
-
- ```csharp
- using Microsoft.Identity.Client;
- ```
-
-2. Add the following two lines to the app's class (inside sealed partial class App : Application
block):
-
- ```csharp
- // Below is the clientId of your app registration.
- // You have to replace the below with the Application Id for your app registration
- private static string ClientId = "your_client_id_here";
-
- public static PublicClientApplication PublicClientApp = new PublicClientApplication(ClientId);
- ```
+> This command installs [Microsoft Authentication Library](https://aka.ms/msal-net). MSAL acquires, caches, and refreshes user tokens that access APIs protected by Microsoft identity platform.
## Create your application’s UI
@@ -125,83 +105,118 @@ This section shows how to use MSAL to get a token for Microsoft Graph API.
```csharp
using Microsoft.Identity.Client;
```
+
2. Replace the code of your MainPage
class with the following code:
```csharp
public sealed partial class MainPage : Page
{
- // Set the API Endpoint to Graph 'me' endpoint
+ //Set the API Endpoint to Graph 'me' endpoint
string graphAPIEndpoint = "https://graph.microsoft.com/v1.0/me";
-
- // Set the scope for API call to user.read
+
+ //Set the scope for API call to user.read
string[] scopes = new string[] { "user.read" };
-
+
+ // Below are the clientId (Application Id) of your app registration and the tenant information.
+ // You have to replace:
+ // - the content of ClientID with the Application Id for your app registration
+ // - Te content of Tenant by the information about the accounts allowed to sign-in in your application:
+ // - For Work or School account in your org, use your tenant ID, or domain
+ // - for any Work or School accounts, use organizations
+ // - for any Work or School accounts, or Microsoft personal account, use common
+ // - for Microsoft Personal account, use consumers
+ private const string ClientId = "0b8b0665-bc13-4fdc-bd72-e0227b9fc011";
+
+ public IPublicClientApplication PublicClientApp { get; }
+
public MainPage()
{
- this.InitializeComponent();
+ this.InitializeComponent();
+
+ PublicClientApp = PublicClientApplicationBuilder.Create(ClientId)
+ .WithAuthority(AadAuthorityAudience.AzureAdAndPersonalMicrosoftAccount)
+ .WithLogging((level, message, containsPii) =>
+ {
+ Debug.WriteLine($"MSAL: {level} {message} ");
+ }, LogLevel.Warning, enablePiiLogging:false,enableDefaultPlatformLogging:true)
+ .WithUseCorporateNetwork(true)
+ .Build();
}
-
+
///
/// Call AcquireTokenAsync - to acquire a token requiring user to sign-in
///
private async void CallGraphButton_Click(object sender, RoutedEventArgs e)
{
- AuthenticationResult authResult = null;
- ResultText.Text = string.Empty;
- TokenInfoText.Text = string.Empty;
-
- try
- {
- var accounts = await App.PublicClientApp.GetAccountsAsync();
- authResult = await App.PublicClientApp.AcquireTokenSilentAsync(scopes, accounts.FirstOrDefault());
- }
- catch (MsalUiRequiredException ex)
- {
- // A MsalUiRequiredException happened on AcquireTokenSilentAsync. This indicates you need to call AcquireTokenAsync to acquire a token
- System.Diagnostics.Debug.WriteLine($"MsalUiRequiredException: {ex.Message}");
-
- try
- {
- authResult = await App.PublicClientApp.AcquireTokenAsync(scopes);
- }
- catch (MsalException msalex)
- {
- ResultText.Text = $"Error Acquiring Token:{System.Environment.NewLine}{msalex}";
- }
- }
- catch (Exception ex)
- {
- ResultText.Text = $"Error Acquiring Token Silently:{System.Environment.NewLine}{ex}";
- return;
- }
-
- if (authResult != null)
- {
- ResultText.Text = await GetHttpContentWithToken(graphAPIEndpoint, authResult.AccessToken);
- DisplayBasicTokenInfo(authResult);
- this.SignOutButton.Visibility = Visibility.Visible;
- }
+ AuthenticationResult authResult = null;
+ ResultText.Text = string.Empty;
+ TokenInfoText.Text = string.Empty;
+
+ // It's good practice to not do work on the UI thread, so use ConfigureAwait(false) whenever possible.
+ IEnumerable accounts = await PublicClientApp.GetAccountsAsync().ConfigureAwait(false);
+ IAccount firstAccount = accounts.FirstOrDefault();
+
+ try
+ {
+ authResult = await PublicClientApp.AcquireTokenSilent(scopes, firstAccount)
+ .ExecuteAsync();
+ }
+ catch (MsalUiRequiredException ex)
+ {
+ // A MsalUiRequiredException happened on AcquireTokenSilent.
+ // This indicates you need to call AcquireTokenInteractive to acquire a token
+ System.Diagnostics.Debug.WriteLine($"MsalUiRequiredException: {ex.Message}");
+
+ try
+ {
+ authResult = await PublicClientApp.AcquireTokenInteractive(scopes)
+ .ExecuteAsync()
+ .ConfigureAwait(false);
+ }
+ catch (MsalException msalex)
+ {
+ await DisplayMessageAsync($"Error Acquiring Token:{System.Environment.NewLine}{msalex}");
+ }
+ }
+ catch (Exception ex)
+ {
+ await DisplayMessageAsync($"Error Acquiring Token Silently:{System.Environment.NewLine}{ex}");
+ return;
+ }
+
+ if (authResult != null)
+ {
+ var content = await GetHttpContentWithToken(graphAPIEndpoint,
+ authResult.AccessToken).ConfigureAwait(false);
+
+ // Go back to the UI thread to make changes to the UI
+ await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
+ {
+ ResultText.Text = content;
+ DisplayBasicTokenInfo(authResult);
+ this.SignOutButton.Visibility = Visibility.Visible;
+ });
+ }
}
- }
```
### More information
#### Get a user token interactively
-A call to the `AcquireTokenAsync` method results in a window that prompts users to sign in. Applications usually require users to sign in interactively the first time they need to access a protected resource. They might also need to sign in when a silent operation to acquire a token fails. An example is when a user’s password is expired.
+A call to the `AcquireTokenInteractive` method results in a window that prompts users to sign in. Applications usually require users to sign in interactively the first time they need to access a protected resource. They might also need to sign in when a silent operation to acquire a token fails. An example is when a user’s password is expired.
#### Get a user token silently
-The `AcquireTokenSilentAsync` method handles token acquisitions and renewals without any user interaction. After `AcquireTokenAsync` is executed for the first time and the user is prompted for credentials, the `AcquireTokenSilentAsync` method should be used to request tokens for subsequent calls because it acquire tokens silently. MSAL will handle token cache and renewal.
+The `AcquireTokenSilent` method handles token acquisitions and renewals without any user interaction. After `AcquireTokenInteractive` is executed for the first time and the user is prompted for credentials, the `AcquireTokenSilent` method should be used to request tokens for subsequent calls because it acquires tokens silently. MSAL will handle token cache and renewal.
-Eventually, the `AcquireTokenSilentAsync` method fails. Reasons for failure might be that users have either signed out or changed their password on another device. When MSAL detects that the issue can be resolved by requiring an interactive action, it fires an `MsalUiRequiredException` exception. Your application can handle this exception in two ways:
+Eventually, the `AcquireTokenSilent` method fails. Reasons for failure might be that users have either signed out or changed their password on another device. When MSAL detects that the issue can be resolved by requiring an interactive action, it fires an `MsalUiRequiredException` exception. Your application can handle this exception in two ways:
-* It can make a call against `AcquireTokenAsync` immediately. This call results in prompting the user to sign in. Normally, this pattern is used in online applications where there's no available offline content for the user. The sample generated by this guided setup follows the pattern. You see it in action the first time you run the sample.
+* It can make a call against `AcquireTokenInteractive` immediately. This call results in prompting the user to sign in. Normally, this pattern is used in online applications where there's no available offline content for the user. The sample generated by this guided setup follows the pattern. You see it in action the first time you run the sample.
* Because no user has used the application, `accounts.FirstOrDefault()` contains a null value, and an `MsalUiRequiredException` exception is thrown.
- * The code in the sample then handles the exception by calling `AcquireTokenAsync`. This call results in prompting the user to sign in.
+ * The code in the sample then handles the exception by calling `AcquireTokenInteractive`. This call results in prompting the user to sign in.
-* Or instead, it presents a visual indication to users that an interactive sign in is required. Then they can select the right time to sign in. Or the application can retry `AcquireTokenSilentAsync` later. Frequently, this pattern is used when users can use other application functionality without disruption. An example is when offline content is available in the application. In this case, users can decide when they want to sign in to either access the protected resource or refresh the outdated information. Or else the application can decide to retry `AcquireTokenSilentAsync` when the network is restored after it was temporarily unavailable.
+* Or instead, it presents a visual indication to users that an interactive sign in is required. Then they can select the right time to sign in. Or the application can retry `AcquireTokenSilent` later. Frequently, this pattern is used when users can use other application functionality without disruption. An example is when offline content is available in the application. In this case, users can decide when they want to sign in to either access the protected resource or refresh the outdated information. Or else the application can decide to retry `AcquireTokenSilent` when the network is restored after it was temporarily unavailable.
## Call Microsoft Graph API by using the token you just obtained
@@ -222,7 +237,8 @@ Eventually, the `AcquireTokenSilentAsync` method fails. Reasons for failure migh
{
var request = new System.Net.Http.HttpRequestMessage(System.Net.Http.HttpMethod.Get, url);
// Add the token in Authorization header
- request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
+ request.Headers.Authorization =
+ new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
response = await httpClient.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
return content;
@@ -247,26 +263,33 @@ In this sample application, the `GetHttpContentWithToken` method is used to make
///
/// Sign out the current user
///
- private void SignOutButton_Click(object sender, RoutedEventArgs e)
+ private async void SignOutButton_Click(object sender, RoutedEventArgs e)
{
- var accounts = await App.PublicClientApp.GetAccountsAsync();
- if (accounts.Any())
+ IEnumerable accounts = await PublicClientApp.GetAccountsAsync
+ .ConfigureAwait(false);
+ IAccount firstAccount = accounts.FirstOrDefault();
+
+ try
{
- try
+ await PublicClientApp.RemoveAsync(firstAccount).ConfigureAwait(false);
+ await Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
{
- App.PublicClientApp.RemoveAsync(accounts.FirstOrDefault());
- this.ResultText.Text = "User has signed-out";
+ ResultText.Text = "User has signed-out";
this.CallGraphButton.Visibility = Visibility.Visible;
- this.SignOutButton.Visibility = Visibility.Collapsed;
+ this.SignOutButton.Visibility = Visibility.Collapsed;
+ });
}
catch (MsalException ex)
{
ResultText.Text = $"Error signing-out user: {ex.Message}";
}
}
- }
```
+> [!NOTE]
+> MSAL.NET uses asynchronous methods to acquire tokens or manipulate accounts, and therefore you need to take care of doing UI-ed actions in the UI thread, hence the `Dispatcher.RunAsync`,
+> and the precautions to call `ConfigureAwait(false)`
+
### More information on sign-out
The `SignOutButton_Click` method removes the user from the MSAL user cache. This method effectively tells MSAL to forget the current user. Then a future request to acquire a token succeeds only if it's made to be interactive.
@@ -278,17 +301,15 @@ The application in this sample supports a single user. But MSAL supports scenari
```csharp
///
- /// Display basic information contained in the token
+ /// Display basic information contained in the token. Needs to be called from the UI thead.
///
private void DisplayBasicTokenInfo(AuthenticationResult authResult)
{
TokenInfoText.Text = "";
if (authResult != null)
{
- TokenInfoText.Text += $"Name: {authResult.User.Name}" + Environment.NewLine;
- TokenInfoText.Text += $"Username: {authResult.User.DisplayableId}" + Environment.NewLine;
+ TokenInfoText.Text += $"User Name: {authResult.Account.Username}" + Environment.NewLine;
TokenInfoText.Text += $"Token Expires: {authResult.ExpiresOn.ToLocalTime()}" + Environment.NewLine;
- TokenInfoText.Text += $"Access Token: {authResult.AccessToken}" + Environment.NewLine;
}
}
```
@@ -300,19 +321,28 @@ ID tokens acquired via **OpenID Connect** also contain a small subset of informa
## Register your application
Now you need to register your application in the Microsoft Application Registration Portal:
-1. Go to the [Microsoft Application Registration Portal](https://apps.dev.microsoft.com/portal/register-app) to register an application.
-2. Enter a name for your application.
-3. Make sure that the option for **Guided Setup** is *not selected*.
-4. Select **Add Platforms**, select **Native Application**, and then select **Save**.
-5. Copy the GUID in **Application ID**, go back to Visual Studio, open **App.xaml.cs**, and replace `your_client_id_here` with the Application ID you just registered:
- ```csharp
- private static string ClientId = "your_application_id_here";
- ```
+1. Sign in to the [Azure portal](https://portal.azure.com) using either a work or school account or a personal Microsoft account.
+1. If your account is present in more than one Azure AD tenant, select `Directory + Subscription` at the top-right corner in the menu on top of the page, and switch your portal session to the desired Azure AD tenant.
+1. Navigate to the Microsoft identity platform for developers [App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page.
+1. Select **New registration**.
+ - In the **Name** section, enter a meaningful application name that will be displayed to users of the app, for example `UWP-App-calling-MSGraph`.
+ - In the **Supported account types** section, select **Accounts in any organizational directory and personal Microsoft accounts (e.g. Skype, Xbox, Outlook.com)**.
+ - Select **Register** to create the application.
+1. On the app **Overview** page, find the **Application (client) ID** value and record it for later. Go back to Visual Studio, open **MainPage.xaml.cs**, and replace the value of ClientId with the Application ID you just registered:
+1. In the list of pages for the app, select **Authentication**:
+ - In the **Redirect URIs** | **Suggested Redirect URIs for public clients (mobile, desktop)** section, check **urn:ietf:wg:oauth:2.0:oob**
+1. Select **Save**.
+1. In the list of pages for the app, select **API permissions**
+ - Click the **Add a permission** button and then,
+ - Ensure that the **Microsoft API's** tab is selected
+ - In the *Commonly used Microsoft APIs* section, click on **Microsoft Graph**
+ - In the **Delegated permissions** section, ensure that the right permissions are checked: **User.Read**. Use the search box if necessary.
+ - Select the **Add permissions** button
## Enable integrated authentication on federated domains (optional)
-To enable Windows Integrated Authentication when it's used with a federated Azure Active Directory domain, the application manifest must enable additional capabilities:
+To enable Windows-Integrated Authentication when it's used with a federated Azure AD domain, the application manifest must enable additional capabilities:
1. Double-click **Package.appxmanifest**.
2. Select the **Capabilities** tab and make sure that the following settings are enabled:
@@ -321,14 +351,8 @@ To enable Windows Integrated Authentication when it's used with a federated Azur
- Private Networks (Client & Server)
- Shared User Certificates
-3. Open **App.xaml.cs** and add the following line in the app constructor:
-
- ```csharp
- App.PublicClientApp.UseCorporateNetwork = true;
- ```
-
> [!IMPORTANT]
-> [Integrated Windows Authentication](https://aka.ms/msal-net-iwa) is not configured by default for this sample. Applications that request *Enterprise Authentication* or *Shared User Certificates* capabilities require a higher level of verification by the Windows Store. Also, not all developers want to perform the higher level of verification. Enable this setting only if you need Windows Integrated Authentication with a federated Azure Active Directory domain.
+> [Integrated Windows Authentication](https://aka.ms/msal-net-iwa) is not configured by default for this sample. Applications that request *Enterprise Authentication* or *Shared User Certificates* capabilities require a higher level of verification by the Windows Store. Also, not all developers want to perform the higher level of verification. Enable this setting only if you need Windows Integrated Authentication with a federated Azure AD domain.
## Test your code
@@ -336,30 +360,28 @@ To test your application, select F5 to run your project in Visual Studio. Your m
![Application's user interface](./media/tutorial-v2-windows-uwp/testapp-ui.png)
-When you're ready to test, select **Call Microsoft Graph API**. Then use a Microsoft Azure Active Directory organizational account or a Microsoft account, such as live.com or outlook.com, to sign in. If it's your first time, you see a window asking the user to sign in:
+When you're ready to test, select **Call Microsoft Graph API**. Then use an Azure AD organizational account or a Microsoft account, such as live.com or outlook.com, to sign in. If it's your first time, you see a window asking the user to sign in:
![Sign-in page](./media/tutorial-v2-windows-uwp/sign-in-page.png)
### Consent
+
The first time you sign in to your application, you're presented with a consent screen similar to the following. Select **Yes** to explicitly consent to access:
![Access consent screen](./media/tutorial-v2-windows-uwp/consentscreen.png)
+
### Expected results
+
You see user profile information returned by the Microsoft Graph API call on the **API Call Results** screen:
![API Call Results screen](./media/tutorial-v2-windows-uwp/uwp-results-screen.PNG)
-You also see basic information about the token acquired via `AcquireTokenAsync` or `AcquireTokenSilentAsync` in the **Token Info** box:
+You also see basic information about the token acquired via `AcquireTokenInteractive` or `AcquireTokenSilent` in the **Token Info** box:
|Property |Format |Description |
|---------|---------|---------|
-|**Name** |User's full name|The user’s first and last name.|
|**Username** |user@domain.com |The username that identifies the user.|
|**Token Expires** |DateTime |The time when the token expires. MSAL extends the expiration date by renewing the token as necessary.|
-|**Access Token** |String |The token string that is sent to HTTP requests that require an *Authorization header*.|
-
-#### See what's in the access token (optional)
-Optionally, copy the value in **Access Token** and paste it in https://jwt.ms to decode it and see the list of claims.
### More information about scopes and delegated permissions
@@ -373,17 +395,20 @@ To access the user’s calendars in the context of an application, add the *Cale
## Known issues
### Issue 1
-You receive one of the following error messages when you sign in on your application on a federated Azure Active Directory domain:
- - No valid client certificate found in the request.
- - No valid certificates found in the user's certificate store.
- - Try again choosing a different authentication method.
+
+You receive one of the following error messages when you sign in on your application on a federated Azure AD domain:
+
+* No valid client certificate found in the request.
+* No valid certificates found in the user's certificate store.
+* Try again choosing a different authentication method.
**Cause:** Enterprise and certificate capabilities aren't enabled.
**Solution:** Follow the steps in [integrated authentication on federated domains](#enable-integrated-authentication-on-federated-domains-optional).
### Issue 2
-You enable [integrated authentication on federated domains](#enable-integrated-authentication-on-federated-domains-optional) and try to use Windows Hello on a Windows 10 computer to sign in on an environment with multifactor authentication configured. The list of certificates is presented. However, if you choose to use your PIN, the PIN window is never presented.
+
+You enable [integrated authentication on federated domains](#enable-integrated-authentication-on-federated-domains-optional) and try to use Windows Hello on a Windows 10 computer to sign in on an environment with multi-factor authentication configured. The list of certificates is presented. However, if you choose to use your PIN, the PIN window is never presented.
**Cause:** This issue is a known limitation of the web authentication broker in UWP applications that run on Windows 10 desktop. It works fine on Windows 10 Mobile.
diff --git a/articles/active-directory/develop/v1-protocols-openid-connect-code.md b/articles/active-directory/develop/v1-protocols-openid-connect-code.md
index 4e4edc50c06ca..1261b81b3b826 100644
--- a/articles/active-directory/develop/v1-protocols-openid-connect-code.md
+++ b/articles/active-directory/develop/v1-protocols-openid-connect-code.md
@@ -43,12 +43,12 @@ OpenID Connect describes a metadata document that contains most of the informati
```
https://login.microsoftonline.com/{tenant}/.well-known/openid-configuration
```
-The metadata is a simple JavaScript Object Notation (JSON) document. See the following snippet for an example. The snippet's contents are fully described in the [OpenID Connect specification](https://openid.net). Note that providing tenant rather than `common` in place of {tenant} above will result in tenant-specific URIs in the JSON object returned.
+The metadata is a simple JavaScript Object Notation (JSON) document. See the following snippet for an example. The snippet's contents are fully described in the [OpenID Connect specification](https://openid.net). Note that providing a tenant ID rather than `common` in place of {tenant} above will result in tenant-specific URIs in the JSON object returned.
```
{
- "authorization_endpoint": "https://login.microsoftonline.com/common/oauth2/authorize",
- "token_endpoint": "https://login.microsoftonline.com/common/oauth2/token",
+ "authorization_endpoint": "https://login.microsoftonline.com/{tenant}/oauth2/authorize",
+ "token_endpoint": "https://login.microsoftonline.com/{tenant}/oauth2/token",
"token_endpoint_auth_methods_supported":
[
"client_secret_post",
@@ -61,6 +61,8 @@ The metadata is a simple JavaScript Object Notation (JSON) document. See the fol
}
```
+If your app has custom signing keys as a result of using the [claims-mapping](active-directory-claims-mapping.md) feature, you must append an `appid` query parameter containing the app ID in order to get a `jwks_uri` pointing to your app's signing key information. For example: `https://login.microsoftonline.com/{tenant}/.well-known/openid-configuration?appid=6731de76-14a6-49ae-97bc-6eba6914391e` contains a `jwks_uri` of `https://login.microsoftonline.com/{tenant}/discovery/keys?appid=6731de76-14a6-49ae-97bc-6eba6914391e`.
+
## Send the sign-in request
When your web application needs to authenticate the user, it must direct the user to the `/authorize` endpoint. This request is similar to the first leg of the [OAuth 2.0 Authorization Code Flow](v1-protocols-oauth-code.md), with a few important distinctions:
@@ -87,7 +89,7 @@ client_id=6731de76-14a6-49ae-97bc-6eba6914391e
| Parameter | | Description |
| --- | --- | --- |
| tenant |required |The `{tenant}` value in the path of the request can be used to control who can sign into the application. The allowed values are tenant identifiers, for example, `8eaef023-2b34-4da1-9baa-8bc8c9d6a490` or `contoso.onmicrosoft.com` or `common` for tenant-independent tokens |
-| client_id |required |The Application Id assigned to your app when you registered it with Azure AD. You can find this in the Azure Portal. Click **Azure Active Directory**, click **App Registrations**, choose the application and locate the Application Id on the application page. |
+| client_id |required |The Application ID assigned to your app when you registered it with Azure AD. You can find this in the Azure portal. Click **Azure Active Directory**, click **App Registrations**, choose the application and locate the Application ID on the application page. |
| response_type |required |Must include `id_token` for OpenID Connect sign-in. It may also include other response_types, such as `code` or `token`. |
| scope | recommended | The OpenID Connect specification requires the scope `openid`, which translates to the "Sign you in" permission in the consent UI. This and other OIDC scopes are ignored on the v1.0 endpoint, but is still a best practice for standards-compliant clients. |
| nonce |required |A value included in the request, generated by the app, that is included in the resulting `id_token` as a claim. The app can then verify this value to mitigate token replay attacks. The value is typically a randomized, unique string or GUID that can be used to identify the origin of the request. |
@@ -175,13 +177,13 @@ post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
| Parameter | | Description |
| --- | --- | --- |
-| post_logout_redirect_uri |recommended |The URL that the user should be redirected to after successful logout. If not included, the user is shown a generic message. |
+| post_logout_redirect_uri |recommended |The URL that the user should be redirected to after successful sign out. If not included, the user is shown a generic message. |
## Single sign-out
When you redirect the user to the `end_session_endpoint`, Azure AD clears the user's session from the browser. However, the user may still be signed in to other applications that use Azure AD for authentication. To enable those applications to sign the user out simultaneously, Azure AD sends an HTTP GET request to the registered `LogoutUrl` of all the applications that the user is currently signed in to. Applications must respond to this request by clearing any session that identifies the user and returning a `200` response. If you wish to support single sign out in your application, you must implement such a `LogoutUrl` in your application's code. You can set the `LogoutUrl` from the Azure portal:
-1. Navigate to the [Azure Portal](https://portal.azure.com).
+1. Navigate to the [Azure portal](https://portal.azure.com).
2. Choose your Active Directory by clicking on your account in the top right corner of the page.
3. From the left hand navigation panel, choose **Azure Active Directory**, then choose **App registrations** and select your application.
4. Click on **Settings**, then **Properties** and find the **Logout URL** text box.
@@ -196,7 +198,7 @@ To acquire access tokens, you need to modify the sign-in request from above:
// Line breaks for legibility only
GET https://login.microsoftonline.com/{tenant}/oauth2/authorize?
-client_id=6731de76-14a6-49ae-97bc-6eba6914391e // Your registered Application Id
+client_id=6731de76-14a6-49ae-97bc-6eba6914391e // Your registered Application ID
&response_type=id_token+code
&redirect_uri=http%3A%2F%2Flocalhost%3a12345 // Your registered Redirect Uri, url encoded
&response_mode=form_post // `form_post' or 'fragment'
diff --git a/articles/active-directory/develop/v2-app-types.md b/articles/active-directory/develop/v2-app-types.md
index f9f9b79e8cb22..841de925d9744 100644
--- a/articles/active-directory/develop/v2-app-types.md
+++ b/articles/active-directory/develop/v2-app-types.md
@@ -1,6 +1,6 @@
---
-title: Application types for v2.0 | Azure
-description: The types of apps and scenarios supported by the Azure Active Directory v2.0 endpoint.
+title: Application types for Microsoft identity platform | Azure
+description: The types of apps and scenarios supported by the Microsoft identity platform (v2.0) endpoint.
services: active-directory
documentationcenter: ''
author: CelesteDG
@@ -14,31 +14,31 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 12/18/2018
+ms.date: 04/06/2019
ms.author: celested
-ms.reviewer: saeeda, jmprieur, andret
+ms.reviewer: saeeda, jmprieur
ms.custom: aaddev
ms.collection: M365-identity-device-management
---
-# Application types for v2.0
+# Application types for Microsoft identity platform
-The Azure Active Directory (Azure AD) v2.0 endpoint supports authentication for a variety of modern app architectures, all of them based on industry-standard protocols [OAuth 2.0 or OpenID Connect](active-directory-v2-protocols.md). This article describes the types of apps that you can build by using Azure AD v2.0, regardless of your preferred language or platform. The information in this article is designed to help you understand high-level scenarios before you [start working with the code](v2-overview.md#getting-started).
+The Microsoft identity platform (v2.0) endpoint supports authentication for a variety of modern app architectures, all of them based on industry-standard protocols [OAuth 2.0 or OpenID Connect](active-directory-v2-protocols.md). This article describes the types of apps that you can build by using Microsoft identity platform, regardless of your preferred language or platform. The information is designed to help you understand high-level scenarios before you [start working with the code](v2-overview.md#getting-started).
> [!NOTE]
-> The v2.0 endpoint doesn't support all Azure Active Directory scenarios and features. To determine whether you should use the v2.0 endpoint, read about [v2.0 limitations](active-directory-v2-limitations.md).
+> The Microsoft identity platform endpoint doesn't support all Azure Active Directory (Azure AD) scenarios and features. To determine whether you should use the Microsoft identity platform endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md).
## The basics
-You must register each app that uses the v2.0 endpoint in the [Microsoft Application Registration Portal](https://apps.dev.microsoft.com). The app registration process collects and assigns these values for your app:
+You must register each app that uses the Microsoft identity platform endpoint in the new [App registrations portal](https://go.microsoft.com/fwlink/?linkid=2083908). The app registration process collects and assigns these values for your app:
-* An **Application ID** that uniquely identifies your app
+* An **Application (client) ID** that uniquely identifies your app
* A **Redirect URI** that you can use to direct responses back to your app
-* A few other scenario-specific values
+* A few other scenario-specific values such as supported account types
-For details, learn how to [register an app](quickstart-v2-register-an-app.md).
+For details, learn how to [register an app](quickstart-register-app.md).
-After the app is registered, the app communicates with Azure AD by sending requests to the Azure AD v2.0 endpoint. We provide open-source frameworks and libraries that handle the details of these requests. You also have the option to implement the authentication logic yourself by creating requests to these endpoints:
+After the app is registered, the app communicates with Microsoft identity platform by sending requests to the endpoint. We provide open-source frameworks and libraries that handle the details of these requests. You also have the option to implement the authentication logic yourself by creating requests to these endpoints:
```
https://login.microsoftonline.com/common/oauth2/v2.0/authorize
@@ -47,13 +47,13 @@ https://login.microsoftonline.com/common/oauth2/v2.0/token
## Single-page apps (JavaScript)
-Many modern apps have a single-page app front end that primarily is written in JavaScript. Often, it's written by using a framework like AngularJS, Ember.js, or Durandal.js. The Azure AD v2.0 endpoint supports these apps by using the [OAuth 2.0 implicit flow](v2-oauth2-implicit-grant-flow.md).
+Many modern apps have a single-page app front end that primarily is written in JavaScript. Often, it's written by using a framework like AngularJS, Ember.js, or Durandal.js. The Microsoft identity platform endpoint supports these apps by using the [OAuth 2.0 implicit flow](v2-oauth2-implicit-grant-flow.md).
-In this flow, the app receives tokens directly from the v2.0 authorize endpoint, without any server-to-server exchanges. All authentication logic and session handling takes place entirely in the JavaScript client, without extra page redirects.
+In this flow, the app receives tokens directly from the Microsoft identity platform authorize endpoint, without any server-to-server exchanges. All authentication logic and session handling takes place entirely in the JavaScript client, without extra page redirects.
-![Implicit authentication flow](./media/v2-app-types/convergence_scenarios_implicit.png)
+![Implicit authentication flow](./media/v2-app-types/convergence-scenarios-implicit.svg)
-To see this scenario in action, try one of the single-page app code samples in the [v2.0 getting started](v2-overview.md#getting-started) section.
+To see this scenario in action, try one of the single-page app code samples in the [Microsoft identity platform getting started](v2-overview.md#getting-started) section.
## Web apps
@@ -72,21 +72,21 @@ eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6ImtyaU1QZG1Cd...
}
```
-Further details of different types of tokens used in the v2.0 endpoint are available in the [access token](access-tokens.md) reference and [`id_token` reference](id-tokens.md)
+Further details of different types of tokens used in the Microsoft identity platform endpoint are available in the [access token](access-tokens.md) reference and [id_token reference](id-tokens.md)
In web server apps, the sign-in authentication flow takes these high-level steps:
-![Web app authentication flow](./media/v2-app-types/convergence_scenarios_webapp.png)
+![Web app authentication flow](./media/v2-app-types/convergence-scenarios-webapp.svg)
-You can ensure the user's identity by validating the ID token with a public signing key that is received from the v2.0 endpoint. A session cookie is set, which can be used to identify the user on subsequent page requests.
+You can ensure the user's identity by validating the ID token with a public signing key that is received from the Microsoft identity platform endpoint. A session cookie is set, which can be used to identify the user on subsequent page requests.
-To see this scenario in action, try one of the web app sign-in code samples in the [v2.0 getting started](v2-overview.md#getting-started) section.
+To see this scenario in action, try one of the web app sign-in code samples in the [Microsoft identity platform getting started](v2-overview.md#getting-started) section.
In addition to simple sign-in, a web server app might need to access another web service, such as a REST API. In this case, the web server app engages in a combined OpenID Connect and OAuth 2.0 flow, by using the [OAuth 2.0 authorization code flow](active-directory-v2-protocols.md). For more information about this scenario, read about [getting started with web apps and Web APIs](active-directory-v2-devquickstarts-webapp-webapi-dotnet.md).
## Web APIs
-You can use the v2.0 endpoint to secure web services, such as your app's RESTful Web API. Instead of ID tokens and session cookies, a Web API uses an OAuth 2.0 access token to secure its data and to authenticate incoming requests. The caller of a Web API appends an access token in the authorization header of an HTTP request, like this:
+You can use the Microsoft identity platform endpoint to secure web services, such as your app's RESTful Web API. Instead of ID tokens and session cookies, a Web API uses an OAuth 2.0 access token to secure its data and to authenticate incoming requests. The caller of a Web API appends an access token in the authorization header of an HTTP request, like this:
```
GET /api/items HTTP/1.1
@@ -96,32 +96,32 @@ Accept: application/json
...
```
-The Web API uses the access token to verify the API caller's identity and to extract information about the caller from claims that are encoded in the access token. Further details of different types of tokens used in the v2.0 endpoint are available in the [access token](access-tokens.md) reference and [`id_token` reference](id-tokens.md)
+The Web API uses the access token to verify the API caller's identity and to extract information about the caller from claims that are encoded in the access token. Further details of different types of tokens used in the Microsoft identity platform endpoint are available in the [access token](access-tokens.md) reference and [id_token reference](id-tokens.md)
-A Web API can give users the power to opt in or opt out of specific functionality or data by exposing permissions, also known as [scopes](v2-permissions-and-consent.md). For a calling app to acquire permission to a scope, the user must consent to the scope during a flow. The v2.0 endpoint asks the user for permission, and then records permissions in all access tokens that the Web API receives. The Web API validates the access tokens it receives on each call and performs authorization checks.
+A Web API can give users the power to opt in or opt out of specific functionality or data by exposing permissions, also known as [scopes](v2-permissions-and-consent.md). For a calling app to acquire permission to a scope, the user must consent to the scope during a flow. The Microsoft identity platform endpoint asks the user for permission, and then records permissions in all access tokens that the Web API receives. The Web API validates the access tokens it receives on each call and performs authorization checks.
A Web API can receive access tokens from all types of apps, including web server apps, desktop and mobile apps, single-page apps, server-side daemons, and even other Web APIs. The high-level flow for a Web API looks like this:
-![Web API authentication flow](./media/v2-app-types/convergence_scenarios_webapi.png)
+![Web API authentication flow](./media/v2-app-types/convergence-scenarios-webapi.svg)
-To learn how to secure a Web API by using OAuth2 access tokens, check out the Web API code samples in the [v2.0 getting started](v2-overview.md#getting-started) section.
+To learn how to secure a Web API by using OAuth2 access tokens, check out the Web API code samples in the [Microsoft identity platform getting started](v2-overview.md#getting-started) section.
-In many cases, web APIs also need to make outbound requests to other downstream web APIs secured by Azure Active Directory. To do so, web APIs can take advantage of Azure AD's **On Behalf Of** flow, which allows the web API to exchange an incoming access token for another access token to be used in outbound requests. The v2.0 endpoint's On Behalf Of flow is described in [detail here](v2-oauth2-on-behalf-of-flow.md).
+In many cases, web APIs also need to make outbound requests to other downstream web APIs secured by Microsoft identity platform. To do so, web APIs can take advantage of the **On-Behalf-Of** flow, which allows the web API to exchange an incoming access token for another access token to be used in outbound requests. For more info, see [Microsoft identity platform and OAuth 2.0 On-Behalf-Of flow](v2-oauth2-on-behalf-of-flow.md).
## Mobile and native apps
Device-installed apps, such as mobile and desktop apps, often need to access back-end services or Web APIs that store data and perform functions on behalf of a user. These apps can add sign-in and authorization to back-end services by using the [OAuth 2.0 authorization code flow](v2-oauth2-auth-code-flow.md).
-In this flow, the app receives an authorization code from the v2.0 endpoint when the user signs in. The authorization code represents the app's permission to call back-end services on behalf of the user who is signed in. The app can exchange the authorization code in the background for an OAuth 2.0 access token and a refresh token. The app can use the access token to authenticate to Web APIs in HTTP requests, and use the refresh token to get new access tokens when older access tokens expire.
+In this flow, the app receives an authorization code from the Microsoft identity platform endpoint when the user signs in. The authorization code represents the app's permission to call back-end services on behalf of the user who is signed in. The app can exchange the authorization code in the background for an OAuth 2.0 access token and a refresh token. The app can use the access token to authenticate to Web APIs in HTTP requests, and use the refresh token to get new access tokens when older access tokens expire.
-![Native app authentication flow](./media/v2-app-types/convergence_scenarios_native.png)
+![Native app authentication flow](./media/v2-app-types/convergence-scenarios-native.svg)
## Daemons and server-side apps
-Apps that have long-running processes or that operate without interaction with a user also need a way to access secured resources, such as Web APIs. These apps can authenticate and get tokens by using the app's identity, rather than a user's delegated identity, with the OAuth 2.0 client credentials flow. You can prove the app's identity using a client secret or certificate. For more info, see [Authenticating to Azure AD in daemon apps with certificates](https://azure.microsoft.com/resources/samples/active-directory-dotnet-daemon-certificate-credential/).
+Apps that have long-running processes or that operate without interaction with a user also need a way to access secured resources, such as Web APIs. These apps can authenticate and get tokens by using the app's identity, rather than a user's delegated identity, with the OAuth 2.0 client credentials flow. You can prove the app's identity using a client secret or certificate. For more info, see [Authenticating to Microsoft identity platform in daemon apps with certificates](https://azure.microsoft.com/resources/samples/active-directory-dotnet-daemon-certificate-credential/).
In this flow, the app interacts directly with the `/token` endpoint to obtain access:
-![Daemon app authentication flow](./media/v2-app-types/convergence_scenarios_daemon.png)
+![Daemon app authentication flow](./media/v2-app-types/convergence-scenarios-daemon.svg)
To build a daemon app, see the [client credentials documentation](v2-oauth2-client-creds-grant-flow.md), or try a [.NET sample app](https://github.com/Azure-Samples/active-directory-dotnet-daemon-v2).
diff --git a/articles/active-directory/develop/v2-oauth-ropc.md b/articles/active-directory/develop/v2-oauth-ropc.md
index 93f70eb874c51..180efaaf223d7 100644
--- a/articles/active-directory/develop/v2-oauth-ropc.md
+++ b/articles/active-directory/develop/v2-oauth-ropc.md
@@ -1,5 +1,5 @@
---
-title: Use Azure AD v2.0 to sign in users using ROPC | Microsoft Docs
+title: Use Microsoft identity platform to sign in users using ROPC | Azure
description: Support browser-less authentication flows using the resource owner password credential grant.
services: active-directory
documentationcenter: ''
@@ -12,20 +12,20 @@ ms.subservice: develop
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 11/28/2018
+ms.topic: conceptual
+ms.date: 04/12/2019
ms.author: celested
ms.reviewer: hirsin
ms.custom: aaddev
ms.collection: M365-identity-device-management
---
-# Azure Active Directory v2.0 and the OAuth 2.0 resource owner password credential
+# Microsoft identity platform and the OAuth 2.0 resource owner password credential
-Azure Active Directory (Azure AD) supports the [resource owner password credential (ROPC) grant](https://tools.ietf.org/html/rfc6749#section-4.3), which allows an application to sign in the user by directly handling their password. The ROPC flow requires a high degree of trust and user exposure and developers should only use this flow when the other, more secure, flows can't be used.
+Microsoft identity platform supports the [resource owner password credential (ROPC) grant](https://tools.ietf.org/html/rfc6749#section-4.3), which allows an application to sign in the user by directly handling their password. The ROPC flow requires a high degree of trust and user exposure and developers should only use this flow when the other, more secure, flows can't be used.
-> [!Important]
-> * The Azure AD v2.0 endpoint only supports ROPC for Azure AD tenants, not personal accounts. This means that you must use a tenant-specific endpoint (`https://login.microsoftonline.com/{TenantId_or_Name}`) or the `organizations` endpoint.
+> [!IMPORTANT]
+> * The Microsoft identity platform endpoint only supports ROPC for Azure AD tenants, not personal accounts. This means that you must use a tenant-specific endpoint (`https://login.microsoftonline.com/{TenantId_or_Name}`) or the `organizations` endpoint.
> * Personal accounts that are invited to an Azure AD tenant can't use ROPC.
> * Accounts that don't have passwords can't sign in through ROPC. For this scenario, we recommend that you use a different flow for your app instead.
> * If users need to use multi-factor authentication (MFA) to log in to the application, they will be blocked instead.
@@ -40,14 +40,20 @@ The following diagram shows the ROPC flow.
The ROPC flow is a single request—it sends the client identification and user's credentials to the IDP, and then receives tokens in return. The client must request the user's email address (UPN) and password before doing so. Immediately after a successful request, the client should securely release the user's credentials from memory. It must never save them.
+> [!TIP]
+> Try executing this request in Postman!
+> [![Run in Postman](./media/v2-oauth2-auth-code-flow/runInPostman.png)](https://app.getpostman.com/run-collection/f77994d794bab767596d)
+
+
```
// Line breaks and spaces are for legibility only.
-POST https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token?
+POST {tenant}/oauth2/v2.0/token
+Host: login.microsoftonline.com
+Content-Type: application/x-www-form-urlencoded
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=user.read%20openid%20profile%20offline_access
-&client_secret=wkubdywbc2894u
&username=MyUsername@myTenant.com
&password=SuperS3cret
&grant_type=password
@@ -93,11 +99,11 @@ If the user hasn't provided the correct username or password, or the client hasn
| Error | Description | Client action |
|------ | ----------- | -------------|
-| `invalid_grant` | The authentication failed | The credentials were incorrect or the client doesn't have consent for the requested scopes. If the scopes aren't granted, a `consent_required` suberror will be returned. If this occurs, the client should send the user to an interactive prompt using a webview or browser. |
-| `invalid_request` | The request was improperly constructed | The grant type is not supported on the `/common` or `/consumers` authentication contexts. Use `/organizations` instead. |
-| `invalid_client` | The app is improperly set up | This can happen if the `allowPublicClient` property is not set to true in the [application manifest](reference-app-manifest.md). The `allowPublicClient` property is needed because the ROPC grant doesn't have a redirect URI. Azure AD can't determine if the app is a public client application or a confidential client application unless the property is set. Note that ROPC is only supported for public client apps. |
+| `invalid_grant` | The authentication failed | The credentials were incorrect or the client doesn't have consent for the requested scopes. If the scopes aren't granted, a `consent_required` error will be returned. If this occurs, the client should send the user to an interactive prompt using a webview or browser. |
+| `invalid_request` | The request was improperly constructed | The grant type isn't supported on the `/common` or `/consumers` authentication contexts. Use `/organizations` instead. |
+| `invalid_client` | The app is improperly set up | This can happen if the `allowPublicClient` property isn't set to true in the [application manifest](reference-app-manifest.md). The `allowPublicClient` property is needed because the ROPC grant doesn't have a redirect URI. Azure AD can't determine if the app is a public client application or a confidential client application unless the property is set. Note that ROPC is only supported for public client apps. |
## Learn more
* Try out ROPC for yourself using the [sample console application](https://github.com/azure-samples/active-directory-dotnetcore-console-up-v2).
-* To determine whether you should use the v2.0 endpoint, read about [v2.0 limitations](active-directory-v2-limitations.md).
+* To determine whether you should use the v2.0 endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md).
diff --git a/articles/active-directory/develop/v2-oauth2-auth-code-flow.md b/articles/active-directory/develop/v2-oauth2-auth-code-flow.md
index d84aa269264ab..fb641f8cae367 100644
--- a/articles/active-directory/develop/v2-oauth2-auth-code-flow.md
+++ b/articles/active-directory/develop/v2-oauth2-auth-code-flow.md
@@ -1,6 +1,6 @@
---
-title: Azure AD v2.0 OAuth Authorization Code Flow | Microsoft Docs
-description: Building web applications using Azure AD's implementation of the OAuth 2.0 authentication protocol.
+title: Microsoft identity platform and OAuth Authorization Code Flow | Azure
+description: Building web applications using the Microsoft identity platform implementation of the OAuth 2.0 authentication protocol.
services: active-directory
documentationcenter: ''
author: CelesteDG
@@ -13,30 +13,30 @@ ms.subservice: develop
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 03/24/2019
+ms.topic: conceptual
+ms.date: 04/12/2019
ms.author: celested
ms.reviewer: hirsin
ms.custom: aaddev
ms.collection: M365-identity-device-management
---
-# v2.0 Protocols - OAuth 2.0 authorization code flow
+# Microsoft identity platform and OAuth 2.0 authorization code flow
[!INCLUDE [active-directory-develop-applies-v2](../../../includes/active-directory-develop-applies-v2.md)]
-The OAuth 2.0 authorization code grant can be used in apps that are installed on a device to gain access to protected resources, such as web APIs. Using the app model v2.0 's implementation of OAuth 2.0, you can add sign in and API access to your mobile and desktop apps. This guide is language-independent, and describes how to send and receive HTTP messages without using any of the [Azure open-source authentication libraries](active-directory-authentication-libraries.md).
+The OAuth 2.0 authorization code grant can be used in apps that are installed on a device to gain access to protected resources, such as web APIs. Using the Microsoft identity platform implementation of OAuth 2.0, you can add sign in and API access to your mobile and desktop apps. This guide is language-independent, and describes how to send and receive HTTP messages without using any of the [Azure open-source authentication libraries](active-directory-authentication-libraries.md).
> [!NOTE]
-> Not all Azure Active Directory scenarios & features are supported by the v2.0 endpoint. To determine if you should use the v2.0 endpoint, read about [v2.0 limitations](active-directory-v2-limitations.md).
+> Not all Azure Active Directory scenarios & features are supported by the Microsoft identity platform endpoint. To determine if you should use the Microsoft identity platform endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md).
-The OAuth 2.0 authorization code flow is described in [section 4.1 of the OAuth 2.0 specification](https://tools.ietf.org/html/rfc6749). It is used to perform authentication and authorization in the majority of app types, including [web apps](v2-app-types.md#web-apps) and [natively installed apps](v2-app-types.md#mobile-and-native-apps). The flow enables apps to securely acquire access_tokens that can be used to access resources secured by the v2.0 endpoint.
+The OAuth 2.0 authorization code flow is described in [section 4.1 of the OAuth 2.0 specification](https://tools.ietf.org/html/rfc6749). It's used to perform authentication and authorization in the majority of app types, including [web apps](v2-app-types.md#web-apps) and [natively installed apps](v2-app-types.md#mobile-and-native-apps). The flow enables apps to securely acquire access_tokens that can be used to access resources secured by the Microsoft identity platform endpoint.
## Protocol diagram
At a high level, the entire authentication flow for a native/mobile application looks a bit like this:
-![OAuth Auth Code Flow](./media/v2-oauth2-auth-code-flow/convergence_scenarios_native.png)
+![OAuth Auth Code Flow](./media/v2-oauth2-auth-code-flow/convergence-scenarios-native.svg)
## Request an authorization code
@@ -57,27 +57,25 @@ client_id=6731de76-14a6-49ae-97bc-6eba6914391e
> [!TIP]
> Click the link below to execute this request! After signing in, your browser should be redirected to `https://localhost/myapp/` with a `code` in the address bar.
> https://login.microsoftonline.com/common/oauth2/v2.0/authorize...
->
->
| Parameter | Required/optional | Description |
|--------------|-------------|--------------|
| `tenant` | required | The `{tenant}` value in the path of the request can be used to control who can sign into the application. The allowed values are `common`, `organizations`, `consumers`, and tenant identifiers. For more detail, see [protocol basics](active-directory-v2-protocols.md#endpoints). |
| `client_id` | required | The **Application (client) ID** that the [Azure portal – App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) experience assigned to your app. |
| `response_type` | required | Must include `code` for the authorization code flow. |
-| `redirect_uri` | recommended | The redirect_uri of your app, where authentication responses can be sent and received by your app. It must exactly match one of the redirect_uris you registered in the portal, except it must be url encoded. For native & mobile apps, you should use the default value of `https://login.microsoftonline.com/common/oauth2/nativeclient`. |
+| `redirect_uri` | required | The redirect_uri of your app, where authentication responses can be sent and received by your app. It must exactly match one of the redirect_uris you registered in the portal, except it must be url encoded. For native & mobile apps, you should use the default value of `https://login.microsoftonline.com/common/oauth2/nativeclient`. |
| `scope` | required | A space-separated list of [scopes](v2-permissions-and-consent.md) that you want the user to consent to. |
-| `response_mode` | recommended | Specifies the method that should be used to send the resulting token back to your app. Can be one of the following: - `query` - `fragment` - `form_post` `query` provides the code as a query string parameter on your redirect URI. If you're requesting an ID token using the implicit flow, you cannot use `query` as specified in the [OpenID spec](https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#Combinations). If you're requesting just the code, you can use `query`, `fragment`, or `form_post`. `form_post` executes a POST containing the code to your redirect URI. For more info, see [OpenID Connect protocol](https://docs.microsoft.com/azure/active-directory/develop/active-directory-protocols-openid-connect-code). |
+| `response_mode` | recommended | Specifies the method that should be used to send the resulting token back to your app. Can be one of the following: - `query` - `fragment` - `form_post` `query` provides the code as a query string parameter on your redirect URI. If you're requesting an ID token using the implicit flow, you can't use `query` as specified in the [OpenID spec](https://openid.net/specs/oauth-v2-multiple-response-types-1_0.html#Combinations). If you're requesting just the code, you can use `query`, `fragment`, or `form_post`. `form_post` executes a POST containing the code to your redirect URI. For more info, see [OpenID Connect protocol](https://docs.microsoft.com/azure/active-directory/develop/active-directory-protocols-openid-connect-code). |
| `state` | recommended | A value included in the request that will also be returned in the token response. It can be a string of any content that you wish. A randomly generated unique value is typically used for [preventing cross-site request forgery attacks](https://tools.ietf.org/html/rfc6749#section-10.12). The value can also encode information about the user's state in the app before the authentication request occurred, such as the page or view they were on. |
-| `prompt` | optional | Indicates the type of user interaction that is required. The only valid values at this time are `login`, `none`, and `consent`. - `prompt=login` will force the user to enter their credentials on that request, negating single-sign on. - `prompt=none` is the opposite - it will ensure that the user is not presented with any interactive prompt whatsoever. If the request cannot be completed silently via single-sign on, the v2.0 endpoint will return an `interaction_required` error. - `prompt=consent` will trigger the OAuth consent dialog after the user signs in, asking the user to grant permissions to the app. |
+| `prompt` | optional | Indicates the type of user interaction that is required. The only valid values at this time are `login`, `none`, and `consent`. - `prompt=login` will force the user to enter their credentials on that request, negating single-sign on. - `prompt=none` is the opposite - it will ensure that the user isn't presented with any interactive prompt whatsoever. If the request can't be completed silently via single-sign on, the Microsoft identity platform endpoint will return an `interaction_required` error. - `prompt=consent` will trigger the OAuth consent dialog after the user signs in, asking the user to grant permissions to the app. |
| `login_hint` | optional | Can be used to pre-fill the username/email address field of the sign-in page for the user, if you know their username ahead of time. Often apps will use this parameter during re-authentication, having already extracted the username from a previous sign-in using the `preferred_username` claim. |
-| `domain_hint` | optional | Can be one of `consumers` or `organizations`. If included, it will skip the email-based discovery process that user goes through on the v2.0 sign-in page, leading to a slightly more streamlined user experience. Often apps will use this parameter during re-authentication, by extracting the `tid` from a previous sign-in. If the `tid` claim value is `9188040d-6c67-4c5b-b112-36a304b66dad`, you should use `domain_hint=consumers`. Otherwise, use `domain_hint=organizations`. |
-| `code_challenge_method` | optional | The method used to encode the `code_verifier` for the `code_challenge` parameter. Can be one of the following values: - `plain` - `S256` If excluded, `code_challenge` is assumed to be plaintext if `code_challenge` is included. Azure AAD v2.0 supports both `plain` and `S256`. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). |
+| `domain_hint` | optional | Can be one of `consumers` or `organizations`. If included, it will skip the email-based discovery process that user goes through on the sign-in page, leading to a slightly more streamlined user experience. Often apps will use this parameter during re-authentication, by extracting the `tid` from a previous sign-in. If the `tid` claim value is `9188040d-6c67-4c5b-b112-36a304b66dad`, you should use `domain_hint=consumers`. Otherwise, use `domain_hint=organizations`. |
+| `code_challenge_method` | optional | The method used to encode the `code_verifier` for the `code_challenge` parameter. Can be one of the following values: - `plain` - `S256` If excluded, `code_challenge` is assumed to be plaintext if `code_challenge` is included. Microsoft identity platform supports both `plain` and `S256`. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). |
| `code_challenge` | optional | Used to secure authorization code grants via Proof Key for Code Exchange (PKCE) from a native client. Required if `code_challenge_method` is included. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). |
-At this point, the user will be asked to enter their credentials and complete the authentication. The v2.0 endpoint will also ensure that the user has consented to the permissions indicated in the `scope` query parameter. If the user has not consented to any of those permissions, it will ask the user to consent to the required permissions. Details of [permissions, consent, and multi-tenant apps are provided here](v2-permissions-and-consent.md).
+At this point, the user will be asked to enter their credentials and complete the authentication. The Microsoft identity platform endpoint will also ensure that the user has consented to the permissions indicated in the `scope` query parameter. If the user has not consented to any of those permissions, it will ask the user to consent to the required permissions. Details of [permissions, consent, and multi-tenant apps are provided here](v2-permissions-and-consent.md).
-Once the user authenticates and grants consent, the v2.0 endpoint will return a response to your app at the indicated `redirect_uri`, using the method specified in the `response_mode` parameter.
+Once the user authenticates and grants consent, the Microsoft identity platform endpoint will return a response to your app at the indicated `redirect_uri`, using the method specified in the `response_mode` parameter.
#### Successful response
@@ -91,7 +89,7 @@ code=AwABAAAAvPM1KaPlrEqdFSBzjqfTGBCmLdgfSTLEMPGYuNHSUYBrq...
| Parameter | Description |
|-----------|--------------|
-| `code` | The authorization_code that the app requested. The app can use the authorization code to request an access token for the target resource. Authorization_codes are very short lived, typically they expire after about 10 minutes. |
+| `code` | The authorization_code that the app requested. The app can use the authorization code to request an access token for the target resource. Authorization_codes are short lived, typically they expire after about 10 minutes. |
| `state` | If a state parameter is included in the request, the same value should appear in the response. The app should verify that the state values in the request and response are identical. |
#### Error response
@@ -116,13 +114,13 @@ The following table describes the various error codes that can be returned in th
| Error Code | Description | Client Action |
|-------------|----------------|-----------------|
| `invalid_request` | Protocol error, such as a missing required parameter. | Fix and resubmit the request. This is a development error typically caught during initial testing. |
-| `unauthorized_client` | The client application is not permitted to request an authorization code. | This error usually occurs when the client application is not registered in Azure AD or is not added to the user's Azure AD tenant. The application can prompt the user with instruction for installing the application and adding it to Azure AD. |
-| `access_denied` | Resource owner denied consent | The client application can notify the user that it cannot proceed unless the user consents. |
-| `unsupported_response_type` | The authorization server does not support the response type in the request. | Fix and resubmit the request. This is a development error is typically caught during initial testing. |
+| `unauthorized_client` | The client application isn't permitted to request an authorization code. | This error usually occurs when the client application isn't registered in Azure AD or isn't added to the user's Azure AD tenant. The application can prompt the user with instruction for installing the application and adding it to Azure AD. |
+| `access_denied` | Resource owner denied consent | The client application can notify the user that it can't proceed unless the user consents. |
+| `unsupported_response_type` | The authorization server does not support the response type in the request. | Fix and resubmit the request. This is a development error typically caught during initial testing. |
| `server_error` | The server encountered an unexpected error.| Retry the request. These errors can result from temporary conditions. The client application might explain to the user that its response is delayed to a temporary error. |
-| `temporarily_unavailable` | The server is temporarily too busy to handle the request. | Retry the request. The client application might explain to the user that its response is delayed due to a temporary condition. |
-| `invalid_resource` | The target resource is invalid because it does not exist, Azure AD cannot find it, or it is not correctly configured. | This error indicates the resource, if it exists, has not been configured in the tenant. The application can prompt the user with instruction for installing the application and adding it to Azure AD. |
-| `login_required` | Too many or no users found | The client requested silent authentication (`prompt=none`), but a single user could not found. This may mean there are multiple users active in the session, or no users. This takes into account the tenant chosen (for example, if there are 2 AAD accounts active and one MSA, and `consumers` is chosen, silent authentication will work). |
+| `temporarily_unavailable` | The server is temporarily too busy to handle the request. | Retry the request. The client application might explain to the user that its response is delayed because of a temporary condition. |
+| `invalid_resource` | The target resource is invalid because it does not exist, Azure AD can't find it, or it's not correctly configured. | This error indicates the resource, if it exists, has not been configured in the tenant. The application can prompt the user with instruction for installing the application and adding it to Azure AD. |
+| `login_required` | Too many or no users found | The client requested silent authentication (`prompt=none`), but a single user could not found. This may mean there are multiple users active in the session, or no users. This takes into account the tenant chosen (for example, if there are two Azure AD accounts active and one Microsoft account, and `consumers` is chosen, silent authentication will work). |
| `interaction_required` | The request requires user interaction. | An additional authentication step or consent is required. Retry the request without `prompt=none`. |
## Request an access token
@@ -146,17 +144,17 @@ client_id=6731de76-14a6-49ae-97bc-6eba6914391e
> [!TIP]
> Try executing this request in Postman! (Don't forget to replace the `code`)
-> [![Run in Postman](./media/v2-oauth2-auth-code-flow/runInPostman.png)](https://app.getpostman.com/run-collection/8f5715ec514865a07e6a)
+> [![Run in Postman](./media/v2-oauth2-auth-code-flow/runInPostman.png)](https://app.getpostman.com/run-collection/f77994d794bab767596d)
| Parameter | Required/optional | Description |
|------------|-------------------|----------------|
| `tenant` | required | The `{tenant}` value in the path of the request can be used to control who can sign into the application. The allowed values are `common`, `organizations`, `consumers`, and tenant identifiers. For more detail, see [protocol basics](active-directory-v2-protocols.md#endpoints). |
| `client_id` | required | The Application (client) ID that the [Azure portal – App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page assigned to your app. |
| `grant_type` | required | Must be `authorization_code` for the authorization code flow. |
-| `scope` | required | A space-separated list of scopes. The scopes requested in this leg must be equivalent to or a subset of the scopes requested in the first leg. If the scopes specified in this request span multiple resource server, then the v2.0 endpoint will return a token for the resource specified in the first scope. For a more detailed explanation of scopes, refer to [permissions, consent, and scopes](v2-permissions-and-consent.md). |
+| `scope` | required | A space-separated list of scopes. The scopes requested in this leg must be equivalent to or a subset of the scopes requested in the first leg. If the scopes specified in this request span multiple resource server, then the Microsoft identity platform endpoint will return a token for the resource specified in the first scope. For a more detailed explanation of scopes, refer to [permissions, consent, and scopes](v2-permissions-and-consent.md). |
| `code` | required | The authorization_code that you acquired in the first leg of the flow. |
| `redirect_uri` | required | The same redirect_uri value that was used to acquire the authorization_code. |
-| `client_secret` | required for web apps | The application secret that you created in the app registration portal for your app. It should not be used in a native app, because client_secrets cannot be reliably stored on devices. It is required for web apps and web APIs, which have the ability to store the client_secret securely on the server side. The client secret must be URL-encoded before being sent. |
+| `client_secret` | required for web apps | The application secret that you created in the app registration portal for your app. You shouldn't use the application secret in a native app because client_secrets can't be reliably stored on devices. It's required for web apps and web APIs, which have the ability to store the client_secret securely on the server side. The client secret must be URL-encoded before being sent. |
| `code_verifier` | optional | The same code_verifier that was used to obtain the authorization_code. Required if PKCE was used in the authorization code grant request. For more information, see the [PKCE RFC](https://tools.ietf.org/html/rfc7636). |
### Successful response
@@ -215,12 +213,12 @@ Error responses will look like:
|--------------------|--------------------|------------------|
| `invalid_request` | Protocol error, such as a missing required parameter. | Fix and resubmit the request |
| `invalid_grant` | The authorization code or PKCE code verifier is invalid or has expired. | Try a new request to the `/authorize` endpoint and verify that the code_verifier parameter was correct. |
-| `unauthorized_client` | The authenticated client is not authorized to use this authorization grant type. | This usually occurs when the client application is not registered in Azure AD or is not added to the user's Azure AD tenant. The application can prompt the user with instruction for installing the application and adding it to Azure AD. |
-| `invalid_client` | Client authentication failed. | The client credentials are not valid. To fix, the application administrator updates the credentials. |
+| `unauthorized_client` | The authenticated client isn't authorized to use this authorization grant type. | This usually occurs when the client application isn't registered in Azure AD or isn't added to the user's Azure AD tenant. The application can prompt the user with instruction for installing the application and adding it to Azure AD. |
+| `invalid_client` | Client authentication failed. | The client credentials aren't valid. To fix, the application administrator updates the credentials. |
| `unsupported_grant_type` | The authorization server does not support the authorization grant type. | Change the grant type in the request. This type of error should occur only during development and be detected during initial testing. |
-| `invalid_resource` | The target resource is invalid because it does not exist, Azure AD cannot find it, or it is not correctly configured. | This indicates the resource, if it exists, has not been configured in the tenant. The application can prompt the user with instruction for installing the application and adding it to Azure AD. |
+| `invalid_resource` | The target resource is invalid because it does not exist, Azure AD can't find it, or it's not correctly configured. | This indicates the resource, if it exists, has not been configured in the tenant. The application can prompt the user with instruction for installing the application and adding it to Azure AD. |
| `interaction_required` | The request requires user interaction. For example, an additional authentication step is required. | Retry the request with the same resource. |
-| `temporarily_unavailable` | The server is temporarily too busy to handle the request. | Retry the request. The client application might explain to the user that its response is delayed due to a temporary condition. |
+| `temporarily_unavailable` | The server is temporarily too busy to handle the request. | Retry the request. The client application might explain to the user that its response is delayed because of a temporary condition. |
## Use the access token
@@ -228,7 +226,7 @@ Now that you've successfully acquired an `access_token`, you can use the token i
> [!TIP]
> Execute this request in Postman! (Replace the `Authorization` header first)
-> [![Run in Postman](./media/v2-oauth2-auth-code-flow/runInPostman.png)](https://app.getpostman.com/run-collection/8f5715ec514865a07e6a)
+> [![Run in Postman](./media/v2-oauth2-auth-code-flow/runInPostman.png)](https://app.getpostman.com/run-collection/f77994d794bab767596d)
```
GET /v1.0/me/messages
@@ -240,7 +238,9 @@ Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZn
Access_tokens are short lived, and you must refresh them after they expire to continue accessing resources. You can do so by submitting another `POST` request to the `/token` endpoint, this time providing the `refresh_token` instead of the `code`. Refresh tokens are valid for all permissions that your client has already received consent for - thus, a refresh token issued on a request for `scope=mail.read` can be used to request a new access token for `scope=api://contoso.com/api/UseResource`.
-Refresh tokens do not have specified lifetimes. Typically, the lifetimes of refresh tokens are relatively long. However, in some cases, refresh tokens expire, are revoked, or lack sufficient privileges for the desired action. Your application needs to expect and handle [errors returned by the token issuance endpoint](#error-codes-for-token-endpoint-errors) correctly. Note that refresh tokens are not revoked when used to acquire new access tokens.
+Refresh tokens do not have specified lifetimes. Typically, the lifetimes of refresh tokens are relatively long. However, in some cases, refresh tokens expire, are revoked, or lack sufficient privileges for the desired action. Your application needs to expect and handle [errors returned by the token issuance endpoint](#error-codes-for-token-endpoint-errors) correctly.
+
+Although refresh tokens aren't revoked when used to acquire new access tokens, you are expected to discard the old refresh token. The [OAuth 2.0 spec](https://tools.ietf.org/html/rfc6749#section-6) says: "The authorization server MAY issue a new refresh token, in which case the client MUST discard the old refresh token and replace it with the new refresh token. The authorization server MAY revoke the old refresh token after issuing a new refresh token to the client."
```
// Line breaks for legibility only
@@ -252,15 +252,13 @@ Content-Type: application/x-www-form-urlencoded
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=https%3A%2F%2Fgraph.microsoft.com%2Fuser.read
&refresh_token=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq...
-&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=refresh_token
&client_secret=JqQX2PNo9bpM0uEihUPzyrh // NOTE: Only required for web apps
```
> [!TIP]
> Try executing this request in Postman! (Don't forget to replace the `refresh_token`)
-> [![Run in Postman](./media/v2-oauth2-auth-code-flow/runInPostman.png)](https://app.getpostman.com/run-collection/8f5715ec514865a07e6a)
->
+> [![Run in Postman](./media/v2-oauth2-auth-code-flow/runInPostman.png)](https://app.getpostman.com/run-collection/f77994d794bab767596d)
>
| Parameter | | Description |
@@ -268,10 +266,9 @@ client_id=6731de76-14a6-49ae-97bc-6eba6914391e
| `tenant` | required | The `{tenant}` value in the path of the request can be used to control who can sign into the application. The allowed values are `common`, `organizations`, `consumers`, and tenant identifiers. For more detail, see [protocol basics](active-directory-v2-protocols.md#endpoints). |
| `client_id` | required | The **Application (client) ID** that the [Azure portal – App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) experience assigned to your app. |
| `grant_type` | required | Must be `refresh_token` for this leg of the authorization code flow. |
-| `scope` | required | A space-separated list of scopes. The scopes requested in this leg must be equivalent to or a subset of the scopes requested in the original authorization_code request leg. If the scopes specified in this request span multiple resource server, then the v2.0 endpoint will return a token for the resource specified in the first scope. For a more detailed explanation of scopes, refer to [permissions, consent, and scopes](v2-permissions-and-consent.md). |
+| `scope` | required | A space-separated list of scopes. The scopes requested in this leg must be equivalent to or a subset of the scopes requested in the original authorization_code request leg. If the scopes specified in this request span multiple resource server, then the Microsoft identity platform endpoint will return a token for the resource specified in the first scope. For a more detailed explanation of scopes, refer to [permissions, consent, and scopes](v2-permissions-and-consent.md). |
| `refresh_token` | required | The refresh_token that you acquired in the second leg of the flow. |
-| `redirect_uri` | required | A `redirect_uri`registered on the client application. |
-| `client_secret` | required for web apps | The application secret that you created in the app registration portal for your app. It should not be used in a native app, because client_secrets cannot be reliably stored on devices. It is required for web apps and web APIs, which have the ability to store the client_secret securely on the server side. |
+| `client_secret` | required for web apps | The application secret that you created in the app registration portal for your app. It should not be used in a native app, because client_secrets can't be reliably stored on devices. It's required for web apps and web APIs, which have the ability to store the client_secret securely on the server side. |
#### Successful response
diff --git a/articles/active-directory/develop/v2-oauth2-client-creds-grant-flow.md b/articles/active-directory/develop/v2-oauth2-client-creds-grant-flow.md
index 8733dade9bcd4..44876c7d96efc 100644
--- a/articles/active-directory/develop/v2-oauth2-client-creds-grant-flow.md
+++ b/articles/active-directory/develop/v2-oauth2-client-creds-grant-flow.md
@@ -1,6 +1,6 @@
---
-title: Use Azure AD v2.0 to access secure resources without user interaction | Microsoft Docs
-description: Build web applications by using the Azure AD implementation of the OAuth 2.0 authentication protocol.
+title: Use Microsoft identity platform to access secure resources without user interaction | Azure
+description: Build web applications by using the Microsoft identity platform implementation of the OAuth 2.0 authentication protocol.
services: active-directory
documentationcenter: ''
author: CelesteDG
@@ -14,14 +14,14 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 03/21/2019
+ms.date: 04/12/2019
ms.author: celested
ms.reviewer: hirsin
ms.custom: aaddev
ms.collection: M365-identity-device-management
---
-# Azure Active Directory v2.0 and the OAuth 2.0 client credentials flow
+# Microsoft identity platform and the OAuth 2.0 client credentials flow
[!INCLUDE [active-directory-develop-applies-v2](../../../includes/active-directory-develop-applies-v2.md)]
@@ -30,19 +30,19 @@ You can use the [OAuth 2.0 client credentials grant](https://tools.ietf.org/html
The OAuth 2.0 client credentials grant flow permits a web service (confidential client) to use its own credentials, instead of impersonating a user, to authenticate when calling another web service. In this scenario, the client is typically a middle-tier web service, a daemon service, or a web site. For a higher level of assurance, the Microsoft identity platform also allows the calling service to use a certificate (instead of a shared secret) as a credential.
> [!NOTE]
-> The v2.0 endpoint doesn't support all Azure AD scenarios and features. To determine whether you should use the v2.0 endpoint, read about [v2.0 limitations](active-directory-v2-limitations.md).
+> The Microsoft identity platform endpoint doesn't support all Azure AD scenarios and features. To determine whether you should use the Microsoft identity platform endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md).
-In the more typical *three-legged OAuth*, a client application is granted permission to access a resource on behalf of a specific user. The permission is delegated from the user to the application, usually during the [consent](v2-permissions-and-consent.md) process. However, in the client credentials (*two-legged OAuth*) flow, permissions are granted directly to the application itself. When the app presents a token to a resource, the resource enforces that the app itself has authorization to perform an action and not the user.
+In the more typical *three-legged OAuth*, a client application is granted permission to access a resource on behalf of a specific user. The permission is delegated from the user to the application, usually during the [consent](v2-permissions-and-consent.md) process. However, in the client credentials (*two-legged OAuth*) flow, permissions are granted directly to the application itself. When the app presents a token to a resource, the resource enforces that the app itself has authorization to perform an action and not the user.
## Protocol diagram
The entire client credentials flow looks similar to the following diagram. We describe each of the steps later in this article.
-![Client credentials flow](./media/v2-oauth2-client-creds-grant-flow/convergence_scenarios_client_creds.png)
+![Client credentials flow](./media/v2-oauth2-client-creds-grant-flow/convergence-scenarios-client-creds.svg)
## Get direct authorization
-An app typically receives direct authorization to access a resource in one of two ways:
+An app typically receives direct authorization to access a resource in one of two ways:
* [Through an access control list (ACL) at the resource](#access-control-lists)
* [Through application permission assignment in Azure AD](#application-permissions)
@@ -51,9 +51,9 @@ These two methods are the most common in Azure AD and we recommend them for clie
### Access control lists
-A resource provider might enforce an authorization check based on a list of application (client) IDs that it knows and grants a specific level of access to. When the resource receives a token from the v2.0 endpoint, it can decode the token and extract the client's application ID from the `appid` and `iss` claims. Then it compares the application against an access control list (ACL) that it maintains. The ACL's granularity and method might vary substantially between resources.
+A resource provider might enforce an authorization check based on a list of application (client) IDs that it knows and grants a specific level of access to. When the resource receives a token from the Microsoft identity platform endpoint, it can decode the token and extract the client's application ID from the `appid` and `iss` claims. Then it compares the application against an access control list (ACL) that it maintains. The ACL's granularity and method might vary substantially between resources.
-A common use case is to use an ACL to run tests for a web application or for a web API. The web API might grant only a subset of full permissions to a specific client. To run end-to-end tests on the API, create a test client that acquires tokens from the v2.0 endpoint and then sends them to the API. The API then checks the ACL for the test client's application ID for full access to the API's entire functionality. If you use this kind of ACL, be sure to validate not only the caller's `appid` value but also validate that the `iss` value of the token is trusted.
+A common use case is to use an ACL to run tests for a web application or for a web API. The web API might grant only a subset of full permissions to a specific client. To run end-to-end tests on the API, create a test client that acquires tokens from the Microsoft identity platform endpoint and then sends them to the API. The API then checks the ACL for the test client's application ID for full access to the API's entire functionality. If you use this kind of ACL, be sure to validate not only the caller's `appid` value but also validate that the `iss` value of the token is trusted.
This type of authorization is common for daemons and service accounts that need to access data owned by consumer users who have personal Microsoft accounts. For data owned by organizations, we recommend that you get the necessary authorization through application permissions.
@@ -73,19 +73,23 @@ To use application permissions in your app, follow the steps discussed in the ne
#### Request the permissions in the app registration portal
1. Register and create an app through the new [App registrations (Preview) experience](quickstart-register-app.md).
-2. Go to your application in the App registrations (Preview) experience. Navigate to the **Certificates & secrets** section, and add a **new client secret**, because you'll need to use at least one client secret to request a token.
+2. Go to your application in the App registrations (Preview) experience. Navigate to the **Certificates & secrets** section, and add a **new client secret**, because you'll need at least one client secret to request a token.
3. Locate the **API permissions** section, and then add the **application permissions** that your app requires.
4. **Save** the app registration.
-#### Recommended: Sign the user in to your app
+#### Recommended: Sign the user into your app
Typically, when you build an application that uses application permissions, the app requires a page or view on which the admin approves the app's permissions. This page can be part of the app's sign-in flow, part of the app's settings, or it can be a dedicated "connect" flow. In many cases, it makes sense for the app to show this "connect" view only after a user has signed in with a work or school Microsoft account.
-If you sign the user in to your app, you can identify the organization to which the user belongs to before you ask the user to approve the application permissions. Although not strictly necessary, it can help you create a more intuitive experience for your users. To sign the user in, follow our [v2.0 protocol tutorials](active-directory-v2-protocols.md).
+If you sign the user into your app, you can identify the organization to which the user belongs to before you ask the user to approve the application permissions. Although not strictly necessary, it can help you create a more intuitive experience for your users. To sign the user in, follow our [Microsoft identity platform protocol tutorials](active-directory-v2-protocols.md).
#### Request the permissions from a directory admin
-When you're ready to request permissions from the organization's admin, you can redirect the user to the v2.0 *admin consent endpoint*.
+When you're ready to request permissions from the organization's admin, you can redirect the user to the Microsoft identity platform *admin consent endpoint*.
+
+> [!TIP]
+> Try executing this request in Postman! (Use your own app ID for best results - the tutorial application won't request useful permissions.)
+> [![Run in Postman](./media/v2-oauth2-auth-code-flow/runInPostman.png)](https://app.getpostman.com/run-collection/f77994d794bab767596d)
```
// Line breaks are for legibility only.
@@ -107,11 +111,11 @@ https://login.microsoftonline.com/common/adminconsent?client_id=6731de76-14a6-49
| Parameter | Condition | Description |
| --- | --- | --- |
| `tenant` | Required | The directory tenant that you want to request permission from. This can be in GUID or friendly name format. If you don't know which tenant the user belongs to and you want to let them sign in with any tenant, use `common`. |
-| `client_id` | Required | The application (client) ID that's assigned to your app. You can find this information in the portal where you registered your app. |
+| `client_id` | Required | The **Application (client) ID** that the [Azure portal – App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) experience assigned to your app. |
| `redirect_uri` | Required | The redirect URI where you want the response to be sent for your app to handle. It must exactly match one of the redirect URIs that you registered in the portal, except that it must be URL encoded, and it can have additional path segments. |
| `state` | Recommended | A value that's included in the request that's also returned in the token response. It can be a string of any content that you want. The state is used to encode information about the user's state in the app before the authentication request occurred, such as the page or view they were on. |
-At this point, Azure AD enforces that only a tenant administrator can sign in to complete the request. The administrator will be asked to approve all the direct application permissions that you have requested for your app in the app registration portal.
+At this point, Azure AD enforces that only a tenant administrator can sign into complete the request. The administrator will be asked to approve all the direct application permissions that you have requested for your app in the app registration portal.
##### Successful response
@@ -144,7 +148,11 @@ After you've received a successful response from the app provisioning endpoint,
## Get a token
-After you've acquired the necessary authorization for your application, proceed with acquiring access tokens for APIs. To get a token by using the client credentials grant, send a POST request to the `/token` v2.0 endpoint:
+After you've acquired the necessary authorization for your application, proceed with acquiring access tokens for APIs. To get a token by using the client credentials grant, send a POST request to the `/token` Microsoft identity platform endpoint:
+
+> [!TIP]
+> Try executing this request in Postman! (Use your own app ID for best results - the tutorial application won't request useful permissions.)
+> [![Run in Postman](./media/v2-oauth2-auth-code-flow/runInPostman.png)](https://app.getpostman.com/run-collection/f77994d794bab767596d)
### First case: Access token request with a shared secret
@@ -167,7 +175,7 @@ curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'client_id=
| --- | --- | --- |
| `tenant` | Required | The directory tenant the application plans to operate against, in GUID or domain-name format. |
| `client_id` | Required | The application ID that's assigned to your app. You can find this information in the portal where you registered your app. |
-| `scope` | Required | The value passed for the `scope` parameter in this request should be the resource identifier (application ID URI) of the resource you want, affixed with the `.default` suffix. For the Microsoft Graph example, the value is `https://graph.microsoft.com/.default`. This value tells the v2.0 endpoint that of all the direct application permissions you have configured for your app, the endpoint should issue a token for the ones associated with the resource you want to use. To learn more about the `/.default` scope, see the [consent documentation](v2-permissions-and-consent.md#the-default-scope). |
+| `scope` | Required | The value passed for the `scope` parameter in this request should be the resource identifier (application ID URI) of the resource you want, affixed with the `.default` suffix. For the Microsoft Graph example, the value is `https://graph.microsoft.com/.default`. This value tells the Microsoft identity platform endpoint that of all the direct application permissions you have configured for your app, the endpoint should issue a token for the ones associated with the resource you want to use. To learn more about the `/.default` scope, see the [consent documentation](v2-permissions-and-consent.md#the-default-scope). |
| `client_secret` | Required | The client secret that you generated for your app in the app registration portal. The client secret must be URL-encoded before being sent. |
| `grant_type` | Required | Must be set to `client_credentials`. |
@@ -189,7 +197,7 @@ scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
| --- | --- | --- |
| `tenant` | Required | The directory tenant the application plans to operate against, in GUID or domain-name format. |
| `client_id` | Required |The application (client) ID that's assigned to your app. |
-| `scope` | Required | The value passed for the `scope` parameter in this request should be the resource identifier (application ID URI) of the resource you want, affixed with the `.default` suffix. For the Microsoft Graph example, the value is `https://graph.microsoft.com/.default`. This value informs the v2.0 endpoint that of all the direct application permissions you have configured for your app, it should issue a token for the ones associated with the resource you want to use. To learn more about the `/.default` scope, see the [consent documentation](v2-permissions-and-consent.md#the-default-scope). |
+| `scope` | Required | The value passed for the `scope` parameter in this request should be the resource identifier (application ID URI) of the resource you want, affixed with the `.default` suffix. For the Microsoft Graph example, the value is `https://graph.microsoft.com/.default`. This value informs the Microsoft identity platform endpoint that of all the direct application permissions you have configured for your app, it should issue a token for the ones associated with the resource you want to use. To learn more about the `/.default` scope, see the [consent documentation](v2-permissions-and-consent.md#the-default-scope). |
| `client_assertion_type` | Required | The value must be set to `urn:ietf:params:oauth:client-assertion-type:jwt-bearer`. |
| `client_assertion` | Required | An assertion (a JSON web token) that you need to create and sign with the certificate you registered as credentials for your application. Read about [certificate credentials](active-directory-certificate-credentials.md) to learn how to register your certificate and the format of the assertion.|
| `grant_type` | Required | Must be set to `client_credentials`. |
@@ -211,7 +219,7 @@ A successful response looks like this:
| Parameter | Description |
| --- | --- |
| `access_token` | The requested access token. The app can use this token to authenticate to the secured resource, such as to a Web API. |
-| `token_type` | Indicates the token type value. The only type that Azure AD supports is `bearer`. |
+| `token_type` | Indicates the token type value. The only type that Microsoft identity platform supports is `bearer`. |
| `expires_in` | The amount of time that an access token is valid (in seconds). |
### Error response
diff --git a/articles/active-directory/develop/v2-oauth2-device-code.md b/articles/active-directory/develop/v2-oauth2-device-code.md
index 6077780b0a36a..947ebc8e9d025 100644
--- a/articles/active-directory/develop/v2-oauth2-device-code.md
+++ b/articles/active-directory/develop/v2-oauth2-device-code.md
@@ -1,5 +1,5 @@
---
-title: Use Azure AD v2.0 to sign in users on browser-less devices | Microsoft Docs
+title: Use Microsoft identity platform to sign in users on browser-less devices | Azure
description: Build embedded and browser-less authentication flows using the device code grant.
services: active-directory
documentationcenter: ''
@@ -13,28 +13,27 @@ ms.subservice: develop
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 10/02/2018
+ms.topic: conceptual
+ms.date: 04/12/2019
ms.author: celested
ms.reviewer: hirsin
ms.custom: aaddev
ms.collection: M365-identity-device-management
---
-# Azure Active Directory v2.0 and the OAuth 2.0 device code flow
+# Microsoft identity platform and the OAuth 2.0 device code flow
[!INCLUDE [active-directory-develop-applies-v2](../../../includes/active-directory-develop-applies-v2.md)]
-Azure AD supports the [device code grant](https://tools.ietf.org/html/draft-ietf-oauth-device-flow-12), which allows users to sign in to input-constrained devices such as a smart TV, IoT device, or printer. To enable this flow, the device has the user visit a webpage in their browser on another device to sign in. Once the user signs in, the device is able to get access tokens and refresh tokens as needed.
+Microsoft identity platform supports the [device code grant](https://tools.ietf.org/html/draft-ietf-oauth-device-flow-12), which allows users to sign in to input-constrained devices such as a smart TV, IoT device, or printer. To enable this flow, the device has the user visit a webpage in their browser on another device to sign in. Once the user signs in, the device is able to get access tokens and refresh tokens as needed.
-> [!Important]
-> At this time, the v2.0 endpoint only supports the device flow for Azure AD tenants, but not personal accounts. This means that you must use an endpoint set up as a tenant, or the organizations endpoint.
+> [!IMPORTANT]
+> At this time, the Microsoft identity platform endpoint only supports the device flow for Azure AD tenants, but not personal accounts. This means that you must use an endpoint set up as a tenant, or the `organizations` endpoint.
>
> Personal accounts that are invited to an Azure AD tenant will be able to use the device flow grant, but only in the context of the tenant.
> [!NOTE]
-> The v2.0 endpoint doesn't support all Azure Active Directory scenarios and features. To determine whether you should use the v2.0 endpoint, read about [v2.0 limitations](active-directory-v2-limitations.md).
->
+> The Microsoft identity platform endpoint doesn't support all Azure Active Directory scenarios and features. To determine whether you should use the Microsoft identity platform endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md).
## Protocol diagram
@@ -46,6 +45,10 @@ The entire device code flow looks similar to the next diagram. We describe each
The client must first check with the authentication server for a device and user code, used to initiate authentication. The client collects this request from the `/devicecode` endpoint. In this request, the client should also include the permissions it needs to acquire from the user. From the moment this request is sent, the user has only 15 minutes to sign in (the usual value for `expires_in`), so only make this request when the user has indicated they're ready to sign in.
+> [!TIP]
+> Try executing this request in Postman!
+> [![Run in Postman](./media/v2-oauth2-auth-code-flow/runInPostman.png)](https://app.getpostman.com/run-collection/f77994d794bab767596d)
+
```
// Line breaks are for legibility only.
@@ -59,9 +62,9 @@ scope=user.read%20openid%20profile
| Parameter | Condition | Description |
| --- | --- | --- |
-| tenant |Required |The directory tenant that you want to request permission from. This can be in GUID or friendly name format. |
-| client_id |Required |The Application ID that the [Application Registration Portal](https://apps.dev.microsoft.com/?referrer=https://azure.microsoft.com/documentation/articles&deeplink=/appList) assigned to your app. |
-| scope | Recommended | A space-separated list of [scopes](v2-permissions-and-consent.md) that you want the user to consent to. |
+| `tenant` | Required |The directory tenant that you want to request permission from. This can be in GUID or friendly name format. |
+| `client_id` | Required | The **Application (client) ID** that the [Azure portal – App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) experience assigned to your app. |
+| `scope` | Recommended | A space-separated list of [scopes](v2-permissions-and-consent.md) that you want the user to consent to. |
### Device authorization response
@@ -69,17 +72,17 @@ A successful response will be a JSON object containing the required information
| Parameter | Format | Description |
| --- | --- | --- |
-|`device_code` |String| A long string used to verify the session between the client and the authorization server. This is used by the client to request the access token from the authorization server. |
-|`user_code` |String| A short string shown to the user, used to identify the session on a secondary device.|
-|`verification_uri`|URI| The URI the user should go to with the `user_code` in order to sign in. |
+|`device_code` | String | A long string used to verify the session between the client and the authorization server. This is used by the client to request the access token from the authorization server. |
+|`user_code` | String | A short string shown to the user, used to identify the session on a secondary device.|
+|`verification_uri`| URI | The URI the user should go to with the `user_code` in order to sign in. |
|`verification_uri_complete`|URI| A URI combining the `user_code` and the `verification_uri`, used for non-textual transmission to the user (for example, via Bluetooth to a device, or through a QR code). |
-|`expires_in` |int| The number of seconds before the `device_code` and `user_code` expire. |
-|`interval` |int| The number of seconds the client should wait between polling requests. |
-| `message` |String| A human-readable string with instructions for the user. This can be localized by including a **query parameter** in the request of the form `?mkt=xx-XX`, filling in the appropriate language culture code. |
+|`expires_in` | int| The number of seconds before the `device_code` and `user_code` expire. |
+|`interval` | int | The number of seconds the client should wait between polling requests. |
+| `message` | String | A human-readable string with instructions for the user. This can be localized by including a **query parameter** in the request of the form `?mkt=xx-XX`, filling in the appropriate language culture code. |
## Authenticating the user
-After receiving the `user_code` and `verification_uri`, the client displays these to the user, instructing them to log in using their mobile phone or PC browser. Additionally, the client can use a QR code or similar mechanism to display the `verfication_uri_complete`, which will take the step of entering the `user_code` for the user.
+After receiving the `user_code` and `verification_uri`, the client displays these to the user, instructing them to sign in using their mobile phone or PC browser. Additionally, the client can use a QR code or similar mechanism to display the `verfication_uri_complete`, which will take the step of entering the `user_code` for the user.
While the user is authenticating at the `verification_uri`, the client should be polling the `/token` endpoint for the requested token using the `device_code`.
@@ -92,22 +95,22 @@ client_id: 6731de76-14a6-49ae-97bc-6eba6914391e
device_code: GMMhmHCXhWEzkobqIHGG_EnNYYsAkukHspeYUk9E8
```
-|Parameter | Required | Description|
+| Parameter | Required | Description|
| -------- | -------- | ---------- |
-|`grant_type` | Required| Must be `urn:ietf:params:oauth:grant-type:device_code`|
-|`client_id` | Required| Must match the `client_id` used in the initial request. |
-|`device_code`| Required| The `device_code` returned in the device authorization request. |
+| `grant_type` | Required | Must be `urn:ietf:params:oauth:grant-type:device_code`|
+| `client_id` | Required | Must match the `client_id` used in the initial request. |
+| `device_code`| Required | The `device_code` returned in the device authorization request. |
### Expected errors
Because the device code flow is a polling protocol, your client must expect to receive errors before the user has finished authenticating.
| Error | Description | Client Action |
-|------ | ----------- | -------------|
-| `authorization_pending` | The user has not yet finished authenticating, but has not canceled the flow. | Repeat the request after at least `interval` seconds. |
-| `authorization_declined`| The end user denied the authorization request.| Stop polling, and revert to an unauthenticated state. |
+| ------ | ----------- | -------------|
+| `authorization_pending` | The user has not yet finished authenticating, but has not canceled the flow. | Repeat the request after at least `interval` seconds. |
+| `authorization_declined` | The end user denied the authorization request.| Stop polling, and revert to an unauthenticated state. |
| `bad_verification_code`|The `device_code` sent to the `/token` endpoint was not recognized. | Verify that the client is sending the correct `device_code` in the request. |
-| `expired_token`| At least `expires_in` seconds have passed, and authentication is no longer possible with this `device_code`. | Stop polling, and revert to an unauthenticated state. |
+| `expired_token` | At least `expires_in` seconds have passed, and authentication is no longer possible with this `device_code`. | Stop polling, and revert to an unauthenticated state. |
### Successful authentication response
@@ -127,11 +130,11 @@ A successful token response will look like:
| Parameter | Format | Description |
| --------- | ------ | ----------- |
-|`token_type` | String| Always "Bearer. |
-|`scope` | Space separated strings | If an access token was returned, this lists the scopes the access token is valid for. |
-|`expires_in`| int | Number of seconds before the included access token is valid for. |
-|`access_token`| Opaque string | Issued for the [scopes](v2-permissions-and-consent.md) that were requested. |
-|`id_token` | JWT | Issued if the original `scope` parameter included the `openid` scope. |
-|`refresh_token` | Opaque string | Issued if the original `scope` parameter included `offline_access`. |
+| `token_type` | String| Always "Bearer. |
+| `scope` | Space separated strings | If an access token was returned, this lists the scopes the access token is valid for. |
+| `expires_in`| int | Number of seconds before the included access token is valid for. |
+| `access_token`| Opaque string | Issued for the [scopes](v2-permissions-and-consent.md) that were requested. |
+| `id_token` | JWT | Issued if the original `scope` parameter included the `openid` scope. |
+| `refresh_token` | Opaque string | Issued if the original `scope` parameter included `offline_access`. |
The refresh token can be used to acquire new access tokens and refresh tokens using the same flow detailed in the [OAuth Code flow documentation](v2-oauth2-auth-code-flow.md#refresh-the-access-token).
diff --git a/articles/active-directory/develop/v2-oauth2-implicit-grant-flow.md b/articles/active-directory/develop/v2-oauth2-implicit-grant-flow.md
index 95012e65e6af9..074d1c5d152fb 100644
--- a/articles/active-directory/develop/v2-oauth2-implicit-grant-flow.md
+++ b/articles/active-directory/develop/v2-oauth2-implicit-grant-flow.md
@@ -1,6 +1,6 @@
---
-title: Secure single-page applications using the Azure AD v2.0 implicit flow | Microsoft Docs
-description: Building web applications using Azure AD's v2.0 implementation of the implicit flow for single-page apps.
+title: Secure single-page applications using the Microsoft identity platform implicit flow | Azure
+description: Building web applications using Microsoft identity platform implementation of the implicit flow for single-page apps.
services: active-directory
documentationcenter: ''
author: CelesteDG
@@ -13,45 +13,45 @@ ms.subservice: develop
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 10/02/2018
+ms.topic: conceptual
+ms.date: 04/12/2019
ms.author: celested
ms.reviewer: hirsin
ms.custom: aaddev
ms.collection: M365-identity-device-management
---
-# v2.0 Protocols - SPAs using the implicit flow
+# Microsoft identity platform and Implicit grant flow
[!INCLUDE [active-directory-develop-applies-v2](../../../includes/active-directory-develop-applies-v2.md)]
-With the v2.0 endpoint, you can sign users into your single-page apps with both personal and work or school accounts from Microsoft. Single-page and other JavaScript apps that run primarily in a browser face a few interesting challenges when it comes to authentication:
+With the Microsoft identity platform endpoint, you can sign users into your single-page apps with both personal and work or school accounts from Microsoft. Single-page and other JavaScript apps that run primarily in a browser face a few interesting challenges when it comes to authentication:
* The security characteristics of these apps are significantly different from traditional server-based web applications.
* Many authorization servers and identity providers do not support CORS requests.
* Full page browser redirects away from the app become particularly invasive to the user experience.
-For these applications (AngularJS, Ember.js, React.js, etc), Azure Active Directory (Azure AD) supports the OAuth 2.0 Implicit Grant flow. The implicit flow is described in the [OAuth 2.0 Specification](https://tools.ietf.org/html/rfc6749#section-4.2). Its primary benefit is that it allows the app to get tokens from Azure AD without performing a backend server credential exchange. This allows the app to sign in the user, maintain session, and get tokens to other web APIs all within the client JavaScript code. There are a few important security considerations to take into account when using the implicit flow specifically around [client](https://tools.ietf.org/html/rfc6749#section-10.3) and [user impersonation](https://tools.ietf.org/html/rfc6749#section-10.3).
+For these applications (AngularJS, Ember.js, React.js, and so on), Microsoft identity platform supports the OAuth 2.0 Implicit Grant flow. The implicit flow is described in the [OAuth 2.0 Specification](https://tools.ietf.org/html/rfc6749#section-4.2). Its primary benefit is that it allows the app to get tokens from Microsoft identity platform without performing a backend server credential exchange. This allows the app to sign in the user, maintain session, and get tokens to other web APIs all within the client JavaScript code. There are a few important security considerations to take into account when using the implicit flow specifically around [client](https://tools.ietf.org/html/rfc6749#section-10.3) and [user impersonation](https://tools.ietf.org/html/rfc6749#section-10.3).
-If you want to use the implicit flow and Azure AD to add authentication to your JavaScript app, we recommend you use the open source JavaScript library, [msal.js](https://github.com/AzureAD/microsoft-authentication-library-for-js).
+If you want to use the implicit flow and Microsoft identity platform to add authentication to your JavaScript app, we recommend you use the open-source JavaScript library, [msal.js](https://github.com/AzureAD/microsoft-authentication-library-for-js).
However, if you prefer not to use a library in your single-page app and send protocol messages yourself, follow the general steps below.
> [!NOTE]
-> Not all Azure AD scenarios and features are supported by the v2.0 endpoint. To determine if you should use the v2.0 endpoint, read about [v2.0 limitations](active-directory-v2-limitations.md).
+> Not all Azure Active Directory (Azure AD) scenarios and features are supported by the Microsoft identity platform endpoint. To determine if you should use the Microsoft identity platform endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md).
## Protocol diagram
The following diagram shows what the entire implicit sign-in flow looks like and the sections that follow describe each step in more detail.
-![OpenId Connect Swimlanes](./media/v2-oauth2-implicit-grant-flow/convergence_scenarios_implicit.png)
+![OpenID Connect swimlanes](./media/v2-oauth2-implicit-grant-flow/convergence-scenarios-implicit.svg)
## Send the sign-in request
-To initially sign the user into your app, you can send an [OpenID Connect](v2-protocols-oidc.md) authorization request and get an `id_token` from the v2.0 endpoint.
+To initially sign the user into your app, you can send an [OpenID Connect](v2-protocols-oidc.md) authorization request and get an `id_token` from the Microsoft identity platform endpoint.
> [!IMPORTANT]
-> To successfully request an ID token, the app registration in the [Azure portal - App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page must have the implicit grant flow enabled correctly, by selecting **Access tokens** and **ID tokens** under the **Implicit grant** section. If it is not enabled, an `unsupported_response` error will be returned: **The provided value for the input parameter 'response_type' is not allowed for this client. Expected value is 'code'**
+> To successfully request an ID token, the app registration in the [Azure portal - App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page must have the implicit grant flow enabled correctly, by selecting **Access tokens** and **ID tokens** under the **Implicit grant** section. If it's not enabled, an `unsupported_response` error will be returned: **The provided value for the input parameter 'response_type' is not allowed for this client. Expected value is 'code'**
```
// Line breaks for legibility only
@@ -73,20 +73,20 @@ client_id=6731de76-14a6-49ae-97bc-6eba6914391e
| Parameter | | Description |
| --- | --- | --- |
| `tenant` | required |The `{tenant}` value in the path of the request can be used to control who can sign into the application. The allowed values are `common`, `organizations`, `consumers`, and tenant identifiers. For more detail, see [protocol basics](active-directory-v2-protocols.md#endpoints). |
-| `client_id` | required |The Application (client) ID that the [Azure portal - App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page assigned to your app. |
+| `client_id` | required | The Application (client) ID that the [Azure portal - App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) page assigned to your app. |
| `response_type` | required |Must include `id_token` for OpenID Connect sign-in. It may also include the response_type `token`. Using `token` here will allow your app to receive an access token immediately from the authorize endpoint without having to make a second request to the authorize endpoint. If you use the `token` response_type, the `scope` parameter must contain a scope indicating which resource to issue the token for. |
| `redirect_uri` | recommended |The redirect_uri of your app, where authentication responses can be sent and received by your app. It must exactly match one of the redirect_uris you registered in the portal, except it must be url encoded. |
| `scope` | required |A space-separated list of [scopes](v2-permissions-and-consent.md). For OpenID Connect, it must include the scope `openid`, which translates to the "Sign you in" permission in the consent UI. Optionally you may also want to include the `email` or `profile` scopes for gaining access to additional user data. You may also include other scopes in this request for requesting consent to various resources. |
| `response_mode` | optional |Specifies the method that should be used to send the resulting token back to your app. Defaults to query for an access token, but fragment if the request includes an id_token. |
| `state` | recommended |A value included in the request that will also be returned in the token response. It can be a string of any content that you wish. A randomly generated unique value is typically used for [preventing cross-site request forgery attacks](https://tools.ietf.org/html/rfc6749#section-10.12). The state is also used to encode information about the user's state in the app before the authentication request occurred, such as the page or view they were on. |
| `nonce` | required |A value included in the request, generated by the app, that will be included in the resulting id_token as a claim. The app can then verify this value to mitigate token replay attacks. The value is typically a randomized, unique string that can be used to identify the origin of the request. Only required when an id_token is requested. |
-| `prompt` | optional |Indicates the type of user interaction that is required. The only valid values at this time are 'login', 'none', 'select_account', and 'consent'. `prompt=login` will force the user to enter their credentials on that request, negating single-sign on. `prompt=none` is the opposite - it will ensure that the user is not presented with any interactive prompt whatsoever. If the request cannot be completed silently via single-sign on, the v2.0 endpoint will return an error. `prompt=select_account` sends the user to an account picker where all of the accounts remembered in the session will appear. `prompt=consent` will trigger the OAuth consent dialog after the user signs in, asking the user to grant permissions to the app. |
+| `prompt` | optional |Indicates the type of user interaction that is required. The only valid values at this time are 'login', 'none', 'select_account', and 'consent'. `prompt=login` will force the user to enter their credentials on that request, negating single-sign on. `prompt=none` is the opposite - it will ensure that the user isn't presented with any interactive prompt whatsoever. If the request can't be completed silently via single-sign on, the Microsoft identity platform endpoint will return an error. `prompt=select_account` sends the user to an account picker where all of the accounts remembered in the session will appear. `prompt=consent` will trigger the OAuth consent dialog after the user signs in, asking the user to grant permissions to the app. |
| `login_hint` |optional |Can be used to pre-fill the username/email address field of the sign in page for the user, if you know their username ahead of time. Often apps will use this parameter during re-authentication, having already extracted the username from a previous sign-in using the `preferred_username` claim.|
-| `domain_hint` | optional |Can be one of `consumers` or `organizations`. If included, it will skip the email-based discovery process that user goes through on the v2.0 sign in page, leading to a slightly more streamlined user experience. Often apps will use this parameter during re-authentication, by extracting the `tid` claim from the id_token. If the `tid` claim value is `9188040d-6c67-4c5b-b112-36a304b66dad` (the Microsoft Account consumer tenant), you should use `domain_hint=consumers`. Otherwise, you can use `domain_hint=organizations` during re-authentication. |
+| `domain_hint` | optional |Can be one of `consumers` or `organizations`. If included, it will skip the email-based discovery process that user goes through on the sign in page, leading to a slightly more streamlined user experience. Often apps will use this parameter during re-authentication, by extracting the `tid` claim from the id_token. If the `tid` claim value is `9188040d-6c67-4c5b-b112-36a304b66dad` (the Microsoft Account consumer tenant), you should use `domain_hint=consumers`. Otherwise, you can use `domain_hint=organizations` during re-authentication. |
-At this point, the user will be asked to enter their credentials and complete the authentication. The v2.0 endpoint will also ensure that the user has consented to the permissions indicated in the `scope` query parameter. If the user has consented to **none** of those permissions, it will ask the user to consent to the required permissions. For more info, see [permissions, consent, and multi-tenant apps](v2-permissions-and-consent.md).
+At this point, the user will be asked to enter their credentials and complete the authentication. The Microsoft identity platform endpoint will also ensure that the user has consented to the permissions indicated in the `scope` query parameter. If the user has consented to **none** of those permissions, it will ask the user to consent to the required permissions. For more info, see [permissions, consent, and multi-tenant apps](v2-permissions-and-consent.md).
-Once the user authenticates and grants consent, the v2.0 endpoint will return a response to your app at the indicated `redirect_uri`, using the method specified in the `response_mode` parameter.
+Once the user authenticates and grants consent, the Microsoft identity platform endpoint will return a response to your app at the indicated `redirect_uri`, using the method specified in the `response_mode` parameter.
#### Successful response
@@ -104,11 +104,11 @@ access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q..
| Parameter | Description |
| --- | --- |
-| `access_token` |Included if `response_type` includes `token`. The access token that the app requested, in this case for the Microsoft Graph. The access token should not be decoded or otherwise inspected, it should be treated as an opaque string. |
+| `access_token` |Included if `response_type` includes `token`. The access token that the app requested, in this case for the Microsoft Graph. The access token shouldn't be decoded or otherwise inspected, it should be treated as an opaque string. |
| `token_type` |Included if `response_type` includes `token`. Will always be `Bearer`. |
| `expires_in`|Included if `response_type` includes `token`. Indicates the number of seconds the token is valid, for caching purposes. |
-| `scope` |Included if `response_type` includes `token`. Indicates the scope(s) for which the access_token will be valid. May not include all of the scopes requested, if they were not applicable to the user (in the case of AAD-only scopes being requested when an personal account is used to log in). |
-| `id_token` | A signed JSON Web Token (JWT). The app can decode the segments of this token to request information about the user who signed in. The app can cache the values and display them, but it should not rely on them for any authorization or security boundaries. For more information about id_tokens, see the [`id_token reference`](id-tokens.md). **Note:** Only provided if `openid` scope was requested. |
+| `scope` |Included if `response_type` includes `token`. Indicates the scope(s) for which the access_token will be valid. May not include all of the scopes requested, if they were not applicable to the user (in the case of Azure AD-only scopes being requested when a personal account is used to log in). |
+| `id_token` | A signed JSON Web Token (JWT). The app can decode the segments of this token to request information about the user who signed in. The app can cache the values and display them, but it shouldn't rely on them for any authorization or security boundaries. For more information about id_tokens, see the [`id_token reference`](id-tokens.md). **Note:** Only provided if `openid` scope was requested. |
| `state` |If a state parameter is included in the request, the same value should appear in the response. The app should verify that the state values in the request and response are identical. |
#### Error response
@@ -128,9 +128,9 @@ error=access_denied
## Validate the id_token
-Just receiving an id_token is not sufficient to authenticate the user; you must also validate the id_token's signature and verify the claims in the token based on your app's requirements. The v2.0 endpoint uses [JSON Web Tokens (JWTs)](https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html) and public key cryptography to sign tokens and verify that they are valid.
+Just receiving an id_token isn't sufficient to authenticate the user; you must also validate the id_token's signature and verify the claims in the token based on your app's requirements. The Microsoft identity platform endpoint uses [JSON Web Tokens (JWTs)](https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html) and public key cryptography to sign tokens and verify that they're valid.
-You can choose to validate the `id_token` in client code, but a common practice is to send the `id_token` to a backend server and perform the validation there. Once you've validated the signature of the id_token, there are a few claims you will be required to verify. See the [`id_token` reference](id-tokens.md) for more information, including [validating tokens](id-tokens.md#validating-an-id_token) and [important information about signing key rollover](active-directory-signing-key-rollover.md). We recommend making use of a library for parsing and validating tokens - there is at least one available for most languages and platforms.
+You can choose to validate the `id_token` in client code, but a common practice is to send the `id_token` to a backend server and perform the validation there. Once you've validated the signature of the id_token, there are a few claims you'll be required to verify. See the [`id_token` reference](id-tokens.md) for more information, including [validating tokens](id-tokens.md#validating-an-id_token) and [important information about signing key rollover](active-directory-signing-key-rollover.md). We recommend making use of a library for parsing and validating tokens - there is at least one available for most languages and platforms.
You may also wish to validate additional claims depending on your scenario. Some common validations include:
@@ -138,13 +138,13 @@ You may also wish to validate additional claims depending on your scenario. Some
* Ensuring the user has proper authorization/privileges.
* Ensuring a certain strength of authentication has occurred, such as multi-factor authentication.
-Once you have completely validated the id_token, you can begin a session with the user and use the claims in the id_token to obtain information about the user in your app. This information can be used for display, records, personalization, etc.
+Once you have validated the id_token, you can begin a session with the user and use the claims in the id_token to obtain information about the user in your app. This information can be used for display, records, personalization, and more.
## Get access tokens
-Now that you've signed the user into your single-page app, you can get access tokens for calling web APIs secured by Azure AD, such as the [Microsoft Graph](https://developer.microsoft.com/graph). Even if you already received a token using the `token` response_type, you can use this method to acquire tokens to additional resources without having to redirect the user to sign in again.
+Now that you've signed the user into your single-page app, you can get access tokens for calling web APIs secured by Microsoft identity platform, such as the [Microsoft Graph](https://developer.microsoft.com/graph). Even if you already received a token using the `token` response_type, you can use this method to acquire tokens to additional resources without having to redirect the user to sign in again.
-In the normal OpenID Connect/OAuth flow, you would do this by making a request to the v2.0 `/token` endpoint. However, the v2.0 endpoint does not support CORS requests, so making AJAX calls to get and refresh tokens is out of the question. Instead, you can use the implicit flow in a hidden iframe to get new tokens for other web APIs:
+In the normal OpenID Connect/OAuth flow, you would do this by making a request to the Microsoft identity platform `/token` endpoint. However, the Microsoft identity platform endpoint does not support CORS requests, so making AJAX calls to get and refresh tokens is out of the question. Instead, you can use the implicit flow in a hidden iframe to get new tokens for other web APIs:
```
// Line breaks for legibility only
@@ -186,14 +186,13 @@ access_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q..
| Parameter | Description |
| --- | --- |
-| `access_token` |Included if `response_type` includes `token`. The access token that the app requested, in this case for the Microsoft Graph. The access token should not be decoded or otherwise inspected, it should be treated as an opaque string. |
+| `access_token` |Included if `response_type` includes `token`. The access token that the app requested, in this case for the Microsoft Graph. The access token shouldn't be decoded or otherwise inspected, it should be treated as an opaque string. |
| `token_type` | Will always be `Bearer`. |
| `expires_in` | Indicates the number of seconds the token is valid, for caching purposes. |
-| `scope` | Indicates the scope(s) for which the access_token will be valid. May not include all of the scopes requested, if they were not applicable to the user (in the case of AAD-only scopes being requested when an personal account is used to log in). |
-| `id_token` | A signed JSON Web Token (JWT). Included if `response_type` includes `id_token`. The app can decode the segments of this token to request information about the user who signed in. The app can cache the values and display them, but it should not rely on them for any authorization or security boundaries. For more information about id_tokens, see the [`id_token` reference](id-tokens.md). **Note:** Only provided if `openid` scope was requested. |
+| `scope` | Indicates the scope(s) for which the access_token will be valid. May not include all of the scopes requested, if they were not applicable to the user (in the case of Azure AD-only scopes being requested when a personal account is used to log in). |
+| `id_token` | A signed JSON Web Token (JWT). Included if `response_type` includes `id_token`. The app can decode the segments of this token to request information about the user who signed in. The app can cache the values and display them, but it shouldn't rely on them for any authorization or security boundaries. For more information about id_tokens, see the [`id_token` reference](id-tokens.md). **Note:** Only provided if `openid` scope was requested. |
| `state` |If a state parameter is included in the request, the same value should appear in the response. The app should verify that the state values in the request and response are identical. |
-
#### Error response
Error responses may also be sent to the `redirect_uri` so the app can handle them appropriately. In the case of `prompt=none`, an expected error will be:
@@ -213,21 +212,21 @@ If you receive this error in the iframe request, the user must interactively sig
## Validating access tokens
-Once you receive an access_token, make sure to validate the signature of the token as well as the following claims. You may also choose to validate additional claims based on your scenario.
+Once you receive an access_token, make sure to validate the signature of the token as well as the following claims. You may also choose to validate additional claims based on your scenario.
* **audience** claim, to ensure that the token was intended to be given to your app
-* **issuer** claim, to verify that the token was issued to your app by the v2.0 endpoint
+* **issuer** claim, to verify that the token was issued to your app by the Microsoft identity platform endpoint
* **not before** and **expiration time** claims, to verify that the token has not expired
For more information about the claims present in the access token, see the [access token reference](access-tokens.md)
## Refreshing tokens
-The implicit grant does not provide refresh tokens. Both `id_token`s and `access_token`s will expire after a short period of time, so your app must be prepared to refresh these tokens periodically. To refresh either type of token, you can perform the same hidden iframe request from above using the `prompt=none` parameter to control Azure AD's behavior. If you want to receive a new `id_token`, be sure to use `response_type=id_token` and `scope=openid`, as well as a `nonce` parameter.
+The implicit grant does not provide refresh tokens. Both `id_token`s and `access_token`s will expire after a short period of time, so your app must be prepared to refresh these tokens periodically. To refresh either type of token, you can perform the same hidden iframe request from above using the `prompt=none` parameter to control the identity platform's behavior. If you want to receive a new `id_token`, be sure to use `response_type=id_token` and `scope=openid`, as well as a `nonce` parameter.
## Send a sign out request
-The OpenIdConnect `end_session_endpoint` allows your app to send a request to the v2.0 endpoint to end a user's session and clear cookies set by the v2.0 endpoint. To fully sign a user out of a web application, your app should end its own session with the user (usually by clearing a token cache or dropping cookies), and then redirect the browser to:
+The OpenID Connect `end_session_endpoint` allows your app to send a request to the Microsoft identity platform endpoint to end a user's session and clear cookies set by the Microsoft identity platform endpoint. To fully sign a user out of a web application, your app should end its own session with the user (usually by clearing a token cache or dropping cookies), and then redirect the browser to:
```
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/logout?post_logout_redirect_uri=https://localhost/myapp/
@@ -236,7 +235,7 @@ https://login.microsoftonline.com/{tenant}/oauth2/v2.0/logout?post_logout_redire
| Parameter | | Description |
| --- | --- | --- |
| `tenant` |required |The `{tenant}` value in the path of the request can be used to control who can sign into the application. The allowed values are `common`, `organizations`, `consumers`, and tenant identifiers. For more detail, see [protocol basics](active-directory-v2-protocols.md#endpoints). |
-| `post_logout_redirect_uri` | recommended | The URL that the user should be returned to after logout completes. This value must match one of the redirect URIs registered for the application. If not included, the user will be shown a generic message by the v2.0 endpoint. |
+| `post_logout_redirect_uri` | recommended | The URL that the user should be returned to after logout completes. This value must match one of the redirect URIs registered for the application. If not included, the user will be shown a generic message by the Microsoft identity platform endpoint. |
## Next steps
diff --git a/articles/active-directory/develop/v2-oauth2-on-behalf-of-flow.md b/articles/active-directory/develop/v2-oauth2-on-behalf-of-flow.md
index 10328c4fba8f8..211529342c886 100644
--- a/articles/active-directory/develop/v2-oauth2-on-behalf-of-flow.md
+++ b/articles/active-directory/develop/v2-oauth2-on-behalf-of-flow.md
@@ -1,5 +1,5 @@
---
-title: Azure AD v2.0 OAuth2.0 On-Behalf-Of flow | Microsoft Docs
+title: Microsoft identity platform and OAuth2.0 On-Behalf-Of flow | Azure
description: This article describes how to use HTTP messages to implement service to service authentication using the OAuth2.0 On-Behalf-Of flow.
services: active-directory
documentationcenter: ''
@@ -14,25 +14,23 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 02/07/2019
+ms.date: 04/05/2019
ms.author: celested
ms.reviewer: hirsin
ms.custom: aaddev
ms.collection: M365-identity-device-management
---
-# Azure Active Directory v2.0 and OAuth 2.0 On-Behalf-Of flow
+# Microsoft identity platform and OAuth 2.0 On-Behalf-Of flow
[!INCLUDE [active-directory-develop-applies-v2](../../../includes/active-directory-develop-applies-v2.md)]
-The OAuth 2.0 On-Behalf-Of flow (OBO) serves the use case where an application invokes a service/web API, which in turn needs to call another service/web API. The idea is to propagate the delegated user identity and permissions through the request chain. For the middle-tier service to make authenticated requests to the downstream service, it needs to secure an access token from Azure Active Directory (Azure AD), on behalf of the user.
+The OAuth 2.0 On-Behalf-Of flow (OBO) serves the use case where an application invokes a service/web API, which in turn needs to call another service/web API. The idea is to propagate the delegated user identity and permissions through the request chain. For the middle-tier service to make authenticated requests to the downstream service, it needs to secure an access token from the Microsoft identity platform, on behalf of the user.
> [!NOTE]
-> The v2.0 endpoint doesn't support all Azure AD scenarios and features. To determine whether you should use the v2.0 endpoint, read about [v2.0 limitations](active-directory-v2-limitations.md). Specifically, known client applications are not supported for apps with Microsoft account (MSA) and Azure AD audiences. Thus, a common consent pattern for OBO will not work for clients that sign in both personal and work or school accounts. To learn more about how to handle this step of the flow, see [Gaining consent for the middle-tier application](#gaining-consent-for-the-middle-tier-application).
-
-
-> [!IMPORTANT]
-> As of May 2018, some implicit-flow derived `id_token` can't be used for OBO flow. Single-page apps (SPAs) should pass an **access** token to a middle-tier confidential client to perform OBO flows instead. For more info about which clients can perform OBO calls, see [limitations](#client-limitations).
+>
+> - The Microsoft identity platform endpoint doesn't support all scenarios and features. To determine whether you should use the Microsoft identity platform endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md). Specifically, known client applications aren't supported for apps with Microsoft account (MSA) and Azure AD audiences. Thus, a common consent pattern for OBO will not work for clients that sign in both personal and work or school accounts. To learn more about how to handle this step of the flow, see [Gaining consent for the middle-tier application](#gaining-consent-for-the-middle-tier-application).
+> - As of May 2018, some implicit-flow derived `id_token` can't be used for OBO flow. Single-page apps (SPAs) should pass an **access** token to a middle-tier confidential client to perform OBO flows instead. For more info about which clients can perform OBO calls, see [limitations](#client-limitations).
## Protocol diagram
@@ -40,20 +38,20 @@ Assume that the user has been authenticated on an application using the [OAuth 2
The steps that follow constitute the OBO flow and are explained with the help of the following diagram.
-![OAuth2.0 On-Behalf-Of flow](./media/v1-oauth2-on-behalf-of-flow/active-directory-protocols-oauth-on-behalf-of-flow.png)
+![OAuth2.0 On-Behalf-Of flow](./media/v2-oauth2-on-behalf-of-flow/protocols-oauth-on-behalf-of-flow.png)
1. The client application makes a request to API A with token A (with an `aud` claim of API A).
-1. API A authenticates to the Azure AD token issuance endpoint and requests a token to access API B.
-1. The Azure AD token issuance endpoint validates API A's credentials with token A and issues the access token for API B (token B).
+1. API A authenticates to the Microsoft identity platform token issuance endpoint and requests a token to access API B.
+1. The Microsoft identity platform token issuance endpoint validates API A's credentials with token A and issues the access token for API B (token B).
1. Token B is set in the authorization header of the request to API B.
1. Data from the secured resource is returned by API B.
> [!NOTE]
-> In this scenario, the middle-tier service has no user interaction to obtain the user's consent to access the downstream API. Therefore, the option to grant access to the downstream API is presented upfront as a part of the consent step during authentication. To learn how to set this up for your app, see [Gaining consent for the middle-tier application](#gaining-consent-for-the-middle-tier-application).
+> In this scenario, the middle-tier service has no user interaction to obtain the user's consent to access the downstream API. Therefore, the option to grant access to the downstream API is presented upfront as a part of the consent step during authentication. To learn how to set this up for your app, see [Gaining consent for the middle-tier application](#gaining-consent-for-the-middle-tier-application).
## Service-to-service access token request
-To request an access token, make an HTTP POST to the tenant-specific v2.0 token endpoint with the following parameters.
+To request an access token, make an HTTP POST to the tenant-specific Microsoft identity platform token endpoint with the following parameters.
```
https://login.microsoftonline.com//oauth2/v2.0/token
@@ -135,7 +133,7 @@ A success response is a JSON OAuth 2.0 response with the following parameters.
| Parameter | Description |
| --- | --- |
-| `token_type` | Indicates the token type value. The only type that Azure AD supports is `Bearer`. For more info about bearer tokens, see the [OAuth 2.0 Authorization Framework: Bearer Token Usage (RFC 6750)](https://www.rfc-editor.org/rfc/rfc6750.txt). |
+| `token_type` | Indicates the token type value. The only type that Microsoft identity platform supports is `Bearer`. For more info about bearer tokens, see the [OAuth 2.0 Authorization Framework: Bearer Token Usage (RFC 6750)](https://www.rfc-editor.org/rfc/rfc6750.txt). |
| `scope` | The scope of access granted in the token. |
| `expires_in` | The length of time, in seconds, that the access token is valid. |
| `access_token` | The requested access token. The calling service can use this token to authenticate to the receiving service. |
@@ -157,7 +155,7 @@ The following example shows a success response to a request for an access token
```
> [!NOTE]
-> The above access token is a v1.0-formatted token. This is because the token is provided based on the resource being accessed. The Microsoft Graph requests v1.0 tokens, so Azure AD produces v1.0 access tokens when a client requests tokens for Microsoft Graph. Only applications should look at access tokens. Clients should not need to inspect them.
+> The above access token is a v1.0-formatted token. This is because the token is provided based on the resource being accessed. The Microsoft Graph requests v1.0 tokens, so Microsoft identity platform produces v1.0 access tokens when a client requests tokens for Microsoft Graph. Only applications should look at access tokens. Clients should not need to inspect them.
### Error response example
@@ -189,15 +187,15 @@ Authorization: Bearer eyJ0eXAiOiJKV1QiLCJub25jZSI6IkFRQUJBQUFBQUFCbmZpRy1tQTZOVG
## Gaining consent for the middle-tier application
-Depending on the audience for your application, you may consider different strategies for ensuring that the OBO flow is successful. In all cases, the ultimate goal is to ensure proper consent is given. How that occurs, however, depends on which users your application supports.
+Depending on the audience for your application, you may consider different strategies for ensuring that the OBO flow is successful. In all cases, the ultimate goal is to ensure proper consent is given. How that occurs, however, depends on which users your application supports.
### Consent for Azure AD-only applications
#### /.default and combined consent
-For applications that only need to sign in work or school accounts, the traditional "Known Client Applications" approach is sufficient. The middle tier application adds the client to the known client applications list in its manifest, and then the client can trigger a combined consent flow for both itself and the middle tier application. On the v2.0 endpoint, this is done using the [`/.default` scope](v2-permissions-and-consent.md#the-default-scope). When triggering a consent screen using known client applications and `/.default`, the consent screen will show permissions for both the client to the middle tier API, and also request whatever permissions are required by the middle-tier API. The user provides consent for both applications, and then the OBO flow works.
+For applications that only need to sign in work or school accounts, the traditional "Known Client Applications" approach is sufficient. The middle tier application adds the client to the known client applications list in its manifest, and then the client can trigger a combined consent flow for both itself and the middle tier application. On the Microsoft identity platform endpoint, this is done using the [`/.default` scope](v2-permissions-and-consent.md#the-default-scope). When triggering a consent screen using known client applications and `/.default`, the consent screen will show permissions for both the client to the middle tier API, and also request whatever permissions are required by the middle-tier API. The user provides consent for both applications, and then the OBO flow works.
-At this time, the personal Microsoft account system does not support combined consent and so this approach does not work for apps that want to specifically sign in personal accounts. Personal Microsoft accounts being used as guest accounts in a tenant are handled using the Azure AD system, and can go through combined consent.
+At this time, the personal Microsoft account system does not support combined consent and so this approach does not work for apps that want to specifically sign in personal accounts. Personal Microsoft accounts being used as guest accounts in a tenant are handled using the Azure AD system, and can go through combined consent.
#### Pre-authorized applications
@@ -205,24 +203,24 @@ A feature of the application portal is "pre-authorized applications". In this wa
#### Admin consent
-A tenant admin can guarantee that applications have permission to call their required APIs by providing admin consent for the middle tier application. To do this, the admin can find the middle tier application in their tenant, open the required permissions page, and choose to give permission for the app. To learn more about admin consent, see the [consent and permissions documentation](v2-permissions-and-consent.md).
+A tenant admin can guarantee that applications have permission to call their required APIs by providing admin consent for the middle tier application. To do this, the admin can find the middle tier application in their tenant, open the required permissions page, and choose to give permission for the app. To learn more about admin consent, see the [consent and permissions documentation](v2-permissions-and-consent.md).
### Consent for Azure AD + Microsoft account applications
-Due to restrictions in the permissions model for personal accounts and the lack of a governing tenant, the consent requirements for personal accounts are a bit different from Azure AD. There is no tenant to provide tenant-wide consent for, nor is there the ability to do combined consent. Thus, other strategies present themselves - note that these work for applications that only need to support Azure AD accounts as well.
+Because of restrictions in the permissions model for personal accounts and the lack of a governing tenant, the consent requirements for personal accounts are a bit different from Azure AD. There is no tenant to provide tenant-wide consent for, nor is there the ability to do combined consent. Thus, other strategies present themselves - note that these work for applications that only need to support Azure AD accounts as well.
#### Use of a single application
-In some scenarios, you may only have a single pairing of middle-tier and front-end client. In this scenario, you may find it easier to make this a single application, negating the need for a middle-tier application altogether. To authenticate between the front-end and the web API, you can use cookies, an id_token, or an access token requested for the application itself. Then, request consent from this single application to the back-end resource.
+In some scenarios, you may only have a single pairing of middle-tier and front-end client. In this scenario, you may find it easier to make this a single application, negating the need for a middle-tier application altogether. To authenticate between the front-end and the web API, you can use cookies, an id_token, or an access token requested for the application itself. Then, request consent from this single application to the back-end resource.
## Client limitations
-If a client uses the implicit flow to get an id_token, and that client also has wildcards in a reply URL, the id_token cannot be used for an OBO flow. However, access tokens acquired through the implicit grant flow can still be redeemed by a confidential client even if the initiating client has a wildcard reply URL registered.
+If a client uses the implicit flow to get an id_token, and that client also has wildcards in a reply URL, the id_token can't be used for an OBO flow. However, access tokens acquired through the implicit grant flow can still be redeemed by a confidential client even if the initiating client has a wildcard reply URL registered.
## Next steps
Learn more about the OAuth 2.0 protocol and another way to perform service to service auth using client credentials.
-* [OAuth 2.0 client credentials grant in Azure AD v2.0](v2-oauth2-client-creds-grant-flow.md)
-* [OAuth 2.0 code flow in Azure AD v2.0](v2-oauth2-auth-code-flow.md)
-* [Using the `/.default` scope](v2-permissions-and-consent.md#the-default-scope)
+* [OAuth 2.0 client credentials grant in Microsoft identity platform](v2-oauth2-client-creds-grant-flow.md)
+* [OAuth 2.0 code flow in Microsoft identity platform](v2-oauth2-auth-code-flow.md)
+* [Using the `/.default` scope](v2-permissions-and-consent.md#the-default-scope)
diff --git a/articles/active-directory/develop/v2-permissions-and-consent.md b/articles/active-directory/develop/v2-permissions-and-consent.md
index 52d0285f887c4..38547ae1336e4 100644
--- a/articles/active-directory/develop/v2-permissions-and-consent.md
+++ b/articles/active-directory/develop/v2-permissions-and-consent.md
@@ -1,6 +1,6 @@
---
-title: Azure Active Directory v2.0 scopes, permissions, and consent | Microsoft Docs
-description: A description of authorization in the Azure AD v2.0 endpoint, including scopes, permissions, and consent.
+title: Microsoft identity platform scopes, permissions, and consent | Microsoft Docs
+description: A description of authorization in the Microsoft identity platform endpoint, including scopes, permissions, and consent.
services: active-directory
documentationcenter: ''
author: CelesteDG
@@ -14,22 +14,22 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 04/01/2019
+ms.date: 04/12/2019
ms.author: celested
ms.reviewer: hirsin, jesakowi, jmprieur
ms.custom: aaddev
ms.custom: fasttrack-edit
-
ms.collection: M365-identity-device-management
---
-# Permissions and consent in the Azure Active Directory v2.0 endpoint
+
+# Permissions and consent in the Microsoft identity platform endpoint
[!INCLUDE [active-directory-develop-applies-v2](../../../includes/active-directory-develop-applies-v2.md)]
-Applications that integrate with Microsoft identity platform follow an authorization model that gives users and administrators control over how data can be accessed. The implementation of the authorization model has been updated on the v2.0 endpoint, and it changes how an app must interact with the Microsoft identity platform. This article covers the basic concepts of this authorization model, including scopes, permissions, and consent.
+Applications that integrate with Microsoft identity platform follow an authorization model that gives users and administrators control over how data can be accessed. The implementation of the authorization model has been updated on the Microsoft identity platform endpoint, and it changes how an app must interact with the Microsoft identity platform. This article covers the basic concepts of this authorization model, including scopes, permissions, and consent.
> [!NOTE]
-> The v2.0 endpoint does not support all scenarios and features. To determine whether you should use the v2.0 endpoint, read about [v2.0 limitations](active-directory-v2-limitations.md).
+> The Microsoft identity platform endpoint does not support all scenarios and features. To determine whether you should use the Microsoft identity platform endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md).
## Scopes and permissions
@@ -48,54 +48,55 @@ The same is true for any third-party resources that have integrated with the Mic
* Write to a user's calendar
* Send mail as a user
-By defining these types of permissions, the resource has fine-grained control over its data and how API functionality is exposed. A third-party app can request these permissions from users and administrators, who must approve the request before the app can access data or act on a user's behalf. By chunking the resource's functionality into smaller permission sets, third-party apps can be built to request only the specific permissions that they need to perform their function. Users and administrators can know exactly what data the app has access to, and they can be more confident that it is not behaving with malicious intent. Developers should always abide by the concept of least privilege, asking for only the permissions they need for their applications to function.
+By defining these types of permissions, the resource has fine-grained control over its data and how API functionality is exposed. A third-party app can request these permissions from users and administrators, who must approve the request before the app can access data or act on a user's behalf. By chunking the resource's functionality into smaller permission sets, third-party apps can be built to request only the specific permissions that they need to perform their function. Users and administrators can know exactly what data the app has access to, and they can be more confident that it isn't behaving with malicious intent. Developers should always abide by the concept of least privilege, asking for only the permissions they need for their applications to function.
-In OAuth 2.0, these types of permissions are called *scopes*. They also often simply referred to as *permissions*. A permission is represented in the Microsoft identity platform as a string value. Continuing with the Microsoft Graph example, the string value for each permission is:
+In OAuth 2.0, these types of permissions are called *scopes*. They also often referred to as *permissions*. A permission is represented in the Microsoft identity platform as a string value. Continuing with the Microsoft Graph example, the string value for each permission is:
* Read a user's calendar by using `Calendars.Read`
* Write to a user's calendar by using `Calendars.ReadWrite`
* Send mail as a user using by `Mail.Send`
-An app most commonly requests these permissions by specifying the scopes in requests to the v2.0 authorize endpoint. However, certain high privilege permissions can only be granted through administrator consent and generally requested/granted using the [administrator consent endpoint](v2-permissions-and-consent.md#admin-restricted-permissions). Read on to learn more.
+An app most commonly requests these permissions by specifying the scopes in requests to the Microsoft identity platform authorize endpoint. However, certain high privilege permissions can only be granted through administrator consent and requested/granted using the [administrator consent endpoint](v2-permissions-and-consent.md#admin-restricted-permissions). Read on to learn more.
## Permission types
Microsoft identity platform supports two types of permissions: **delegated permissions** and **application permissions**.
-* **Delegated permissions** are used by apps that have a signed-in user present. For these apps, either the user or an administrator consents to the permissions that the app requests and the app is delegated permission to act as the signed-in user when making calls to the target resource. Some delegated permissions can be consented to by non-administrative users, but some higher-privileged permissions require [administrator consent](v2-permissions-and-consent.md#admin-restricted-permissions). To learn which administrator roles can consent to delegated permissions, see [Administrator role permissions in Azure AD](../users-groups-roles/directory-assign-admin-roles.md).
+* **Delegated permissions** are used by apps that have a signed-in user present. For these apps, either the user or an administrator consents to the permissions that the app requests, and the app is delegated permission to act as the signed-in user when making calls to the target resource. Some delegated permissions can be consented to by non-administrative users, but some higher-privileged permissions require [administrator consent](v2-permissions-and-consent.md#admin-restricted-permissions). To learn which administrator roles can consent to delegated permissions, see [Administrator role permissions in Azure AD](../users-groups-roles/directory-assign-admin-roles.md).
* **Application permissions** are used by apps that run without a signed-in user present; for example, apps that run as background services or daemons. Application permissions can only be [consented by an administrator](v2-permissions-and-consent.md#requesting-consent-for-an-entire-tenant).
-_Effective permissions_ are the permissions that your app will have when making requests to the target resource. It is important to understand the difference between the delegated and application permissions that your app is granted and its effective permissions when making calls to the target resource.
+_Effective permissions_ are the permissions that your app will have when making requests to the target resource. It's important to understand the difference between the delegated and application permissions that your app is granted and its effective permissions when making calls to the target resource.
- For delegated permissions, the _effective permissions_ of your app will be the least privileged intersection of the delegated permissions the app has been granted (via consent) and the privileges of the currently signed-in user. Your app can never have more privileges than the signed-in user. Within organizations, the privileges of the signed-in user may be determined by policy or by membership in one or more administrator roles. To learn which administrator roles can consent to delegated permissions, see [Administrator role permissions in Azure AD](../users-groups-roles/directory-assign-admin-roles.md).
- For example, assume your app has been granted the _User.ReadWrite.All_ delegated permission. This permission nominally grants your app permission to read and update the profile of every user in an organization. If the signed-in user is a global administrator, your app will be able to update the profile of every user in the organization. However, if the signed-in user is not in an administrator role, your app will be able to update only the profile of the signed-in user. It will not be able to update the profiles of other users in the organization because the user that it has permission to act on behalf of does not have those privileges.
+
+ For example, assume your app has been granted the _User.ReadWrite.All_ delegated permission. This permission nominally grants your app permission to read and update the profile of every user in an organization. If the signed-in user is a global administrator, your app will be able to update the profile of every user in the organization. However, if the signed-in user isn't in an administrator role, your app will be able to update only the profile of the signed-in user. It will not be able to update the profiles of other users in the organization because the user that it has permission to act on behalf of does not have those privileges.
- For application permissions, the _effective permissions_ of your app will be the full level of privileges implied by the permission. For example, an app that has the _User.ReadWrite.All_ application permission can update the profile of every user in the organization.
## OpenID Connect scopes
-The v2.0 implementation of OpenID Connect has a few well-defined scopes that do not apply to a specific resource: `openid`, `email`, `profile`, and `offline_access`. The `address` and `phone` OpenID Connect scopes are not supported.
+The Microsoft identity platform implementation of OpenID Connect has a few well-defined scopes that do not apply to a specific resource: `openid`, `email`, `profile`, and `offline_access`. The `address` and `phone` OpenID Connect scopes are not supported.
### openid
-If an app performs sign-in by using [OpenID Connect](active-directory-v2-protocols.md), it must request the `openid` scope. The `openid` scope shows on the work account consent page as the "Sign you in" permission, and on the personal Microsoft account consent page as the "View your profile and connect to apps and services using your Microsoft account" permission. With this permission, an app can receive a unique identifier for the user in the form of the `sub` claim. It also gives the app access to the UserInfo endpoint. The `openid` scope can be used at the v2.0 token endpoint to acquire ID tokens, which can be used by the app for authentication.
+If an app performs sign-in by using [OpenID Connect](active-directory-v2-protocols.md), it must request the `openid` scope. The `openid` scope shows on the work account consent page as the "Sign you in" permission, and on the personal Microsoft account consent page as the "View your profile and connect to apps and services using your Microsoft account" permission. With this permission, an app can receive a unique identifier for the user in the form of the `sub` claim. It also gives the app access to the UserInfo endpoint. The `openid` scope can be used at the Microsoft identity platform token endpoint to acquire ID tokens, which can be used by the app for authentication.
### email
-The `email` scope can be used with the `openid` scope and any others. It gives the app access to the user's primary email address in the form of the `email` claim. The `email` claim is included in a token only if an email address is associated with the user account, which is not always the case. If it uses the `email` scope, your app should be prepared to handle a case in which the `email` claim does not exist in the token.
+The `email` scope can be used with the `openid` scope and any others. It gives the app access to the user's primary email address in the form of the `email` claim. The `email` claim is included in a token only if an email address is associated with the user account, which isn't always the case. If it uses the `email` scope, your app should be prepared to handle a case in which the `email` claim does not exist in the token.
### profile
-The `profile` scope can be used with the `openid` scope and any others. It gives the app access to a substantial amount of information about the user. The information it can access includes, but is not limited to, the user's given name, surname, preferred username, and object ID. For a complete list of the profile claims available in the id_tokens parameter for a specific user, see the [`id_tokens` reference](id-tokens.md).
+The `profile` scope can be used with the `openid` scope and any others. It gives the app access to a substantial amount of information about the user. The information it can access includes, but isn't limited to, the user's given name, surname, preferred username, and object ID. For a complete list of the profile claims available in the id_tokens parameter for a specific user, see the [`id_tokens` reference](id-tokens.md).
### offline_access
-The [`offline_access` scope](https://openid.net/specs/openid-connect-core-1_0.html#OfflineAccess) gives your app access to resources on behalf of the user for an extended time. On the consent page, this scope appears as the "Maintain access to data you have given it access to" permission. When a user approves the `offline_access` scope, your app can receive refresh tokens from the v2.0 token endpoint. Refresh tokens are long-lived. Your app can get new access tokens as older ones expire.
+The [`offline_access` scope](https://openid.net/specs/openid-connect-core-1_0.html#OfflineAccess) gives your app access to resources on behalf of the user for an extended time. On the consent page, this scope appears as the "Maintain access to data you have given it access to" permission. When a user approves the `offline_access` scope, your app can receive refresh tokens from the Microsoft identity platform token endpoint. Refresh tokens are long-lived. Your app can get new access tokens as older ones expire.
-If your app does not explicitly request the `offline_access` scope, it won't receive refresh tokens. This means that when you redeem an authorization code in the [OAuth 2.0 authorization code flow](active-directory-v2-protocols.md), you'll receive only an access token from the `/token` endpoint. The access token is valid for a short time. The access token usually expires in one hour. At that point, your app needs to redirect the user back to the `/authorize` endpoint to get a new authorization code. During this redirect, depending on the type of app, the user might need to enter their credentials again or consent again to permissions. Note that while the `offline_access` scope is automatically requested by the server, your client must still request it in order to receive the refresh tokens.
+If your app does not explicitly request the `offline_access` scope, it won't receive refresh tokens. This means that when you redeem an authorization code in the [OAuth 2.0 authorization code flow](active-directory-v2-protocols.md), you'll receive only an access token from the `/token` endpoint. The access token is valid for a short time. The access token usually expires in one hour. At that point, your app needs to redirect the user back to the `/authorize` endpoint to get a new authorization code. During this redirect, depending on the type of app, the user might need to enter their credentials again or consent again to permissions. While the `offline_access` scope is automatically requested by the server, your client must still request it in order to receive the refresh tokens.
-For more information about how to get and use refresh tokens, see the [v2.0 protocol reference](active-directory-v2-protocols.md).
+For more information about how to get and use refresh tokens, see the [Microsoft identity platform protocol reference](active-directory-v2-protocols.md).
## Requesting individual user consent
@@ -115,7 +116,7 @@ https%3A%2F%2Fgraph.microsoft.com%2Fmail.send
The `scope` parameter is a space-separated list of delegated permissions that the app is requesting. Each permission is indicated by appending the permission value to the resource's identifier (the Application ID URI). In the request example, the app needs permission to read the user's calendar and send mail as the user.
-After the user enters their credentials, the v2.0 endpoint checks for a matching record of *user consent*. If the user has not consented to any of the requested permissions in the past, nor has an administrator consented to these permissions on behalf of the entire organization, the v2.0 endpoint asks the user to grant the requested permissions.
+After the user enters their credentials, the Microsoft identity platform endpoint checks for a matching record of *user consent*. If the user has not consented to any of the requested permissions in the past, nor has an administrator consented to these permissions on behalf of the entire organization, the Microsoft identity platform endpoint asks the user to grant the requested permissions.
> [!NOTE]
> At this time, the `offline_access` ("Maintain access to data you have given it access to") and `user.read` ("Sign you in and read your profile") permissions are automatically included in the initial consent to an application. These permissions are generally required for proper app functionality - `offline_access` gives the app access to refresh tokens, critical for native and web apps, while `user.read` gives access to the `sub` claim, allowing the client or app to correctly identify the user over time and access rudimentary user information.
@@ -140,17 +141,17 @@ Some high-privilege permissions in the Microsoft ecosystem can be set to *admin-
* Write data to an organization's directory by using `Directory.ReadWrite.All`
* Read all groups in an organization's directory by using `Groups.Read.All`
-Although a consumer user might grant an application access to this kind of data, organizational users are restricted from granting access to the same set of sensitive company data. If your application requests access to one of these permissions from an organizational user, the user receives an error message that says they are not authorized to consent to your app's permissions.
+Although a consumer user might grant an application access to this kind of data, organizational users are restricted from granting access to the same set of sensitive company data. If your application requests access to one of these permissions from an organizational user, the user receives an error message that says they're not authorized to consent to your app's permissions.
If your app requires access to admin-restricted scopes for organizations, you should request them directly from a company administrator, also by using the admin consent endpoint, described next.
If the application is requesting high privilege delegated permissions and an administrator grants these permissions via the admin consent endpoint, consent is granted for all users in the tenant.
-If the application is requesting application permissions and an administrator grants these permissions via the admin consent endpoint, this grant is not done on behalf of any specific user. Instead, the client application is granted permissions *directly*. These types of permissions are generally only used by daemon services and other non-interactive applications that run in the background.
+If the application is requesting application permissions and an administrator grants these permissions via the admin consent endpoint, this grant isn't done on behalf of any specific user. Instead, the client application is granted permissions *directly*. These types of permissions are only used by daemon services and other non-interactive applications that run in the background.
## Using the admin consent endpoint
-When a Company Administrator uses your application and is directed to the authorize endpoint, Microsoft identity platform will detect the user's role and ask them if they would like to consent on behalf of the entire tenant for the permissions you have requested. However, there is also a dedicated admin consent endpoint you can use if you would like to proactively request that an administrator grants permission on behalf of the entire tenant. Using this endpoint is also necessary for requesting Application Permissions (which cannot be requested using the authorize endpoint).
+When a Company Administrator uses your application and is directed to the authorize endpoint, Microsoft identity platform will detect the user's role and ask them if they would like to consent on behalf of the entire tenant for the permissions you have requested. However, there is also a dedicated admin consent endpoint you can use if you would like to proactively request that an administrator grants permission on behalf of the entire tenant. Using this endpoint is also necessary for requesting Application Permissions (which can't be requested using the authorize endpoint).
If you follow these steps, your app can request permissions for all users in a tenant, including admin-restricted scopes. This is a high privilege operation and should only be done if necessary for your scenario.
@@ -158,10 +159,11 @@ To see a code sample that implements the steps, see the [admin-restricted scopes
### Request the permissions in the app registration portal
-The admin consent does not accept a scope parameter, so any permissions being requested must be statically defined in the application's registration. In general it is best practice to ensure that the permissions statically defined for a given application are a superset of the permissions that it will be requesting dynamically/incrementally.
+The admin consent does not accept a scope parameter, so any permissions being requested must be statically defined in the application's registration. In general, it's best practice to ensure that the permissions statically defined for a given application are a superset of the permissions that it will be requesting dynamically/incrementally.
+
+#### To configure the list of statically requested permissions for an application
-To configure the list of statically requested permissions for an application:
-1. Go to your application in the [Application Registration Portal](https://apps.dev.microsoft.com/?referrer=https://azure.microsoft.com/documentation/articles&deeplink=/appList), or [create an app](quickstart-v2-register-an-app.md) if you haven't already.
+1. Go to your application in the [Azure portal – App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) experience, or [create an app](quickstart-register-app.md) if you haven't already.
2. Locate the **Microsoft Graph Permissions** section, and then add the permissions that your app requires.
3. **Save** the app registration.
@@ -169,11 +171,11 @@ To configure the list of statically requested permissions for an application:
Typically, when you build an application that uses the admin consent endpoint, the app needs a page or view in which the admin can approve the app's permissions. This page can be part of the app's sign-up flow, part of the app's settings, or it can be a dedicated "connect" flow. In many cases, it makes sense for the app to show this "connect" view only after a user has signed in with a work or school Microsoft account.
-When you sign the user into your app, you can identify the organization to which the admin belongs before asking them to approve the necessary permissions. Although not strictly necessary, it can help you create a more intuitive experience for your organizational users. To sign the user in, follow our [v2.0 protocol tutorials](active-directory-v2-protocols.md).
+When you sign the user into your app, you can identify the organization to which the admin belongs before asking them to approve the necessary permissions. Although not strictly necessary, it can help you create a more intuitive experience for your organizational users. To sign the user in, follow our [Microsoft identity platform protocol tutorials](active-directory-v2-protocols.md).
### Request the permissions from a directory admin
-When you're ready to request permissions from your organization's admin, you can redirect the user to the v2.0 *admin consent endpoint*.
+When you're ready to request permissions from your organization's admin, you can redirect the user to the Microsoft identity platform *admin consent endpoint*.
```
// Line breaks are for legibility only.
@@ -195,7 +197,7 @@ https://login.microsoftonline.com/common/adminconsent?client_id=6731de76-14a6-49
| Parameter | Condition | Description |
| --- | --- | --- |
| `tenant` | Required | The directory tenant that you want to request permission from. Can be provided in GUID or friendly name format OR generically referenced with `common` as seen in the example. |
-| `client_id` | Required | The application (client) ID that the [Application Registration Portal](https://apps.dev.microsoft.com/?referrer=https://azure.microsoft.com/documentation/articles&deeplink=/appList) or [new App registrations (preview) portal](https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview) has assigned to your app. |
+| `client_id` | Required | The **Application (client) ID** that the [Azure portal – App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) experience assigned to your app. |
| `redirect_uri` | Required |The redirect URI where you want the response to be sent for your app to handle. It must exactly match one of the redirect URIs that you registered in the app registration portal. |
| `state` | Recommended | A value included in the request that will also be returned in the token response. It can be a string of any content you want. Use the state to encode information about the user's state in the app before the authentication request occurred, such as the page or view they were on. |
@@ -232,7 +234,7 @@ After you've received a successful response from the admin consent endpoint, you
## Using permissions
-After the user consents to permissions for your app, your app can acquire access tokens that represent your app's permission to access a resource in some capacity. An access token can be used only for a single resource, but encoded inside the access token is every permission that your app has been granted for that resource. To acquire an access token, your app can make a request to the v2.0 token endpoint, like this:
+After the user consents to permissions for your app, your app can acquire access tokens that represent your app's permission to access a resource in some capacity. An access token can be used only for a single resource, but encoded inside the access token is every permission that your app has been granted for that resource. To acquire an access token, your app can make a request to the Microsoft identity platform token endpoint, like this:
```
POST common/oauth2/v2.0/token HTTP/1.1
@@ -251,24 +253,24 @@ Content-Type: application/json
You can use the resulting access token in HTTP requests to the resource. It reliably indicates to the resource that your app has the proper permission to perform a specific task.
-For more information about the OAuth 2.0 protocol and how to get access tokens, see the [v2.0 endpoint protocol reference](active-directory-v2-protocols.md).
+For more information about the OAuth 2.0 protocol and how to get access tokens, see the [Microsoft identity platform endpoint protocol reference](active-directory-v2-protocols.md).
## The /.default scope
-You can use the `/.default` scope to help migrate your apps from the v1.0 endpoint to the v2.0 endpoint. This is a built-in scope for every application that refers to the static list of permissions configured on the application registration. A `scope` value of `https://graph.microsoft.com/.default` is functionally the same as the v1.0 endpoints `resource=https://graph.microsoft.com` - namely, it requests a token with the scopes on Microsoft Graph that the application has registered for in the Azure portal.
+You can use the `/.default` scope to help migrate your apps from the v1.0 endpoint to the Microsoft identity platform endpoint. This is a built-in scope for every application that refers to the static list of permissions configured on the application registration. A `scope` value of `https://graph.microsoft.com/.default` is functionally the same as the v1.0 endpoints `resource=https://graph.microsoft.com` - namely, it requests a token with the scopes on Microsoft Graph that the application has registered for in the Azure portal.
-The /.default scope can be used in any OAuth 2.0 flow, but is particularly necessary in the [On-Behalf-Of flow](v2-oauth2-on-behalf-of-flow.md) and [client credentials flow](v2-oauth2-client-creds-grant-flow.md).
+The /.default scope can be used in any OAuth 2.0 flow, but is necessary in the [On-Behalf-Of flow](v2-oauth2-on-behalf-of-flow.md) and [client credentials flow](v2-oauth2-client-creds-grant-flow.md).
> [!NOTE]
-> Clients cannot combine static (`/.default`) and dynamic consent in a single request. Thus, `scope=https://graph.microsoft.com/.default+mail.read` will result in an error due to the combination of scope types.
+> Clients can't combine static (`/.default`) and dynamic consent in a single request. Thus, `scope=https://graph.microsoft.com/.default+mail.read` will result in an error due to the combination of scope types.
### /.default and consent
-The `/.default` scope triggers the v1.0 endpoint behavior for `prompt=consent` as well. It requests consent for all permissions registered by the application, regardless of the resource. If included as part of the request, the `/.default` scope returns a token that contains the scopes for the resource specifically requested.
+The `/.default` scope triggers the v1.0 endpoint behavior for `prompt=consent` as well. It requests consent for all permissions registered by the application, regardless of the resource. If included as part of the request, the `/.default` scope returns a token that contains the scopes for the resource requested.
### /.default when the user has already given consent
-Because `/.default` is functionally identical to the `resource`-centric v1.0 endpoint's behavior, it brings with it the consent behavior of the v1.0 endpoint as well. Namely, `/.default` only triggers a consent prompt if no permission has been granted between the client and the resource by the user. If any such consent exists, then a token will be returned containing all scopes granted by the user for that resource. However, if no permission has been granted, or the `prompt=consent` parameter has been provided, a consent prompt will be shown for all scopes registered by the client application.
+Because `/.default` is functionally identical to the `resource`-centric v1.0 endpoint's behavior, it brings with it the consent behavior of the v1.0 endpoint as well. Namely, `/.default` only triggers a consent prompt if no permission has been granted between the client and the resource by the user. If any such consent exists, then a token will be returned containing all scopes granted by the user for that resource. However, if no permission has been granted, or the `prompt=consent` parameter has been provided, a consent prompt will be shown for all scopes registered by the client application.
#### Example 1: The user, or tenant admin, has granted permissions
@@ -297,7 +299,7 @@ response_type=token //code or a hybrid flow is also possible here
&state=1234
```
-This produces a consent screen for all registered permissions (if applicable based on the above descriptions of consent and `/.default`), then returns an id_token, rather than an access token. This behavior exists for certain legacy clients moving from ADAL to MSAL, and should not be used by new clients targeting the v2.0 endpoint.
+This produces a consent screen for all registered permissions (if applicable based on the above descriptions of consent and `/.default`), then returns an id_token, rather than an access token. This behavior exists for certain legacy clients moving from ADAL to MSAL, and should not be used by new clients targeting the Microsoft identity platform endpoint.
## Troubleshooting permissions and consent
diff --git a/articles/active-directory/develop/v2-protocols-oidc.md b/articles/active-directory/develop/v2-protocols-oidc.md
index d64736eed8677..aa7410bcbf0e5 100644
--- a/articles/active-directory/develop/v2-protocols-oidc.md
+++ b/articles/active-directory/develop/v2-protocols-oidc.md
@@ -1,6 +1,6 @@
---
-title: Azure Active Directory v2.0 and the OpenID Connect protocol | Microsoft Docs
-description: Build web applications by using the Azure AD v2.0 implementation of the OpenID Connect authentication protocol.
+title: Microsoft identity platform and the OpenID Connect protocol | Azure
+description: Build web applications by using the Microsoft identity platform implementation of the OpenID Connect authentication protocol.
services: active-directory
documentationcenter: ''
author: CelesteDG
@@ -13,32 +13,32 @@ ms.subservice: develop
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 09/24/2018
+ms.topic: conceptual
+ms.date: 04/12/2019
ms.author: celested
ms.reviewer: hirsin
ms.custom: aaddev
ms.collection: M365-identity-device-management
---
-# Azure Active Directory v2.0 and the OpenID Connect protocol
+# Microsoft identity platform and OpenID Connect protocol
-OpenID Connect is an authentication protocol built on OAuth 2.0 that you can use to securely sign in a user to a web application. When you use the v2.0 endpoint's implementation of OpenID Connect, you can add sign-in and API access to your web-based apps. This article shows how to do this independent of language and describes how to send and receive HTTP messages without using any Microsoft open-source libraries.
+OpenID Connect is an authentication protocol built on OAuth 2.0 that you can use to securely sign in a user to a web application. When you use the Microsoft identity platform endpoint's implementation of OpenID Connect, you can add sign-in and API access to your web-based apps. This article shows how to do this independent of language and describes how to send and receive HTTP messages without using any Microsoft open-source libraries.
> [!NOTE]
-> The v2.0 endpoint does not support all Azure Active Directory (Azure AD) scenarios and features. To determine whether you should use the v2.0 endpoint, read about [v2.0 limitations](active-directory-v2-limitations.md).
+> The Microsoft identity platform endpoint does not support all Azure Active Directory (Azure AD) scenarios and features. To determine whether you should use the Microsoft identity platform endpoint, read about [Microsoft identity platform limitations](active-directory-v2-limitations.md).
-[OpenID Connect](https://openid.net/specs/openid-connect-core-1_0.html) extends the OAuth 2.0 *authorization* protocol to use as an *authentication* protocol, so that you can do single sign-on using OAuth. OpenID Connect introduces the concept of an *ID token*, which is a security token that allows the client to verify the identity of the user. The ID token also gets basic profile information about the user. Because OpenID Connect extends OAuth 2.0, apps can securely acquire *access tokens*, which can be used to access resources that are secured by an [authorization server](active-directory-v2-protocols.md#the-basics). The v2.0 endpoint also allows third-party apps that are registered with Azure AD to issue access tokens for secured resources such as Web APIs. For more information about how to set up an application to issue access tokens, see [How to register an app with the v2.0 endpoint](quickstart-v2-register-an-app.md). We recommend that you use OpenID Connect if you are building a [web application](v2-app-types.md#web-apps) that is hosted on a server and accessed via a browser.
+[OpenID Connect](https://openid.net/specs/openid-connect-core-1_0.html) extends the OAuth 2.0 *authorization* protocol to use as an *authentication* protocol, so that you can do single sign-on using OAuth. OpenID Connect introduces the concept of an *ID token*, which is a security token that allows the client to verify the identity of the user. The ID token also gets basic profile information about the user. Because OpenID Connect extends OAuth 2.0, apps can securely acquire *access tokens*, which can be used to access resources that are secured by an [authorization server](active-directory-v2-protocols.md#the-basics). The Microsoft identity platform endpoint also allows third-party apps that are registered with Azure AD to issue access tokens for secured resources such as Web APIs. For more information about how to set up an application to issue access tokens, see [How to register an app with the Microsoft identity platform endpoint](quickstart-v2-register-an-app.md). We recommend that you use OpenID Connect if you are building a [web application](v2-app-types.md#web-apps) that is hosted on a server and accessed via a browser.
## Protocol diagram: Sign-in
The most basic sign-in flow has the steps shown in the next diagram. Each step is described in detail in this article.
-![OpenID Connect protocol: Sign-in](./media/v2-protocols-oidc/convergence_scenarios_webapp.png)
+![OpenID Connect protocol: Sign-in](./media/v2-protocols-oidc/convergence-scenarios-webapp.svg)
## Fetch the OpenID Connect metadata document
-OpenID Connect describes a metadata document that contains most of the information required for an app to perform sign-in. This includes information such as the URLs to use and the location of the service's public signing keys. For the v2.0 endpoint, this is the OpenID Connect metadata document you should use:
+OpenID Connect describes a metadata document that contains most of the information required for an app to do sign-in. This includes information such as the URLs to use and the location of the service's public signing keys. For the Microsoft identity platform endpoint, this is the OpenID Connect metadata document you should use:
```
https://login.microsoftonline.com/{tenant}/v2.0/.well-known/openid-configuration
@@ -50,29 +50,31 @@ The `{tenant}` can take one of four values:
| Value | Description |
| --- | --- |
-| `common` |Users with both a personal Microsoft account and a work or school account from Azure Active Directory (Azure AD) can sign in to the application. |
+| `common` |Users with both a personal Microsoft account and a work or school account from Azure AD can sign in to the application. |
| `organizations` |Only users with work or school accounts from Azure AD can sign in to the application. |
| `consumers` |Only users with a personal Microsoft account can sign in to the application. |
-| `8eaef023-2b34-4da1-9baa-8bc8c9d6a490` or `contoso.onmicrosoft.com` |Only users with a work or school account from a specific Azure AD tenant can sign in to the application. Either the friendly domain name of the Azure AD tenant or the tenant's GUID identifier can be used. |
+| `8eaef023-2b34-4da1-9baa-8bc8c9d6a490` or `contoso.onmicrosoft.com` | Only users with a work or school account from a specific Azure AD tenant can sign in to the application. Either the friendly domain name of the Azure AD tenant or the tenant's GUID identifier can be used. You can also use the consumer tenant, `9188040d-6c67-4c5b-b112-36a304b66dad`, in place of the `consumers` tenant. |
The metadata is a simple JavaScript Object Notation (JSON) document. See the following snippet for an example. The snippet's contents are fully described in the [OpenID Connect specification](https://openid.net/specs/openid-connect-discovery-1_0.html#rfc.section.4.2).
```
{
- "authorization_endpoint": "https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/authorize",
- "token_endpoint": "https:\/\/login.microsoftonline.com\/common\/oauth2\/v2.0\/token",
+ "authorization_endpoint": "https:\/\/login.microsoftonline.com\/{tenant}\/oauth2\/v2.0\/authorize",
+ "token_endpoint": "https:\/\/login.microsoftonline.com\/{tenant}\/oauth2\/v2.0\/token",
"token_endpoint_auth_methods_supported": [
"client_secret_post",
"private_key_jwt"
],
- "jwks_uri": "https:\/\/login.microsoftonline.com\/common\/discovery\/v2.0\/keys",
+ "jwks_uri": "https:\/\/login.microsoftonline.com\/{tenant}\/discovery\/v2.0\/keys",
...
}
```
-Typically, you would use this metadata document to configure an OpenID Connect library or SDK; the library would use the metadata to do its work. However, if you're not using a pre-build OpenID Connect library, you can follow the steps in the remainder of this article to perform sign-in in a web app by using the v2.0 endpoint.
+If your app has custom signing keys as a result of using the [claims-mapping](active-directory-claims-mapping.md) feature, you must append an `appid` query parameter containing the app ID in order to get a `jwks_uri` pointing to your app's signing key information. For example: `https://login.microsoftonline.com/{tenant}/.well-known/v2.0/openid-configuration?appid=6731de76-14a6-49ae-97bc-6eba6914391e` contains a `jwks_uri` of `https://login.microsoftonline.com/{tenant}/discovery/v2.0/keys?appid=6731de76-14a6-49ae-97bc-6eba6914391e`.
+
+Typically, you would use this metadata document to configure an OpenID Connect library or SDK; the library would use the metadata to do its work. However, if you're not using a pre-built OpenID Connect library, you can follow the steps in the remainder of this article to do sign-in in a web app by using the Microsoft identity platform endpoint.
## Send the sign-in request
@@ -83,7 +85,7 @@ When your web app needs to authenticate the user, it can direct the user to the
* The request must include the `nonce` parameter.
> [!IMPORTANT]
-> In order to successfully request an ID token, the app registration in the [registration portal](https://apps.dev.microsoft.com) must have the **[Implicit grant](v2-oauth2-implicit-grant-flow.md)** enabled for the Web client. If it is not enabled, an `unsupported_response` error will be returned: "The provided value for the input parameter 'response_type' is not allowed for this client. Expected value is 'code'"
+> In order to successfully request an ID token from the /authorization endpoint, the app registration in the [registration portal](https://portal.azure.com) must have the implicit grant of id_tokens enabled in the Authentication tab (which sets the `oauth2AllowIdTokenImplicitFlow` flag in the [application manifest](reference-app-manifest.md) to `true`). If it isn't enabled, an `unsupported_response` error will be returned: "The provided value for the input parameter 'response_type' isn't allowed for this client. Expected value is 'code'"
For example:
@@ -106,21 +108,21 @@ client_id=6731de76-14a6-49ae-97bc-6eba6914391e
| Parameter | Condition | Description |
| --- | --- | --- |
-| tenant |Required |You can use the `{tenant}` value in the path of the request to control who can sign in to the application. The allowed values are `common`, `organizations`, `consumers`, and tenant identifiers. For more information, see [protocol basics](active-directory-v2-protocols.md#endpoints). |
-| client_id |Required |The Application ID that the [Application Registration Portal](https://apps.dev.microsoft.com/?referrer=https://azure.microsoft.com/documentation/articles&deeplink=/appList) assigned to your app. |
-| response_type |Required |Must include `id_token` for OpenID Connect sign-in. It might also include other `response_type` values, such as `code`. |
-| redirect_uri |Recommended |The redirect URI of your app, where authentication responses can be sent and received by your app. It must exactly match one of the redirect URIs you registered in the portal, except that it must be URL encoded. |
-| scope |Required |A space-separated list of scopes. For OpenID Connect, it must include the scope `openid`, which translates to the "Sign you in" permission in the consent UI. You might also include other scopes in this request for requesting consent. |
-| nonce |Required |A value included in the request, generated by the app, that will be included in the resulting id_token value as a claim. The app can verify this value to mitigate token replay attacks. The value typically is a randomized, unique string that can be used to identify the origin of the request. |
-| response_mode |Recommended |Specifies the method that should be used to send the resulting authorization code back to your app. Can be `form_post` or `fragment`. For web applications, we recommend using `response_mode=form_post`, to ensure the most secure transfer of tokens to your application. |
-| state |Recommended |A value included in the request that also will be returned in the token response. It can be a string of any content you want. A randomly generated unique value typically is used to [prevent cross-site request forgery attacks](https://tools.ietf.org/html/rfc6749#section-10.12). The state also is used to encode information about the user's state in the app before the authentication request occurred, such as the page or view the user was on. |
-| prompt |Optional |Indicates the type of user interaction that is required. The only valid values at this time are `login`, `none`, and `consent`. The `prompt=login` claim forces the user to enter their credentials on that request, which negates single sign-on. The `prompt=none` claim is the opposite. This claim ensures that the user is not presented with any interactive prompt whatsoever. If the request cannot be completed silently via single sign-on, the v2.0 endpoint returns an error. The `prompt=consent` claim triggers the OAuth consent dialog after the user signs in. The dialog asks the user to grant permissions to the app. |
-| login_hint |Optional |You can use this parameter to pre-fill the username and email address field of the sign-in page for the user, if you know the username ahead of time. Often, apps use this parameter during reauthentication, after already extracting the username from an earlier sign-in by using the `preferred_username` claim. |
-| domain_hint |Optional |This value can be `consumers` or `organizations`. If included, it skips the email-based discovery process that the user goes through on the v2.0 sign-in page, for a slightly more streamlined user experience. Often, apps use this parameter during reauthentication by extracting the `tid` claim from the ID token. If the `tid` claim value is `9188040d-6c67-4c5b-b112-36a304b66dad` (the Microsoft Account consumer tenant), use `domain_hint=consumers`. Otherwise, use `domain_hint=organizations`. |
-
-At this point, the user is prompted to enter their credentials and complete the authentication. The v2.0 endpoint verifies that the user has consented to the permissions indicated in the `scope` query parameter. If the user has not consented to any of those permissions, the v2.0 endpoint prompts the user to consent to the required permissions. You can read more about [permissions, consent, and multitenant apps](v2-permissions-and-consent.md).
-
-After the user authenticates and grants consent, the v2.0 endpoint returns a response to your app at the indicated redirect URI by using the method specified in the `response_mode` parameter.
+| `tenant` | Required | You can use the `{tenant}` value in the path of the request to control who can sign in to the application. The allowed values are `common`, `organizations`, `consumers`, and tenant identifiers. For more information, see [protocol basics](active-directory-v2-protocols.md#endpoints). |
+| `client_id` | Required | The **Application (client) ID** that the [Azure portal – App registrations](https://go.microsoft.com/fwlink/?linkid=2083908) experience assigned to your app. |
+| `response_type` | Required | Must include `id_token` for OpenID Connect sign-in. It might also include other `response_type` values, such as `code`. |
+| `redirect_uri` | Recommended | The redirect URI of your app, where authentication responses can be sent and received by your app. It must exactly match one of the redirect URIs you registered in the portal, except that it must be URL encoded. If not present, the endpoint will pick one registered redirect_uri at random to send the user back to. |
+| `scope` | Required | A space-separated list of scopes. For OpenID Connect, it must include the scope `openid`, which translates to the "Sign you in" permission in the consent UI. You might also include other scopes in this request for requesting consent. |
+| `nonce` | Required | A value included in the request, generated by the app, that will be included in the resulting id_token value as a claim. The app can verify this value to mitigate token replay attacks. The value typically is a randomized, unique string that can be used to identify the origin of the request. |
+| `response_mode` | Recommended | Specifies the method that should be used to send the resulting authorization code back to your app. Can be `form_post` or `fragment`. For web applications, we recommend using `response_mode=form_post`, to ensure the most secure transfer of tokens to your application. |
+| `state` | Recommended | A value included in the request that also will be returned in the token response. It can be a string of any content you want. A randomly generated unique value typically is used to [prevent cross-site request forgery attacks](https://tools.ietf.org/html/rfc6749#section-10.12). The state also is used to encode information about the user's state in the app before the authentication request occurred, such as the page or view the user was on. |
+| `prompt` | Optional | Indicates the type of user interaction that is required. The only valid values at this time are `login`, `none`, and `consent`. The `prompt=login` claim forces the user to enter their credentials on that request, which negates single sign-on. The `prompt=none` claim is the opposite. This claim ensures that the user isn't presented with any interactive prompt at. If the request can't be completed silently via single sign-on, the Microsoft identity platform endpoint returns an error. The `prompt=consent` claim triggers the OAuth consent dialog after the user signs in. The dialog asks the user to grant permissions to the app. |
+| `login_hint` | Optional | You can use this parameter to pre-fill the username and email address field of the sign-in page for the user, if you know the username ahead of time. Often, apps use this parameter during reauthentication, after already extracting the username from an earlier sign-in by using the `preferred_username` claim. |
+| `domain_hint` | Optional | The realm of the user in a federated directory. This skips the email-based discovery process that the user goes through on the sign-in page, for a slightly more streamlined user experience. For tenants that are federated through an on-premises directory like AD FS, this often results in a seamless sign-in because of the existing login session. |
+
+At this point, the user is prompted to enter their credentials and complete the authentication. The Microsoft identity platform endpoint verifies that the user has consented to the permissions indicated in the `scope` query parameter. If the user hasn't consented to any of those permissions, the Microsoft identity platform endpoint prompts the user to consent to the required permissions. You can read more about [permissions, consent, and multi-tenant apps](v2-permissions-and-consent.md).
+
+After the user authenticates and grants consent, the Microsoft identity platform endpoint returns a response to your app at the indicated redirect URI by using the method specified in the `response_mode` parameter.
### Successful response
@@ -136,8 +138,8 @@ id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNB...&state=12345
| Parameter | Description |
| --- | --- |
-| id_token |The ID token that the app requested. You can use the `id_token` parameter to verify the user's identity and begin a session with the user. For more information about ID tokens and their contents, see the [`id_tokens` reference](id-tokens.md). |
-| state |If a `state` parameter is included in the request, the same value should appear in the response. The app should verify that the state values in the request and response are identical. |
+| `id_token` | The ID token that the app requested. You can use the `id_token` parameter to verify the user's identity and begin a session with the user. For more information about ID tokens and their contents, see the [`id_tokens` reference](id-tokens.md). |
+| `state` | If a `state` parameter is included in the request, the same value should appear in the response. The app should verify that the state values in the request and response are identical. |
### Error response
@@ -153,8 +155,8 @@ error=access_denied&error_description=the+user+canceled+the+authentication
| Parameter | Description |
| --- | --- |
-| error |An error code string that you can use to classify types of errors that occur, and to react to errors. |
-| error_description |A specific error message that can help you identify the root cause of an authentication error. |
+| `error` | An error code string that you can use to classify types of errors that occur, and to react to errors. |
+| `error_description` | A specific error message that can help you identify the root cause of an authentication error. |
### Error codes for authorization endpoint errors
@@ -162,20 +164,19 @@ The following table describes error codes that can be returned in the `error` pa
| Error code | Description | Client action |
| --- | --- | --- |
-| invalid_request |Protocol error, such as a missing, required parameter. |Fix and resubmit the request. This is a development error that typically is caught during initial testing. |
-| unauthorized_client |The client application cannot request an authorization code. |This usually occurs when the client application is not registered in Azure AD or is not added to the user's Azure AD tenant. The application can prompt the user with instructions to install the application and add it to Azure AD. |
-| access_denied |The resource owner denied consent. |The client application can notify the user that it cannot proceed unless the user consents. |
-| unsupported_response_type |The authorization server does not support the response type in the request. |Fix and resubmit the request. This is a development error that typically is caught during initial testing. |
-| server_error |The server encountered an unexpected error. |Retry the request. These errors can result from temporary conditions. The client application might explain to the user that its response is delayed due to a temporary error. |
-| temporarily_unavailable |The server is temporarily too busy to handle the request. |Retry the request. The client application might explain to the user that its response is delayed due to a temporary condition. |
-| invalid_resource |The target resource is invalid because either it does not exist, Azure AD cannot find it, or it is not correctly configured. |This indicates that the resource, if it exists, has not been configured in the tenant. The application can prompt the user with instructions for installing the application and adding it to Azure AD. |
+| `invalid_request` | Protocol error, such as a missing, required parameter. |Fix and resubmit the request. This is a development error that typically is caught during initial testing. |
+| `unauthorized_client` | The client application can't request an authorization code. |This usually occurs when the client application isn't registered in Azure AD or isn't added to the user's Azure AD tenant. The application can prompt the user with instructions to install the application and add it to Azure AD. |
+| `access_denied` | The resource owner denied consent. |The client application can notify the user that it can't proceed unless the user consents. |
+| `unsupported_response_type` |The authorization server does not support the response type in the request. |Fix and resubmit the request. This is a development error that typically is caught during initial testing. |
+| `server_error` | The server encountered an unexpected error. |Retry the request. These errors can result from temporary conditions. The client application might explain to the user that its response is delayed because of a temporary error. |
+| `temporarily_unavailable` | The server is temporarily too busy to handle the request. |Retry the request. The client application might explain to the user that its response is delayed because of a temporary condition. |
+| `invalid_resource` | The target resource is invalid because either it does not exist, Azure AD can't find it, or it isn't correctly configured. |This indicates that the resource, if it exists, hasn't been configured in the tenant. The application can prompt the user with instructions for installing the application and adding it to Azure AD. |
## Validate the ID token
-Just receiving an id_token is not sufficient to authenticate the user; you must validate the id_token's signature and verify the claims in the token per your app's requirements. The v2.0 endpoint uses [JSON Web Tokens (JWTs)](https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html) and public key cryptography to sign tokens and verify that they are valid.
+Just receiving an id_token isn't sufficient to authenticate the user; you must validate the id_token's signature and verify the claims in the token per your app's requirements. The Microsoft identity platform endpoint uses [JSON Web Tokens (JWTs)](https://self-issued.info/docs/draft-ietf-oauth-json-web-token.html) and public key cryptography to sign tokens and verify that they're valid.
-You can choose to validate the `id_token` in client code, but a common practice is to send the `id_token` to a backend server and perform the validation there. Once you've validated the signature of the id_token, there are a few claims you will be required to verify. See the [`id_token` reference](id-tokens.md) for more information, including [Validating Tokens](id-tokens.md#validating-an-id_token) and [Important Information About Signing Key Rollover](active-directory-signing-key-rollover.md). We recommend making use of a library for parsing and validating tokens - there is at least one available for most languages and platforms.
-
+You can choose to validate the `id_token` in client code, but a common practice is to send the `id_token` to a backend server and do the validation there. Once you've validated the signature of the id_token, there are a few claims you'll be required to verify. See the [`id_token` reference](id-tokens.md) for more information, including [Validating Tokens](id-tokens.md#validating-an-id_token) and [Important Information About Signing Key Rollover](active-directory-signing-key-rollover.md). We recommend making use of a library for parsing and validating tokens - there is at least one available for most languages and platforms.
You may also wish to validate additional claims depending on your scenario. Some common validations include:
@@ -183,11 +184,11 @@ You may also wish to validate additional claims depending on your scenario. Some
* Ensuring the user has proper authorization/privileges
* Ensuring a certain strength of authentication has occurred, such as multi-factor authentication.
-Once you have completely validated the id_token, you can begin a session with the user and use the claims in the id_token to obtain information about the user in your app. This information can be used for display, records, personalization, etc.
+Once you have validated the id_token, you can begin a session with the user and use the claims in the id_token to obtain information about the user in your app. This information can be used for display, records, personalization, etc.
## Send a sign-out request
-When you want to sign out the user from your app, it isn't sufficient to clear your app's cookies or otherwise end the user's session. You must also redirect the user to the v2.0 endpoint to sign out. If you don't do this, the user reauthenticates to your app without entering their credentials again, because they will have a valid single sign-in session with the v2.0 endpoint.
+When you want to sign out the user from your app, it isn't sufficient to clear your app's cookies or otherwise end the user's session. You must also redirect the user to the Microsoft identity platform endpoint to sign out. If you don't do this, the user reauthenticates to your app without entering their credentials again, because they will have a valid single sign-in session with the Microsoft identity platform endpoint.
You can redirect the user to the `end_session_endpoint` listed in the OpenID Connect metadata document:
@@ -198,11 +199,11 @@ post_logout_redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
| Parameter | Condition | Description |
| ----------------------- | ------------------------------- | ------------ |
-| post_logout_redirect_uri | Recommended | The URL that the user is redirected to after successfully signing out. If the parameter is not included, the user is shown a generic message that's generated by the v2.0 endpoint. This URL must match one of the redirect URIs registered for your application in the app registration portal. |
+| `post_logout_redirect_uri` | Recommended | The URL that the user is redirected to after successfully signing out. If the parameter isn't included, the user is shown a generic message that's generated by the Microsoft identity platform endpoint. This URL must match one of the redirect URIs registered for your application in the app registration portal. |
## Single sign-out
-When you redirect the user to the `end_session_endpoint`, the v2.0 endpoint clears the user's session from the browser. However, the user may still be signed in to other applications that use Microsoft accounts for authentication. To enable those applications to sign the user out simultaneously, the v2.0 endpoint sends an HTTP GET request to the registered `LogoutUrl` of all the applications that the user is currently signed in to. Applications must respond to this request by clearing any session that identifies the user and returning a `200` response. If you wish to support single sign-out in your application, you must implement such a `LogoutUrl` in your application's code. You can set the `LogoutUrl` from the app registration portal.
+When you redirect the user to the `end_session_endpoint`, the Microsoft identity platform endpoint clears the user's session from the browser. However, the user may still be signed in to other applications that use Microsoft accounts for authentication. To enable those applications to sign the user out simultaneously, the Microsoft identity platform endpoint sends an HTTP GET request to the registered `LogoutUrl` of all the applications that the user is currently signed in to. Applications must respond to this request by clearing any session that identifies the user and returning a `200` response. If you wish to support single sign-out in your application, you must implement such a `LogoutUrl` in your application's code. You can set the `LogoutUrl` from the app registration portal.
## Protocol diagram: Access token acquisition
@@ -210,7 +211,7 @@ Many web apps need to not only sign the user in, but also to access a web servic
The full OpenID Connect sign-in and token acquisition flow looks similar to the next diagram. We describe each step in detail in the next sections of the article.
-![OpenID Connect protocol: Token acquisition](./media/v2-protocols-oidc/convergence_scenarios_webapp_webapi.png)
+![OpenID Connect protocol: Token acquisition](./media/v2-protocols-oidc/convergence-scenarios-webapp-webapi.svg)
## Get access tokens
To acquire access tokens, modify the sign-in request:
@@ -233,10 +234,8 @@ https%3A%2F%2Fgraph.microsoft.com%2Fuser.read
> [!TIP]
> Click the following link to execute this request. After you sign in, your browser is redirected to `https://localhost/myapp/`, with an ID token and a code in the address bar. Note that this request uses `response_mode=fragment` for demonstration purposes only. We recommend that you use `response_mode=form_post`.
> https://login.microsoftonline.com/common/oauth2/v2.0/authorize...
->
->
-By including permission scopes in the request and by using `response_type=id_token code`, the v2.0 endpoint ensures that the user has consented to the permissions indicated in the `scope` query parameter. It returns an authorization code to your app to exchange for an access token.
+By including permission scopes in the request and by using `response_type=id_token code`, the Microsoft identity platform endpoint ensures that the user has consented to the permissions indicated in the `scope` query parameter. It returns an authorization code to your app to exchange for an access token.
### Successful response
@@ -252,9 +251,9 @@ id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNB...&code=AwABAA
| Parameter | Description |
| --- | --- |
-| id_token |The ID token that the app requested. You can use the ID token to verify the user's identity and begin a session with the user. You'll find more details about ID tokens and their contents in the [`id_tokens` reference](id-tokens.md). |
-| code |The authorization code that the app requested. The app can use the authorization code to request an access token for the target resource. An authorization code is very short-lived. Typically, an authorization code expires in about 10 minutes. |
-| state |If a state parameter is included in the request, the same value should appear in the response. The app should verify that the state values in the request and response are identical. |
+| `id_token` | The ID token that the app requested. You can use the ID token to verify the user's identity and begin a session with the user. You'll find more details about ID tokens and their contents in the [`id_tokens` reference](id-tokens.md). |
+| `code` | The authorization code that the app requested. The app can use the authorization code to request an access token for the target resource. An authorization code is short-lived. Typically, an authorization code expires in about 10 minutes. |
+| `state` | If a state parameter is included in the request, the same value should appear in the response. The app should verify that the state values in the request and response are identical. |
### Error response
@@ -270,8 +269,8 @@ error=access_denied&error_description=the+user+canceled+the+authentication
| Parameter | Description |
| --- | --- |
-| error |An error code string that you can use to classify types of errors that occur, and to react to errors. |
-| error_description |A specific error message that can help you identify the root cause of an authentication error. |
+| `error` | An error code string that you can use to classify types of errors that occur, and to react to errors. |
+| `error_description` | A specific error message that can help you identify the root cause of an authentication error. |
For a description of possible error codes and recommended client responses, see [Error codes for authorization endpoint errors](#error-codes-for-authorization-endpoint-errors).
diff --git a/articles/active-directory/devices/hybrid-azuread-join-plan.md b/articles/active-directory/devices/hybrid-azuread-join-plan.md
index 14cdd297a6a00..5ee8e9bfd82cf 100644
--- a/articles/active-directory/devices/hybrid-azuread-join-plan.md
+++ b/articles/active-directory/devices/hybrid-azuread-join-plan.md
@@ -14,7 +14,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 02/03/2019
+ms.date: 04/10/2019
ms.author: joflore
ms.reviewer: sandeo
@@ -32,60 +32,46 @@ By bringing your devices to Azure AD, you maximize your users' productivity thro
If you have an on-premises Active Directory environment and you want to join your domain-joined devices to Azure AD, you can accomplish this by configuring hybrid Azure AD joined devices. This article provides you with the related steps to implement a hybrid Azure AD join in your environment.
-
## Prerequisites
This article assumes that you are familiar with the [Introduction to device management in Azure Active Directory](../device-management-introduction.md).
->[!NOTE]
-> The minimum required domain functional and forest functional levels for Windows 10 hybrid Azure AD join is Windows Server 2008 R2. On lower versions, the user may not get a Primary Refresh Token during Windows logon due to LSA issues
+> [!NOTE]
+> The minimum required domain functional and forest functional levels for Windows 10 hybrid Azure AD join is Windows Server 2008 R2. On lower versions, the user may not get a Primary Refresh Token during Windows logon due to LSA issues.
## Plan your implementation
To plan your hybrid Azure AD implementation, you should familiarize yourself with:
| | |
-|---|---|
-|![Check][1]|Review supported devices|
-|![Check][1]|Review things you should know|
-|![Check][1]|Review how to control the hybrid Azure AD join of your devices|
-|![Check][1]|Select your scenario|
-
+| --- | --- |
+| ![Check][1] | Review supported devices |
+| ![Check][1] | Review things you should know |
+| ![Check][1] | Review how to control the hybrid Azure AD join of your devices |
+| ![Check][1] | Select your scenario |
-
-
-## Review supported devices
+## Review supported devices
Hybrid Azure AD join supports a broad range of Windows devices. Because the configuration for devices running older versions of Windows requires additional or different steps, the supported devices are grouped into two categories:
-**Windows current devices**
+### Windows current devices
- Windows 10
-
- Windows Server 2016
-
+- Windows Server 2019
For devices running the Windows desktop operating system, the supported version is the Windows 10 Anniversary Update (version 1607) or later. As a best practice, upgrade to the latest version of Windows 10.
-
-
- **Windows down-level devices**
+### Windows down-level devices
- Windows 8.1
-
- Windows 7
-
- Windows Server 2012 R2
-
-- Windows Server 2012
-
-- Windows Server 2008 R2
-
+- Windows Server 2012
+- Windows Server 2008 R2
As a first planning step, you should review your environment and determine whether you need to support Windows down-level devices.
-
-
## Review things you should know
You can't use a hybrid Azure AD join if your environment consists of a single forest that synchronized identity data to more than one Azure AD tenant.
@@ -97,23 +83,20 @@ If you are relying on a Virtual Machine (VM) snapshot to create additional VMs,
Hybrid Azure AD join of Windows down-level devices:
- **Is** supported in non-federated environments through [Azure Active Directory Seamless Single Sign-On](https://docs.microsoft.com/azure/active-directory/connect/active-directory-aadconnect-sso-quick-start).
-
- **Is not** supported when using Azure AD Pass-through Authentication without Seamless Single Sign On.
-
- **Is not** supported when using credential roaming or user profile roaming or when using virtual desktop infrastructure (VDI).
-
The registration of Windows Server running the Domain Controller (DC) role is not supported.
If your organization requires access to the Internet via an authenticated outbound proxy, you must make sure that your Windows 10 computers can successfully authenticate to the outbound proxy. Because Windows 10 computers run device registration using machine context, it is necessary to configure outbound proxy authentication using machine context.
-
Hybrid Azure AD join is a process to automatically register your on-premises domain-joined devices with Azure AD. There are cases where you don't want all your devices to register automatically. If this is true for you, see [How to control the hybrid Azure AD join of your devices](hybrid-azuread-join-control.md).
-If your Windows 10 domain joined devices are already [Azure AD registered](https://docs.microsoft.com/azure/active-directory/devices/overview#azure-ad-registered-devices) to your tenant, we highly recommend removing that state before enabling Hybrid Azure AD join. From Windows 10 1809 release, the following changes have been made to avoid this dual state:
- - Any existing Azure AD registered state would be automatically removed after the device is Hybrid Azure AD joined.
- - You can prevent your domain joined device from being Azure AD registered by adding this registry key - HKLM\SOFTWARE\Policies\Microsoft\Windows\WorkplaceJoin, "BlockAADWorkplaceJoin"=dword:00000001 .
- - This change is now available for Windows 10 1803 release with KB4489894.
+If your Windows 10 domain joined devices are already [Azure AD registered](https://docs.microsoft.com/azure/active-directory/devices/overview#azure-ad-registered-devices) to your tenant, we highly recommend removing that state before enabling Hybrid Azure AD join. From Windows 10 1809 release, the following changes have been made to avoid this dual state:
+
+- Any existing Azure AD registered state would be automatically removed after the device is Hybrid Azure AD joined.
+- You can prevent your domain joined device from being Azure AD registered by adding this registry key - HKLM\SOFTWARE\Policies\Microsoft\Windows\WorkplaceJoin, "BlockAADWorkplaceJoin"=dword:00000001 .
+- This change is now available for Windows 10 1803 release with KB4489894.
FIPS-compliant TPMs aren't supported for Hybrid Azure AD join. If your devices have FIPS-compliant TPMs, you must disable them before proceeding with Hybrid Azure AD join. Microsoft does not provide any tools for disabling FIPS mode for TPMs as it is dependent on the TPM manufacturer. Please contact your hardware OEM for support.
@@ -130,43 +113,33 @@ You can configure hybrid Azure AD join for the following scenarios:
- Managed domains
- Federated domains
-
-
If your environment has managed domains, hybrid Azure AD join supports:
- Pass Through Authentication (PTA)
-
- Password Hash Sync (PHS)
Beginning with version 1.1.819.0, Azure AD Connect provides you with a wizard to configure hybrid Azure AD join. The wizard enables you to significantly simplify the configuration process. For more information, see:
- [Configure hybrid Azure Active Directory join for federated domains](hybrid-azuread-join-federated-domains.md)
-
-
- [Configure hybrid Azure Active Directory join for managed domains](hybrid-azuread-join-managed-domains.md)
-
If installing the required version of Azure AD Connect is not an option for you, see [how to manually configure device registration](https://docs.microsoft.com/azure/active-directory/devices/hybrid-azuread-join-manual).
-
## On-premises AD UPN support in Hybrid Azure AD join
Sometimes, your on-premises AD UPNs could be different from your Azure AD UPNs. In such cases, Windows 10 Hybrid Azure AD join provides limited support for on-premises AD UPNs based on the [authentication method](https://docs.microsoft.com/azure/security/azure-ad-choose-authn), domain type and Windows 10 version. There are two types of on-premises AD UPNs that can exist in your environment:
- - Routable UPN: A routable UPN has a valid verified domain, that is registered with a domain registrar. For example, if contoso.com is the primary domain in Azure AD, contoso.org is the primary domain in on-premises AD owned by Contoso and [verified in Azure AD](https://docs.microsoft.com/azure/active-directory/fundamentals/add-custom-domain)
-
- - Non-routable UPN: A non-routable UPN does not have a verified domain. It is applicable only within your organization's private network. For example, if contoso.com is the primary domain in Azure AD, contoso.local is the primary domain in on-premises AD but is not a verifiable domain in the internet and only used within Contoso's network.
-
-The table below provides details on support for these on-premises AD UPNs in Windows 10 Hybrid Azure AD join
-
-|Type of on-premises AD UPN|Domain type|Windows 10 version|Description|
-|-----|-----|-----|-----|
-|Routable|Federated |From 1703 release|Generally available|
-|Routable|Managed|From 1709 release|Currently in private preview. Azure AD SSPR is not supported |
-|Non-routable|Federated|From 1803 release|Generally available|
-|Non-routable|Managed|Not supported||
+- Routable UPN: A routable UPN has a valid verified domain, that is registered with a domain registrar. For example, if contoso.com is the primary domain in Azure AD, contoso.org is the primary domain in on-premises AD owned by Contoso and [verified in Azure AD](https://docs.microsoft.com/azure/active-directory/fundamentals/add-custom-domain)
+- Non-routable UPN: A non-routable UPN does not have a verified domain. It is applicable only within your organization's private network. For example, if contoso.com is the primary domain in Azure AD, contoso.local is the primary domain in on-premises AD but is not a verifiable domain in the internet and only used within Contoso's network.
+The table below provides details on support for these on-premises AD UPNs in Windows 10 Hybrid Azure AD join
+| Type of on-premises AD UPN | Domain type | Windows 10 version | Description |
+| ----- | ----- | ----- | ----- |
+| Routable | Federated | From 1703 release | Generally available |
+| Routable | Managed | From 1709 release | Currently in private preview. Azure AD SSPR is not supported |
+| Non-routable | Federated | From 1803 release | Generally available |
+| Non-routable | Managed | Not supported | |
## Next steps
@@ -174,8 +147,5 @@ The table below provides details on support for these on-premises AD UPNs in Win
> [Configure hybrid Azure Active Directory join for federated domains](hybrid-azuread-join-federated-domains.md)
> [Configure hybrid Azure Active Directory join for managed domains](hybrid-azuread-join-managed-domains.md)
-
-
-
[1]: ./media/hybrid-azuread-join-plan/12.png
diff --git a/articles/active-directory/fundamentals/active-directory-access-create-new-tenant.md b/articles/active-directory/fundamentals/active-directory-access-create-new-tenant.md
index a37cd3efea870..3559e7c084a7e 100644
--- a/articles/active-directory/fundamentals/active-directory-access-create-new-tenant.md
+++ b/articles/active-directory/fundamentals/active-directory-access-create-new-tenant.md
@@ -56,7 +56,7 @@ If you’re not going to continue to use this application, you can delete the te
The tenant and its associated information is deleted.
- ![Create directory page, with sample information](media/active-directory-access-create-new-tenant/azure-ad-delete-new-tenant.png)
+ ![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 additional domain names, see [How to add a custom domain name to Azure Active Directory](add-custom-domain.md)
diff --git a/articles/active-directory/fundamentals/active-directory-how-subscriptions-associated-directory.md b/articles/active-directory/fundamentals/active-directory-how-subscriptions-associated-directory.md
index fda3e06444f91..9f39d4e5812a2 100644
--- a/articles/active-directory/fundamentals/active-directory-how-subscriptions-associated-directory.md
+++ b/articles/active-directory/fundamentals/active-directory-how-subscriptions-associated-directory.md
@@ -26,6 +26,8 @@ All of your users have a single *home* directory for authentication. However, yo
> [!Important]
> When you associate a subscription to a different directory, users that have roles assigned using [role-based access control (RBAC)](../../role-based-access-control/role-assignments-portal.md) will lose their access. Classic subscription administrators (Service Administrator and Co-Administrators) will also lose access.
+>
+> Additionally, 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 principals rights. For more information about AKS, see [Azure Kubernetes Service (AKS)](https://docs.microsoft.com/en-us/azure/aks/).
## Before you begin
@@ -63,15 +65,16 @@ Before you can associate or add your subscription, you must perform the followin
![Directory switcher page, with sample information](media/active-directory-how-subscriptions-associated-directory/directory-switcher.png)
-Changing the subscription directory is a service-level operation, so it doesn't affect subscription billing ownership. The Account Admin can still change the Service Admin from the [Account Center](https://account.azure.com/subscriptions). 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](../../billing/billing-subscription-transfer.md).
+Changing the subscription directory is a service-level operation, so it doesn't affect subscription billing ownership. The Account Admin can still change the Service Admin from the [Account Center](https://account.azure.com/subscriptions). 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](../../billing/billing-subscription-transfer.md).
## Post association steps
-
After you associate a subscription to a different directory, there might be additional steps that you must perform to resume operations.
1. 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/key-vault-subscription-move-fix.md).
-1. If you have registered an Azure Stack using this subscription, you must re-register. For more information, see [Register Azure Stack with Azure](../../azure-stack/azure-stack-registration.md).
+2. If you have registered an Azure Stack using this subscription, you must re-register. For more information, see [Register Azure Stack with Azure](../../azure-stack/azure-stack-registration.md).
+
+
## Next steps
diff --git a/articles/active-directory/fundamentals/active-directory-users-profile-azure-portal.md b/articles/active-directory/fundamentals/active-directory-users-profile-azure-portal.md
index fedc558163736..0915c3ad2ed6b 100644
--- a/articles/active-directory/fundamentals/active-directory-users-profile-azure-portal.md
+++ b/articles/active-directory/fundamentals/active-directory-users-profile-azure-portal.md
@@ -9,7 +9,7 @@ ms.service: active-directory
ms.workload: identity
ms.subservice: fundamentals
ms.topic: conceptual
-ms.date: 09/05/2018
+ms.date: 04/11/2019
ms.author: lizross
ms.reviewer: jeffsta
ms.collection: M365-identity-device-management
@@ -22,7 +22,7 @@ Add user profile information, including a profile picture, job-specific informat
As you'll see, there's more information available in a user's profile than what you're able to add during the user's creation. All this additional information is optional and can be added as needed by your organization.
## To add or change profile information
-1. Sign in to the [Azure portal](https://portal.azure.com/) as a Global administrator or user administrator for the directory.
+1. Sign in to the [Azure portal](https://portal.azure.com/) as a User administrator for the organization.
2. Select **Azure Active Directory**, select **Users**, and then select a user. For example, _Alain Charon_.
@@ -36,7 +36,7 @@ As you'll see, there's more information available in a user's profile than what
- **Profile picture.** Select a thumbnail image for the user's account. This picture appears in Azure Active Directory and on the user's personal pages, such as the myapps.microsoft.com page.
- - **Identity.** Add any account-related information, such as a married last name or a changed user name.
+ - **Identity.** Add or update an additional identity value for the user, such as a married last name. You can set this name independently from the values of First name and Last name. For example, you could use it to include initials, a company name, or to change the sequence of names shown. In another example, for two users whose names are ‘Chris Green’ you could use the Identity string to set their names to 'Chris B. Green' 'Chris R. Green (Contoso).'
- **Job info.** Add any job-related information, such as the user's job title, department, or manager.
diff --git a/articles/active-directory/fundamentals/active-directory-users-reset-password-azure-portal.md b/articles/active-directory/fundamentals/active-directory-users-reset-password-azure-portal.md
index b6ac9830b3251..d3d04028c1c6c 100644
--- a/articles/active-directory/fundamentals/active-directory-users-reset-password-azure-portal.md
+++ b/articles/active-directory/fundamentals/active-directory-users-reset-password-azure-portal.md
@@ -19,6 +19,7 @@ ms.custom: "it-pro, seodec18"
ms.collection: M365-identity-device-management
---
# Reset a user's password using Azure Active Directory
+
As an administrator, you 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]
@@ -29,7 +30,7 @@ As an administrator, you can reset a user's password if the password is forgotte
## To reset a password
-1. Sign in to the [Azure portal](https://portal.azure.com/) as a global administrator, user administrator, or password administrator. For more information about the available roles, see [Assigning administrator roles in Azure Active Directory](../users-groups-roles/directory-assign-admin-roles.md#available-roles)
+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 [Assigning administrator roles in Azure Active Directory](../users-groups-roles/directory-assign-admin-roles.md#available-roles)
2. Select **Azure Active Directory**, select **Users**, search for and select the user that needs the reset, and then select **Reset Password**.
@@ -47,6 +48,7 @@ As an administrator, you can reset a user's password if the password is forgotte
>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.
## 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)
diff --git a/articles/active-directory/fundamentals/add-users-azure-active-directory.md b/articles/active-directory/fundamentals/add-users-azure-active-directory.md
index a033992cf2686..ab8c3d543f7a5 100644
--- a/articles/active-directory/fundamentals/add-users-azure-active-directory.md
+++ b/articles/active-directory/fundamentals/add-users-azure-active-directory.md
@@ -43,7 +43,7 @@ You can create a new user using the Azure Active Directory portal.
- **Groups.** Optionally, you can add the user to one or more existing groups. You can also add the user to groups at a later time. For more information about adding users to groups, see [How to create a basic group and add members](active-directory-groups-create-azure-portal.md).
- - **Directory role.** Optionally, you can add the user to a an Azure AD administrator role. You can assign the user to be a Global administrator or one or more of the limited administrator roles in Azure AD. For more information about assigning roles, see [How to assign roles to users](active-directory-users-assign-role-azure-portal.md).
+ - **Directory role.** Optionally, you can add the user to an Azure AD administrator role. You can assign the user to be a Global administrator or one or more of the limited administrator roles in Azure AD. For more information about assigning roles, see [How to assign roles to users](active-directory-users-assign-role-azure-portal.md).
4. Copy the auto-generated password provided in the **Password** box. You'll need to give this password to the user for the initial sign-in process.
diff --git a/articles/active-directory/fundamentals/whats-new-archive.md b/articles/active-directory/fundamentals/whats-new-archive.md
index 009d8feebaffd..6af5c064a0d19 100644
--- a/articles/active-directory/fundamentals/whats-new-archive.md
+++ b/articles/active-directory/fundamentals/whats-new-archive.md
@@ -462,7 +462,7 @@ For more information about Azure AD Password Protection, see [Eliminate bad pass
During the creation of your Terms of Use (ToU), a new conditional access policy template is also created for "all guests" and "all apps". This new policy template applies the newly created ToU, streamlining the creation and enforcement process for guests.
-For more information, see [Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/active-directory-tou).
+For more information, see [Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use).
---
@@ -474,7 +474,7 @@ For more information, see [Azure Active Directory Terms of use feature](https://
During the creation of your Terms of Use (ToU), a new “custom” conditional access policy template is also created. This new policy template lets you create the ToU and then immediately go to the conditional access policy creation blade, without needing to manually navigate through the portal.
-For more information, see [Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/active-directory-tou).
+For more information, see [Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use).
---
@@ -735,7 +735,7 @@ For more information, see:
Administrators can now select a given ToU and see all the users that have consented to that ToU and what date/time it took place.
-For more information, see the [Azure AD terms of use feature](https://docs.microsoft.com/azure/active-directory/active-directory-tou).
+For more information, see the [Azure AD terms of use feature](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use).
---
@@ -778,7 +778,7 @@ For more information, see [Configuring single sign-on to applications that are n
Azure AD Terms of Use have moved from public preview to generally available.
-For more information, see the [Azure AD terms of use feature](https://docs.microsoft.com/azure/active-directory/active-directory-tou).
+For more information, see the [Azure AD terms of use feature](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use).
---
@@ -1410,7 +1410,7 @@ Follow these steps:
4. Now you can review the terms of use you accepted.
-For more information, see the [Azure AD terms of use feature (preview)](https://docs.microsoft.com/azure/active-directory/active-directory-tou).
+For more information, see the [Azure AD terms of use feature (preview)](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use).
---
@@ -1450,7 +1450,7 @@ An option for administrators requires their users to expand the terms of use pri
Select either **On** or **Off** to require users to expand the terms of use. The **On** setting requires users to view the terms of use prior to accepting them.
-For more information, see the [Azure AD terms of use feature (preview)](https://docs.microsoft.com/azure/active-directory/active-directory-tou).
+For more information, see the [Azure AD terms of use feature (preview)](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use).
---
@@ -1804,7 +1804,7 @@ You can use Azure AD terms of use in the following scenarios:
- Specific terms of use based on a user's attributes (for example, doctors vs. nurses or domestic vs. international employees, done by dynamic groups)
- Specific terms of use for accessing high-impact business apps, like Salesforce
-For more information, see [Azure AD terms of use](https://docs.microsoft.com/azure/active-directory/active-directory-tou).
+For more information, see [Azure AD terms of use](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use).
---
diff --git a/articles/active-directory/fundamentals/whats-new.md b/articles/active-directory/fundamentals/whats-new.md
index 8b950e7f8bc55..5fc353b4021f7 100644
--- a/articles/active-directory/fundamentals/whats-new.md
+++ b/articles/active-directory/fundamentals/whats-new.md
@@ -35,8 +35,40 @@ This page is updated monthly, so revisit it regularly. If you're looking for ite
---
+## April 2019
+
+### Increased security using the app protection-based conditional access policy in Azure AD (Public preview)
+
+**Type:** New feature
+**Service category:** Conditional Access
+**Product capability:** Identity Security & Protection
+
+App protection-based conditional access is now available by using the **Require app protection** policy. This new policy helps to increase your organization's security by helping to prevent:
+
+- Users gaining access to apps without a Microsoft Intune license.
+
+- Users being unable to get a Microsoft Intune app protection policy.
+
+- Users gaining access to apps without a configured Microsoft Intune app protection policy.
+
+For more information, see [How to Require app protection policy for cloud app access with conditional access](https://docs.microsoft.com/azure/active-directory/conditional-access/app-protection-based-conditional-access).
+
+---
+
## March 2019
+### New support for Azure AD single sign-on and conditional access in Microsoft Edge (Public preview)
+
+**Type:** New feature
+**Service category:** Conditional Access
+**Product capability:** Identity Security & Protection
+
+We've enhanced our Azure AD support for Microsoft Edge, including providing new support for Azure AD single sign-on and conditional access. If you've previously used Microsoft Intune Managed Browser, you can now use Microsoft Edge instead.
+
+For more information about setting up and managing your devices and apps using conditional access, see [Require managed devices for cloud app access with conditional access](https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/require-managed-devices) and [Require approved client apps for cloud app access with conditional access](https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/app-based-conditional-access). For more information about how to manage access using Microsoft Edge with Microsoft Intune policies, see [Manage Internet access using a Microsoft Intune policy-protected browser](https://docs.microsoft.com/en-us/intune/app-configuration-managed-browser).
+
+---
+
### Identity Experience Framework and custom policy support in Azure Active Directory B2C is now available (GA)
**Type:** New feature
@@ -153,7 +185,7 @@ To help prevent administrators from accidentally locking themselves out of their
**Service category:** Terms of Use
**Product capability:** Governance
-We've updated our existing Terms of use experiences to help improve how you review and consent to Terms of use on a mobile device. You can now zoom in and out, go back, download the information, and select hyperlinks. For more information about the updated Terms of use, see [Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/governance/active-directory-tou#what-terms-of-use-looks-like-for-users).
+We've updated our existing Terms of use experiences to help improve how you review and consent to Terms of use on a mobile device. You can now zoom in and out, go back, download the information, and select hyperlinks. For more information about the updated Terms of use, see [Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use#what-terms-of-use-looks-like-for-users).
---
@@ -531,7 +563,7 @@ For more information about how to get and use this timestamp, see [How To: Manag
Administrators can now turn on the **Require users to consent on every device** option to require your users to accept your Terms of use on every device they're using on your tenant.
-For more information, see the [Per-device Terms of use section of the Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/governance/active-directory-tou#per-device-terms-of-use).
+For more information, see the [Per-device Terms of use section of the Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use#per-device-terms-of-use).
---
@@ -544,7 +576,7 @@ For more information, see the [Per-device Terms of use section of the Azure Acti
Administrators can now turn on the **Expire consents** option to make a Terms of use expire for all of your users based on your specified recurring schedule. The schedule can be annually, bi-annually, quarterly, or monthly. After the Terms of use expire, users must reaccept.
-For more information, see the [Add Terms of use section of the Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/governance/active-directory-tou#add-terms-of-use).
+For more information, see the [Add Terms of use section of the Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use#add-terms-of-use).
---
@@ -556,7 +588,7 @@ For more information, see the [Add Terms of use section of the Azure Active Dire
Administrators can now specify a duration that user must reaccept a Terms of use. For example, administrators can specify that users must reaccept a Terms of use every 90 days.
-For more information, see the [Add Terms of use section of the Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/governance/active-directory-tou#add-terms-of-use).
+For more information, see the [Add Terms of use section of the Azure Active Directory Terms of use feature](https://docs.microsoft.com/azure/active-directory/conditional-access/terms-of-use#add-terms-of-use).
---
diff --git a/articles/active-directory/governance/TOC.yml b/articles/active-directory/governance/TOC.yml
index 28626738c1964..6ad7d9e096e75 100644
--- a/articles/active-directory/governance/TOC.yml
+++ b/articles/active-directory/governance/TOC.yml
@@ -51,5 +51,3 @@
href: ../privileged-identity-management/pim-resource-roles-start-access-review.md?toc=%2fazure%2factive-directory%2fgovernance%2ftoc.json
- name: Complete an access review
href: ../privileged-identity-management/pim-resource-roles-complete-access-review.md?toc=%2fazure%2factive-directory%2fgovernance%2ftoc.json
- - name: Terms of use
- href: active-directory-tou.md
diff --git a/articles/active-directory/governance/active-directory-tou.md b/articles/active-directory/governance/active-directory-tou.md
deleted file mode 100644
index 40bd0cd52eb5e..0000000000000
--- a/articles/active-directory/governance/active-directory-tou.md
+++ /dev/null
@@ -1,385 +0,0 @@
----
-title: Terms of use - Azure Active Directory | Microsoft Docs
-description: Describes how to get started using Azure Active Directory Terms of use to present information to employees or guests before getting access.
-services: active-directory
-author: rolyon
-manager: mtillman
-editor: ''
-ms.assetid: d55872ef-7e45-4de5-a9a0-3298e3de3565
-ms.service: active-directory
-ms.workload: identity
-ms.tgt_pltfrm: na
-ms.devlang: na
-ms.topic: conceptual
-ms.subservice: compliance
-ms.date: 03/24/2019
-ms.author: rolyon
-
-ms.collection: M365-identity-device-management
----
-
-# Azure Active Directory Terms of use feature
-Azure AD Terms of use provides a simple method that organizations can use to present information to end users. This presentation ensures users see relevant disclaimers for legal or compliance requirements. This article describes how to get started with Terms of use.
-
-[!INCLUDE [GDPR-related guidance](../../../includes/gdpr-intro-sentence.md)]
-
-## Overview videos
-
-The following video provides a quick overview of Terms of use.
-
->[!VIDEO https://www.youtube.com/embed/tj-LK0abNao]
-
-For additional videos, see:
-- [How to deploy Terms of use in Azure Active Directory](https://www.youtube.com/embed/N4vgqHO2tgY)
-- [How to roll out Terms of use in Azure Active Directory](https://www.youtube.com/embed/t_hA4y9luCY)
-
-## What can I do with Terms of use?
-Azure AD Terms of use has the following capabilities:
-- Require employees or guests to accept your Terms of use before getting access.
-- Require employees or guests to accept your Terms of use on every device before getting access.
-- Require employees or guests to accept your Terms of use on a recurring schedule.
-- Present general Terms of use for all users in your organization.
-- Present specific Terms of use based on a user attributes (ex. doctors vs nurses or domestic vs international employees, by using [dynamic groups](../users-groups-roles/groups-dynamic-membership.md)).
-- Present specific Terms of use when accessing high business impact applications, like Salesforce.
-- Present Terms of use in different languages.
-- List who has or hasn't accepted to your Terms of use.
-- Assist in meeting privacy regulations.
-- Display a log of Terms of use activity for compliance and audit.
-- Create and manage Terms of use using [Microsoft Graph APIs](https://developer.microsoft.com/graph/docs/api-reference/beta/resources/agreement) (currently in preview).
-
-## Prerequisites
-To use and configure Azure AD Terms of use, you must have:
-
-- Azure AD Premium P1, P2, EMS E3, or EMS E5 subscription.
- - If you don't have one of theses subscriptions, you can [get Azure AD Premium](../fundamentals/active-directory-get-started-premium.md) or [enable Azure AD Premium trial](https://azure.microsoft.com/trial/get-started-active-directory/).
-- One of the following administrator accounts for the directory you want to configure:
- - Global Administrator
- - Security Administrator
- - Conditional Access Administrator
-
-## Terms of use document
-
-Azure AD Terms of use uses the PDF format to present content. The PDF file can be any content, such as existing contract documents, allowing you to collect end-user agreements during user sign-in. To support users on mobile devices, the recommended font size in the PDF is 24 point.
-
-## Add Terms of use
-Once you have finalized your Terms of use document, use the following procedure to add it.
-
-1. Sign in to Azure as a Global Administrator, Security Administrator, or Conditional Access Administrator.
-
-1. Navigate to **Terms of use** at [https://aka.ms/catou](https://aka.ms/catou).
-
- ![Terms of use blade](./media/active-directory-tou/tou-blade.png)
-
-1. Click **New terms**.
-
- ![Add TOU](./media/active-directory-tou/new-tou.png)
-
-1. In the **Name** box, enter a name for the Terms of use that will be used in the Azure portal.
-
-1. In the **Display name** box, enter a title that users see when they sign in.
-
-1. For **Terms of use document**, browse to your finalized Terms of use PDF and select it.
-
-1. Select the language for your Terms of use document. The language option allows you to upload multiple Terms of use, each with a different language. The version of the Terms of use that an end user will see will be based on their browser preferences.
-
-1. To require end users to view the Terms of use prior to accepting them, set **Require users to expand the terms of use** to **On**.
-
-1. To require end users to accept your Terms of use on every device they are accessing from, set **Require users to consent on every device** to **On**. For more information, see [Per-device Terms of use](#per-device-terms-of-use).
-
-1. If you want to expire Terms of use consents on a schedule, set **Expire consents** to **On**. When set to On, two additional schedule settings are displayed.
-
- ![Expire consents](./media/active-directory-tou/expire-consents.png)
-
-1. Use the **Expire starting on** and **Frequency** settings to specify the schedule for Terms of use expirations. The following table shows the result for a couple of example settings:
-
- | Expire starting on | Frequency | Result |
- | --- | --- | --- |
- | Today's date | Monthly | Starting today, users must accept the Terms of use and then reaccept every month. |
- | Date in the future | Monthly | Starting today, users must accept the Terms of use. When the future date occurs, consents will expire and then users must reaccept every month. |
-
- For example, if you set the expire starting on date to **Jan 1** and frequency to **Monthly**, here is how expirations might occur for two users:
-
- | User | First accept date | First expire date | Second expire date | Third expire date |
- | --- | --- | --- | --- | --- |
- | Alice | Jan 1 | Feb 1 | Mar 1 | Apr 1 |
- | Bob | Jan 15 | Feb 1 | Mar 1 | Apr 1 |
-
-1. Use the **Duration before re-acceptance requires (days)** setting to specify the number of days before the user must reaccept the Terms of use. This allows users to follow their own schedule. For example, if you set the duration to **30** days, here is how expirations might occur for two users:
-
- | User | First accept date | First expire date | Second expire date | Third expire date |
- | --- | --- | --- | --- | --- |
- | Alice | Jan 1 | Jan 31 | Mar 2 | Apr 1 |
- | Bob | Jan 15 | Feb 14 | Mar 16 | Apr 15 |
-
- It is possible to use the **Expire consents** and **Duration before re-acceptance requires (days)** settings together, but typically you use one or the other.
-
-1. Under **Conditional Access**, use the **Enforce with conditional access policy template** list to select the template to enforce the Terms of use.
-
- ![Conditional access templates](./media/active-directory-tou/conditional-access-templates.png)
-
- | Template | Description |
- | --- | --- |
- | **Access to cloud apps for all guests** | A conditional access policy will be created for all guests and all cloud apps. This policy impacts the Azure portal. Once this is created, you might be required to sign-out and sign-in. |
- | **Access to cloud apps for all users** | A conditional access policy will be created for all users and all cloud apps. This policy impacts the Azure portal. Once this is created, you will be required to sign-out and sign-in. |
- | **Custom policy** | Select the users, groups, and apps that this Terms of Use will be applied to. |
- | **Create conditional access policy later** | This terms of use will appear in the grant control list when creating a conditional access policy. |
-
- >[!IMPORTANT]
- >Conditional access policy controls (including Terms of use) do not support enforcement on service accounts. We recommend excluding all service accounts from the conditional access policy.
-
- Custom conditional access policies enable granular Terms of use, down to a specific cloud application or group of users. For more information, see [Quickstart: Require terms of use to be accepted before accessing cloud apps](../conditional-access/require-tou.md).
-
-1. Click **Create**.
-
- If you selected a custom conditional access template, then a new screen appears that allows you to create the custom conditional access policy.
-
- ![Custom policy](./media/active-directory-tou/custom-policy.png)
-
- You should now see your new Terms of use.
-
- ![Add TOU](./media/active-directory-tou/create-tou.png)
-
-## View report of who has accepted and declined
-The Terms of use blade shows a count of the users who have accepted and declined. These counts and who accepted/declined are stored for the life of the Terms of use.
-
-1. Sign in to Azure and navigate to **Terms of use** at [https://aka.ms/catou](https://aka.ms/catou).
-
- ![Terms of use blade](./media/active-directory-tou/view-tou.png)
-
-1. For a Terms of use, click the numbers under **Accepted** or **Declined** to view the current state for users.
-
- ![Terms of use consents](./media/active-directory-tou/accepted-tou.png)
-
-1. To view the history for an individual user, click the ellipsis (**...**) and then **View History**.
-
- ![View History menu](./media/active-directory-tou/view-history-menu.png)
-
- In the view history pane, you see a history of all the accepts, declines, and expirations.
-
- ![View History pane](./media/active-directory-tou/view-history-pane.png)
-
-## View Azure AD audit logs
-If you want to view additional activity, Azure AD Terms of use includes audit logs. Each user consent triggers an event in the audit logs that is stored for **30 days**. You can view these logs in the portal or download as a .csv file.
-
-To get started with Azure AD audit logs, use the following procedure:
-
-1. Sign in to Azure and navigate to **Terms of use** at [https://aka.ms/catou](https://aka.ms/catou).
-
-1. Select a Terms of use.
-
-1. Click **View audit logs**.
-
- ![Terms of use blade](./media/active-directory-tou/audit-tou.png)
-
-1. On the Azure AD audit logs screen, you can filter the information using the provided lists to target specific audit log information.
-
- You can also click **Download** to download the information in a .csv file for use locally.
-
- ![Audit logs](./media/active-directory-tou/audit-logs-tou.png)
-
- If you click a log, a pane appears with additional activity details.
-
- ![Activity details](./media/active-directory-tou/audit-log-activity-details.png)
-
-## What Terms of use looks like for users
-Once a Terms of use is created and enforced, users, who are in scope, will see the following screen during sign-in.
-
-![User web sign-in](./media/active-directory-tou/user-tou.png)
-
-Users can view the Terms of use and, if necessary, use buttons to zoom in and out.
-
-![View Terms of use with zoom buttons](./media/active-directory-tou/zoom-buttons.png)
-
-The following screen shows how Terms of use looks on mobile devices.
-
-![User mobile sign-in](./media/active-directory-tou/mobile-tou.png)
-
-Users are only required to accept the Terms of use once and they will not see the Terms of use again on subsequent sign-ins.
-
-### How users can review their Terms of use
-Users can review and see the Terms of use that they have accepted by using the following procedure.
-
-1. Sign in to [https://myapps.microsoft.com](https://myapps.microsoft.com).
-
-1. In the upper right corner, click your name and select **Profile**.
-
- ![Profile](./media/active-directory-tou/tou14.png)
-
-1. On your Profile page, click **Review terms of use**.
-
- ![Profile - Review terms of use](./media/active-directory-tou/tou13a.png)
-
-1. From there, you can review the Terms of use you have accepted.
-
-## Edit Terms of use details
-You can edit some details of Terms of use, but you can't modify an existing document. The following procedure describes how to edit the details.
-
-1. Sign in to Azure and navigate to **Terms of use** at [https://aka.ms/catou](https://aka.ms/catou).
-
-1. Select the Terms of use you want to edit.
-
-1. Click **Edit terms**.
-
-1. In the Edit terms of use pane, change the name, display name, or require users to expand values.
-
- If there are other settings you would like to change, such as PDF document, require users to consent on every device, expire consents, duration before reacceptance, or conditional access policy, you must create a new Terms of use.
-
- ![Edit terms of use](./media/active-directory-tou/edit-tou.png)
-
-1. Click **Save** to save your changes.
-
- Once you save your changes, users will not have to reaccept these edits.
-
-## Add a Terms of use language
-The following procedure describes how to add a Terms of use language.
-
-1. Sign in to Azure and navigate to **Terms of use** at [https://aka.ms/catou](https://aka.ms/catou).
-
-1. Select the Terms of use you want to edit.
-
-1. In the details pane, click the **Languages** tab.
-
- ![Add TOU](./media/active-directory-tou/languages-tou.png)
-
-1. Click **Add language**.
-
-1. In the Add terms of use language pane, upload your localized PDF and select the language.
-
- ![Add TOU](./media/active-directory-tou/language-add-tou.png)
-
-1. Click **Add** to add the language.
-
-## Per-device Terms of use
-
-The **Require users to consent on every device** setting enables you to require end users to accept your Terms of use on every device they are accessing from. The end user will be required to join their device in Azure AD. When the device is joined, the device ID is used to enforce the Terms of use on each device.
-
-Here is a list of the supported platforms and software.
-
-> [!div class="mx-tableFixed"]
-> | | iOS | Android | Windows 10 | Other |
-> | --- | --- | --- | --- | --- |
-> | **Native app** | Yes | Yes | Yes | |
-> | **Microsoft Edge** | Yes | Yes | Yes | |
-> | **Internet Explorer** | Yes | Yes | Yes | |
-> | **Chrome (with extension)** | Yes | Yes | Yes | |
-
-Per-device Terms of use has the following constraints:
-
-- A device can only be joined to one tenant.
-- A user must have permissions to join their device.
-- The Intune Enrollment app is not supported.
-
-If the user's device is not joined, they will receive a message that they need to join their device. Their experience will be dependent on the platform and software.
-
-### Join a Windows 10 device
-
-If a user is using Windows 10 and Microsoft Edge, they will receive a message similar to the following to [join their device](../user-help/user-help-join-device-on-network.md#to-join-an-already-configured-windows-10-device).
-
-![Windows 10 and Microsoft Edge - Join device prompt](./media/active-directory-tou/per-device-win10-edge.png)
-
-If they are using Chrome, they will be prompted to install the [Windows 10 Accounts extension](https://chrome.google.com/webstore/detail/windows-10-accounts/ppnbnpeolgkicgegkbkbjmhlideopiji).
-
-### Browsers
-
-If a user is using browser that is not supported, they will be asked to use a different browser.
-
-![Unsupported browser](./media/active-directory-tou/per-device-browser-unsupported.png)
-
-## Delete Terms of use
-You can delete old Terms of use using the following procedure.
-
-1. Sign in to Azure and navigate to **Terms of use** at [https://aka.ms/catou](https://aka.ms/catou).
-
-1. Select the Terms of use you want to remove.
-
-1. Click **Delete terms**.
-
-1. In the message that appears asking if you want to continue, click **Yes**.
-
- ![Delete Terms of use](./media/active-directory-tou/delete-tou.png)
-
- You should no longer see your Terms of use.
-
-## Deleted users and active Terms of use
-By default, a deleted user is in a deleted state in Azure AD for 30 days, during which time they can be restored by an administrator if necessary. After 30 days, that user is permanently deleted. In addition, using the Azure Active Directory portal, a Global Administrator can explicitly [permanently delete a recently deleted user](../fundamentals/active-directory-users-restore.md) before that time period is reached. One a user has been permanently deleted, subsequent data about that user will be removed from the active Terms of use. Audit information about deleted users remains in the audit log.
-
-## Policy changes
-Conditional access policies take effect immediately. When this happens, the administrator will start to see “sad clouds” or "Azure AD token issues". The administrator must sign out and sign in again in order to satisfy the new policy.
-
->[!IMPORTANT]
-> Users in scope will need to sign-out and sign-in in order to satisfy a new policy if:
-> - a conditional access policy is enabled on a Terms of use
-> - or a second Terms of use is created
-
-## B2B guests (Preview)
-
-Most organizations have a process in place for their employees to consent to their organization's Terms of use and privacy statements. But how can you enforce the same consents for Azure AD business-to-business (B2B) guests when they're added via SharePoint or Teams? Using conditional access and Terms of use, you can enforce a policy directly towards B2B guest users. During the invitation redemption flow, the user is presented with the Terms of use. This support is currently in preview.
-
-Terms of use will only be displayed when the user has a guest account in Azure AD. SharePoint Online currently has an [ad hoc external sharing recipient experience](/sharepoint/what-s-new-in-sharing-in-targeted-release) to share a document or a folder that does not require the user to have a guest account. In this case, a Terms of use is not displayed.
-
-![All guest users](./media/active-directory-tou/b2b-guests.png)
-
-## Support for cloud apps (Preview)
-
-Terms of use can be used for different cloud apps, such as Azure Information Protection and Microsoft Intune. This support is currently in preview.
-
-### Azure Information Protection
-
-You can configure a conditional access policy for the Azure Information Protection app and require a Terms of use when a user accesses a protected document. This will trigger a Terms of use prior to a user accessing a protected document for the first time.
-
-![Azure Information Protection cloud app](./media/active-directory-tou/cloud-app-info-protection.png)
-
-### Microsoft Intune Enrollment
-
-You can configure a conditional access policy for the Microsoft Intune Enrollment app and require a Terms of use prior to the enrollment of a device in Intune. For more information, see the Read [Choosing the right Terms solution for your organization blog post](https://go.microsoft.com/fwlink/?linkid=2010506&clcid=0x409).
-
-![Microsoft Intune cloud app](./media/active-directory-tou/cloud-app-intune.png)
-
-> [!NOTE]
-> The Intune Enrollment app is not supported for [Per-device Terms of use](#per-device-terms-of-use).
-
-## Frequently asked questions
-
-**Q: How do I see when/if a user has accepted a Terms of use?**
-A: On the Terms of use blade, click the number under **Accepted**. You can also view or search the accept activity in the Azure AD audit logs. For more information, see View report of who has accepted and declined and [View Azure AD audit logs](#view-azure-ad-audit-logs).
-
-**Q: How long is information stored?**
-A: The user counts in the Terms of use report and who accepted/declined are stored for the life of the Terms of use. The Azure AD audit logs are stored for 30 days.
-
-**Q: Why do I see a different number of consents in the Terms of use report vs. the Azure AD audit logs?**
-A: The Terms of use report is stored for the lifetime of that Terms of use, while the Azure AD audit logs are stored for 30 days. Also, the Terms of use report only displays the users current consent state. For example, if a user declines and then accepts, the Terms of use report will only show that user's accept. If you need to see the history, you can use the Azure AD audit logs.
-
-**Q: If I edit the details for a Terms of use, does it require users to accept again?**
-A: No, if an administrator edits the details for a Terms of use (name, display name, require users to expand, or add a language), it does not require users to reaccept the new terms.
-
-**Q: Can I update an existing Terms of use document?**
-A: Currently, you can't update an existing Terms of use document. To change a Terms of use document, you will have to create a new Terms of use instance.
-
-**Q: If hyperlinks are in the Terms of use PDF document, will end users be able to click them?**
-A: The PDF is rendered by default as a JPEG, so hyperlinks are not clickable. Users have the option to select **Having trouble viewing? Click here**, which renders the PDF natively where hyperlinks are supported.
-
-**Q: Can a Terms of use support multiple languages?**
-A: Yes. Currently there are 108 different languages an administrator can configure for a single Terms of use. An administrator can upload multiple PDF documents and tag those documents with a corresponding language (up to 108). When end users sign in, we look at their browser language preference and display the matching document. If there is no match, we will display the default document, which is the first document that is uploaded.
-
-**Q: When is the Terms of use triggered?**
-A: The Terms of use is triggered during the sign-in experience.
-
-**Q: What applications can I target a Terms of use to?**
-A: You can create a conditional access policy on the enterprise applications using modern authentication. For more information, see [enterprise applications](./../manage-apps/view-applications-portal.md).
-
-**Q: Can I add multiple Terms of use to a given user or app?**
-A: Yes, by creating multiple conditional access policies targeting those groups or applications. If a user falls in scope of multiple Terms of use, they accept one Terms of use at a time.
-
-**Q: What happens if a user declines the Terms of use?**
-A: The user is blocked from getting access to the application. The user would have to sign in again and accept the terms in order to get access.
-
-**Q: Is it possible to unaccept Terms of use that were previously accepted?**
-A: You can [review previously accepted Terms of use](#how-users-can-review-their-terms-of-use), but currently there isn't a way to unaccept.
-
-**Q: What happens if I'm also using Intune terms and conditions?**
-A: If you have configured both Azure AD Terms of use and [Intune terms and conditions](/intune/terms-and-conditions-create), the user will be required to accept both. For more information, see the [Choosing the right Terms solution for your organization blog post](https://go.microsoft.com/fwlink/?linkid=2010506&clcid=0x409).
-
-## Next steps
-
-- [Quickstart: Require terms of use to be accepted before accessing cloud apps](../conditional-access/require-tou.md)
-- [Best practices for conditional access in Azure Active Directory](../conditional-access/best-practices.md)
diff --git a/articles/active-directory/governance/create-access-review.md b/articles/active-directory/governance/create-access-review.md
index 552a68a96a4f8..217e554e623ab 100644
--- a/articles/active-directory/governance/create-access-review.md
+++ b/articles/active-directory/governance/create-access-review.md
@@ -11,7 +11,7 @@ ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
ms.subservice: compliance
-ms.date: 02/20/2019
+ms.date: 04/01/2019
ms.author: rolyon
ms.reviewer: mwahl
ms.collection: M365-identity-device-management
@@ -30,13 +30,13 @@ This article describes how to create one or more access reviews for group member
## Create one or more access reviews
-1. Sign-in to the Azure portal and open the [Access reviews page](https://portal.azure.com/#blade/Microsoft_AAD_ERM/DashboardBlade/).
+1. Sign in to the Azure portal and open the [Access reviews page](https://portal.azure.com/#blade/Microsoft_AAD_ERM/DashboardBlade/).
-1. Click **Controls**.
+1. In the left menu, click **Access reviews**.
1. Click **New access review** to create a new access review.
- ![Access review - Controls](./media/create-access-review/controls.png)
+ ![Access review - Controls](./media/create-access-review/access-reviews.png)
1. Name the access review. Optionally, give the review a description. The name and description are shown to the reviewers.
@@ -46,15 +46,15 @@ This article describes how to create one or more access reviews for group member
![Create an access review - Start and end dates](./media/create-access-review/start-end-dates.png)
-1. To make the access review recurring, change the **Frequency** setting from **One time** to **Weekly**, **Monthly**, **Quarterly** or **Annually**, and use the **Duration** slider or text box to define how many days each review of the recurring series will be open for input from reviewers. For example, the maximum duration that you can set for a monthly review is 27 days, to avoid overlapping reviews.
+1. To make the access review recurring, change the **Frequency** setting from **One time** to **Weekly**, **Monthly**, **Quarterly** or **Annually**. Use the **Duration** slider or text box to define how many days each review of the recurring series will be open for input from reviewers. For example, the maximum duration that you can set for a monthly review is 27 days, to avoid overlapping reviews.
1. Use the **End** setting to specify how to end the recurring access review series. The series can end in three ways: it runs continuously to start reviews indefinitely, until a specific date, or after a defined number of occurrences has been completed. You, another User administrator, or another Global administrator can stop the series after creation by changing the date in **Settings**, so that it ends on that date.
-1. In the **Users** section, specify the users that access review applies to. Access reviews can be for the members of a group or for users who were assigned to an application. You can further scope the access review to review only the guest users who are members (or assigned to the application), rather than reviewing all the users who are members or who have access to the application.
+1. In the **Users** section, specify the users that the access review applies to. Access reviews can be for the members of a group or for users who were assigned to an application. You can further scope the access review to review only the guest users who are members (or assigned to the application), rather than reviewing all the users who are members or who have access to the application.
![Create an access review - Users](./media/create-access-review/users.png)
-1. In the **Groups** section, select one or more groups that you would like to review membership of.
+1. In the **Group** section, select one or more groups that you would like to review membership of.
> [!NOTE]
> Selecting more than one group will create multiple access reviews. For example, selecting five groups will create five separate access reviews.
@@ -107,7 +107,9 @@ This article describes how to create one or more access reviews for group member
## Start the access review
-Once you have specified the settings for an access review, click **Start**.
+Once you have specified the settings for an access review, click **Start**. The access review will appear in your list with an indicator of its status.
+
+![Access reviews list](./media/create-access-review/access-reviews-list.png)
By default, Azure AD sends an email to reviewers shortly after the review starts. If you choose not to have Azure AD send the email, be sure to inform the reviewers that an access review is waiting for them to complete. You can show them the instructions for how to [review access to groups or applications](perform-access-review.md). If your review is for guests to review their own access, show them the instructions for how to [review access for yourself to groups or applications](review-your-access.md).
@@ -115,13 +117,15 @@ If some of the reviewers are guests, guests are notified via email only if they'
## Manage the access review
-You can track the progress as the reviewers complete their reviews in the Azure AD dashboard in the **Access reviews** section. No access rights are changed in the directory until [the review is completed](complete-access-review.md).
+You can track the progress as the reviewers complete their reviews on the **Overview** page of the access review. No access rights are changed in the directory until [the review is completed](complete-access-review.md).
+
+![Access reviews progress](./media/create-access-review/overview-progress.png)
If this is a one-time review, then after the access review period is over or the administrator stops the access review, follow the steps in [Complete an access review of groups or applications](complete-access-review.md) to see and apply the results.
-To manage a series of access reviews, navigate to the access review from **Controls**, and you will find upcoming occurrences in Scheduled reviews, and edit the end date or add/remove reviewers accordingly.
+To manage a series of access reviews, navigate to the access review, and you will find upcoming occurrences in Scheduled reviews, and edit the end date or add/remove reviewers accordingly.
-Based on your selections in Upon completion settings, auto-apply will be executed after the review's end date or when you manually stop the review. The status of the review will change from Completed through intermediate states such as Applying and finally to state Applied. You should expect to see denied users, if any, being removed from the group membership or application assignment in a few minutes.
+Based on your selections in **Upon completion settings**, auto-apply will be executed after the review's end date or when you manually stop the review. The status of the review will change from **Completed** through intermediate states such as **Applying** and finally to state **Applied**. You should expect to see denied users, if any, being removed from the group membership or application assignment in a few minutes.
## Create reviews via APIs
diff --git a/articles/active-directory/governance/identity-governance-overview.md b/articles/active-directory/governance/identity-governance-overview.md
index 57ee64c5478ce..903b5455e1295 100644
--- a/articles/active-directory/governance/identity-governance-overview.md
+++ b/articles/active-directory/governance/identity-governance-overview.md
@@ -51,7 +51,7 @@ Typically, IT delegates access approval decisions to business decision makers.
Organizations can automate the access lifecycle process through technologies such as [dynamic groups](../users-groups-roles/groups-dynamic-membership.md), coupled with user provisioning to [SaaS apps](../saas-apps/tutorial-list.md) or [apps integrated with SCIM](../manage-apps/use-scim-to-provision-users-and-groups.md). Organizations can also control which [guest users have access to on-premises applications](../b2b/hybrid-cloud-to-on-premises.md). These access rights can then be regularly reviewed using recurring [Azure AD access reviews](access-reviews-overview.md).
-When a user attempts to access applications, Azure AD enforces [conditional access](/azure/active-directory/conditional-access/) policies. For example, conditional access policies can include displaying a [terms of use](active-directory-tou.md) and [ensuring the user has agreed to those terms](../conditional-access/require-tou.md) prior to being able to access an application.
+When a user attempts to access applications, Azure AD enforces [conditional access](/azure/active-directory/conditional-access/) policies. For example, conditional access policies can include displaying a [Terms of use](../conditional-access/terms-of-use.md) and [ensuring the user has agreed to those terms](../conditional-access/require-tou.md) prior to being able to access an application.
## Privileged access lifecycle
@@ -76,7 +76,7 @@ While there is no perfect solution or recommendation for every customer, the fol
### Terms of use
-- [What can I do with Terms of use?](active-directory-tou.md)
+- [What can I do with Terms of use?](../conditional-access/terms-of-use.md)
### Privileged identity management
diff --git a/articles/active-directory/governance/index.yml b/articles/active-directory/governance/index.yml
index b510618c2bf0e..7cfce6f21e0b1 100644
--- a/articles/active-directory/governance/index.yml
+++ b/articles/active-directory/governance/index.yml
@@ -45,4 +45,4 @@ sections:
- type: list
style: unordered
items:
- - html: What can I do with Terms of use?
+ - html: What can I do with Terms of use?
diff --git a/articles/active-directory/governance/media/create-access-review/access-reviews-list.png b/articles/active-directory/governance/media/create-access-review/access-reviews-list.png
new file mode 100644
index 0000000000000..86515398f51c6
Binary files /dev/null and b/articles/active-directory/governance/media/create-access-review/access-reviews-list.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/access-reviews.png b/articles/active-directory/governance/media/create-access-review/access-reviews.png
new file mode 100644
index 0000000000000..7d529198260a5
Binary files /dev/null and b/articles/active-directory/governance/media/create-access-review/access-reviews.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/advanced-settings.png b/articles/active-directory/governance/media/create-access-review/advanced-settings.png
index 42fa099a6ed42..6681c045fa789 100644
Binary files a/articles/active-directory/governance/media/create-access-review/advanced-settings.png and b/articles/active-directory/governance/media/create-access-review/advanced-settings.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/controls.png b/articles/active-directory/governance/media/create-access-review/controls.png
deleted file mode 100644
index dabafcf400c26..0000000000000
Binary files a/articles/active-directory/governance/media/create-access-review/controls.png and /dev/null differ
diff --git a/articles/active-directory/governance/media/create-access-review/name-description.png b/articles/active-directory/governance/media/create-access-review/name-description.png
index 57a57a96366b3..399ca1a3ab010 100644
Binary files a/articles/active-directory/governance/media/create-access-review/name-description.png and b/articles/active-directory/governance/media/create-access-review/name-description.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/overview-progress.png b/articles/active-directory/governance/media/create-access-review/overview-progress.png
new file mode 100644
index 0000000000000..cf8a7d8dbac47
Binary files /dev/null and b/articles/active-directory/governance/media/create-access-review/overview-progress.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/programs.png b/articles/active-directory/governance/media/create-access-review/programs.png
index 2a214c9ff632d..d2eb3ed8e2f23 100644
Binary files a/articles/active-directory/governance/media/create-access-review/programs.png and b/articles/active-directory/governance/media/create-access-review/programs.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/reviewers.png b/articles/active-directory/governance/media/create-access-review/reviewers.png
index ae37afe6db1dd..19a213b43bc37 100644
Binary files a/articles/active-directory/governance/media/create-access-review/reviewers.png and b/articles/active-directory/governance/media/create-access-review/reviewers.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/select-application.png b/articles/active-directory/governance/media/create-access-review/select-application.png
index fc7804fa0ae40..f997a714a6c88 100644
Binary files a/articles/active-directory/governance/media/create-access-review/select-application.png and b/articles/active-directory/governance/media/create-access-review/select-application.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/select-group.png b/articles/active-directory/governance/media/create-access-review/select-group.png
index ee19831ef1100..c9960f2d54f03 100644
Binary files a/articles/active-directory/governance/media/create-access-review/select-group.png and b/articles/active-directory/governance/media/create-access-review/select-group.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/start-end-dates.png b/articles/active-directory/governance/media/create-access-review/start-end-dates.png
index dbe400c7897da..0d6e26b653fae 100644
Binary files a/articles/active-directory/governance/media/create-access-review/start-end-dates.png and b/articles/active-directory/governance/media/create-access-review/start-end-dates.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/upon-completion-settings.png b/articles/active-directory/governance/media/create-access-review/upon-completion-settings.png
index fc10ca3306e1b..d66400016610f 100644
Binary files a/articles/active-directory/governance/media/create-access-review/upon-completion-settings.png and b/articles/active-directory/governance/media/create-access-review/upon-completion-settings.png differ
diff --git a/articles/active-directory/governance/media/create-access-review/users.png b/articles/active-directory/governance/media/create-access-review/users.png
index 4fa45f4a0f4ed..4fe480f9004ae 100644
Binary files a/articles/active-directory/governance/media/create-access-review/users.png and b/articles/active-directory/governance/media/create-access-review/users.png differ
diff --git a/articles/active-directory/governance/media/perform-access-review/accept-recommendations-summary.png b/articles/active-directory/governance/media/perform-access-review/accept-recommendations-summary.png
index af23f144d30d5..4f6cfce84c52e 100644
Binary files a/articles/active-directory/governance/media/perform-access-review/accept-recommendations-summary.png and b/articles/active-directory/governance/media/perform-access-review/accept-recommendations-summary.png differ
diff --git a/articles/active-directory/governance/media/perform-access-review/accept-recommendations.png b/articles/active-directory/governance/media/perform-access-review/accept-recommendations.png
index d93ffc888c58d..0447e14f89f78 100644
Binary files a/articles/active-directory/governance/media/perform-access-review/accept-recommendations.png and b/articles/active-directory/governance/media/perform-access-review/accept-recommendations.png differ
diff --git a/articles/active-directory/governance/media/perform-access-review/access-review-email.png b/articles/active-directory/governance/media/perform-access-review/access-review-email.png
index f33fb645504ee..93f7f69b4679a 100644
Binary files a/articles/active-directory/governance/media/perform-access-review/access-review-email.png and b/articles/active-directory/governance/media/perform-access-review/access-review-email.png differ
diff --git a/articles/active-directory/governance/media/perform-access-review/access-reviews-list.png b/articles/active-directory/governance/media/perform-access-review/access-reviews-list.png
index c598cb1771812..32f7db3e317f7 100644
Binary files a/articles/active-directory/governance/media/perform-access-review/access-reviews-list.png and b/articles/active-directory/governance/media/perform-access-review/access-reviews-list.png differ
diff --git a/articles/active-directory/governance/media/perform-access-review/approve-deny.png b/articles/active-directory/governance/media/perform-access-review/approve-deny.png
index 704161dfd2028..3ba28be52f318 100644
Binary files a/articles/active-directory/governance/media/perform-access-review/approve-deny.png and b/articles/active-directory/governance/media/perform-access-review/approve-deny.png differ
diff --git a/articles/active-directory/governance/media/perform-access-review/myapps-access-panel.png b/articles/active-directory/governance/media/perform-access-review/myapps-access-panel.png
index fe5f8b3a9ae79..9426d930d8ac0 100644
Binary files a/articles/active-directory/governance/media/perform-access-review/myapps-access-panel.png and b/articles/active-directory/governance/media/perform-access-review/myapps-access-panel.png differ
diff --git a/articles/active-directory/governance/media/perform-access-review/perform-access-review.png b/articles/active-directory/governance/media/perform-access-review/perform-access-review.png
index abbd505a436df..f3ebb4b26137f 100644
Binary files a/articles/active-directory/governance/media/perform-access-review/perform-access-review.png and b/articles/active-directory/governance/media/perform-access-review/perform-access-review.png differ
diff --git a/articles/active-directory/governance/perform-access-review.md b/articles/active-directory/governance/perform-access-review.md
index 3da0ff5710099..8636f3acb918d 100644
--- a/articles/active-directory/governance/perform-access-review.md
+++ b/articles/active-directory/governance/perform-access-review.md
@@ -11,7 +11,7 @@ ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
ms.subservice: compliance
-ms.date: 02/20/2019
+ms.date: 04/01/2019
ms.author: rolyon
ms.reviewer: mwahl
ms.collection: M365-identity-device-management
@@ -41,7 +41,7 @@ If you don't have the email, you can find your pending access reviews by followi
1. In the upper-right corner of the page, click the user symbol, which displays your name and default organization. If more than one organization is listed, select the organization that requested an access review.
-1. On the right side of the page, click the **Access reviews** tile to see a list of the pending access reviews.
+1. Click the **Access reviews** tile to see a list of the pending access reviews.
If the tile isn't visible, there are no access reviews to perform for that organization and no action is needed at this time.
@@ -66,12 +66,14 @@ There are two ways that you can approve or deny access:
1. Review the list of users to decide whether to approve or deny their continued access.
-1. To approve or deny each request, click the row to open the window to specify the action to take.
+1. To approve or deny each request, click the row to open a window to specify the action to take.
1. Click **Approve** or **Deny**. If you are unsure, you can click **Don't know**. Doing so will result in the user maintaining his/her access, but the selection will be reflected in the audit logs.
![Perform access review](./media/perform-access-review/approve-deny.png)
+1. If necessary, enter a reason in the **Reason** box.
+
The administrator of the access review might require that you supply a reason for approving continued access or group membership.
1. Once you have specified the action to take, click **Save**.
diff --git a/articles/active-directory/hybrid/how-to-connect-health-adfs.md b/articles/active-directory/hybrid/how-to-connect-health-adfs.md
index c26442a24408b..e4473730af04b 100644
--- a/articles/active-directory/hybrid/how-to-connect-health-adfs.md
+++ b/articles/active-directory/hybrid/how-to-connect-health-adfs.md
@@ -115,5 +115,5 @@ The report provides the following information:
## Related links
* [Azure AD Connect Health](whatis-hybrid-identity-health.md)
* [Azure AD Connect Health Agent Installation](how-to-connect-health-agent-install.md)
-* [Risky IP report ](how-to-connect-health-adfs-risky-ip.md)
+* [Risky IP report](how-to-connect-health-adfs-risky-ip.md)
diff --git a/articles/active-directory/hybrid/how-to-connect-health-agent-install.md b/articles/active-directory/hybrid/how-to-connect-health-agent-install.md
index f6d52d2d5dc36..534c0612d0937 100644
--- a/articles/active-directory/hybrid/how-to-connect-health-agent-install.md
+++ b/articles/active-directory/hybrid/how-to-connect-health-agent-install.md
@@ -136,7 +136,7 @@ In order for the Usage Analytics feature to gather and analyze data, the Azure A
1. Open **Local Security Policy** by opening **Server Manager** on the Start screen, or Server Manager in the taskbar on the desktop, then click **Tools/Local Security Policy**.
2. Navigate to the **Security Settings\Local Policies\User Rights Assignment** folder, and then double-click **Generate security audits**.
3. On the **Local Security Setting** tab, verify that the AD FS service account is listed. If it is not present, click **Add User or Group** and add it to the list, and then click **OK**.
-4. To enable auditing, open a command prompt with elevated privileges and run the following command: ```auditpol.exe /set /subcategory:{0CCE9222-69AE-11D9-BED3-505054503030} /failure:enable /success:enable```.
+4. To enable auditing, open a command prompt with elevated privileges and run the following command: ```auditpol.exe /set /subcategory:{0CCE9222-69AE-11D9-BED3-505054503030} /failure:enable /success:enable```
5. Close **Local Security Policy**.
-- **The following steps are only required for primary AD FS servers.** --
6. Open the **AD FS Management** snap-in (in Server Manager, click Tools, and then select AD FS Management).
@@ -149,7 +149,7 @@ In order for the Usage Analytics feature to gather and analyze data, the Azure A
1. Open **Local Security Policy** by opening **Server Manager** on the Start screen, or Server Manager in the taskbar on the desktop, then click **Tools/Local Security Policy**.
2. Navigate to the **Security Settings\Local Policies\User Rights Assignment** folder, and then double-click **Generate security audits**.
3. On the **Local Security Setting** tab, verify that the AD FS service account is listed. If it is not present, click **Add User or Group** and add the AD FS service account to the list, and then click **OK**.
-4. To enable auditing, open a command prompt with elevated privileges and run the following command: auditpol.exe /set /subcategory:{0CCE9222-69AE-11D9-BED3-505054503030} /failure:enable /success:enable.
+4. To enable auditing, open a command prompt with elevated privileges and run the following command: auditpol.exe /set /subcategory:{0CCE9222-69AE-11D9-BED3-505054503030} /failure:enable /success:enable
5. Close **Local Security Policy**.
-- **The following steps are only required for primary AD FS servers.** --
6. Open the **AD FS Management** snap-in (in Server Manager, click Tools, and then select AD FS Management).
@@ -259,7 +259,7 @@ $secpasswd = ConvertTo-SecureString "PASSWORD" -AsPlainText -Force
$myCreds = New-Object System.Management.Automation.PSCredential ($userName, $secpasswd)
import-module "C:\Program Files\Azure Ad Connect Health Adds Agent\PowerShell\AdHealthAdds"
-Register-AzureADConnectHealthADDSAgent -UserPrincipalName $USERNAME -Credential $password
+Register-AzureADConnectHealthADDSAgent -UserPrincipalName $USERNAME -Credential $myCreds
```
@@ -378,4 +378,4 @@ The role parameter currently takes the following values:
* [Using Azure AD Connect Health for sync](how-to-connect-health-sync.md)
* [Using Azure AD Connect Health with AD DS](how-to-connect-health-adds.md)
* [Azure AD Connect Health FAQ](reference-connect-health-faq.md)
-* [Azure AD Connect Health Version History](reference-connect-health-version-history.md)
\ No newline at end of file
+* [Azure AD Connect Health Version History](reference-connect-health-version-history.md)
diff --git a/articles/active-directory/hybrid/how-to-connect-sso-how-it-works.md b/articles/active-directory/hybrid/how-to-connect-sso-how-it-works.md
index e7ee594c4fe69..7027618497f05 100644
--- a/articles/active-directory/hybrid/how-to-connect-sso-how-it-works.md
+++ b/articles/active-directory/hybrid/how-to-connect-sso-how-it-works.md
@@ -12,7 +12,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 04/02/2019
+ms.date: 04/08/2019
ms.subservice: hybrid
ms.author: billmath
ms.collection: M365-identity-device-management
@@ -39,7 +39,7 @@ Seamless SSO is enabled using Azure AD Connect as shown [here](how-to-connect-ss
- The computer account's Kerberos decryption key is shared securely with Azure AD. If there are multiple AD forests, each computer account will have its own unique Kerberos decryption key.
>[!IMPORTANT]
-> The `AZUREADSSOACC` computer account needs to be strongly protected for security reasons. Only Domain Admins should be able to manage the computer account. Ensure that Kerberos delegation on the computer account is disabled. Store the computer account in an Organization Unit (OU) where they are safe from accidental deletions. The Kerberos decryption key on the computer account should also be treated as sensitive. We highly recommend that you [roll over the Kerberos decryption key](how-to-connect-sso-faq.md#how-can-i-roll-over-the-kerberos-decryption-key-of-the-azureadssoacc-computer-account) of the `AZUREADSSOACC` computer account at least every 30 days.
+> The `AZUREADSSOACC` computer account needs to be strongly protected for security reasons. Only Domain Admins should be able to manage the computer account. Ensure that Kerberos delegation on the computer account is disabled. Store the computer account in an Organization Unit (OU) where they are safe from accidental deletions and where only Domain Admins have access. The Kerberos decryption key on the computer account should also be treated as sensitive. We highly recommend that you [roll over the Kerberos decryption key](how-to-connect-sso-faq.md#how-can-i-roll-over-the-kerberos-decryption-key-of-the-azureadssoacc-computer-account) of the `AZUREADSSOACC` computer account at least every 30 days.
Once the set-up is complete, Seamless SSO works the same way as any other sign-in that uses Integrated Windows Authentication (IWA).
diff --git a/articles/active-directory/hybrid/how-to-connect-sso-quick-start.md b/articles/active-directory/hybrid/how-to-connect-sso-quick-start.md
index 49ed2f82cfa50..59e3ead225790 100644
--- a/articles/active-directory/hybrid/how-to-connect-sso-quick-start.md
+++ b/articles/active-directory/hybrid/how-to-connect-sso-quick-start.md
@@ -12,7 +12,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 04/02/2019
+ms.date: 04/08/2019
ms.subservice: hybrid
ms.author: billmath
ms.collection: M365-identity-device-management
@@ -88,7 +88,7 @@ Follow these instructions to verify that you have enabled Seamless SSO correctly
![Azure portal: Azure AD Connect pane](./media/how-to-connect-sso-quick-start/sso10.png)
>[!IMPORTANT]
-> Seamless SSO creates a computer account named `AZUREADSSOACC` in your on-premises Active Directory (AD) in each AD forest. The `AZUREADSSOACC` computer account needs to be strongly protected for security reasons. Only Domain Admins should be able to manage the computer account. Ensure that Kerberos delegation on the computer account is disabled. Store the computer account in an Organization Unit (OU) where they are safe from accidental deletions.
+> Seamless SSO creates a computer account named `AZUREADSSOACC` in your on-premises Active Directory (AD) in each AD forest. The `AZUREADSSOACC` computer account needs to be strongly protected for security reasons. Only Domain Admins should be able to manage the computer account. Ensure that Kerberos delegation on the computer account is disabled. Store the computer account in an Organization Unit (OU) where they are safe from accidental deletions and where only Domain Admins have access.
>[!NOTE]
> If you are using Pass-the-Hash and Credential Theft Mitigation architectures in your on-premises environment, make appropriate changes to ensure that the `AZUREADSSOACC` computer account doesn't end up in the Quarantine container.
diff --git a/articles/active-directory/hybrid/how-to-upgrade-previous-version.md b/articles/active-directory/hybrid/how-to-upgrade-previous-version.md
index f57023c652127..0afac8c0a81f7 100644
--- a/articles/active-directory/hybrid/how-to-upgrade-previous-version.md
+++ b/articles/active-directory/hybrid/how-to-upgrade-previous-version.md
@@ -13,7 +13,7 @@ ms.devlang: na
ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: Identity
-ms.date: 07/18/2018
+ms.date: 04/08/2019
ms.subservice: hybrid
ms.author: billmath
@@ -22,6 +22,9 @@ ms.collection: M365-identity-device-management
# Azure AD Connect: Upgrade from a previous version to the latest
This topic describes the different methods that you can use to upgrade your Azure Active Directory (Azure AD) Connect installation to the latest release. We recommend that you keep yourself current with the releases of Azure AD Connect. You also use the steps in the [Swing migration](#swing-migration) section when you make a substantial configuration change.
+>[!NOTE]
+> It is currently supported to upgrade from any version of Azure AD Connect to the current version. In-place upgrades of DirSync or ADSync are not supported and a swing migration is required. If you want to upgrade from DirSync, see [Upgrade from Azure AD sync tool (DirSync)](how-to-dirsync-upgrade-get-started.md) or the [Swing migration](#swing-migration) section. In practice, customers on extremely old versions may encounter problems not directly related to Azure AD Connect. Servers that have been in production for several years, typically have had several patches applied to them and not all of these can be accounted for. Generally, customers who have not upgraded in 12-18 months should consider a swing upgrade instead as this is the most conservative and least risky option.
+
If you want to upgrade from DirSync, see [Upgrade from Azure AD sync tool (DirSync)](how-to-dirsync-upgrade-get-started.md) instead.
There are a few different strategies that you can use to upgrade Azure AD Connect.
diff --git a/articles/active-directory/hybrid/whatis-aadc-admin-agent.md b/articles/active-directory/hybrid/whatis-aadc-admin-agent.md
index 7d94d8c84e7e0..4e12dbf083376 100644
--- a/articles/active-directory/hybrid/whatis-aadc-admin-agent.md
+++ b/articles/active-directory/hybrid/whatis-aadc-admin-agent.md
@@ -37,16 +37,18 @@ The Microsoft Support Engineer cannot change any data in your system and cannot
If you do not want the Microsoft service engineer to access your data for a support call you can disable this by modifying the service config file as described below:
- 1. Open **C:\Program Files\Microsoft Azure AD Connect Administration Agent\AzureADConnectAdministrationAgentService.exe.config** in notepad.
- 2. Disable **UserDataEnabled** setting as shown below. If **UserDataEnabled** setting exists and is set to true, then set it to false. If the setting does not exist, then add the setting as shown below.
- `
-
-
-
-
- `
- 3. Save the config file.
- 4. Restart Azure AD Connect Administration Agent service as shown below
+1. Open **C:\Program Files\Microsoft Azure AD Connect Administration Agent\AzureADConnectAdministrationAgentService.exe.config** in notepad.
+2. Disable **UserDataEnabled** setting as shown below. If **UserDataEnabled** setting exists and is set to true, then set it to false. If the setting does not exist, then add the setting as shown below.
+
+ ```xml
+
+
+
+
+ ```
+
+3. Save the config file.
+4. Restart Azure AD Connect Administration Agent service as shown below
![admin agent](media/whatis-aadc-admin-agent/adminagent2.png)
diff --git a/articles/active-directory/identity-protection/howto-investigate-risky-users-signins.md b/articles/active-directory/identity-protection/howto-investigate-risky-users-signins.md
index 042fbf769b244..fc82b25457c1e 100644
--- a/articles/active-directory/identity-protection/howto-investigate-risky-users-signins.md
+++ b/articles/active-directory/identity-protection/howto-investigate-risky-users-signins.md
@@ -148,7 +148,7 @@ The **Status** filter enables you to select:
### Download risky users data
-You can download the risky users data if you want work with it outside the Azure portal. Clicking Download creates a CSV file of the most recent 5K records.
+You can download the risky users data if you want to work with it outside the Azure portal. Clicking Download creates a CSV file of the most recent 2,500 records.
![Risky users report](./media/howto-investigate-risky-users-signins/07.png)
@@ -317,7 +317,7 @@ Possible values are:
### Download risky sign-ins data
-You can download the risky sign-ins data if you want work with it outside the Azure portal. Clicking Download creates a CSV file of the most recent 5K records.
+You can download the risky sign-ins data if you want to work with it outside the Azure portal. Clicking Download creates a CSV file of the most recent 2,500 records.
![Risky users report](./media/howto-investigate-risky-users-signins/15.png)
diff --git a/articles/active-directory/identity-protection/media/vulnerabilities/101.png b/articles/active-directory/identity-protection/media/vulnerabilities/101.png
deleted file mode 100644
index 6e32c6313754a..0000000000000
Binary files a/articles/active-directory/identity-protection/media/vulnerabilities/101.png and /dev/null differ
diff --git a/articles/active-directory/identity-protection/media/vulnerabilities/identity-protection-vulnerabilities.png b/articles/active-directory/identity-protection/media/vulnerabilities/identity-protection-vulnerabilities.png
new file mode 100644
index 0000000000000..e1a9cca2cd23f
Binary files /dev/null and b/articles/active-directory/identity-protection/media/vulnerabilities/identity-protection-vulnerabilities.png differ
diff --git a/articles/active-directory/identity-protection/vulnerabilities.md b/articles/active-directory/identity-protection/vulnerabilities.md
index 8e783b58dc72d..9c84db3ecb853 100644
--- a/articles/active-directory/identity-protection/vulnerabilities.md
+++ b/articles/active-directory/identity-protection/vulnerabilities.md
@@ -1,63 +1,65 @@
---
-title: Vulnerabilities detected by Azure Active Directory Identity Protection | Microsoft Docs
+title: Vulnerabilities detected by Azure Active Directory Identity Protection
description: Overview of the vulnerabilities detected by Azure Active Directory Identity Protection.
-services: active-directory
-keywords: azure active directory identity protection, cloud discovery, managing applications, security, risk, risk level, vulnerability, security policy
-documentationcenter: ''
-author: MicrosoftGuyJFlo
-manager: daveba
-ms.assetid: 92233a5b-cb34-4d28-88cc-d5d29c0f3256
+services: active-directory
ms.service: active-directory
ms.subservice: identity-protection
-ms.workload: identity
-ms.tgt_pltfrm: na
-ms.devlang: na
ms.topic: article
-ms.date: 06/27/2018
+ms.date: 04/09/2019
+
ms.author: joflore
+author: MicrosoftGuyJFlo
+manager: daveba
ms.reviewer: sahandle
ms.collection: M365-identity-device-management
---
# Vulnerabilities detected by Azure Active Directory Identity Protection
-Vulnerabilities are weaknesses in your environment that can be exploited by an attacker. We recommend that you address these vulnerabilities to improve the security posture of your organization, and prevent attackers from exploiting them.
+Vulnerabilities are weaknesses in an environment that can be exploited by an attacker. We recommend administrators address these vulnerabilities to improve the security posture of their organization.
-![vulnerabilities](./media/vulnerabilities/101.png "vulnerabilities")
+![Vulnerabilities reported by Identity Protection](./media/vulnerabilities/identity-protection-vulnerabilities.png)
+The following sections provide you with an overview of the vulnerabilities reported by Identity Protection.
+## Multi-Factor Authentication registration not configured
-The following sections provide you with an overview of the vulnerabilities reported by Identity Protection.
+This vulnerability helps assess the deployment of Azure Multi-Factor Authentication in your organization.
+
+To view the count for users that are not registered for MFA, click on the vulnerability and you are redirected to statistics within Identity Secure Score.
-## Multi-factor authentication registration not configured
-This vulnerability helps you control the deployment of Azure Multi-Factor Authentication in your organization.
+Azure Multi-Factor Authentication provides a second layer of security to user authentication. It helps safeguard access to data and applications while meeting user demand for a simple sign-in process. Azure Multi-Factor Authentication provides easy to use verification options like:
-Azure multi-factor authentication provides a second layer of security to user authentication. It helps safeguard access to data and applications while meeting user demand for a simple sign-in process. It delivers strong authentication via a range of easy verification options—phone call, text message, or mobile app notification or verification code and third party OATH tokens.
+* Phone call
+* Text message
+* Mobile app notification
+* OTP Verification code
We recommend that you require Azure Multi-Factor Authentication for user sign-ins. Multi-factor authentication plays a key role in risk-based conditional access policies available through Identity Protection.
For more information, see [What is Azure Multi-Factor Authentication?](../authentication/multi-factor-authentication.md)
## Unmanaged cloud apps
+
This vulnerability helps you identify unmanaged cloud apps in your organization.
-In modern enterprises, IT departments are often unaware of all the cloud applications that users in their organization are using to do their work. It is easy to see why administrators would have concerns about unauthorized access to corporate data, possible data leakage, and other security risks.
+IT staff are often unaware of all the cloud applications in their organization. It is easy to see why administrators would have concerns about unauthorized access to corporate data, possible data leakage, and other security risks.
-We recommend to deploy Cloud Discovery to discover unmanaged cloud applications, and to manage these applications using Azure Active Directory.
+We recommend deploying Cloud Discovery to discover unmanaged cloud applications, and to manage these applications using Azure Active Directory.
For more information, see [Cloud Discovery](/cloud-app-security/set-up-cloud-discovery).
## Security Alerts from Privileged Identity Management
+
This vulnerability helps you discover and resolve alerts about privileged identities in your organization.
-To enable users to carry out privileged operations, organizations need to grant users temporary or permanent privileged access in Azure AD, Azure or Office 365 resources, or other SaaS apps. Each of these privileged users increases the attack surface of your organization. This vulnerability helps you identify users with unnecessary privileged access, and take appropriate action to reduce or eliminate the risk they pose.
+To enable users to carry out privileged operations, organizations need to grant users temporary or permanent privileged access in Azure AD, Azure or Office 365 resources, or other SaaS apps. Each of these privileged users increases the attack surface of your organization. This vulnerability helps you identify users with unnecessary privileged access, and take appropriate action to reduce or eliminate the risk they pose.
-We recommend that your organization uses Azure AD Privileged Identity Management to manage, control, and monitor privileged identities and their access to resources in Azure AD as well as other Microsoft online services like Office 365 or Microsoft Intune.
+We recommend organizations use Azure AD Privileged Identity Management to manage, control, and monitor privileged identities in Azure AD as well as other Microsoft online services like Office 365 or Microsoft Intune.
-For more information, see [Azure AD Privileged Identity Management](../privileged-identity-management/pim-configure.md).
+For more information, see [Azure AD Privileged Identity Management](../privileged-identity-management/pim-configure.md).
## See also
[Azure Active Directory Identity Protection](../active-directory-identityprotection.md)
-
diff --git a/articles/active-directory/index.md b/articles/active-directory/index.md
index 431a4366b5d61..8f84078b7534b 100644
--- a/articles/active-directory/index.md
+++ b/articles/active-directory/index.md
@@ -252,7 +252,7 @@ ms.collection: M365-identity-device-management
Create an access review
Start an access review
- Using Terms of use
+ Using Terms of use
See more >
diff --git a/articles/active-directory/manage-apps/add-application-portal.md b/articles/active-directory/manage-apps/add-application-portal.md
index bf651c44238f8..251f8b4aae8da 100644
--- a/articles/active-directory/manage-apps/add-application-portal.md
+++ b/articles/active-directory/manage-apps/add-application-portal.md
@@ -8,7 +8,7 @@ ms.service: active-directory
ms.subservice: app-mgmt
ms.topic: quickstart
ms.workload: identity
-ms.date: 07/24/2018
+ms.date: 04/09/2019
ms.author: celested
ms.collection: M365-identity-device-management
@@ -39,27 +39,27 @@ To add a gallery application to your Azure AD tenant:
1. In the [Azure portal](https://portal.azure.com), on the left navigation panel, select **Azure Active Directory**.
-2. In the **Azure Active Directory** pane, select **Enterprise applications**.
+1. In the **Azure Active Directory** pane, select **Enterprise applications**.
![Open enterprise applications](media/add-application-portal/open-enterprise-apps.png)
-3. The **All applications** pane opens to show a random sample of the applications in your Azure AD tenant. Select **New application** at the top of the **All applications** pane.
+1. The **All applications** pane opens to show a random sample of the applications in your Azure AD tenant. Select **New application** at the top of the **All applications** pane.
![New application](media/add-application-portal/new-application.png)
-4. In the **Categories** pane, you'll see icons under the **Featured applications** area that are a random sample of gallery applications. To see more applications, you could select **Show more**. But, we don't recommend searching this way since there are thousands of applications in the gallery.
+1. In the **Categories** pane, you'll see icons under the **Featured applications** area that are a random sample of gallery applications. To see more applications, you could select **Show more**. But, we don't recommend searching this way since there are thousands of applications in the gallery.
![Search by name or category](media/add-application-portal/categories.png)
-5. To search for an application, under **Add from the gallery**, enter the name of the application you want to add. Select the application from the results and select **Add**. The following example shows the **Add app** form that appears after searching for github.com.
+1. To search for an application, under **Add from the gallery**, enter the name of the application you want to add. Select the application from the results and select **Add**. The following example shows the **Add app** form that appears after searching for github.com.
![Add an application](media/add-application-portal/add-an-application.png)
-6. In the application-specific form, you can change property information. For example, you can edit the name of the application to match the needs of your organization. This example uses the name **GitHub-test**.
+1. In the application-specific form, you can change property information. For example, you can edit the name of the application to match the needs of your organization. This example uses the name **GitHub-test**.
-7. When you've finished making changes to the properties, select **Add**.
+1. When you've finished making changes to the properties, select **Add**.
-8. A getting started page appears with the options for configuring the application for your organization.
+1. A getting started page appears with the options for configuring the application for your organization.
You've finished adding your application. Feel free to take a break. The next sections show you how to change the logo and edit other properties for your application.
@@ -69,13 +69,13 @@ Let's assume you had to leave and now you're returning to continue configuring y
1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, select **Azure Active Directory**.
-2. In the **Azure Active Directory** pane, select **Enterprise applications**.
+1. In the **Azure Active Directory** pane, select **Enterprise applications**.
-3. From the **Application Type** drop-down menu, select **All Applications**, and then select **Apply**. To learn more about the viewing options, see [View tenant applications](view-applications-portal.md).
+1. From the **Application Type** drop-down menu, select **All Applications**, and then select **Apply**. To learn more about the viewing options, see [View tenant applications](view-applications-portal.md).
-4. You can now see a list of all the applications in your Azure AD tenant. The list is a random sample. To see more applications, select **Show more** one or more times.
+1. You can now see a list of all the applications in your Azure AD tenant. The list is a random sample. To see more applications, select **Show more** one or more times.
-5. To quickly find an application in your tenant, enter the application name in the search box and select **Apply**. This example finds the GitHub-test application added previously.
+1. To quickly find an application in your tenant, enter the application name in the search box and select **Apply**. This example finds the GitHub-test application added previously.
![Search for an application](media/add-application-portal/find-application.png)
@@ -87,17 +87,17 @@ Now that you've found the application, you can open it and configure application
To edit the application properties:
1. Select the application to open it.
-2. Select **Properties** to open the properties pane for editing.
+1. Select **Properties** to open the properties pane for editing.
![Edit properties pane](media/add-application-portal/edit-properties.png)
-3. Take a moment to understand the sign-in options. The options determine how users who are assigned or unassigned to the application can sign into the application. And, the options also determine if a user can see the application in the access panel.
+1. Take a moment to understand the sign-in options. The options determine how users who are assigned or unassigned to the application can sign into the application. And, the options also determine if a user can see the application in the access panel.
- **Enabled for users to sign-in** determines whether users assigned to the application can sign in.
- **User assignment required** determines whether users who aren't assigned to the application can sign in.
- **Visible to user** determines whether users assigned to an app can see it in the access panel and O365 launcher.
-4. Use the following tables to help you choose the best options for your needs.
+1. Use the following tables to help you choose the best options for your needs.
- Behavior for **assigned** users:
@@ -134,10 +134,10 @@ To edit the application properties:
To use a custom logo:
1. Create a logo that is 215 by 215 pixels, and save it in PNG format.
-2. Since you've already found your application, select the application.
-2. In the left pane, select **Properties**.
-4. Upload the logo.
-5. When you're finished, select **Save**.
+1. Since you've already found your application, select the application.
+1. In the left pane, select **Properties**.
+1. Upload the logo.
+1. When you're finished, select **Save**.
![Change the logo](media/add-application-portal/change-logo.png)
diff --git a/articles/active-directory/manage-apps/application-proxy-configure-hard-coded-link-translation.md b/articles/active-directory/manage-apps/application-proxy-configure-hard-coded-link-translation.md
index 466b8fbc8f7aa..b4f0f3277de10 100644
--- a/articles/active-directory/manage-apps/application-proxy-configure-hard-coded-link-translation.md
+++ b/articles/active-directory/manage-apps/application-proxy-configure-hard-coded-link-translation.md
@@ -78,6 +78,31 @@ There are two common types of internal links in on-premises applications:
- **Relative internal links** that point to a shared resource in a local file structure like `/claims/claims.html`. These links automatically work in apps that are published through Application Proxy, and continue to work with or without link translation.
- **Hardcoded internal links** to other on-premises apps like `http://expenses` or published files like `http://expenses/logo.jpg`. The link translation feature works on hardcoded internal links, and changes them to point to the external URLs that remote users need to go through.
+The complete list of HTML code tags that Application Proxy supports link translation for include:
+* a
+* audio
+* base
+* button
+* div
+* embed
+* form
+* frame
+* head
+* html
+* iframe
+* img
+* input
+* link
+* menuitem
+* meta
+* object
+* script
+* source
+* track
+* video
+
+Additionally, within CSS the URL attribute is also translated.
+
### How do apps link to each other?
Link translation is enabled for each application, so that you have control over the user experience at the per-app level. Turn on link translation for an app when you want the links *from* that app to be translated, not links *to* that app.
diff --git a/articles/active-directory/manage-apps/application-proxy-configure-single-sign-on-on-premises-apps.md b/articles/active-directory/manage-apps/application-proxy-configure-single-sign-on-on-premises-apps.md
index 943d09b84c3d9..f5bbbd5e74b97 100644
--- a/articles/active-directory/manage-apps/application-proxy-configure-single-sign-on-on-premises-apps.md
+++ b/articles/active-directory/manage-apps/application-proxy-configure-single-sign-on-on-premises-apps.md
@@ -24,7 +24,7 @@ ms.collection: M365-identity-device-management
You can provide single sign-on (SSO) to on-premises applications that are secured with SAML authentication and provide remote access to these applications through Application Proxy. With SAML single sign-on, Azure Active Directory (Azure AD) authenticates to the application by using the user's Azure AD account. Azure AD communicates the sign-on information to the application through a connection protocol. You can also map users to specific application roles based on rules you define in your SAML claims. By enabling Application Proxy in addition to SAML SSO your users will have external access to the application and a seamless SSO experience.
The applications must be able to consume SAML tokens issued by **Azure Active Directory**.
-This configuration does not apply to applications using an on-premises identity provider. For these scenarios we recommend reviewing [Resources for migrating applications to Azure AD](migration-resources.md).
+This configuration does not apply to applications using an on-premises identity provider. For these scenarios, we recommend reviewing [Resources for migrating applications to Azure AD](migration-resources.md).
SAML SSO with Application Proxy also works with the SAML token encryption feature. For more info, see [Configure Azure AD SAML token encryption](howto-saml-token-encryption.md).
@@ -32,22 +32,23 @@ SAML SSO with Application Proxy also works with the SAML token encryption featur
Before you can provide SSO for on-premises applications, make sure you have enabled Application Proxy and you have a connector installed. See [Add an on-premises application for remote access through Application Proxy in Azure AD](application-proxy-add-on-premises-application.md) to learn how.
-Keep the following in mind when you're going through the tutorial:
+Keep in mind the following when you're going through the tutorial:
* Publish your application according to the instructions in the tutorial. Make sure to select **Azure Active Directory** as the **Pre Authentication** method for your application (step 4 in [Add an on-premises app to Azure AD](application-proxy-add-on-premises-application.md#add-an-on-premises-app-to-azure-ad
)).
* Copy the **External URL** for the application.
* As a best practice, use custom domains whenever possible for an optimized user experience. Learn more about [Working with custom domains in Azure AD Application Proxy](application-proxy-configure-custom-domain.md).
-* Add at least one user to the application and make sure the test account has access to the on-premises application.
+* Add at least one user to the application and make sure the test account has access to the on-premises application. Using the test account test if you can reach the application by visiting the **External URL** to validate Application Proxy is set up correctly. For troubleshooting information, see [Troubleshoot Application Proxy problems and error messages](application-proxy-troubleshoot.md).
## Set up SAML SSO
1. In the Azure portal, select **Azure Active Directory > Enterprise applications** and select the application from the list.
1. From the app's **Overview** page, select **Single sign-on**.
1. Select **SAML** as the single sign-on method.
-1. In the **Set up Single Sign-On with SAML** page, edit the **Basic SAML Configuration** data and follow the steps in [Enter basic SAML configuration](configure-single-sign-on-non-gallery-applications.md#saml-based-single-sign-on) to configure SAML-based authentication for the application.
+1. In the **Set up Single Sign-On with SAML** page, edit the **Basic SAML Configuration** data, and follow the steps in [Enter basic SAML configuration](configure-single-sign-on-non-gallery-applications.md#saml-based-single-sign-on) to configure SAML-based authentication for the application.
- * Make sure the **Reply URL** root matches or is a path under the **External URL** for the on-premises application that you added for remote access through Application Proxy in Azure AD.
+ * Make sure the **Reply URL** matches or is a path under the **External URL** for the on-premises application that you published through Application Proxy. If your application requires a different **Reply URL** for the SAML configuration, add this as the **first** URL in the list and keep the **External URL** as an additional URL, ordered after the first.
+ * Ensure that the application also specifies the correct **Reply URL** or Assertion Consumer Service URL to use for receiving the authentication token.
![Enter basic SAML configuration data](./media/application-proxy-configure-single-sign-on-on-premises-apps/basic-saml-configuration.png)
@@ -59,7 +60,7 @@ Keep the following in mind when you're going through the tutorial:
When you've completed all these steps, your app should be up and running. To test the app:
1. Open a browser and navigate to the external URL that you created when you published the app.
-1. Sign in with the test account that you assigned to the app.
+1. Sign in with the test account that you assigned to the app. You should be able to load the application and have SSO into the application.
## Next steps
diff --git a/articles/active-directory/manage-apps/application-proxy-migration.md b/articles/active-directory/manage-apps/application-proxy-migration.md
index 42ca58847e3b4..0996412060fd6 100644
--- a/articles/active-directory/manage-apps/application-proxy-migration.md
+++ b/articles/active-directory/manage-apps/application-proxy-migration.md
@@ -45,7 +45,7 @@ Use this table to understand how Threat Management Gateway (TMG), Unified Access
| No components in the demilitarized zone (DMZ) | - | - | - | Yes |
| No inbound connections | - | - | - | Yes |
-For most scenarios, we recommend Azure AD Application as the modern solution. Web Application Proxy is only preferred in scenarios that require a proxy server for AD FS, and you can't use custom domains in Azure Active Directory.
+For most scenarios, we recommend Azure AD Application Proxy as the modern solution. Web Application Proxy is only preferred in scenarios that require a proxy server for AD FS, and you can't use custom domains in Azure Active Directory.
Azure AD Application Proxy offers unique benefits when compared to similar products, including:
diff --git a/articles/active-directory/manage-apps/application-proxy-release-version-history.md b/articles/active-directory/manage-apps/application-proxy-release-version-history.md
new file mode 100644
index 0000000000000..189373df73ca5
--- /dev/null
+++ b/articles/active-directory/manage-apps/application-proxy-release-version-history.md
@@ -0,0 +1,88 @@
+---
+title: 'Azure AD Application Proxy: Version release history | Microsoft Docs'
+description: This article lists all releases of Azure AD Application Proxy and describes new features and fixed issues
+services: active-directory
+documentationcenter: ''
+author: msmimart
+manager: celested
+editor: ''
+ms.assetid:
+ms.service: active-directory
+ms.devlang: na
+ms.topic: reference
+ms.tgt_pltfrm: na
+ms.workload: identity
+ms.date: 04/05/2019
+ms.subservice: manage-apps
+ms.author: mimart
+
+ms.collection: M365-identity-device-management
+---
+# Azure AD Application Proxy: Version release history
+This article lists the versions and features of Azure Active Directory (Azure AD) Application Proxy that have been released. The Azure AD team regularly updates Application Proxy with new features and functionality. Application Proxy connectors are updated automatically when a new version is released.
+
+Here is a list of related resources:
+
+Resource | Details
+--------- | --------- |
+How to enable Application Proxy | Pre-requisites for enabling Application Proxy and installing and registering a connector are described in this [tutorial](application-proxy-add-on-premises-application.md).
+Understand Azure AD Application Proxy connectors | Find out more about [connector management](application-proxy-connectors.md) and how connectors [auto-upgrade](application-proxy-connectors.md#automatic-updates).
+Azure AD Application Proxy Connector Download | [Download the latest connector](https://download.msappproxy.net/subscription/d3c8b69d-6bf7-42be-a529-3fe9c2e70c90/connector/download).
+
+## 1.5.612.0
+
+### Release status
+
+September 20, 2018: Released for download
+
+### New features and improvements
+
+- Added WebSocket support for the QlikSense application. To learn more about how to integrate QlikSense with Application Proxy, see this [walkthrough](application-proxy-qlik.md).
+- Improved the installation wizard to make it easier to configure an outbound proxy.
+- Set TLS 1.2 as the default protocol for connectors.
+- Added a new End-User License Agreement (EULA).
+
+### Fixed issues
+
+- Fixed a bug that caused some memory leaks in the connector.
+- Updated the Azure Service Bus version, which includes a bug fix for connector timeout issues.
+
+## 1.5.402.0
+
+### Release status
+
+January 19, 2018: Released for download
+
+### Fixed issues
+
+- Added support for custom domains that need domain translation in the cookie.
+
+## 1.5.132.0
+
+### Release status
+
+May 25, 2017: Released for download
+
+### New features and improvements
+
+Improved control over connectors' outbound connection limits.
+
+## 1.5.36.0
+
+### Release status
+
+April 15, 2017: Released for download
+
+### New features and improvements
+
+- Simplified onboarding and management with fewer required ports. Application Proxy now requires opening only two standard outbound ports: 443 and 80. Application Proxy continues to use only outbound connections, so you still don't need any components in a DMZ. For details, see our [configuration documentation](application-proxy-add-on-premises-application.md).
+- If supported by your external proxy or firewall, you can now open your network by DNS instead of IP range. Application Proxy services require connections to *.msappproxy.net and *.servicebus.windows.net only.
+
+
+## Earlier versions
+
+If you're using an Application Proxy connector version earlier than 1.5.36.0, update to the latest version to ensure you have the latest fully supported features.
+
+## Next steps
+- Learn more about [Remote access to on-premises applications through Azure AD Application Proxy](application-proxy.md).
+- To start using Application Proxy, see [Tutorial: Add an on-premises application for remote access through Application Proxy](application-proxy-add-on-premises-application.md).
diff --git a/articles/active-directory/manage-apps/assign-user-or-group-access-portal.md b/articles/active-directory/manage-apps/assign-user-or-group-access-portal.md
index dffb6b6a9fbe9..b0b1d8eea56ce 100644
--- a/articles/active-directory/manage-apps/assign-user-or-group-access-portal.md
+++ b/articles/active-directory/manage-apps/assign-user-or-group-access-portal.md
@@ -9,7 +9,7 @@ ms.service: active-directory
ms.subservice: app-mgmt
ms.workload: identity
ms.topic: conceptual
-ms.date: 11/15/2018
+ms.date: 04/11/2019
ms.author: celested
ms.reviewer: luleon
ms.collection: M365-identity-device-management
@@ -27,37 +27,32 @@ To assign a user or group to an enterprise app, you must have the appropriate pe
## Assign a user to an app - portal
1. Sign in to the [Azure portal](https://portal.azure.com) with an account that's a global admin for the directory.
-2. Select **All services**, enter Azure Active Directory in the text box, and then select **Enter**.
-3. Select **Enterprise applications**.
-
- ![Opening Enterprise apps](./media/assign-user-or-group-access-portal/open-enterprise-apps.png)
-4. On the **Enterprise applications** blade, select **All applications**. This lists the apps you can manage.
-5. On the **Enterprise applications - All applications** blade, select an app.
-6. On the ***appname*** blade (that is, the blade with the name of the selected app in the title), select **Users & Groups**.
-
- ![Selecting the all applications command](./media/assign-user-or-group-access-portal/select-app-users.png)
-7. On the ***appname*** **- User & Group Assignment** blade, select the **Add** command.
-8. On the **Add Assignment** blade, select **Users and groups**.
+1. Select **All services**, enter Azure Active Directory in the text box, and then select **Enter**.
+1. Select **Enterprise applications**.
+1. On the **Enterprise applications - All applications** pane, you see a list of the apps you can manage. Select an app.
+1. On the ***appname*** pane (that is, the pane with the name of the selected app in the title), select **Users & Groups**.
+1. On the ***appname*** **- User and groups** pane, select **Add user**.
+1. On the **Add Assignment** pane, select **Users and groups**.
![Assign a user or group to the app](./media/assign-user-or-group-access-portal/assign-users.png)
-9. On the **Users and groups** blade, select one or more users or groups from the list and then select the **Select** button at the bottom of the blade.
-10. On the **Add Assignment** blade, select **Role**. Then, on the **Select Role** blade, select a role to apply to the selected users or groups, and then select the **OK** button at the bottom of the blade.
-11. On the **Add Assignment** blade, select the **Assign** button at the bottom of the blade. The assigned users or groups have the permissions defined by the selected role for this enterprise app.
+1. On the **Users and groups** pane, select one or more users or groups from the list and then choose the **Select** button at the bottom of the pane.
+1. On the **Add Assignment** pane, select **Role**. Then, on the **Select Role** pane, select a role to apply to the selected users or groups, then select **OK** at the bottom of the pane.
+1. On the **Add Assignment** pane, select the **Assign** button at the bottom of the pane. The assigned users or groups have the permissions defined by the selected role for this enterprise app.
## Allow all users to access an app - portal
To allow all users to access an application:
1. Sign in to the [Azure portal](https://portal.azure.com) with an account that's a global admin for the directory.
-2. Select **All services**, enter Azure Active Directory in the text box, and then select **Enter**.
-3. Select **Enterprise applications**.
-4. On the **Enterprise applications** blade, select **All applications**. This lists the apps you can manage.
-5. On the **Enterprise applications - All applications** blade, select an app.
-6. On the ***appname*** blade, select **Properties**.
-7. On the ***appname* - Properties** blade, set the **User assignment required?** setting to **No**.
+1. Select **All services**, enter Azure Active Directory in the text box, and then select **Enter**.
+1. Select **Enterprise applications**.
+1. On the **Enterprise applications** pane, select **All applications**. This lists the apps you can manage.
+1. On the **Enterprise applications - All applications** pane, select an app.
+1. On the ***appname*** pane, select **Properties**.
+1. On the ***appname* - Properties** pane, set the **User assignment required?** setting to **No**.
The **User assignment required?** option:
-- Does not affect whether or not an application appears on the application access panel. To show the application on the access panel, you need to assign an appropriate user or group to the application.
+- Doesn't affect whether or not an application appears on the application access panel. To show the application on the access panel, you need to assign an appropriate user or group to the application.
- Only functions with the cloud applications that are configured for SAML single sign-on, and on-premises applications configured with Application Proxy. See [Single sign-on for applications](what-is-single-sign-on.md).
- Requires that users consent to an application. An admin can grant consent for all users. See [Configure the way end-users consent to an application](configure-user-consent.md).
@@ -69,8 +64,8 @@ The **User assignment required?** option:
>[!NOTE]
> You need to install the AzureAD module (use the command `Install-Module -Name AzureAD`). If prompted to install a NuGet module or the new Azure Active Directory V2 PowerShell module, type Y and press ENTER.
-2. Run `Connect-AzureAD` and sign in with a Global Admin user account.
-3. Use the following script to assign a user and role to an application:
+1. Run `Connect-AzureAD` and sign in with a Global Admin user account.
+1. Use the following script to assign a user and role to an application:
```powershell
# Assign the values to the variables
@@ -103,7 +98,7 @@ This example assigns the user Britta Simon to the [Microsoft Workplace Analytics
$app_name = "Workplace Analytics"
```
-2. In this example, we don't know what is the exact name of the application role we want to assign to Britta Simon. Run the following commands to get the user ($user) and the service principal ($sp) using the user UPN and the service principal display names.
+1. In this example, we don't know what is the exact name of the application role we want to assign to Britta Simon. Run the following commands to get the user ($user) and the service principal ($sp) using the user UPN and the service principal display names.
```powershell
# Get the user to assign, and the service principal for the app to assign to
@@ -111,11 +106,11 @@ This example assigns the user Britta Simon to the [Microsoft Workplace Analytics
$sp = Get-AzureADServicePrincipal -Filter "displayName eq '$app_name'"
```
-3. Run the command `$sp.AppRoles` to display the roles available for the Workplace Analytics application. In this example, we want to assign Britta Simon the Analyst (Limited access) Role.
+1. Run the command `$sp.AppRoles` to display the roles available for the Workplace Analytics application. In this example, we want to assign Britta Simon the Analyst (Limited access) Role.
![Workplace Analytics Role](./media/assign-user-or-group-access-portal/workplace-analytics-role.png)
-4. Assign the role name to the `$app_role_name` variable.
+1. Assign the role name to the `$app_role_name` variable.
```powershell
# Assign the values to the variables
@@ -123,7 +118,7 @@ This example assigns the user Britta Simon to the [Microsoft Workplace Analytics
$appRole = $sp.AppRoles | Where-Object { $_.DisplayName -eq $app_role_name }
```
-5. Run the following command to assign the user to the app role:
+1. Run the following command to assign the user to the app role:
```powershell
# Assign the user to the app role
diff --git a/articles/active-directory/manage-apps/certificate-signing-options.md b/articles/active-directory/manage-apps/certificate-signing-options.md
index e385623e7b376..f906e5ba294f2 100644
--- a/articles/active-directory/manage-apps/certificate-signing-options.md
+++ b/articles/active-directory/manage-apps/certificate-signing-options.md
@@ -45,7 +45,7 @@ Azure AD supports two signing algorithms, or secure hash algorithms (SHAs), to s
* **SHA-1**. This algorithm is older, and it's treated as less secure than SHA-256. If an application supports only this signing algorithm, you can select this option in the **Signing Algorithm** drop-down list. Azure AD then signs the SAML response with the SHA-1 algorithm.
-## Change the certificate signing options and certificate signing algorithm
+## Change certificate signing options and signing algorithm
To change an application's SAML certificate signing options and the certificate signing algorithm, select the application in question:
diff --git a/articles/active-directory/manage-apps/configure-authentication-for-federated-users-portal.md b/articles/active-directory/manage-apps/configure-authentication-for-federated-users-portal.md
index 4018bf2c0a5ce..d28869e1e2757 100644
--- a/articles/active-directory/manage-apps/configure-authentication-for-federated-users-portal.md
+++ b/articles/active-directory/manage-apps/configure-authentication-for-federated-users-portal.md
@@ -1,6 +1,6 @@
---
title: Configure sign-in auto-acceleration for an application using a Home Realm Discovery policy | Microsoft Docs
-description: Explains what an Azure AD tenant is, and how to manage Azure through Azure Active Directory.
+description: Learn how to configure Home Realm Discovery policy for Azure Active Directory authentication for federated users, including auto-acceleration and domain hints.
services: active-directory
documentationcenter:
author: CelesteDG
@@ -11,14 +11,15 @@ ms.workload: infrastructure-services
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 06/08/2018
+ms.date: 04/08/2019
ms.author: celested
+ms.custom: seoapril2019
ms.collection: M365-identity-device-management
---
# Configure Azure Active Directory sign in behavior for an application by using a Home Realm Discovery policy
-The following document provides an introduction to configuring Azure Active Directory authentication behavior for federated users. It covers configuration of auto-acceleration and authentication restrictions for users in federated domains.
+This article provides an introduction to configuring Azure Active Directory authentication behavior for federated users. It covers configuration of auto-acceleration and authentication restrictions for users in federated domains.
## Home Realm Discovery
Home Realm Discovery (HRD) is the process that allows Azure Active Directory (Azure AD) to determine where a user needs to authenticate at sign-in time. When a user signs in to an Azure AD tenant to access a resource, or to the Azure AD common sign-in page, they type a user name (UPN). Azure AD uses that to discover where the user needs to sign in.
diff --git a/articles/active-directory/manage-apps/configure-automatic-user-provisioning-portal.md b/articles/active-directory/manage-apps/configure-automatic-user-provisioning-portal.md
index 95144f46e7bf8..bd044a7cd9afa 100644
--- a/articles/active-directory/manage-apps/configure-automatic-user-provisioning-portal.md
+++ b/articles/active-directory/manage-apps/configure-automatic-user-provisioning-portal.md
@@ -12,44 +12,57 @@ ms.devlang: na
ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: identity
-ms.date: 11/13/2018
+ms.date: 04/01/2019
ms.author: celested
ms.reviewer: asmalser
ms.collection: M365-identity-device-management
---
# Managing user account provisioning for enterprise apps in the Azure portal
+
This article describes how to use the [Azure portal](https://portal.azure.com) to manage automatic user account provisioning and de-provisioning for applications that support it. To learn more about automatic user account provisioning and how it works, see [Automate User Provisioning and Deprovisioning to SaaS Applications with Azure Active Directory](user-provisioning.md).
## Finding your apps in the portal
-All applications that are configured for single sign-on in a directory can be viewed and managed in the [Azure portal](https://portal.azure.com). The applications can be found in the **All Services** > **Enterprise Applications** section of the portal. Enterprise apps are apps that are deployed and used within your organization.
-![Enterprise Applications pane](./media/configure-automatic-user-provisioning-portal/enterprise-apps-pane.png)
+Use the Azure Active Directory portal to view and manage all applications that are configured for single sign-on in a directory. Enterprise apps are apps that are deployed and used within your organization. Follow these steps to view and manage your enterprise applications:
+
+1. Open the [Azure Active Directory portal](https://aad.portal.azure.com).
-Selecting the **All applications** link on the left shows a list of all apps that have been configured, including apps that had been added from the gallery. Selecting an app loads the resource pane for that app, where reports can be viewed for that app and a variety of settings can be managed.
+1. Select **Enterprise applications** from the left pane. A list of all configured apps is shown, including apps that were added from the gallery.
-User account provisioning settings can be managed by selecting **Provisioning** on the left.
+1. Select any app to load its resource pane, where you can view reports and manage app settings.
-![Application resource pane](./media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning.png)
+1. Select **Provisioning** to manage user account provisioning settings for the selected app.
+
+ ![Application resource pane](./media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning.png)
## Provisioning modes
-The **Provisioning** pane begins with a **Mode** menu, which shows what provisioning modes are supported for an enterprise application, and allows them to be configured. The available options include:
-* **Automatic** - This option appears if Azure AD supports automatic API-based provisioning and/or de-provisioning of user accounts to this application. Selecting this mode displays an interface that guides administrators through configuring Azure AD to connect to the application's user management API, creating account mappings and workflows that define how user account data should flow between Azure AD and the app, and managing the Azure AD provisioning service.
-* **Manual** - This option is shown if Azure AD does not support automatic provisioning of user accounts to this application. This option means that user account records stored in the application must be managed using an external process, based on the user management and provisioning capabilities provided by that application (which can include SAML Just-In-Time provisioning).
+The **Provisioning** pane begins with a **Mode** menu, which shows the provisioning modes supported for an enterprise application, and lets you configure them. The available options include:
+
+* **Automatic** - This option is shown if Azure AD supports automatic API-based provisioning or de-provisioning of user accounts to this application. Select this mode to display an interface that helps administrators:
+
+ * Configure Azure AD to connect to the application's user management API
+ * Create account mappings and workflows that define how user account data should flow between Azure AD and the app
+ * Manage the Azure AD provisioning service
+
+* **Manual** - This option is shown if Azure AD doesn't support automatic provisioning of user accounts to this application. In this case, user account records stored in the application must be managed using an external process, based on the user management and provisioning capabilities provided by that application (which can include SAML Just-In-Time provisioning).
## Configuring automatic user account provisioning
-Selecting the **Automatic** option displays a screen that is divided in four sections:
+
+Select the **Automatic** option to specify settings for admin credentials, mappings, starting and stopping, and synchronization.
### Admin Credentials
-This section is where the credentials required for Azure AD to connect to the application's user management API are entered. The input required varies depending on the application. To learn about the credential types and requirements for specific applications, see the [configuration tutorial for that specific application](user-provisioning.md).
-Selecting the **Test Connection** button allows you to test the credentials by having Azure AD attempt to connect to the app's provisioning app using the supplied credentials.
+Expand **Admin Credentials** to enter the credentials required for Azure AD to connect to the application's user management API. The input required varies depending on the application. To learn about the credential types and requirements for specific applications, see the [configuration tutorial for that specific application](user-provisioning.md).
+
+Select **Test Connection** to test the credentials by having Azure AD attempt to connect to the app's provisioning app using the supplied credentials.
### Mappings
-This section is where admins can view and edit what user attributes flow between Azure AD and the target application, when user accounts are provisioned or updated.
-There is a preconfigured set of mappings between Azure AD user objects and each SaaS app’s user objects. Some apps manage other types of objects, such as Groups or Contacts. Selecting one of these mappings in the table shows the mapping editor to the right, where they can be viewed and customized.
+Expand **Mappings** to view and edit the user attributes that flow between Azure AD and the target application when user accounts are provisioned or updated.
+
+There's a preconfigured set of mappings between Azure AD user objects and each SaaS app’s user objects. Some apps manage other types of objects, such as Groups or Contacts. Select a mapping in the table to open the mapping editor to the right, where you can view and customize them.
![Application resource pane](./media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning-mapping.png)
@@ -57,21 +70,30 @@ Supported customizations include:
* Enabling and disabling mappings for specific objects, such as the Azure AD user object to the SaaS app's user object.
* Editing the attributes that flow from the Azure AD user object to the app's user object. For more information on attribute mapping, see [Understanding attribute mapping types](customize-application-attributes.md#understanding-attribute-mapping-types).
-* Filter the provisioning actions that Azure AD performs on the targeted application. Instead of having Azure AD fully synchronize objects, you can limit the actions performed. For example, by only selecting **Update**, Azure AD only updates existing user accounts in an application and does not create new ones. By only selecting **Create**, Azure only creates new user accounts but does not update existing ones. This feature allows admins to create different mappings for account creation and update workflows.
+* Filtering the provisioning actions that Azure AD runs on the targeted application. Instead of having Azure AD fully synchronize objects, you can limit the actions run.
+
+ For example, only select **Update** and Azure AD only updates existing user accounts in an application but doesn't create new ones. Only select **Create** and Azure only creates new user accounts but doesn't update existing ones. This feature lets admins create different mappings for account creation and update workflows.
+
+* Adding a new attribute mapping. Select **Add New Mapping** at the bottom of the **Attribute Mapping** pane. Fill out the **Edit Attribute** form and select **Ok** to add the new mapping to the list.
### Settings
-This section allows admins to start and stop the Azure AD provisioning service for the selected application, as well as optionally clear the provisioning cache and restart the service.
-If provisioning is being enabled for the first time for an application, turn on the service by changing the **Provisioning Status** to **On**. This change causes the Azure AD provisioning service to perform an initial sync, where it reads the users assigned in the **Users and groups** section, queries the target application for them, and then performs the provisioning actions defined in the Azure AD **Mappings** section. During this process, the provisioning service stores cached data about what user accounts it is managing, so non-managed accounts inside the target applications that were never in scope for assignment aren't affected by de-provisioning operations. After the initial sync, the provisioning service automatically synchronizes user and group objects on a ten-minute interval.
+You can start and stop the Azure AD provisioning service for the selected application in the **Settings** area of the **Provisioning** screen. You can also choose to clear the provisioning cache and restart the service.
-Changing the **Provisioning Status** to **Off** simply pauses the provisioning service. In this state, Azure does not create, update, or remove any user or group objects in the app. Changing the state back to on causes the service to pick up where it left off.
+If provisioning is being enabled for the first time for an application, turn on the service by changing the **Provisioning Status** to **On**. This change causes the Azure AD provisioning service to run an initial sync. It reads the users assigned in the **Users and groups** section, queries the target application for them, and then runs the provisioning actions defined in the Azure AD **Mappings** section. During this process, the provisioning service stores cached data about what user accounts it's managing, so non-managed accounts inside the target applications that were never in scope for assignment aren't affected by de-provisioning operations. After the initial sync, the provisioning service automatically synchronizes user and group objects on a ten-minute interval.
-Selecting the **Clear current state and restart synchronization** checkbox and saving stops the provisioning service, dumps the cached data about what accounts Azure AD is managing, restarts the services and performs the initial synchronization again. This option allows admins to start the provisioning deployment process over again.
+Change the **Provisioning Status** to **Off** to pause the provisioning service. In this state, Azure doesn't create, update, or remove any user or group objects in the app. Change the state back to **On** and the service picks up where it left off.
-### Synchronization Details
-This section provides addition details about the operation of the provisioning service, including the first and last times the provisioning service ran against the application, and how many user and group objects are being managed.
+Select the **Clear current state and restart synchronization** checkbox and select **Save** to:
+
+* Stop the provisioning service
+* Dump the cached data about what accounts Azure AD is managing
+* Restart the services and run the initial synchronization again
-Links are provided to the **Provisioning activity report** that provides a log of all users and groups created, updated, and removed between Azure AD and the target application, and to the **Provisioning error report** that provides more detailed error messages for user and group objects that failed to be read, created, updated, or removed.
+This option lets admins start the provisioning deployment process over again.
+### Synchronization Details
+This section provides additional details about the operation of the provisioning service, including the first and last times the provisioning service ran against the application, and how many user and group objects it manages.
+A link is provided to the **Provisioning activity report**, which provides a log of all users and groups created, updated, and removed between Azure AD and the target application. A link is also provided to the **Provisioning error report**, which provides more detailed error messages for user and group objects that failed to be read, created, updated, or removed.
diff --git a/articles/active-directory/manage-apps/configure-single-sign-on-portal.md b/articles/active-directory/manage-apps/configure-single-sign-on-portal.md
index 1688f9b302c7d..e5729b2a7ace1 100644
--- a/articles/active-directory/manage-apps/configure-single-sign-on-portal.md
+++ b/articles/active-directory/manage-apps/configure-single-sign-on-portal.md
@@ -8,7 +8,7 @@ ms.service: active-directory
ms.subservice: app-mgmt
ms.topic: tutorial
ms.workload: identity
-ms.date: 12/06/2018
+ms.date: 04/08/2019
ms.author: celested
ms.reviewer: arvinh,luleon
ms.collection: M365-identity-device-management
@@ -33,33 +33,35 @@ This tutorial uses the Azure portal to:
1. If the application hasn't been added to your Azure AD tenant, see [Quickstart: Add an application to your Azure AD tenant](add-application-portal.md).
-2. Ask your application vendor for the information described in [Configure domain and URLS](#configure-domain-and-urls).
+2. Ask your application vendor for the information described in [Configure basic SAML options](#configure-basic-saml-options).
-3. To test the steps in this tutorial, we recommend using a non-production environment. If you don't have an Azure AD non-production environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+3. Use a non-production environment to test the steps in this tutorial. If you don't have an Azure AD non-production environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
4. Sign in to the [Azure portal](https://portal.azure.com) as a cloud application admin, or an application admin for your Azure AD tenant.
## Select a single sign-on mode
-After an application is added to your Azure AD tenant, you're ready to configure single sign-on for the application.
+After you've added an application to your Azure AD tenant, you're ready to configure single sign-on for the application.
To open the single sign-on settings:
-1. In the [Azure portal](https://portal.azure.com), on the left navigation panel, click **Azure Active Directory**.
+1. In the [Azure portal](https://portal.azure.com), on the left navigation panel, select **Azure Active Directory**.
-2. In the **Azure Active Directory** blade, click **Enterprise applications**. The **All applications** blade opens to show a random sample of the applications in your Azure AD tenant.
+2. Under **Manage** in the **Azure Active Directory** navigation panel that appears, select **Enterprise applications**. A random sample of the applications in your Azure AD tenant appears.
-3. In the **Application Type** menu, select **All applications**, and click **Apply**.
+3. In the **Application Type** menu, select **All applications**, and then select **Apply**.
-4. Enter the name of the application for which you want to configure single sign-on. Choose your own application, or enter **GitHub-test** to configure the application you added in the [add application](add-application-portal.md) quickstart.
+4. Enter the name of the application for which you want to configure single sign-on. For example, you can enter **GitHub-test** to configure the application you added in the [add application](add-application-portal.md) quickstart.
-5. Click **Single sign-on**. Under **Single Sign-on Mode**, **SAML-based Sign-on** appears as the default option.
+ ![Screenshot that shows the application search bar.](media/configure-single-sign-on-portal/azure-portal-application-search.png)
- ![Configuration options](media/configure-single-sign-on-portal/config-options.png)
+5. Choose the application for which you want to configure single sign-on.
-6. Click **Save** at the top of the blade.
+6. Under the **Manage** section, select **Single sign-on**.
-## Configure domain and URLs
+7. Select **SAML** to configure single sign-on. The **Set up Single Sign-On with SAML - Preview** page appears.
+
+## Configure basic SAML options
To configure the domain and URLs:
@@ -67,106 +69,94 @@ To configure the domain and URLs:
| Configuration setting | SP-Initiated | idP-Initiated | Description |
|:--|:--|:--|:--|
- | Sign-on URL | Required | Don't specify | When a user opens this URL, the service provider redirects to Azure AD to authenticate and sign on the user. Azure AD uses the URL to start the application from Office 365 or the Azure AD Access Panel. When blank, Azure AD relies on the identity provider to initiate single sign-on when a user launches the application.|
| Identifier (Entity ID) | Required for some apps | Required for some apps | Uniquely identifies the application for which single sign-on is being configured. Azure AD sends the identifier to the application as the Audience parameter of the SAML token. The application is expected to validate it. This value also appears as the Entity ID in any SAML metadata provided by the application.|
| Reply URL | Optional | Required | Specifies where the application expects to receive the SAML token. The reply URL is also referred to as the Assertion Consumer Service (ACS) URL. |
- | Relay State | Optional | Optional | Specifies to the application where to redirect the user after authentication is completed. Typically the value is a valid URL for the application, however some applications use this field differently. For more information, ask the application vendor.
-
-2. Enter the information. To see all the settings, click **Show advanced URL settings**.
+ | Sign-on URL | Required | Don't specify | When a user opens this URL, the service provider redirects to Azure AD to authenticate and sign on the user. Azure AD uses the URL to start the application from Office 365 or the Azure AD Access Panel. When blank, Azure AD relies on the identity provider to start single sign-on when a user launches the application.|
+ | Relay State | Optional | Optional | Specifies to the application where to redirect the user after authentication is completed. Typically the value is a valid URL for the application. However, some applications use this field differently. For more information, ask the application vendor.
+ | Logout URL | Optional | Optional | Used to send the SAML Logout responses back to the application.
- ![Configuration options](media/configure-single-sign-on-portal/config-urls.png)
-3. At the top of the blade, click **Save**.
+2. To edit the basic SAML configuration options, select the **Edit** icon (a pencil) in the upper-right corner of the **Basic SAML Configuration** section.
-4. There's a **Test SAML Settings** button in this section. Run this test later in the tutorial in the [Test single sign-on](#test-single-sign-on) section.
+ ![Configure certificates](media/configure-single-sign-on-portal/basic-saml-configuration-edit-icon.png)
-## Configure user attributes
+3. In the appropriate fields on the page, enter the information provided by the application vendor in step 1.
-User attributes allow you to control what information Azure AD sends to the application in the SAML token each time a user signs on. For example, Azure AD could send the name, email, and employee ID of the user to the application.
+4. At the top of the page, select **Save**.
-These attributes may be required or optional to make single sign-on work properly. For more information, see the [application-specific tutorial](../saas-apps/tutorial-list.md), or ask the application vendor.
+## Configure user attributes and claims
-1. To view all the options, click **View and edit all other user attributes**.
+You can control what information Azure AD sends to the application in the SAML token when a user signs in. You control this information by configuring user attributes. For example, you can configure Azure AD to send the user's name, email, and employee ID to the application when a user signs in.
- ![Configure user attributes](media/configure-single-sign-on-portal/config-user-attributes.png)
+These attributes may be required or optional to make single sign-on work properly. For more information, see the [application-specific tutorial](../saas-apps/tutorial-list.md), or ask the application vendor.
-2. Enter **User Identifier**.
+1. To edit user attributes and claims, select the **Edit** icon (a pencil) in the upper-right corner of the **User Attributes and Claims** section.
- The user identifier uniquely identifies each user within the application. For example, if the email address is both the username and the unique identifier, set the value to *user.mail*.
+ The **Name Identifier Value** is set with the default value of *user.principalname*. The user identifier uniquely identifies each user within the application. For example, if the email address is both the username and the unique identifier, set the value to *user.mail*.
-3. For more SAML token attributes, click **View and edit all other user attributes**.
+2. To modify the **Name Identifier Value**, select the **Edit** icon (a pencil) for the **Name Identifier Value** field. Make the appropriate changes to the identifier format and source, as needed. Save the changes when you're done. For more information about customizing claims, see the [Customize claims issued in the SAML token for enterprise applications](../develop/active-directory-saml-claims-customization.md) how-to article.
-4. To add an attribute to the **SAML Token Attributes**, click **Add attribute**. Enter the **Name** and select the **Value** from the menu.
+3. To add a claim, select **Add new claim** at the top of the page. Enter the **Name** and select the appropriate source. If you select the **Attribute** source, you'll need to choose the **Source attribute** you want to use. If you select the **Translation** source, you'll need to choose the **Transformation** and **Parameter 1** you want to use.
-5. Click **Save**. You see the new attribute in the table.
+4. Select **Save**. The new claim appears in the table.
-## Create a SAML signing certificate
+## Generate a SAML signing certificate
Azure AD uses a certificate to sign the SAML tokens that it sends to the application.
-1. To see all the options, click **Show advanced certificate signing options**.
-
- ![Configure certificates](media/configure-single-sign-on-portal/config-certificate.png)
-
-2. To configure a certificate, click **Create new certificate**.
-
-3. In the **Create New Certificate** blade, set **expiration date**, and click **Save**.
+1. To generate a new certificate, select the **Edit** icon (a pencil) in the upper-right corner of the **SAML Signing Certificate** section.
-4. Click **Make new certificate active**.
+2. In the **SAML Signing Certificate** section, select **New Certificate**.
-5. To learn more, see [Advanced certificate signing options](certificate-signing-options.md).
+3. In the new certificate row that appears, set the **Expiration Date**. For more information about available configuration options, see the [Advanced certificate signing options](certificate-signing-options.md) article.
-6. To keep the changes you have made so far, be sure to click **Save** at the top of the **Single sign-on** blade.
+4. Select **Save** at the top of the **SAML Signing Certificate** section.
## Assign users to the application
-Microsoft recommends testing the single sign-on with several users or groups before rolling out the application to your organization.
+It's a good idea to test the single sign-on with several users or groups before rolling out the application to your organization.
+
+> [!NOTE]
+>
+> These steps take you to the **Users and groups** configuration section in the portal. When you finish, you'll need to navigate back to the **Single sign-on** section to complete the tutorial.
To assign a user or group to the application:
1. Open the application in the portal, if it isn't already open.
-2. In the left application blade, click **Users and groups**.
-3. Click **Add user**.
-4. In the **Add Assignment** blade, click **Users and groups**.
-5. To find a specific user, type the user name into the **Select** box, click the checkbox next to the user’s profile photo or logo, and click **Select**.
-6. Find your current username and select it. You can optionally select more users.
-7. In the **Add Assignment** blade, click **Assign**. When completed, the selected users appear in the **Users and groups** list.
-
-## Configure the application to use Azure AD
-
-You're almost done. As a final step, you need to configure the application to use Azure AD as a SAML identity provider.
+2. In the left navigation panel for the application, select **Users and groups**.
+3. Select **Add user**.
+4. In the **Add Assignment** section, select **Users and groups**.
+5. To find a specific user, type the user name into the **Select member or invite an external user** box. Then, select the user’s profile photo or logo, and then choose **Select**.
+6. In the **Add Assignment** section, select **Assign**. When finished, the selected users appear in the **Users and groups** list.
-1. Scroll down to the end of the **Single sign-on** blade for your application.
+## Set up the application to use Azure AD
- ![Configure application](media/configure-single-sign-on-portal/configure-app.png)
+You're almost done. As a final step, you need to set up the application to use Azure AD as a SAML identity provider.
-2. Click **Configure application** in the portal, and follow the instructions.
-3. Manually create user accounts in the application to test single sign-on. Create the user accounts you assigned to the application in the [previous section](#assign-users-to-the-application).
+1. Scroll down to the **Set up ** section. For this tutorial, this section is called **Set up GitHub-test**.
+2. Copy the value from each row in this section. Then, paste each value into the appropriate row in the **Basic SAML Configuration** section. For example, copy the **Login URL** value from the **Set up GitHub-test** section and paste it into the **Sign On URL** field in the **Basic SAML Configuration** section, and so on.
+3. When you've pasted all the values into the appropriate fields, select **Save**.
## Test single sign-on
-You are ready to test your settings.
+You're ready to test your settings.
1. Open the single sign-on settings for your application.
-2. Scroll to the **Configure domain and URLs** section.
-2. Click **Test SAML Settings**. The testing options appear.
+2. Scroll to the **Validate single sign-on with ** section. For this tutorial, this section is called **Set up GitHub-test**.
+3. Select **Test**. The testing options appear.
+4. Select **Sign in as current user**. This test lets you first see if single sign-on works for you, the admin.
- ![Test single sign-on options](media/configure-single-sign-on-portal/test-single-sign-on.png)
+If there's an error, an error message appears. Complete the following steps:
-3. Click **Sign in as current user**. This test lets you first see if single sign-on works for you, the admin.
-4. If there's an error, an error message appears. Copy and paste the specifics into the **What does the error look like?** box.
+1. Copy and paste the specifics into the **What does the error look like?** box.
![Get resolution guidance](media/configure-single-sign-on-portal/error-guidance.png)
-5. Click **Get resolution guidance**. The root cause and resolution guidance appear. In this example, the user wasn't assigned to the application.
-
- ![Fix error](media/configure-single-sign-on-portal/fix-error.png)
-
-6. Read the resolution guidance and then, if appropriate, click **Fix it**.
-
-7. Run the test again until it completes successfully.
+2. Select **Get resolution guidance**. The root cause and resolution guidance appear. In this example, the user wasn't assigned to the application.
+3. Read the resolution guidance and then, if possible, fix the issue.
+4. Run the test again until it completes successfully.
## Next steps
In this tutorial, you configured the single sign-on settings for an application. After finishing the configuration, you assigned a user to the application, and configured the application to use SAML-based single sign-on. When all of this work was finished, you verified the SAML sign-on is working properly.
@@ -181,7 +171,7 @@ You did these things:
> * Configured the application to use Azure AD as a SAML identity provider
> * Tested the SAML-based single sign-on
-To roll out the application to more users in your organization, we recommend using automatic user provisioning.
+To roll out the application to more users in your organization, use automatic user provisioning.
> [!div class="nextstepaction"]
> [Learn how to assign users with automatic provisioning](configure-automatic-user-provisioning-portal.md)
diff --git a/articles/active-directory/manage-apps/customize-application-attributes.md b/articles/active-directory/manage-apps/customize-application-attributes.md
index 65462915060ab..4c844d5840f21 100644
--- a/articles/active-directory/manage-apps/customize-application-attributes.md
+++ b/articles/active-directory/manage-apps/customize-application-attributes.md
@@ -12,35 +12,44 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 09/09/2018
+ms.date: 04/03/2019
ms.author: celested
ms.custom: H1Hack27Feb2017
ms.collection: M365-identity-device-management
---
# Customizing User Provisioning Attribute-Mappings for SaaS Applications in Azure Active Directory
-Microsoft Azure AD provides support for user provisioning to third-party SaaS applications such as Salesforce, Google Apps and others. If you have user provisioning for a third-party SaaS application enabled, the Azure portal controls its attribute values in form of attribute-mappings.
+Microsoft Azure AD provides support for user provisioning to third-party SaaS applications such as Salesforce, Google Apps and others. If you enable user provisioning for a third-party SaaS application, the Azure portal controls its attribute values through attribute-mappings.
-There is a pre-configured set of attributes and attribute-mappings between Azure AD user objects and each SaaS app’s user objects. Some apps manage other types of objects in addition to Users, such as Groups.
- You can customize the default attribute-mappings according to your business needs. This means, you can change or delete existing attribute-mappings, or create new attribute-mappings.
+There's a pre-configured set of attributes and attribute-mappings between Azure AD user objects and each SaaS app’s user objects. Some apps manage other types of objects along with Users, such as Groups.
+
+You can customize the default attribute-mappings according to your business needs. So, you can change or delete existing attribute-mappings, or create new attribute-mappings.
## Editing user attribute-mappings
-In the Azure AD portal, you can access this feature by clicking a **Mappings** configuration under **Provisioning** in the **Manage** section of an **Enterprise application**.
+Follow these steps to access the **Mappings** feature of user provisioning:
+
+1. Sign in to the [Azure Active Directory portal](https://aad.portal.azure.com).
+
+1. Select **Enterprise applications** from the left pane. A list of all configured apps is shown, including apps that were added from the gallery.
+1. Select any app to load its app management pane, where you can view reports and manage app settings.
-![Salesforce](./media/customize-application-attributes/21.png)
+1. Select **Provisioning** to manage user account provisioning settings for the selected app.
-Clicking a **Mappings** configuration, opens the related **Attribute-Mapping** screen. There are attribute-mappings that are required by a SaaS application to function correctly. For required attributes, the **Delete** feature is unavailable.
+1. Expand **Mappings** to view and edit the user attributes that flow between Azure AD and the target application. If the target application supports it, this section lets you optionally configure provisioning of groups and user accounts.
+ ![Salesforce](./media/customize-application-attributes/21.png)
-![Salesforce](./media/customize-application-attributes/22.png)
+1. Select a **Mappings** configuration to open the related **Attribute Mapping** screen. Some attribute-mappings are required by a SaaS application to function correctly. For required attributes, the **Delete** feature is unavailable.
-In the example above, you can see that the **Username** attribute of a managed object in Salesforce is populated with the **userPrincipalName** value of the linked Azure Active Directory Object.
+ ![Salesforce](./media/customize-application-attributes/22.png)
-You can customize existing **Attribute-Mappings** by clicking a mapping. This opens the **Edit Attribute** screen.
+ In this screenshot, you can see that the **Username** attribute of a managed object in Salesforce is populated with the **userPrincipalName** value of the linked Azure Active Directory Object.
-![Salesforce](./media/customize-application-attributes/23.png)
+1. Select an existing **Attribute Mapping** to open the **Edit Attribute** screen. Here you can edit the user attributes that flow between Azure AD and the target application.
+
+ ![Salesforce](./media/customize-application-attributes/23.png)
### Understanding attribute-mapping types
@@ -48,35 +57,35 @@ With attribute-mappings, you control how attributes are populated in a third-par
There are four different mapping types supported:
* **Direct** – the target attribute is populated with the value of an attribute of the linked object in Azure AD.
-* **Constant** – the target attribute is populated with a specific string you have specified.
+* **Constant** – the target attribute is populated with a specific string you specified.
* **Expression** - the target attribute is populated based on the result of a script-like expression.
For more information, see [Writing Expressions for Attribute-Mappings in Azure Active Directory](functions-for-customizing-application-data.md).
-* **None** - the target attribute is left unmodified. However, if the target attribute is ever empty, it is populated with the Default value that you specify.
+* **None** - the target attribute is left unmodified. However, if the target attribute is ever empty, it's populated with the Default value that you specify.
-In addition to these four basic types, custom attribute-mappings support the concept of an optional **default** value assignment. The default value assignment ensures that a target attribute is populated with a value if there is neither a value in Azure AD nor on the target object. The most common configuration is to leave this blank.
+Along with these four basic types, custom attribute-mappings support the concept of an optional **default** value assignment. The default value assignment ensures that a target attribute is populated with a value if there's not a value in Azure AD or on the target object. The most common configuration is to leave this blank.
### Understanding attribute-mapping properties
-In the previous section, you have already been introduced to the attribute-mapping type property.
-In addition to this property, attribute-mappings do also support the following attributes:
+In the previous section, you were already introduced to the attribute-mapping type property.
+Along with this property, attribute-mappings also support the following attributes:
- **Source attribute** - The user attribute from the source system (example: Azure Active Directory).
- **Target attribute** – The user attribute in the target system (example: ServiceNow).
-- **Match objects using this attribute** – Whether or not this mapping should be used to uniquely identify users between the source and target systems. This is typically set on the userPrincipalName or mail attribute in Azure AD, which is typically mapped to a username field in a target application.
-- **Matching precedence** – Multiple matching attributes can be set. When there are multiple, they are evaluated in the order defined by this field. As soon as a match is found, no further matching attributes are evaluated.
+- **Match objects using this attribute** – Whether this mapping should be used to uniquely identify users between the source and target systems. It's typically set on the userPrincipalName or mail attribute in Azure AD, which is typically mapped to a username field in a target application.
+- **Matching precedence** – Multiple matching attributes can be set. When there are multiple, they're evaluated in the order defined by this field. As soon as a match is found, no further matching attributes are evaluated.
- **Apply this mapping**
- - **Always** – Apply this mapping on both user creation and update actions
- - **Only during creation** - Apply this mapping only on user creation actions
+ - **Always** – Apply this mapping on both user creation and update actions.
+ - **Only during creation** - Apply this mapping only on user creation actions.
## Editing group attribute-mappings
-A selected number of applications, such as ServiceNow, Box, and Google Apps, support the ability to provision Group objects in addition to User objects. Group objects can contain group properties such as display names and email aliases, in addition to group members.
+A selected number of applications, such as ServiceNow, Box, and Google Apps, support the ability to provision Group objects and User objects. Group objects can contain group properties such as display names and email aliases, along with group members.
![ServiceNow](./media/customize-application-attributes/24.png)
-Group provisioning can be optionally enabled or disabled by selecting the group mapping under **Mappings**, and setting **Enabled** to the desired option in the **Attribute-Mapping** screen.
+Group provisioning can be optionally enabled or disabled by selecting the group mapping under **Mappings**, and setting **Enabled** to the option you want in the **Attribute Mapping** screen.
The attributes provisioned as part of Group objects can be customized in the same manner as User objects, described previously.
@@ -86,9 +95,9 @@ The attributes provisioned as part of Group objects can be customized in the sam
## Editing the list of supported attributes
-The user attributes supported for a given application are pre-configured. Most application's user management APIs do not support schema discovery, therefore the Azure AD provisioning service is not able to dynamically generate the list of supported attributes by making calls to the application.
+The user attributes supported for a given application are pre-configured. Most application's user management APIs don't support schema discovery. So, the Azure AD provisioning service isn't able to dynamically generate the list of supported attributes by making calls to the application.
-However, some applications support custom attributes. In order for the Azure AD provisioning service to be able to read and write to custom attributes, their definitions must be entered into the Azure portal using the **Show advanced options** check box at the bottom of the **Attribute-Mapping** screen.
+However, some applications support custom attributes, and the Azure AD provisioning service can read and write to custom attributes. To enter their definitions into the Azure portal, select the **Show advanced options** check box at the bottom of the **Attribute Mapping** screen, and then select **Edit attribute list for** your app.
Applications and systems that support customization of the attribute list include:
@@ -101,35 +110,33 @@ Applications and systems that support customization of the attribute list includ
>[!NOTE]
>Editing the list of supported attributes is only recommended for administrators who have customized the schema of their applications and systems, and have first-hand knowledge of how their custom attributes have been defined. This sometimes requires familiarity with the APIs and developer tools provided by an application or system.
-![Editor](./media/customize-application-attributes/25.png)
-
When editing the list of supported attributes, the following properties are provided:
* **Name** - The system name of the attribute, as defined in the target object's schema.
-* **Type** - The type of data the attribute stores, as defined in the target object's schema. This can be one of the following:
+* **Type** - The type of data the attribute stores, as defined in the target object's schema, which can be one of the following types:
* *Binary* - Attribute contains binary data.
* *Boolean* - Attribute contains a True or False value.
* *DateTime* - Attribute contains a date string.
* *Integer* - Attribute contains an integer.
* *Reference* - Attribute contains an ID that references a value stored in another table in the target application.
* *String* - Attribute contains a text string.
-* **Primary Key?** - Whether or not the attribute is defined as a primary key field in the target object's schema.
-* **Required?** - Whether or not the attribute is required to be populated in the target application or system.
-* **Multi-value?** - Whether or not the attribute supports multiple values.
-* **Exact case?** - Whether or not the attributes values are evaluated in a case-sensitive way.
-* **API Expression** - Do not use, unless instructed to do so by the documentation for a specific provisioning connector (such as Workday).
-* **Referenced Object Attribute** - If this is a Reference type attribute, then this menu allows you to select the table and attribute in the target application that contains the value associated with the attribute. For example, if you have an attribute named "Department" whose stored value references an object in a separate "Departments" table, you would select "Departments.Name". Note that the reference tables and the primary ID fields supported for a given application are pre-configured and currently cannot be edited using the Azure portal, but can be edited using the [Graph API](https://developer.microsoft.com/graph/docs/api-reference/beta/resources/synchronization-configure-with-custom-target-attributes).
+* **Primary Key?** - Whether the attribute is defined as a primary key field in the target object's schema.
+* **Required?** - Whether the attribute is required to be populated in the target application or system.
+* **Multi-value?** - Whether the attribute supports multiple values.
+* **Exact case?** - Whether the attributes values are evaluated in a case-sensitive way.
+* **API Expression** - Don't use, unless instructed to do so by the documentation for a specific provisioning connector (such as Workday).
+* **Referenced Object Attribute** - If it's a Reference type attribute, then this menu lets you select the table and attribute in the target application that contains the value associated with the attribute. For example, if you have an attribute named "Department" whose stored value references an object in a separate "Departments" table, you would select "Departments.Name". The reference tables and the primary ID fields supported for a given application are pre-configured and currently can't be edited using the Azure portal, but can be edited using the [Graph API](https://developer.microsoft.com/graph/docs/api-reference/beta/resources/synchronization-configure-with-custom-target-attributes).
-To add a new attribute, scroll to the end of the list of supported attributes, populate the fields above using the provided inputs, and select **Add Attribute**. Select **Save** when finished adding attributes. You will then need to reload the **Provisioning** tab for the new attributes to become available in the attribute-mapping editor.
+To add a new attribute, scroll to the end of the list of supported attributes, populate the fields above using the provided inputs, and select **Add Attribute**. Select **Save** when finished adding attributes. You then need to reload the **Provisioning** tab for the new attributes to become available in the attribute-mapping editor.
## Restoring the default attributes and attribute-mappings
-Should you need to start over, and reset your existing mappings back to their default state, you can select the **Restore default mappings** check box and save the configuration. This sets all mappings as if the application had just been added to your Azure AD tenant from the application gallery.
+Should you need to start over and reset your existing mappings back to their default state, you can select the **Restore default mappings** check box and save the configuration. Doing so sets all mappings as if the application was just added to your Azure AD tenant from the application gallery.
-Selecting this option will effectively force a re-synchronization of all users while the provisioning service is running.
+Selecting this option will effectively force a resynchronization of all users while the provisioning service is running.
>[!IMPORTANT]
->It is strongly recommended that **Provisioning status** be set to **Off** before invoking this option.
+>We strongly recommend that **Provisioning status** be set to **Off** before invoking this option.
## What you should know
@@ -138,7 +145,7 @@ Selecting this option will effectively force a re-synchronization of all users w
* Updating attribute-mappings has an impact on the performance of a synchronization cycle. An update to the attribute-mapping configuration requires all managed objects to be reevaluated.
-* It is a recommended best practice to keep the number of consecutive changes to your attribute-mappings at a minimum.
+* A recommended best practice is to keep the number of consecutive changes to your attribute-mappings at a minimum.
## Next steps
diff --git a/articles/active-directory/manage-apps/disable-user-sign-in-portal.md b/articles/active-directory/manage-apps/disable-user-sign-in-portal.md
index fddfc18cd1748..69a9bc823c94e 100644
--- a/articles/active-directory/manage-apps/disable-user-sign-in-portal.md
+++ b/articles/active-directory/manage-apps/disable-user-sign-in-portal.md
@@ -12,7 +12,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 08/28/2017
+ms.date: 04/12/2019
ms.author: celested
ms.reviewer: asteen
ms.custom: it-pro
@@ -20,21 +20,16 @@ ms.custom: it-pro
ms.collection: M365-identity-device-management
---
# Disable user sign-ins for an enterprise app in Azure Active Directory
-It's easy to disable an enterprise application so that no users may sign in to it in Azure Active Directory (Azure AD). You must have the appropriate permissions to manage the enterprise app, and you must be global admin for the directory.
+It's easy to disable an enterprise application so no users can sign in to it in Azure Active Directory (Azure AD). You need the appropriate permissions to manage the enterprise app. And, you must be global admin for the directory.
## How do I disable user sign-ins?
1. Sign in to the [Azure portal](https://portal.azure.com) with an account that's a global admin for the directory.
-2. Select **All services**, enter **Azure Active Directory** in the text box, and then select **Enter**.
-3. On the **Azure Active Directory** - ***directoryname*** pane (that is, the Azure AD pane for the directory you are managing), select **Enterprise applications**.
-
- ![Opening Enterprise apps](./media/disable-user-sign-in-portal/open-enterprise-apps.png)
-4. On the **Enterprise applications** pane, select **All applications**. You see a list of the apps you can manage.
-5. On the **Enterprise applications - All applications** pane, select an app.
-6. On the ***appname*** pane (that is, the pane with the name of the selected app in the title), select **Properties**.
-
- ![Selecting the all applications command](./media/disable-user-sign-in-portal/select-app.png)
-7. On the ***appname*** - **Properties** pane, select **No** for **Enabled for users to sign-in?**.
-8. Select the **Save** command.
+1. Select **All services**, enter **Azure Active Directory** in the text box, and then select **Enter**.
+1. On the **Azure Active Directory** - ***directoryname*** pane (that is, the Azure AD pane for the directory you're managing), select **Enterprise applications**.
+1. On the **Enterprise applications - All applications** pane, you see a list of the apps you can manage. Select an app.
+1. On the ***appname*** pane (that is, the pane with the name of the selected app in the title), select **Properties**.
+1. On the ***appname*** - **Properties** pane, select **No** for **Enabled for users to sign-in?**.
+1. Select the **Save** command.
## Next steps
* [See all my groups](../fundamentals/active-directory-groups-view-azure-portal.md)
diff --git a/articles/active-directory/manage-apps/manage-access-panel-browser-extension.md b/articles/active-directory/manage-apps/manage-access-panel-browser-extension.md
index 4b1d8430a7bb2..53243c2c01b7a 100644
--- a/articles/active-directory/manage-apps/manage-access-panel-browser-extension.md
+++ b/articles/active-directory/manage-apps/manage-access-panel-browser-extension.md
@@ -1,5 +1,5 @@
---
-title: Troubleshooting the Azure Access Panel Extension for IE | Microsoft Docs
+title: Troubleshoot the Azure Access Panel Extension for IE | Microsoft Docs
description: How to use group policy to deploy the Internet Explorer add-on for the My Apps portal.
services: active-directory
documentationcenter: ''
@@ -11,82 +11,81 @@ ms.devlang: na
ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: identity
-ms.date: 09/11/2018
+ms.date: 04/11/2019
ms.author: celested
ms.reviewer: asteen
ms.custom: H1Hack27Feb2017
ms.collection: M365-identity-device-management
---
-# Troubleshooting the Access Panel Extension for Internet Explorer
+# Troubleshoot the Access Panel Extension for Internet Explorer
+
This article helps you troubleshoot the following problems:
* You're unable to access your apps through the My Apps portal while using Internet Explorer.
* You see the "Install Software" message even though you've already installed the software.
-If you are an admin, see also: [How to Deploy the Access Panel Extension for Internet Explorer using Group Policy](deploy-access-panel-browser-extension.md)
+If you're an admin, see [How to Deploy the Access Panel Extension for Internet Explorer using Group Policy](deploy-access-panel-browser-extension.md).
-## Run the Diagnostic Tool
-You can diagnose installation problems with the Access Panel Extension by downloading and running the Access Panel diagnostic tool:
+## Run the diagnostic tool
-1. [Click here to download the diagnostic tool.](https://account.activedirectory.windowsazure.com/applications/AccessPanelExtensionDiagnosticTool/AccessPanelExtensionDiagnosticTool.zip)
-2. Open the file, and press **Extract all** button.
-
- ![Press Extract All](./media/manage-access-panel-browser-extension/extract1.png)
-3. Then press the **Extract** button to continue.
-
- ![Press Extract](./media/manage-access-panel-browser-extension/extract2.png)
-4. To run the tool, right-click the file named **AccessPanelExtensionDiagnosticTool**, then select **Open with > Microsoft Windows Based Script Host**.
+You can diagnose installation problems with the Access Panel Extension by downloading and running the Access Panel diagnostic tool.
+
+To download and install the diagnostic tool:
+
+1. [Select this link to download the diagnostic tool.](https://account.activedirectory.windowsazure.com/applications/AccessPanelExtensionDiagnosticTool/AccessPanelExtensionDiagnosticTool.zip)
+
+2. Open the file and extract the contents to your computer.
- ![Open with > Microsoft Windows Based Script Host](./media/manage-access-panel-browser-extension/open_tool.png)
-5. You will then see the following diagnostic window, which describes what might be wrong with your installation.
+3. To run the tool, right-click the file named *AccessPanelExtensionDiagnosticTool.js* and select **Open with** > **Microsoft Windows Based Script Host**.
- ![A sample of the diagnostic window](./media/manage-access-panel-browser-extension/tool_preview.png)
-6. Click "**YES**" to let the program fix the issues that have been found.
-7. To save these changes, close every Internet Explorer window, and then open Internet Explorer again. If you still can't access your apps, try the steps below.
+ ![Open with > Microsoft Windows Based Script Host](./media/manage-access-panel-browser-extension/open-access-panel-extension-diagnostic-tool.png)
+
+4. Review the diagnostic results that appear and select **Yes** to fix the issues. The **Check Results** dialog box appears with information about what to do if the extension doesn't work.
+
+5. Read the message and select **OK**.
## Check that the Access Panel Extension is enabled
-To verify that the Access Panel Extension is enabled in Internet Explorer:
-1. In Internet Explorer, click the **Gear icon** on the top right corner of the window. Then select **Internet options**. (In older versions of Internet Explorer you can find this under **Tools > Internet options**.
+To verify that you've enabled the Access Panel Extension in Internet Explorer:
+
+1. In Internet Explorer, select the **Gear icon** on the upper-right corner of the window and select **Internet options**.
- ![Go to Tools > Internet Options](./media/manage-access-panel-browser-extension/internetoptions.png)
-2. Click the **Programs** tab, then click the **Manage add-ons** button.
+2. Go to the **Programs** tab and select **Manage add-ons**.
- ![Click Manage Add-Ons](./media/manage-access-panel-browser-extension/internetoptions_programs.png)
-3. In this dialog, select **Access Panel Extension** and then click the **Enable** button.
+3. Select **Access Panel Extension** in the **Microsoft Corporation** section and select **Enable**.
- ![Click Enable](./media/manage-access-panel-browser-extension/enableaddon.png)
-4. To save these changes, close every Internet Explorer window and then open Internet Explorer again.
+4. To save the changes, close all of the Internet Explorer browser windows you have open. The change takes effect the next time you open Internet Explorer.
+
+## Enable extensions for InPrivate Browsing
-## Enable Extensions for InPrivate Browsing
-If you are using the InPrivate Browsing mode:
+To enable extensions for InPrivate Browsing:
-1. In Internet Explorer, click the **Gear icon** on the top right corner of the window. Then select **Internet options**. (In older versions of Internet Explorer you can find this under **Tools > Internet options**.
+1. In Internet Explorer, select the **Gear icon** on the upper-right corner of the window and select **Internet options**.
- ![A sample of the diagnostic window](./media/manage-access-panel-browser-extension/inprivateoptions.png)
-2. Go to the **Privacy** tab, then **uncheck** the checkbox labeled **Disable toolbars and extensions when InPrivate Browsing starts**
+2. Go to the **Privacy** tab and verify that the **Disable toolbars and extensions when InPrivate Browsing starts** check box is clear.
- ![Uncheck Disable toolbars and extensions when InPrivate Browsing starts](./media/manage-access-panel-browser-extension/enabletoolbars.png)
-3. To save these changes, close every Internet Explorer window and then open Internet Explorer again.
+3. To save the changes, close all of the Internet Explorer browser windows you have open. The change takes effect the next time you open Internet Explorer.
## Uninstall the Access Panel Extension
-To uninstall the Access Panel extension from your computer:
-1. On your keyboard, press the **Windows key** to open the Start menu. When the menu is open, you can type anything to do a search. Type "Control Panel" and then open the **Control Panel** when it appears in the search results.
-
- ![Search for Control Panel](./media/manage-access-panel-browser-extension/search_sm.png)
-2. In the top right corner of the Control Panel, change the **View by** option to **Large icons**. Then find and click the **Programs and Features** button.
+To uninstall the Access Panel Extension from your computer:
+
+1. In Control Panel, search for *uninstall*.
+
+2. In the search results, select **Uninstall a program**.
- ![Chang the view to show Large Icons](./media/manage-access-panel-browser-extension/control_panel.png)
-3. From the list, select **Access Panel Extension**, and the click the **Uninstall** button.
+ ![Search for uninstall program.](./media/manage-access-panel-browser-extension/uninstall-program-control-panel.png)
+
+3. From the list, select **Access Panel Extension** and select **Uninstall**.
+
+ ![Uninstall the Access Panel Extension.](./media/manage-access-panel-browser-extension/uninstall-access-panel-extension.png)
- ![Click Uninstall](./media/manage-access-panel-browser-extension/uninstall.png)
4. You can then try to install the extension again to see if the problem has been resolved.
-If you encounter issues uninstalling the extension, you can also remove it using the [Microsoft Fix It](https://go.microsoft.com/?linkid=9779673) tool.
+If you run into issues uninstalling the extension, you can also remove it using the [Microsoft Fix It](https://go.microsoft.com/?linkid=9779673) tool.
-## Related Articles
+## Related articles
* [Application access and single sign-on with Azure Active Directory](what-is-single-sign-on.md)
-* [How to Deploy the Access Panel Extension for Internet Explorer using Group Policy](deploy-access-panel-browser-extension.md)
+* [How to deploy the Access Panel Extension for Internet Explorer using Group Policy](deploy-access-panel-browser-extension.md)
diff --git a/articles/active-directory/manage-apps/manage-certificates-for-federated-single-sign-on.md b/articles/active-directory/manage-apps/manage-certificates-for-federated-single-sign-on.md
index b7ba6a6ae69f3..f35f1944bc458 100644
--- a/articles/active-directory/manage-apps/manage-certificates-for-federated-single-sign-on.md
+++ b/articles/active-directory/manage-apps/manage-certificates-for-federated-single-sign-on.md
@@ -12,80 +12,118 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 09/11/2018
+ms.date: 04/04/2019
ms.author: celested
ms.reviewer: jeedes
ms.collection: M365-identity-device-management
---
# Manage certificates for federated single sign-on in Azure Active Directory
-This article covers common questions and information related to the certificates that Azure Active Directory (Azure AD) creates to establish federated single sign-on (SSO) to your SaaS applications. Add applications from the Azure AD app gallery or by using a non-gallery application template. Configure the application by using the federated SSO option.
-This article is relevant only to apps that are configured to use Azure AD SSO through SAML federation, as shown in the following example:
+In this article, we cover common questions and information related to certificates that Azure Active Directory (Azure AD) creates to establish federated single sign-on (SSO) to your software as a service (SaaS) applications. Add applications from the Azure AD app gallery or by using a non-gallery application template. Configure the application by using the federated SSO option.
-![Azure AD Single Sign-On](./media/manage-certificates-for-federated-single-sign-on/saml_sso.PNG)
+This article is relevant only to apps that are configured to use Azure AD SSO through [Security Assertion Markup Language](https://wikipedia.org/wiki/Security_Assertion_Markup_Language) (SAML) federation.
## Auto-generated certificate for gallery and non-gallery applications
-When you add a new application from the gallery and configure a SAML-based sign-on, Azure AD generates a certificate for the application that is valid for three years. You can download this certificate from the **SAML Signing Certificate** section. For gallery applications, this section might show an option to download the certificate or metadata, depending on the requirement of the application.
-![Azure AD single sign-on](./media/manage-certificates-for-federated-single-sign-on/saml_certificate_download.png)
+When you add a new application from the gallery and configure a SAML-based sign-on (by selecting **Single sign-on** > **SAML** from the application overview page), Azure AD generates a certificate for the application that is valid for three years. To download the active certificate as a security certificate (**.cer**) file, return to that page (**SAML-based sign-on**) and select a download link in the **SAML Signing Certificate** heading. You can choose between the raw (binary) certificate or the Base64 (base 64-encoded text) certificate. For gallery applications, this section might also show a link to download the certificate as federation metadata XML (an **.xml** file), depending on the requirement of the application.
+
+![SAML active signing certificate download options](./media/manage-certificates-for-federated-single-sign-on/active-certificate-download-options.png)
+
+You can also download an active or inactive certificate by selecting the **SAML Signing Certificate** heading's **Edit** icon (a pencil), which displays the **SAML Signing Certificate** page. Select the ellipsis (**...**) next to the certificate you want to download, and then choose which certificate format you want. You have the additional option to download the certificate in privacy-enhanced mail (PEM) format. This format is identical to Base64 but with a **.pem** file name extension, which isn't recognized in Windows as a certificate format.
+
+![SAML signing certificate download options (active and inactive)](./media/manage-certificates-for-federated-single-sign-on/all-certificate-download-options.png)
## Customize the expiration date for your federation certificate and roll it over to a new certificate
-By default, certificates are set to expire after three years. You can choose a different expiration date for your certificate by completing the following steps.
-The screenshots use Salesforce for the sake of example, but these steps can apply to any federated SaaS app.
-1. In the [Azure portal](https://aad.portal.azure.com), click **Enterprise application** in the left pane and then click **New application** on the **Overview** page:
+By default, Azure configures a certificate to expire after three years when it is created automatically during SAML single sign-on configuration. Because you can't change the date of a certificate after you save it, you have to:
+
+1. Create a new certificate with the desired date.
+2. Save the new certificate.
+3. Download the new certificate in the correct format.
+4. Upload the new certificate to the application.
+5. Make the new certificate active in the Azure Active Directory portal.
+
+The following two sections help you perform these steps.
+
+### Create a new certificate
+
+First, create and save new certificate with a different expiration date:
+
+1. Sign in to the [Azure Active Directory portal](https://aad.portal.azure.com/). The **Azure Active Directory admin center** page appears.
+
+2. In the left pane, select **Enterprise applications**. A list of the enterprise applications in your account appears.
+
+3. Select the affected application. An overview page for the application appears.
- ![Open the SSO configuration wizard](./media/manage-certificates-for-federated-single-sign-on/enterprise_application_new_application.png)
+4. In the left pane of the application overview page, select **Single sign-on**.
-2. Search for the gallery application and then select the application that you want to add. If you cannot find the required application, add the application by using the **Non-gallery application** option. This feature is available only in the Azure AD Premium (P1 and P2) SKU.
+5. If the **Select a single sign-on method** page appears, select **SAML**.
- ![Azure AD single sign-on](./media/manage-certificates-for-federated-single-sign-on/add_gallery_application.png)
+6. In the **Set up Single Sign-On with SAML - Preview** page, find the **SAML Signing Certificate** heading and select the **Edit** icon (a pencil). The **SAML Signing Certificate** page appears, which displays the status (**Active** or **Inactive**), expiration date, and thumbprint (a hash string) of each certificate.
-3. Click the **Single sign-on** link in the left pane and change **Single Sign-on Mode** to **SAML-based Sign-on**. This step generates a three-year certificate for your application.
+7. Select **New Certificate**. A new row appears below the certificate list, where the expiration date defaults to exactly three years after the current date. (Your changes haven't been saved yet, so you can still modify the expiration date.)
-4. To create a new certificate, click the **Create new certificate** link in the **SAML Signing Certificate** section.
+8. In the new certificate row, hover over the expiration date column and select the **Select Date** icon (a calendar). A calendar control appears, displaying the days of a month of the new row's current expiration date.
- ![Generate a new certificate](./media/manage-certificates-for-federated-single-sign-on/create_new_certficate.png)
+9. Use the calendar control to set a new date. You can set any date between the current date and three years after the current date.
-5. The **Create a new certificate** link opens the calendar control. You can set any date and time up to three years from the current date. The selected date and time is the new expiration date and time of your new certificate. Click **Save**.
+10. Select **Save**. The new certificate now appears with a status of **Inactive**, the expiration date that you chose, and a thumbprint.
- ![Download then upload the certificate](./media/manage-certificates-for-federated-single-sign-on/certifcate_date_selection.PNG)
+11. Select the **X** to return to the **Set up Single Sign-On with SAML - Preview** page.
-6. Now the new certificate is available to download. Click the **Certificate** link to download it. At this point, your certificate is not active. When you want to roll over to this certificate, select the **Make new certificate active** check box and click **Save**. From that point, Azure AD starts using the new certificate for signing the response.
+### Upload and activate a certificate
-7. To learn how to upload the certificate to your particular SaaS application, click the **View application configuration tutorial** link.
+Next, download the new certificate in the correct format, upload it to the application, and make it active in Azure Active Directory:
-## Certificate expiration notification email
+1. View the application's additional SAML sign-on configuration instructions by either:
+ - selecting the **configuration guide** link to view in a separate browser window or tab, or
+ - going to the **set up** heading and selecting **View step-by-step instructions** to view in a sidebar.
-Azure AD will send an email notification 60, 30, and 7 days before SAML certificate expires. To specify the email address for where to send the notification:
+2. In the instructions, note the encoding format required for the certificate upload.
-- On the Azure Active Directory application Single sign-on page, go to the Notification Email field.
-- Enter the email address that should receive the certificate expiration notification email. By default, this field uses the email address of the admin who added the application.
+3. Follow the instructions in the [Auto-generated certificate for gallery and non-gallery applications](#auto-generated-certificate-for-gallery-and-non-gallery-applications) section earlier. This step downloads the certificate in the encoding format required for upload by the application.
-You will receive the notification email from aadnotification@microsoft.com. To avoid the email going to your spam location, be sure to add this email to your contacts.
+4. When you want to roll over to the new certificate, go back to the **SAML Signing Certificate** page, and in the newly saved certificate row, select the ellipsis (**...**) and select **Make certificate active**. The status of the new certificate changes to **Active**, and the previously active certificate changes to a status of **Inactive**.
+
+5. Continue following the application's SAML sign-on configuration instructions that you displayed earlier, so that you can upload the SAML signing certificate in the correct encoding format.
+
+## Add email notification addresses for certificate expiration
+
+Azure AD will send an email notification 60, 30, and 7 days before the SAML certificate expires. You may add more than one email address to receive notifications. To specify the email address(es) you want the notifications to be sent to:
+
+1. In the **SAML Signing Certificate** page, go to the **notification email addresses** heading. By default, this heading uses only the email address of the admin who added the application.
+
+2. Below the final email address, type the email address that should receive the certificate's expiration notice, and then press Enter.
+
+3. Repeat the previous step for each email address you want to add.
+
+4. For each email address you want to delete, select the **Delete** icon (a garbage can) next to the email address.
+
+5. Select **Save**.
+
+You will receive the notification email from aadnotification@microsoft.com. To avoid the email going to your spam location, add this email to your contacts.
## Renew a certificate that will soon expire
-The following renewal steps should result in no significant downtime for your users. The screenshots in this section feature Salesforce as an example, but these steps can apply to any federated SaaS app.
-1. On the **Azure Active Directory** application **Single sign-on** page, generate the new certificate for your application. You can do this by clicking the **Create new certificate** link in the **SAML Signing Certificate** section.
+If a certificate is about to expire, you can renew it using a procedure that results in no significant downtime for your users. To renew an expiring certificate:
- ![Generate a new certificate](./media/manage-certificates-for-federated-single-sign-on/create_new_certficate.png)
+1. Follow the instructions in the [Create a new certificate](#create-a-new-certificate) section earlier, using a date that overlaps with the existing certificate. That date limits the amount of downtime caused by the certificate expiration.
-2. Select the desired expiration date and time for your new certificate and click **Save**. Selecting a date that overlaps with the existing certificate will ensure that any downtime due to cert expiry is limited.
+2. If the application can automatically roll over a certificate, set the new certificate to active by following these steps:
+ 1. Go back to the **SAML Signing Certificate** page.
+ 2. In the newly saved certificate row, select the ellipsis (**...**) and then select **Make certificate active**.
+ 3. Skip the next two steps.
-3. If the app can automatically roll over a certificate, set the new certificate to active. Sign in to the app to check that it works.
+3. If the app can only handle one certificate at a time, pick a downtime interval to perform the next step. (Otherwise, if the application doesn’t automatically pick up the new certificate but can handle more than one signing certificate, you can perform the next step anytime.)
-4. If the app doesn’t automatically pickup the new cert, but can handle more than one signing cert, before the old one expires, upload the new one to the app, then go back to the portal and make it the active certificate.
+4. Before the old certificate expires, follow the instructions in the [Upload and activate a certificate](#upload-and-activate-a-certificate) section earlier.
-5. If the app can only handle one certificate at a time, pick a downtime window, download the new certificate, upload it to the application, come back to the Azure Portal and set the new certificate as active.
-
-6. To activate the new certificate in Azure AD, select the **Make new certificate active** check box and click the **Save** button at the top of the page. This rolls over the new certificate on the Azure AD side. The status of the certificate changes from **New** to **Active**. From that point, Azure AD starts using the new certificate for signing the response.
-
- ![Generate a new certificate](./media/manage-certificates-for-federated-single-sign-on/new_certificate_download.png)
+5. Sign in to the application to make sure that the certificate works correctly.
## Related articles
-* [List of tutorials on how to integrate SaaS apps with Azure Active Directory](../saas-apps/tutorial-list.md)
-* [Application Management in Azure Active Directory](what-is-application-management.md)
-* [Application access and single sign-on with Azure Active Directory](what-is-single-sign-on.md)
-* [Troubleshooting SAML-based single sign-on](../develop/howto-v1-debug-saml-sso-issues.md)
+
+* [Tutorials for integrating SaaS applications with Azure Active Directory](../saas-apps/tutorial-list.md)
+* [Application management with Azure Active Directory](what-is-application-management.md)
+* [Single sign-on to applications in Azure Active Directory](what-is-single-sign-on.md)
+* [Debug SAML-based single sign-on to applications in Azure Active Directory](../develop/howto-v1-debug-saml-sso-issues.md)
diff --git a/articles/active-directory/manage-apps/media/assign-user-or-group-access-portal/assign-users.png b/articles/active-directory/manage-apps/media/assign-user-or-group-access-portal/assign-users.png
index 5c3ad090f2f27..1be237285a484 100644
Binary files a/articles/active-directory/manage-apps/media/assign-user-or-group-access-portal/assign-users.png and b/articles/active-directory/manage-apps/media/assign-user-or-group-access-portal/assign-users.png differ
diff --git a/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-pane.png b/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-pane.png
index f0408ea895125..9857b4d093ef2 100644
Binary files a/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-pane.png and b/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-pane.png differ
diff --git a/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning-mapping.png b/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning-mapping.png
index e70484edaf480..5d12121be8326 100644
Binary files a/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning-mapping.png and b/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning-mapping.png differ
diff --git a/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning.png b/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning.png
index bff0442c87db2..119cacf4070eb 100644
Binary files a/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning.png and b/articles/active-directory/manage-apps/media/configure-automatic-user-provisioning-portal/enterprise-apps-provisioning.png differ
diff --git a/articles/active-directory/manage-apps/media/configure-single-sign-on-portal/azure-portal-application-search.png b/articles/active-directory/manage-apps/media/configure-single-sign-on-portal/azure-portal-application-search.png
new file mode 100644
index 0000000000000..aa02b646547c2
Binary files /dev/null and b/articles/active-directory/manage-apps/media/configure-single-sign-on-portal/azure-portal-application-search.png differ
diff --git a/articles/active-directory/manage-apps/media/configure-single-sign-on-portal/basic-saml-configuration-edit-icon.png b/articles/active-directory/manage-apps/media/configure-single-sign-on-portal/basic-saml-configuration-edit-icon.png
new file mode 100644
index 0000000000000..5e4000cd4627a
Binary files /dev/null and b/articles/active-directory/manage-apps/media/configure-single-sign-on-portal/basic-saml-configuration-edit-icon.png differ
diff --git a/articles/active-directory/manage-apps/media/customize-application-attributes/21.png b/articles/active-directory/manage-apps/media/customize-application-attributes/21.png
index 57b5ee5d31f4d..d634da5b5207c 100644
Binary files a/articles/active-directory/manage-apps/media/customize-application-attributes/21.png and b/articles/active-directory/manage-apps/media/customize-application-attributes/21.png differ
diff --git a/articles/active-directory/manage-apps/media/customize-application-attributes/24.png b/articles/active-directory/manage-apps/media/customize-application-attributes/24.png
index c8c2078137c2e..2184dcd9d0165 100644
Binary files a/articles/active-directory/manage-apps/media/customize-application-attributes/24.png and b/articles/active-directory/manage-apps/media/customize-application-attributes/24.png differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/control_panel.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/control_panel.png
deleted file mode 100644
index 3cf9846ec0406..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/control_panel.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/enableaddon.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/enableaddon.png
deleted file mode 100644
index d57a6b3defc12..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/enableaddon.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/enabletoolbars.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/enabletoolbars.png
deleted file mode 100644
index 0fd15941a3fe7..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/enabletoolbars.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/extract1.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/extract1.png
deleted file mode 100644
index 09e68d52bcbe6..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/extract1.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/extract2.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/extract2.png
deleted file mode 100644
index e8d7d71223b12..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/extract2.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/inprivateoptions.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/inprivateoptions.png
deleted file mode 100644
index 375a920febe02..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/inprivateoptions.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/internetoptions.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/internetoptions.png
deleted file mode 100644
index c9bc24f44a890..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/internetoptions.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/internetoptions_programs.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/internetoptions_programs.png
deleted file mode 100644
index 18f8f7bf3c0a0..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/internetoptions_programs.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/open-access-panel-extension-diagnostic-tool.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/open-access-panel-extension-diagnostic-tool.png
new file mode 100644
index 0000000000000..7aabc73e8f0de
Binary files /dev/null and b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/open-access-panel-extension-diagnostic-tool.png differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/open_tool.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/open_tool.png
deleted file mode 100644
index 276a6ebf454ce..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/open_tool.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/search_sm.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/search_sm.png
deleted file mode 100644
index 903b62ed0c8a5..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/search_sm.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/tool_preview.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/tool_preview.png
deleted file mode 100644
index 0531bfb6c71af..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/tool_preview.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/uninstall-access-panel-extension.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/uninstall-access-panel-extension.png
new file mode 100644
index 0000000000000..90d0566e8cfa6
Binary files /dev/null and b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/uninstall-access-panel-extension.png differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/uninstall-program-control-panel.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/uninstall-program-control-panel.png
new file mode 100644
index 0000000000000..84ebb53a73185
Binary files /dev/null and b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/uninstall-program-control-panel.png differ
diff --git a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/uninstall.png b/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/uninstall.png
deleted file mode 100644
index 270da4da37cf0..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-access-panel-browser-extension/uninstall.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/active-certificate-download-options.png b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/active-certificate-download-options.png
new file mode 100644
index 0000000000000..236ec791905d0
Binary files /dev/null and b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/active-certificate-download-options.png differ
diff --git a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/add_gallery_application.png b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/add_gallery_application.png
deleted file mode 100644
index 63c76f694ffcd..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/add_gallery_application.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/all-certificate-download-options.png b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/all-certificate-download-options.png
new file mode 100644
index 0000000000000..df418f9f604f0
Binary files /dev/null and b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/all-certificate-download-options.png differ
diff --git a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/certifcate_date_selection.png b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/certifcate_date_selection.png
deleted file mode 100644
index 0d482b76e59f0..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/certifcate_date_selection.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/create_new_certficate.png b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/create_new_certficate.png
deleted file mode 100644
index 280d046746b50..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/create_new_certficate.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/enterprise_application_new_application.png b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/enterprise_application_new_application.png
deleted file mode 100644
index 36089575ad576..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/enterprise_application_new_application.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/new_certificate_download.png b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/new_certificate_download.png
deleted file mode 100644
index 45d6756b2cd22..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/new_certificate_download.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/saml_certificate_download.png b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/saml_certificate_download.png
deleted file mode 100644
index 3358a77ca9d73..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/saml_certificate_download.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/saml_sso.png b/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/saml_sso.png
deleted file mode 100644
index a871af4816c63..0000000000000
Binary files a/articles/active-directory/manage-apps/media/manage-certificates-for-federated-single-sign-on/saml_sso.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/use-scim-to-provision-users-and-groups/scim-figure-2a.png b/articles/active-directory/manage-apps/media/use-scim-to-provision-users-and-groups/scim-figure-2a.png
index 0b495f50963d7..db13581cc0fbe 100644
Binary files a/articles/active-directory/manage-apps/media/use-scim-to-provision-users-and-groups/scim-figure-2a.png and b/articles/active-directory/manage-apps/media/use-scim-to-provision-users-and-groups/scim-figure-2a.png differ
diff --git a/articles/active-directory/manage-apps/media/use-scim-to-provision-users-and-groups/scim-figure-2b.png b/articles/active-directory/manage-apps/media/use-scim-to-provision-users-and-groups/scim-figure-2b.png
index 8d7cf1436f098..82b0832ef73e7 100644
Binary files a/articles/active-directory/manage-apps/media/use-scim-to-provision-users-and-groups/scim-figure-2b.png and b/articles/active-directory/manage-apps/media/use-scim-to-provision-users-and-groups/scim-figure-2b.png differ
diff --git a/articles/active-directory/manage-apps/media/what-is-single-sign-on/choose-single-sign-on-method-040419.png b/articles/active-directory/manage-apps/media/what-is-single-sign-on/choose-single-sign-on-method-040419.png
new file mode 100644
index 0000000000000..0fd777a1f7e4a
Binary files /dev/null and b/articles/active-directory/manage-apps/media/what-is-single-sign-on/choose-single-sign-on-method-040419.png differ
diff --git a/articles/active-directory/manage-apps/media/what-is-single-sign-on/choose-single-sign-on-method-updated.png b/articles/active-directory/manage-apps/media/what-is-single-sign-on/choose-single-sign-on-method-updated.png
deleted file mode 100644
index cfde56e3fa46a..0000000000000
Binary files a/articles/active-directory/manage-apps/media/what-is-single-sign-on/choose-single-sign-on-method-updated.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/media/what-is-single-sign-on/choose-single-sign-on-method.png b/articles/active-directory/manage-apps/media/what-is-single-sign-on/choose-single-sign-on-method.png
deleted file mode 100644
index 3f33da1408668..0000000000000
Binary files a/articles/active-directory/manage-apps/media/what-is-single-sign-on/choose-single-sign-on-method.png and /dev/null differ
diff --git a/articles/active-directory/manage-apps/remove-user-or-group-access-portal.md b/articles/active-directory/manage-apps/remove-user-or-group-access-portal.md
index 0def8b2d36493..a6273f362a870 100644
--- a/articles/active-directory/manage-apps/remove-user-or-group-access-portal.md
+++ b/articles/active-directory/manage-apps/remove-user-or-group-access-portal.md
@@ -12,7 +12,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 02/14/2018
+ms.date: 04/12/2019
ms.author: celested
ms.reviewer: asteen
ms.custom: it-pro
@@ -20,25 +20,18 @@ ms.custom: it-pro
ms.collection: M365-identity-device-management
---
# Remove a user or group assignment from an enterprise app in Azure Active Directory
-It's easy to remove a user or a group from being assigned access to one of your enterprise applications in Azure Active Directory (Azure AD). You must have the appropriate permissions to manage the enterprise app, and you must be global admin for the directory.
+It's easy to remove a user or a group from assigned access to one of your enterprise applications in Azure Active Directory (Azure AD). You need the appropriate permissions to manage the enterprise app. And, you must be global admin for the directory.
> [!NOTE]
> For Microsoft Applications (such as Office 365 apps), use PowerShell to remove users to an enterprise app.
## How do I remove a user or group assignment to an enterprise app in the Azure portal?
1. Sign in to the [Azure portal](https://portal.azure.com) with an account that's a global admin for the directory.
-2. Select **More services**, enter **Azure Active Directory** in the text box, and then select **Enter**.
-3. On the **Azure Active Directory - *directoryname*** page (that is, the Azure AD page for the directory you are managing), select **Enterprise applications**.
-
- ![Opening Enterprise apps](./media/remove-user-or-group-access-portal/open-enterprise-apps.png)
-4. On the **Enterprise applications** page, select **All applications**. You'll see a list of the apps you can manage.
-5. On the **Enterprise applications - All applications** page, select an app.
-6. On the ***appname*** page (that is, the page with the name of the selected app in the title), select **Users & Groups**.
-
- ![Selecting users or groups](./media/remove-user-or-group-access-portal/remove-app-users.png)
-7. On the ***appname*** **- User & Group Assignment** page, select one of more users or groups and then select the **Remove** command. Confirm your decision at the prompt.
-
- ![Selecting the Remove command](./media/remove-user-or-group-access-portal/remove-users.png)
+1. Select **All services**, enter **Azure Active Directory** in the text box, and then select **Enter**.
+1. On the **Azure Active Directory - *directoryname*** page (that is, the Azure AD page for the directory you're managing), select **Enterprise applications**.
+1. On the **Enterprise applications - All applications** page, you'll see a list of the apps you can manage. Select an app.
+1. On the ***appname*** overview page (that is, the page with the name of the selected app in the title), select **Users & Groups**.
+1. On the ***appname*** **- User & Group Assignment** page, select one of more users or groups and then select the **Remove** command. Confirm your decision at the prompt.
## How do I remove a user or group assignment to an enterprise app using PowerShell?
1. Open an elevated Windows PowerShell command prompt.
@@ -46,8 +39,8 @@ It's easy to remove a user or a group from being assigned access to one of your
>[!NOTE]
> You need to install the AzureAD module (use the command `Install-Module -Name AzureAD`). If prompted to install a NuGet module or the new Azure Active Directory V2 PowerShell module, type Y and press ENTER.
-2. Run `Connect-AzureAD` and sign in with a Global Admin user account.
-3. Use the following script to remove a user and role from an application:
+1. Run `Connect-AzureAD` and sign in with a Global Admin user account.
+1. Use the following script to remove a user and role from an application:
```powershell
# Store the proper parameters
diff --git a/articles/active-directory/manage-apps/tenant-restrictions.md b/articles/active-directory/manage-apps/tenant-restrictions.md
index c2d622e1f90f0..66312e89525ef 100644
--- a/articles/active-directory/manage-apps/tenant-restrictions.md
+++ b/articles/active-directory/manage-apps/tenant-restrictions.md
@@ -1,6 +1,6 @@
---
-title: Manage access to cloud apps by restricting tenants - Azure | Microsoft Docs
-description: How to use Tenant Restrictions to manage which users can access apps based on their Azure AD tenant.
+title: Use tenant restrictions to manage access to SaaS cloud applications - Azure | Microsoft Docs
+description: How to use tenant restrictions to manage which users can access apps based on their Azure AD tenant.
services: active-directory
documentationcenter: ''
author: CelesteDG
@@ -12,131 +12,159 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 05/15/2018
+ms.date: 03/28/2019
ms.author: celested
ms.reviewer: richagi
ms.collection: M365-identity-device-management
---
-# Use Tenant Restrictions to manage access to SaaS cloud applications
+# Use tenant restrictions to manage access to SaaS cloud applications
-Large organizations that emphasize security want to move to cloud services like Office 365, but need to know that their users only can access approved resources. Traditionally, companies restrict domain names or IP addresses when they want to manage access. This approach fails in a world where SaaS apps are hosted in a public cloud, running on shared domain names like outlook.office.com and login.microsoftonline.com. Blocking these addresses would keep users from accessing Outlook on the web entirely, instead of merely restricting them to approved identities and resources.
+Large organizations that emphasize security want to move to cloud services like Office 365, but need to know that their users only can access approved resources. Traditionally, companies restrict domain names or IP addresses when they want to manage access. This approach fails in a world where software as a service (or SaaS) apps are hosted in a public cloud, running on shared domain names like [outlook.office.com](https://outlook.office.com/) and [login.microsoftonline.com](https://login.microsoftonline.com/). Blocking these addresses would keep users from accessing Outlook on the web entirely, instead of merely restricting them to approved identities and resources.
-Azure Active Directory's solution to this challenge is a feature called Tenant Restrictions. Tenant Restrictions enables organizations to control access to SaaS cloud applications, based on the Azure AD tenant the applications use for single sign-on. For example, you may want to allow access to your organization’s Office 365 applications, while preventing access to other organizations’ instances of these same applications.
+The Azure Active Directory (Azure AD) solution to this challenge is a feature called tenant restrictions. With tenant restrictions, organizations can control access to SaaS cloud applications, based on the Azure AD tenant the applications use for single sign-on. For example, you may want to allow access to your organization’s Office 365 applications, while preventing access to other organizations’ instances of these same applications.
-Tenant Restrictions gives organizations the ability to specify the list of tenants that their users are permitted to access. Azure AD then only grants access to these permitted tenants.
+With tenant restrictions, organizations can specify the list of tenants that their users are permitted to access. Azure AD then only grants access to these permitted tenants.
-This article focuses on Tenant Restrictions for Office 365, but the feature should work with any SaaS cloud app that uses modern authentication protocols with Azure AD for single sign-on. If you use SaaS apps with a different Azure AD tenant from the tenant used by Office 365, make sure that all required tenants are permitted. For more information about SaaS cloud apps, see the [Active Directory Marketplace](https://azure.microsoft.com/marketplace/active-directory/).
+This article focuses on tenant restrictions for Office 365, but the feature should work with any SaaS cloud app that uses modern authentication protocols with Azure AD for single sign-on. If you use SaaS apps with a different Azure AD tenant from the tenant used by Office 365, make sure that all required tenants are permitted. For more information about SaaS cloud apps, see the [Active Directory Marketplace](https://azure.microsoft.com/marketplace/active-directory/).
## How it works
-The overall solution comprises the following components:
+The overall solution comprises the following components:
-1. **Azure AD** – If the `Restrict-Access-To-Tenants: ` is present, Azure AD only issues security tokens for the permitted tenants.
+1. **Azure AD**: If the `Restrict-Access-To-Tenants: ` is present, Azure AD only issues security tokens for the permitted tenants.
-2. **On-premises proxy server infrastructure** – a proxy device capable of SSL inspection, configured to insert the header containing the list of permitted tenants into traffic destined for Azure AD.
+2. **On-premises proxy server infrastructure**: This infrastructure is a proxy device capable of Secure Sockets Layer (SSL) inspection. You must configure the proxy to insert the header containing the list of permitted tenants into traffic destined for Azure AD.
-3. **Client software** – to support Tenant Restrictions, client software must request tokens directly from Azure AD, so that traffic can be intercepted by the proxy infrastructure. Tenant Restrictions is currently supported by browser-based Office 365 applications and by Office clients when modern authentication (like OAuth 2.0) is used.
+3. **Client software**: To support tenant restrictions, client software must request tokens directly from Azure AD, so that the proxy infrastructure can intercept traffic. Browser-based Office 365 applications currently support tenant restrictions, as do Office clients that use modern authentication (like OAuth 2.0).
-4. **Modern Authentication** – cloud services must use modern authentication to use Tenant Restrictions and block access to all non-permitted tenants. Office 365 cloud services must be configured to use modern authentication protocols by default. For the latest information on Office 365 support for modern authentication, read [Updated Office 365 modern authentication](https://blogs.office.com/2015/11/19/updated-office-365-modern-authentication-public-preview/).
+4. **Modern Authentication**: Cloud services must use modern authentication to use tenant restrictions and block access to all non-permitted tenants. You must configure Office 365 cloud services to use modern authentication protocols by default. For the latest information on Office 365 support for modern authentication, read [Updated Office 365 modern authentication](https://blogs.office.com/2015/11/19/updated-office-365-modern-authentication-public-preview/).
-The following diagram illustrates the high-level traffic flow. SSL inspection is only required on traffic to Azure AD, not to the Office 365 cloud services. This distinction is important because the traffic volume for authentication to Azure AD is typically much lower than traffic volume to SaaS applications like Exchange Online and SharePoint Online.
+The following diagram illustrates the high-level traffic flow. Tenant restrictions requires SSL inspection only on traffic to Azure AD, not to the Office 365 cloud services. This distinction is important, because the traffic volume for authentication to Azure AD is typically much lower than traffic volume to SaaS applications like Exchange Online and SharePoint Online.
-![Tenant Restrictions traffic flow - diagram](./media/tenant-restrictions/traffic-flow.png)
+![Tenant restrictions traffic flow - diagram](./media/tenant-restrictions/traffic-flow.png)
-## Set up Tenant Restrictions
+## Set up tenant restrictions
-There are two steps to get started with Tenant Restrictions. The first step is to make sure that your clients can connect to the right addresses. The second is to configure your proxy infrastructure.
+There are two steps to get started with tenant restrictions. First, make sure that your clients can connect to the right addresses. Second, configure your proxy infrastructure.
### URLs and IP addresses
-To use Tenant Restrictions, your clients must be able to connect to the following Azure AD URLs to authenticate: login.microsoftonline.com, login.microsoft.com, and login.windows.net. Additionally, to access Office 365, your clients must also be able to connect to the FQDNs/URLs and IP addresses defined in [Office 365 URLs and IP address ranges](https://support.office.com/article/Office-365-URLs-and-IP-address-ranges-8548a211-3fe7-47cb-abb1-355ea5aa88a2).
+To use tenant restrictions, your clients must be able to connect to the following Azure AD URLs to authenticate: [login.microsoftonline.com](https://login.microsoftonline.com/), [login.microsoft.com](https://login.microsoft.com/), and [login.windows.net](https://login.windows.net/). Additionally, to access Office 365, your clients must also be able to connect to the fully qualified domain names (FQDNs), URLs, and IP addresses defined in [Office 365 URLs and IP address ranges](https://support.office.com/article/Office-365-URLs-and-IP-address-ranges-8548a211-3fe7-47cb-abb1-355ea5aa88a2).
### Proxy configuration and requirements
-The following configuration is required to enable Tenant Restrictions through your proxy infrastructure. This guidance is generic, so you should refer to your proxy vendor’s documentation for specific implementation steps.
+The following configuration is required to enable tenant restrictions through your proxy infrastructure. This guidance is generic, so you should refer to your proxy vendor’s documentation for specific implementation steps.
#### Prerequisites
-- The proxy must be able to perform SSL interception, HTTP header insertion, and filter destinations using FQDNs/URLs.
+- The proxy must be able to perform SSL interception, HTTP header insertion, and filter destinations using FQDNs/URLs.
-- Clients must trust the certificate chain presented by the proxy for SSL communications. For example, if certificates from an internal PKI are used, the internal issuing root certificate authority certificate must be trusted.
+- Clients must trust the certificate chain presented by the proxy for SSL communications. For example, if certificates from an internal [public key infrastructure (PKI)](/windows/desktop/seccertenroll/public-key-infrastructure) are used, the internal issuing root certificate authority certificate must be trusted.
-- This feature is included in Office 365 subscriptions, but if you want to use Tenant Restrictions to control access to other SaaS apps then Azure AD Premium 1 licenses are required.
+- This feature is included in Office 365 subscriptions, but if you want to use tenant restrictions to control access to other SaaS apps, then Azure AD Premium 1 licenses are required.
#### Configuration
For each incoming request to login.microsoftonline.com, login.microsoft.com, and login.windows.net, insert two HTTP headers: *Restrict-Access-To-Tenants* and *Restrict-Access-Context*.
-The headers should include the following elements:
-- For *Restrict-Access-To-Tenants*, a value of \, which is a comma-separated list of tenants you want to allow users to access. Any domain that is registered with a tenant can be used to identify the tenant in this list. For example, to permit access to both Contoso and Fabrikam tenants, the name/value pair looks like: `Restrict-Access-To-Tenants: contoso.onmicrosoft.com,fabrikam.onmicrosoft.com`
-- For *Restrict-Access-Context*, a value of a single directory ID, declaring which tenant is setting the Tenant Restrictions. For example, to declare Contoso as the tenant that set the Tenant Restrictions policy, the name/value pair looks like: `Restrict-Access-Context: 456ff232-35l2-5h23-b3b3-3236w0826f3d`
+The headers should include the following elements:
+
+- For *Restrict-Access-To-Tenants*, use a value of \, which is a comma-separated list of tenants you want to allow users to access. Any domain that is registered with a tenant can be used to identify the tenant in this list. For example, to permit access to both Contoso and Fabrikam tenants, the name/value pair looks like: `Restrict-Access-To-Tenants: contoso.onmicrosoft.com,fabrikam.onmicrosoft.com`
+
+- For *Restrict-Access-Context*, use a value of a single directory ID, declaring which tenant is setting the tenant restrictions. For example, to declare Contoso as the tenant that set the tenant restrictions policy, the name/value pair looks like: `Restrict-Access-Context: 456ff232-35l2-5h23-b3b3-3236w0826f3d`
> [!TIP]
-> You can find your directory ID in the [Azure portal](https://portal.azure.com). Sign in as an administrator, select **Azure Active Directory**, then select **Properties**.
+> You can find your directory ID in the [Azure Active Directory portal](https://aad.portal.azure.com/). Sign in as an administrator, select **Azure Active Directory**, then select **Properties**.
-To prevent users from inserting their own HTTP header with non-approved tenants, the proxy needs to replace the Restrict-Access-To-Tenants header if it is already present in the incoming request.
+To prevent users from inserting their own HTTP header with non-approved tenants, the proxy needs to replace the *Restrict-Access-To-Tenants* header if it is already present in the incoming request.
-Clients must be forced to use the proxy for all requests to login.microsoftonline.com, login.microsoft.com, and login.windows.net. For example, if PAC files are used to direct clients to use the proxy, end users should not be able to edit or disable the PAC files.
+Clients must be forced to use the proxy for all requests to login.microsoftonline.com, login.microsoft.com, and login.windows.net. For example, if PAC files are used to direct clients to use the proxy, end users shouldn't be able to edit or disable the PAC files.
## The user experience
-This section shows the experience for both end users and admins.
+This section describes the experience for both end users and admins.
### End-user experience
-An example user is on the Contoso network, but is trying to access the Fabrikam instance of a shared SaaS application like Outlook online. If Fabrikam is a non-permitted tenant for the Contoso instance, the user sees the following page:
-
-![Access denied page for users in non-permitted tenants](./media/tenant-restrictions/end-user-denied.png)
+An example user is on the Contoso network, but is trying to access the Fabrikam instance of a shared SaaS application like Outlook online. If Fabrikam is a non-permitted tenant for the Contoso instance, the user sees an access denial message, which says you're trying to access a resource that belongs to an organization unapproved by your IT department.
### Admin experience
-While configuration of Tenant Restrictions is done on the corporate proxy infrastructure, admins can access the Tenant Restrictions reports in the Azure portal directly. To view the reports, go to the Azure Active Directory Overview page, then look under ‘Other capabilities’.
+While configuration of tenant restrictions is done on the corporate proxy infrastructure, admins can access the tenant restrictions reports in the Azure portal directly. To view the reports:
+
+1. Sign in to the [Azure Active Directory portal](https://aad.portal.azure.com/). The **Azure Active Directory admin center** dashboard appears.
+
+2. In the left pane, select **Azure Active Directory**. The Azure Active Directory overview page appears.
+
+3. In the **Other capabilities** heading, select **Tenant restrictions**.
-The admin for the tenant specified as the Restricted-Access-Context tenant can use this report to see sign-ins blocked because of the Tenant Restrictions policy, including the identity used and the target directory ID. Sign-ins are included if the tenant setting the restriction is either the user tenant or resource tenant for the sign-in.
+The admin for the tenant specified as the Restricted-Access-Context tenant can use this report to see sign-ins blocked because of the tenant restrictions policy, including the identity used and the target directory ID. Sign-ins are included if the tenant setting the restriction is either the user tenant or resource tenant for the sign-in.
-![Use the Azure portal to view restricted sign-in attempts](./media/tenant-restrictions/portal-report.png)
+Like other reports in the Azure portal, you can use filters to specify the scope of your report. You can filter on a specific time interval, user, application, client, or status. If you select the **Columns** button, you can choose to display data with any combination of the following fields:
-Like other reports in the Azure portal, you can use filters to specify the scope of your report. You can filter on a specific user, application, client, or time interval.
+- **User**
+- **Application**
+- **Status**
+- **Date**
+- **Date (UTC)** (where UTC is Coordinated Universal Time)
+- **MFA Auth Method** (multifactor authentication method)
+- **MFA Auth Detail** (multifactor authentication detail)
+- **MFA Result**
+- **IP Address**
+- **Client**
+- **Username**
+- **Location**
+- **Target tenant ID**
## Office 365 support
-Office 365 applications must meet two criteria to fully support Tenant Restrictions:
+Office 365 applications must meet two criteria to fully support tenant restrictions:
-1. The client used supports modern authentication
+1. The client used supports modern authentication.
2. Modern authentication is enabled as the default authentication protocol for the cloud service.
-Refer to [Updated Office 365 modern authentication](https://blogs.office.com/2015/11/19/updated-office-365-modern-authentication-public-preview/) for the latest information on which Office clients currently support modern authentication. That page also includes links to instructions for enabling modern authentication on specific Exchange Online and Skype for Business Online tenants. Modern authentication is already enabled by default in SharePoint Online.
+Refer to [Updated Office 365 modern authentication](https://blogs.office.com/2015/11/19/updated-office-365-modern-authentication-public-preview/) for the latest information on which Office clients currently support modern authentication. That page also includes links to instructions for enabling modern authentication on specific Exchange Online and Skype for Business Online tenants. SharePoint Online already enables Modern authentication by default.
-Tenant Restrictions is currently supported by Office 365 browser-based applications (the Office Portal, Yammer, SharePoint sites, Outlook on the Web, etc.). For thick clients (Outlook, Skype for Business, Word, Excel, PowerPoint, etc.) Tenant Restrictions can only be enforced when modern authentication is used.
+Office 365 browser-based applications (the Office Portal, Yammer, SharePoint sites, Outlook on the Web, and more) currently support tenant restrictions. Thick clients (Outlook, Skype for Business, Word, Excel, PowerPoint, and more) can enforce tenant restrictions only when using modern authentication.
-Outlook and Skype for Business clients that support modern authentication may still able to use legacy protocols against tenants where modern authentication is not enabled, effectively bypassing Tenant Restrictions. Applications that use legacy protocols may be blocked by Tenant Restrictions if they contact login.microsoftonline.com, login.microsoft.com, or login.windows.net during authentication.
+Outlook and Skype for Business clients that support modern authentication may still able to use legacy protocols against tenants where modern authentication isn't enabled, effectively bypassing tenant restrictions. Tenant restrictions may block applications that use legacy protocols if they contact login.microsoftonline.com, login.microsoft.com, or login.windows.net during authentication.
For Outlook on Windows, customers may choose to implement restrictions preventing end users from adding non-approved mail accounts to their profiles. For example, see the [Prevent adding non-default Exchange accounts](https://gpsearch.azurewebsites.net/default.aspx?ref=1) group policy setting.
## Testing
-If you want to try out Tenant Restrictions before implementing it for your whole organization, there are two options: a host-based approach using a tool like Fiddler, or a staged rollout of proxy settings.
+If you want to try out tenant restrictions before implementing it for your whole organization, you have two options: a host-based approach using a tool like Fiddler, or a staged rollout of proxy settings.
### Fiddler for a host-based approach
-Fiddler is a free web debugging proxy that can be used to capture and modify HTTP/HTTPS traffic, including inserting HTTP headers. To configure Fiddler to test Tenant Restrictions, perform the following steps:
+Fiddler is a free web debugging proxy that can be used to capture and modify HTTP/HTTPS traffic, including inserting HTTP headers. To configure Fiddler to test tenant restrictions, perform the following steps:
-1. [Download and install Fiddler](https://www.telerik.com/fiddler).
-2. Configure Fiddler to decrypt HTTPS traffic, per [Fiddler’s help documentation](https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/DecryptHTTPS).
-3. Configure Fiddler to insert the *Restrict-Access-To-Tenants* and *Restrict-Access-Context* headers using custom rules:
- 1. In the Fiddler Web Debugger tool, select the **Rules** menu and select **Customize Rules…** to open the CustomRules file.
- 2. Add the following lines at the beginning of the *OnBeforeRequest* function. Replace \ with a domain registered with your tenant, for example, contoso.onmicrosoft.com. Replace \ with your tenant's Azure AD GUID identifier.
+1. [Download and install Fiddler](https://www.telerik.com/fiddler).
- ```
- if (oSession.HostnameIs("login.microsoftonline.com") || oSession.HostnameIs("login.microsoft.com") || oSession.HostnameIs("login.windows.net")){ oSession.oRequest["Restrict-Access-To-Tenants"] = ""; oSession.oRequest["Restrict-Access-Context"] = "";}
- ```
+2. Configure Fiddler to decrypt HTTPS traffic, per [Fiddler’s help documentation](https://docs.telerik.com/fiddler/Configure-Fiddler/Tasks/DecryptHTTPS).
- If you need to allow multiple tenants, use a comma to separate the tenant names. For example:
+3. Configure Fiddler to insert the *Restrict-Access-To-Tenants* and *Restrict-Access-Context* headers using custom rules:
- ```
- oSession.oRequest["Restrict-Access-To-Tenants"] = "contoso.onmicrosoft.com,fabrikam.onmicrosoft.com";
- ```
+ 1. In the Fiddler Web Debugger tool, select the **Rules** menu and select **Customize Rules…** to open the CustomRules file.
+
+ 2. Add the following lines at the beginning of the `OnBeforeRequest` function. Replace \ with a domain registered with your tenant (for example, `contoso.onmicrosoft.com`). Replace \ with your tenant's Azure AD GUID identifier.
+
+ ```JScript.NET
+ if (
+ oSession.HostnameIs("login.microsoftonline.com") ||
+ oSession.HostnameIs("login.microsoft.com") ||
+ oSession.HostnameIs("login.windows.net")
+ )
+ {
+ oSession.oRequest["Restrict-Access-To-Tenants"] = "";
+ oSession.oRequest["Restrict-Access-Context"] = "";
+ }
+ ```
+
+ If you need to allow multiple tenants, use a comma to separate the tenant names. For example:
+
+ `oSession.oRequest["Restrict-Access-To-Tenants"] = "contoso.onmicrosoft.com,fabrikam.onmicrosoft.com";`
4. Save and close the CustomRules file.
@@ -146,13 +174,12 @@ After you configure Fiddler, you can capture traffic by going to the **File** me
Depending on the capabilities of your proxy infrastructure, you may be able to stage the rollout of settings to your users. Here are a couple high-level options for consideration:
-1. Use PAC files to point test users to a test proxy infrastructure, while normal users continue to use the production proxy infrastructure.
-2. Some proxy servers may support different configurations using groups.
+1. Use PAC files to point test users to a test proxy infrastructure, while normal users continue to use the production proxy infrastructure.
+2. Some proxy servers may support different configurations using groups.
-Refer to your proxy server documentation for specific details.
+For specific details, refer to your proxy server documentation.
## Next steps
- Read about [Updated Office 365 modern authentication](https://blogs.office.com/2015/11/19/updated-office-365-modern-authentication-public-preview/)
-
- Review the [Office 365 URLs and IP address ranges](https://support.office.com/article/Office-365-URLs-and-IP-address-ranges-8548a211-3fe7-47cb-abb1-355ea5aa88a2)
diff --git a/articles/active-directory/manage-apps/toc.yml b/articles/active-directory/manage-apps/toc.yml
index 07b98e3b0b427..9aa5a84d52a00 100644
--- a/articles/active-directory/manage-apps/toc.yml
+++ b/articles/active-directory/manage-apps/toc.yml
@@ -269,6 +269,10 @@
href: application-sign-in-problem-federated-sso-gallery.md
- name: Problem with custom-developed app
href: application-sign-in-problem-custom-dev.md
+ - name: Reference
+ items:
+ - name: Application Proxy version history
+ href: application-proxy-release-version-history.md
- name: Resources
items:
- name: Azure AD deployment plans
diff --git a/articles/active-directory/manage-apps/use-scim-to-provision-users-and-groups.md b/articles/active-directory/manage-apps/use-scim-to-provision-users-and-groups.md
index 00ef35353cd19..138407df4f2c2 100644
--- a/articles/active-directory/manage-apps/use-scim-to-provision-users-and-groups.md
+++ b/articles/active-directory/manage-apps/use-scim-to-provision-users-and-groups.md
@@ -12,7 +12,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: conceptual
-ms.date: 2/22/2018
+ms.date: 4/03/2019
ms.author: celested
ms.reviewer: asmalser
ms.custom: aaddev;it-pro;seohack1
@@ -28,7 +28,7 @@ SCIM is standardized protocol and schema that aims to drive greater consistency
Many of the applications for which Azure AD supports [pre-integrated automatic user provisioning](../saas-apps/tutorial-list.md) implement SCIM as the means to receive user change notifications. In addition to these, customers can connect applications that support a specific profile of the [SCIM 2.0 protocol specification](https://tools.ietf.org/html/rfc7644) using the generic "non-gallery" integration option in the Azure portal.
-The main focus of this document is on the profile of SCIM 2.0 that Azure AD implements as part of its generic SCIM connector for non-gallery apps. However, successful testing of an application that supports SCIM with the generic Azure AD connector is a step to getting an app listed in the Azure AD gallery as supporting user provisioning. For more information on getting your application listed in the Azure AD application gallery, see the [Microsoft Application Network](https://microsoft.sharepoint.com/teams/apponboarding/Apps/SitePages/Default.aspx).
+The main focus of this article is on the profile of SCIM 2.0 that Azure AD implements as part of its generic SCIM connector for non-gallery apps. However, successful testing of an application that supports SCIM with the generic Azure AD connector is a step to getting an app listed in the Azure AD gallery as supporting user provisioning. For more information on getting your application listed in the Azure AD application gallery, see the [Microsoft Application Network](https://microsoft.sharepoint.com/teams/apponboarding/Apps/SitePages/Default.aspx).
>[!IMPORTANT]
@@ -41,87 +41,90 @@ This article is split into four sections:
* **[Provisioning users and groups to third-party applications that support SCIM 2.0](#provisioning-users-and-groups-to-applications-that-support-scim)** - If your organization is using a third-party application that implements the profile of SCIM 2.0 that Azure AD supports, you can start automating both provisioning and de-provisioning of users and groups today.
-* **[Understanding the Azure AD SCIM implementation](#understanding-the-azure-ad-scim-implementation)** - If you are building an application that supports a SCIM 2.0 user management API, this section describes in detail how the Azure AD SCIM client is implemented, and how you should model your SCIM protocol request handling and responses.
+* **[Understanding the Azure AD SCIM implementation](#understanding-the-azure-ad-scim-implementation)** - If you're building an application that supports a SCIM 2.0 user management API, this section describes in detail how the Azure AD SCIM client is implemented, and how you should model your SCIM protocol request handling and responses.
-* **[Building a SCIM endpoint using Microsoft CLI libraries](#building-a-scim-endpoint-using-microsoft-cli-libraries)** - To help you develop a SCIM endpoint, there are Common Language Infrastructure (CLI) libraries along with code samples that show you how to do provide a SCIM endpoint and translate SCIM messages.
+* **[Building a SCIM endpoint using Microsoft CLI libraries](#building-a-scim-endpoint-using-microsoft-cli-libraries)** - Common Language Infrastructure (CLI) libraries along with code samples show you how to develop a SCIM endpoint and translate SCIM messages.
* **[User and group schema reference](#user-and-group-schema-reference)** - Describes the user and group schema supported by the Azure AD SCIM implementation for non-gallery apps.
## Provisioning users and groups to applications that support SCIM
-Azure AD can be configured to automatically provision assigned users and groups to applications that implement a specific profile of the [SCIM 2.0 protocol](https://tools.ietf.org/html/rfc7644). The specifics of the profile are documented in Understanding the Azure AD SCIM implementation.
+Azure AD can be configured to automatically provision assigned users and groups to applications that implement a specific profile of the [SCIM 2.0 protocol](https://tools.ietf.org/html/rfc7644). The specifics of the profile are documented in [Understanding the Azure AD SCIM implementation](#understanding-the-azure-ad-scim-implementation).
Check with your application provider, or your application provider's documentation for statements of compatibility with these requirements.
>[!IMPORTANT]
->The Azure AD SCIM implementation is built on top of the Azure AD user provisioning service, which is designed to perpetually keep users in sync between Azure AD and the target application, and implements a very specific set of standard operations. it is important to understand these behaviors in order to understand the behavior of the Azure AD SCIM client. For more information, see [What happens during user provisioning?](user-provisioning.md#what-happens-during-provisioning).
+>The Azure AD SCIM implementation is built on top of the Azure AD user provisioning service, which is designed to constantly keep users in sync between Azure AD and the target application, and implements a very specific set of standard operations. It's important to understand these behaviors to understand the behavior of the Azure AD SCIM client. For more information, see [What happens during user provisioning?](user-provisioning.md#what-happens-during-provisioning).
### Getting started
Applications that support the SCIM profile described in this article can be connected to Azure Active Directory using the "non-gallery application" feature in the Azure AD application gallery. Once connected, Azure AD runs a synchronization process every 40 minutes where it queries the application's SCIM endpoint for assigned users and groups, and creates or modifies them according to the assignment details.
**To connect an application that supports SCIM:**
-1. Sign in to [the Azure portal](https://portal.azure.com).
-2. Browse to **Azure Active Directory > Enterprise Applications**, and select **New application > All > Non-gallery application**.
-3. Enter a name for your application, and click **Add** icon to create an app object.
+1. Sign in to the [Azure Active Directory portal](https://aad.portal.azure.com).
+
+1. Select **Enterprise applications** from the left pane. A list of all configured apps is shown, including apps that were added from the gallery.
+
+1. Select **+ New application** > **All** > **Non-gallery application**.
+
+1. Enter a name for your application, and select **Add** to create an app object. The new app is added to the list of enterprise applications and opens to its app management screen.
![][1]
*Figure 2: Azure AD application gallery*
-4. In the resulting screen, select the **Provisioning** tab in the left column.
-5. In the **Provisioning Mode** menu, select **Automatic**.
+1. In the app management screen, select **Provisioning** in the left panel.
+1. In the **Provisioning Mode** menu, select **Automatic**.
![][2]
*Figure 3: Configuring provisioning in the Azure portal*
-6. In the **Tenant URL** field, enter the URL of the application's SCIM endpoint. Example: https://api.contoso.com/scim/v2/
-7. If the SCIM endpoint requires an OAuth bearer token from an issuer other than Azure AD, then copy the required OAuth bearer token into the optional **Secret Token** field. If this field is left blank, then Azure AD includes an OAuth bearer token issued from Azure AD with each request. Apps that use Azure AD as an identity provider can validate this Azure AD-issued token.
-8. Click the **Test Connection** button to have Azure Active Directory attempt to connect to the SCIM endpoint. If the attempts fail, error information is displayed.
+1. In the **Tenant URL** field, enter the URL of the application's SCIM endpoint. Example: https://api.contoso.com/scim/v2/
+1. If the SCIM endpoint requires an OAuth bearer token from an issuer other than Azure AD, then copy the required OAuth bearer token into the optional **Secret Token** field. If this field is left blank, Azure AD includes an OAuth bearer token issued from Azure AD with each request. Apps that use Azure AD as an identity provider can validate this Azure AD-issued token.
+1. Select **Test Connection** to have Azure Active Directory attempt to connect to the SCIM endpoint. If the attempt fails, error information is displayed.
>[!NOTE]
>**Test Connection** queries the SCIM endpoint for a user that doesn't exist, using a random GUID as the matching property selected in the Azure AD configuration. The expected correct response is HTTP 200 OK with an empty SCIM ListResponse message.
-9. If the attempts to connect to the application succeed, then click **Save** to save the admin credentials.
-10. In the **Mappings** section, there are two selectable sets of attribute mappings: one for user objects and one for group objects. Select each one to review the attributes that are synchronized from Azure Active Directory to your app. The attributes selected as **Matching** properties are used to match the users and groups in your app for update operations. Select the Save button to commit any changes.
+1. If the attempts to connect to the application succeed, then select **Save** to save the admin credentials.
+1. In the **Mappings** section, there are two selectable sets of attribute mappings: one for user objects and one for group objects. Select each one to review the attributes that are synchronized from Azure Active Directory to your app. The attributes selected as **Matching** properties are used to match the users and groups in your app for update operations. Select **Save** to commit any changes.
>[!NOTE]
>You can optionally disable syncing of group objects by disabling the "groups" mapping.
-11. Under **Settings**, the **Scope** field defines which users and groups are synchronized. Selecting "Sync only assigned users and groups" (recommended) will only sync users and groups assigned in the **Users and groups** tab.
-12. Once your configuration is complete, change the **Provisioning Status** to **On**.
-13. Click **Save** to start the Azure AD provisioning service.
-14. If syncing only assigned users and groups (recommended), be sure to select the **Users and groups** tab and assign the users and/or groups you wish to sync.
+1. Under **Settings**, the **Scope** field defines which users and groups are synchronized. Select **Sync only assigned users and groups** (recommended) to only sync users and groups assigned in the **Users and groups** tab.
+1. Once your configuration is complete, set the **Provisioning Status** to **On**.
+1. Select **Save** to start the Azure AD provisioning service.
+1. If syncing only assigned users and groups (recommended), be sure to select the **Users and groups** tab and assign the users or groups you want to sync.
-Once the initial synchronization has started, you can use the **Audit logs** tab to monitor progress, which shows all actions performed by the provisioning service on your app. For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](check-status-user-account-provisioning.md).
+Once the initial synchronization has started, you can select **Audit logs** in the left panel to monitor progress, which shows all actions done by the provisioning service on your app. For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](check-status-user-account-provisioning.md).
> [!NOTE]
-> The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the service is running.
-
+> The initial sync takes longer to perform than later syncs, which occur approximately every 40 minutes as long as the service is running.
## Understanding the Azure AD SCIM implementation
-If you are building an application that supports a SCIM 2.0 user management API, this section describes in detail how the Azure AD SCIM client is implemented, and how you should model your SCIM protocol request handling and responses. Once you have implemented your SCIM endpoint, you can test it by following the procedure described in the previous section.
+If you're building an application that supports a SCIM 2.0 user management API, this section describes in detail how the Azure AD SCIM client is implemented, and how you should model your SCIM protocol request handling and responses. Once you've implemented your SCIM endpoint, you can test it by following the procedure described in the previous section.
Within the [SCIM 2.0 protocol specification](http://www.simplecloud.info/#Specification), your application must meet these requirements:
* Supports creating users, and optionally also groups, as per section [3.3 of the SCIM protocol](https://tools.ietf.org/html/rfc7644#section-3.3).
-* Supports modifying users and/or groups with PATCH requests as per [section 3.5.2 of the SCIM protocol](https://tools.ietf.org/html/rfc7644#section-3.5.2).
+* Supports modifying users or groups with PATCH requests, as per [section 3.5.2 of the SCIM protocol](https://tools.ietf.org/html/rfc7644#section-3.5.2).
* Supports retrieving a known resource for a user or group created earlier, as per [section 3.4.1 of the SCIM protocol](https://tools.ietf.org/html/rfc7644#section-3.4.1).
-* Supports querying users and/or groups, as per section [3.4.2 of the SCIM protocol](https://tools.ietf.org/html/rfc7644#section-3.4.2). By default, users are retrieved by their `id` and queried by their `username` and `externalid`, and groups are queried by `displayName`.
-* Supports querying user by ID and by manager as per section 3.4.2 of the SCIM protocol.
-* Supports querying groups by ID and by member as per section 3.4.2 of the SCIM protocol.
+* Supports querying users or groups, as per section [3.4.2 of the SCIM protocol](https://tools.ietf.org/html/rfc7644#section-3.4.2). By default, users are retrieved by their `id` and queried by their `username` and `externalid`, and groups are queried by `displayName`.
+* Supports querying user by ID and by manager, as per section 3.4.2 of the SCIM protocol.
+* Supports querying groups by ID and by member, as per section 3.4.2 of the SCIM protocol.
* Accepts a single bearer token for authentication and authorization of Azure AD to your application.
-In addition, follow these general guidelines when implementing a SCIM endpoint to ensure compatibility with Azure AD:
+Follow these general guidelines when implementing a SCIM endpoint to ensure compatibility with Azure AD:
-* `id` is a required property for all the resources; every response that returns a resource should ensure each resource has this property, except for `ListResponse` with zero members.
+* `id` is a required property for all the resources. Every response that returns a resource should ensure each resource has this property, except for `ListResponse` with zero members.
* Response to a query/filter request should always be a `ListResponse`.
* Groups are optional, but only supported if the SCIM implementation supports PATCH requests.
-* It is not necessary to include the entire resource in the PATCH response.
-* Microsoft Azure AD only uses the following operators
+* It isn't necessary to include the entire resource in the PATCH response.
+* Microsoft Azure AD only uses the following operators:
- `eq`
- `and`
-* Do not require a case-sensitive match on structural elements in SCIM, in particular PATCH `op` operation values, as defined in https://tools.ietf.org/html/rfc7644#section-3.5.2. Azure AD emits the values of 'op' as `Add`, `Replace`, and `Remove`.
-* Microsoft Azure AD makes requests to fetch a random user and group to ensure that the endpoint and the credentials are valid. It is also done as a part of **Test Connection** flow in the [Azure portal](https://portal.azure.com).
+* Don't require a case-sensitive match on structural elements in SCIM, in particular PATCH `op` operation values, as defined in https://tools.ietf.org/html/rfc7644#section-3.5.2. Azure AD emits the values of 'op' as `Add`, `Replace`, and `Remove`.
+* Microsoft Azure AD makes requests to fetch a random user and group to ensure that the endpoint and the credentials are valid. It's also done as a part of **Test Connection** flow in the [Azure portal](https://portal.azure.com).
* The attribute that the resources can be queried on should be set as a matching attribute on the application in the [Azure portal](https://portal.azure.com). For more information, see [Customizing User Provisioning Attribute Mappings](https://docs.microsoft.com/en-us/azure/active-directory/active-directory-saas-customizing-attribute-mappings)
### User provisioning and de-provisioning
@@ -131,16 +134,16 @@ The following illustration shows the messages that Azure Active Directory sends
*Figure 4: User provisioning and de-provisioning sequence*
### Group provisioning and de-provisioning
-Group provisioning and de-provisioning are optional. When implemented and enabled, the following illustration shows the messages that Azure AD sends to a SCIM service to manage the lifecycle of a group in your application's identity store. Those messages differ from the messages pertaining to users in two ways:
+Group provisioning and de-provisioning are optional. When implemented and enabled, the following illustration shows the messages that Azure AD sends to a SCIM service to manage the lifecycle of a group in your application's identity store. Those messages differ from the messages about users in two ways:
-* Requests to retrieve groups stipulate that the members attribute is to be excluded from any resource provided in response to the request.
+* Requests to retrieve groups specify that the members attribute is to be excluded from any resource provided in response to the request.
* Requests to determine whether a reference attribute has a certain value are requests about the members attribute.
![][5]
*Figure 5: Group provisioning and de-provisioning sequence*
### SCIM protocol requests and responses
-This section provides example SCIM requests emitted by the Azure AD SCIM client, as well as example expected responses. For best results, you should code your app to handle these requests in this format and emit the expected responses.
+This section provides example SCIM requests emitted by the Azure AD SCIM client and example expected responses. For best results, you should code your app to handle these requests in this format and emit the expected responses.
>[!IMPORTANT]
>To understand how and when the Azure AD user provisioning service emits the operations described below, see [What happens during user provisioning?](user-provisioning.md#what-happens-during-provisioning).
@@ -443,8 +446,8 @@ This section provides example SCIM requests emitted by the Azure AD SCIM client,
* Groups shall always be created with an empty members list.
* Groups can be queried by the `displayName` attribute.
-* Update to the group PATCH request should yield an *HTTP 204 No Content* in the response. Returning a body with a list of all the members is not advisable.
-* It is not necessary to support returning all the members of the group.
+* Update to the group PATCH request should yield an *HTTP 204 No Content* in the response. Returning a body with a list of all the members isn't advisable.
+* It isn't necessary to support returning all the members of the group.
#### Create Group
@@ -603,19 +606,19 @@ By creating a SCIM web service that interfaces with Azure Active Directory, you
Here’s how it works:
-1. Azure AD provides a common language infrastructure (CLI) library named Microsoft.SystemForCrossDomainIdentityManagement, included with the code samples describe below. System integrators and developers can use this library to create and deploy a SCIM-based web service endpoint capable of connecting Azure AD to any application’s identity store.
+1. Azure AD provides a common language infrastructure (CLI) library named Microsoft.SystemForCrossDomainIdentityManagement, included with the code samples describe below. System integrators and developers can use this library to create and deploy a SCIM-based web service endpoint that can connect Azure AD to any application’s identity store.
2. Mappings are implemented in the web service to map the standardized user schema to the user schema and protocol required by the application.
3. The endpoint URL is registered in Azure AD as part of a custom application in the application gallery.
-4. Users and groups are assigned to this application in Azure AD. Upon assignment, they are put into a queue to be synchronized to the target application. The synchronization process handling the queue runs every 40 minutes.
+4. Users and groups are assigned to this application in Azure AD. Upon assignment, they're put into a queue to be synchronized to the target application. The synchronization process handling the queue runs every 40 minutes.
### Code Samples
-To make this process easier, [code samples](https://github.com/Azure/AzureAD-BYOA-Provisioning-Samples/tree/master) are provided that create a SCIM web service endpoint and demonstrate automatic provisioning. The sample is of a provider that maintains a file with rows of comma-separated values representing users and groups.
+To make this process easier, [code samples](https://github.com/Azure/AzureAD-BYOA-Provisioning-Samples/tree/master) are provided, which create a SCIM web service endpoint and demonstrate automatic provisioning. The sample is of a provider that maintains a file with rows of comma-separated values representing users and groups.
**Prerequisites**
* Visual Studio 2013 or later
* [Azure SDK for .NET](https://azure.microsoft.com/downloads/)
-* Windows machine that supports the ASP.NET framework 4.5 to be used as the SCIM endpoint. This machine must be accessible from the cloud
+* Windows machine that supports the ASP.NET framework 4.5 to be used as the SCIM endpoint. This machine must be accessible from the cloud.
* [An Azure subscription with a trial or licensed version of Azure AD Premium](https://azure.microsoft.com/services/active-directory/)
### Getting Started
@@ -624,65 +627,78 @@ The easiest way to implement a SCIM endpoint that can accept provisioning reques
#### To create a sample SCIM endpoint
1. Download the code sample package at [https://github.com/Azure/AzureAD-BYOA-Provisioning-Samples/tree/master](https://github.com/Azure/AzureAD-BYOA-Provisioning-Samples/tree/master)
-2. Unzip the package and place it on your Windows machine at a location such as C:\AzureAD-BYOA-Provisioning-Samples\.
-3. In this folder, launch the FileProvisioning\Host\FileProvisioningService.csproj project in Visual Studio.
-4. Select **Tools > NuGet Package Manager > Package Manager Console**, and execute the following commands for the FileProvisioningService project to resolve the solution references:
+1. Unzip the package and place it on your Windows machine at a location such as C:\AzureAD-BYOA-Provisioning-Samples\.
+1. In this folder, launch the FileProvisioning\Host\FileProvisioningService.csproj project in Visual Studio.
+1. Select **Tools** > **NuGet Package Manager** > **Package Manager Console**, and execute the following commands for the FileProvisioningService project to resolve the solution references:
```
Update-Package -Reinstall
```
-5. Build the FileProvisioningService project.
-6. Launch the Command Prompt application in Windows (as an Administrator), and use the **cd** command to change the directory to your **\AzureAD-BYOA-Provisioning-Samples\FileProvisioning\Host\bin\Debug** folder.
-7. Run the following command, replacing `` with the IP address or domain name of the Windows machine:
+1. Build the FileProvisioningService project.
+1. Launch the Command Prompt application in Windows (as an Administrator), and use the **cd** command to change the directory to your **\AzureAD-BYOA-Provisioning-Samples\FileProvisioning\Host\bin\Debug** folder.
+1. Run the following command, replacing `` with the IP address or domain name of the Windows machine:
```
FileSvc.exe http://:9000 TargetFile.csv
```
-8. In Windows under **Windows Settings > Network & Internet Settings**, select the **Windows Firewall > Advanced Settings**, and create an **Inbound Rule** that allows inbound access to port 9000.
-9. If the Windows machine is behind a router, the router needs to be configured to perform Network Access Translation between its port 9000 that is exposed to the internet, and port 9000 on the Windows machine. This configuration is required for Azure AD to be able to access this endpoint in the cloud.
+1. In Windows under **Windows Settings** > **Network & Internet Settings**, select the **Windows Firewall** > **Advanced Settings**, and create an **Inbound Rule** that allows inbound access to port 9000.
+1. If the Windows machine is behind a router, the router needs to be configured to run Network Access Translation between its port 9000 that is exposed to the internet, and port 9000 on the Windows machine. This configuration is required for Azure AD to access this endpoint in the cloud.
#### To register the sample SCIM endpoint in Azure AD
-1. Sign in to [the Azure portal](https://portal.azure.com).
-2. Browse to **Azure Active Directory > Enterprise Applications**, and select **New application > All > Non-gallery application**.
-3. Enter a name for your application, and click **Add** icon to create an app object. The application object created is intended to represent the target app you would be provisioning to and implementing single sign-on for, and not just the SCIM endpoint.
-4. In the resulting screen, select the **Provisioning** tab in the left column.
-5. In the **Provisioning Mode** menu, select **Automatic**.
+1. Sign in to the [Azure Active Directory portal](https://aad.portal.azure.com).
+
+1. Select **Enterprise applications** from the left pane. A list of all configured apps is shown, including apps that were added from the gallery.
+
+1. Select **+ New application** > **All** > **Non-gallery application**.
+
+1. Enter a name for your application, and select **Add** to create an app object. The application object created is intended to represent the target app you would be provisioning to and implementing single sign-on for, and not just the SCIM endpoint.
+
+1. In the app management screen, select **Provisioning** in the left panel.
+
+1. In the **Provisioning Mode** menu, select **Automatic**.
![][2]
*Figure 6: Configuring provisioning in the Azure portal*
-6. In the **Tenant URL** field, enter the internet-exposed URL and port of your SCIM endpoint. The entry is something like http://testmachine.contoso.com:9000 or http://\:9000/, where \ is the internet exposed IP address.
-7. If the SCIM endpoint requires an OAuth bearer token from an issuer other than Azure AD, then copy the required OAuth bearer token into the optional **Secret Token** field. If this field is left blank, then Azure AD will include an OAuth bearer token issued from Azure AD with each request. Apps that use Azure AD as an identity provider can validate this Azure AD -issued token.
-8. Click the **Test Connection** button to have Azure Active Directory attempt to connect to the SCIM endpoint. If the attempts fail, error information is displayed.
+1. In the **Tenant URL** field, enter the internet-exposed URL and port of your SCIM endpoint. The entry is something like http://testmachine.contoso.com:9000 or http://\:9000/, where \ is the internet exposed IP address.
+
+1. If the SCIM endpoint requires an OAuth bearer token from an issuer other than Azure AD, then copy the required OAuth bearer token into the optional **Secret Token** field. If this field is left blank, Azure AD will include an OAuth bearer token issued from Azure AD with each request. Apps that use Azure AD as an identity provider can validate this Azure AD -issued token.
+
+1. Select **Test Connection** to have Azure Active Directory attempt to connect to the SCIM endpoint. If the attempt fails, error information is displayed.
>[!NOTE]
>**Test Connection** queries the SCIM endpoint for a user that doesn't exist, using a random GUID as the matching property selected in the Azure AD configuration. The expected correct response is HTTP 200 OK with an empty SCIM ListResponse message
-9. If the attempts to connect to the application succeed, then click **Save** to save the admin credentials.
-10. In the **Mappings** section, there are two selectable sets of attribute mappings: one for user objects and one for group objects. Select each one to review the attributes that are synchronized from Azure Active Directory to your app. The attributes selected as **Matching** properties are used to match the users and groups in your app for update operations. Select the Save button to commit any changes.
-11. Under **Settings**, the **Scope** field defines which users and or groups are synchronized. Selecting "Sync only assigned users and groups" (recommended) will only sync users and groups assigned in the **Users and groups** tab.
-12. Once your configuration is complete, change the **Provisioning Status** to **On**.
-13. Click **Save** to start the Azure AD provisioning service.
-14. If syncing only assigned users and groups (recommended), be sure to select the **Users and groups** tab and assign the users and/or groups you wish to sync.
+1. If the attempts to connect to the application succeed, then select **Save** to save the admin credentials.
+
+1. In the **Mappings** section, there are two selectable sets of attribute mappings: one for user objects and one for group objects. Select each one to review the attributes that are synchronized from Azure Active Directory to your app. The attributes selected as **Matching** properties are used to match the users and groups in your app for update operations. Select **Save** to commit any changes.
+
+1. Under **Settings**, the **Scope** field defines which users and or groups are synchronized. Select **"Sync only assigned users and groups** (recommended) to only sync users and groups assigned in the **Users and groups** tab.
+
+1. Once your configuration is complete, set the **Provisioning Status** to **On**.
+
+1. Select **Save** to start the Azure AD provisioning service.
+
+1. If syncing only assigned users and groups (recommended), be sure to select the **Users and groups** tab and assign the users or groups you want to sync.
-Once the initial synchronization has started, you can use the **Audit logs** tab to monitor progress, which shows all actions performed by the provisioning service on your app. For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](check-status-user-account-provisioning.md).
+Once the initial synchronization has started, you can select **Audit logs** in the left panel to monitor progress, which shows all actions done by the provisioning service on your app. For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](check-status-user-account-provisioning.md).
The final step in verifying the sample is to open the TargetFile.csv file in the \AzureAD-BYOA-Provisioning-Samples\ProvisioningAgent\bin\Debug folder on your Windows machine. Once the provisioning process is run, this file shows the details of all assigned and provisioned users and groups.
### Development libraries
To develop your own web service that conforms to the SCIM specification, first familiarize yourself with the following libraries provided by Microsoft to help accelerate the development process:
-1. Common Language Infrastructure (CLI) libraries are offered for use with languages based on that infrastructure, such as C#. One of those libraries, Microsoft.SystemForCrossDomainIdentityManagement.Service, declares an interface, Microsoft.SystemForCrossDomainIdentityManagement.IProvider, shown in the following illustration. A developer using the libraries would implement that interface with a class that may be referred to, generically, as a provider. The libraries enable the developer to deploy a web service that conforms to the SCIM specification. The web service can be either hosted within Internet Information Services, or any executable CLI assembly. Request is translated into calls to the provider’s methods, which would be programmed by the developer to operate on some identity store.
+- Common Language Infrastructure (CLI) libraries are offered for use with languages based on that infrastructure, such as C#. One of those libraries, Microsoft.SystemForCrossDomainIdentityManagement.Service, declares an interface, Microsoft.SystemForCrossDomainIdentityManagement.IProvider, shown in the following illustration. A developer using the libraries would implement that interface with a class that may be referred to, generically, as a provider. The libraries let the developer deploy a web service that conforms to the SCIM specification. The web service can be either hosted within Internet Information Services, or any executable CLI assembly. Request is translated into calls to the provider’s methods, which would be programmed by the developer to operate on some identity store.
![][3]
-2. [Express route handlers](https://expressjs.com/guide/routing.html) are available for parsing node.js request objects representing calls (as defined by the SCIM specification), made to a node.js web service.
+- [Express route handlers](https://expressjs.com/guide/routing.html) are available for parsing node.js request objects representing calls (as defined by the SCIM specification), made to a node.js web service.
### Building a Custom SCIM Endpoint
-Using the CLI libraries, developers using those libraries can host their services within any executable CLI assembly, or within Internet Information Services. Here is sample code for hosting a service within an executable assembly, at the address http://localhost:9000:
+Developers using the CLI libraries can host their services within any executable CLI assembly, or within Internet Information Services. Here is sample code for hosting a service within an executable assembly, at the address http://localhost:9000:
private static void Main(string[] arguments)
{
@@ -802,7 +818,7 @@ To host the service within Internet Information Services, a developer would buil
}
### Handling endpoint authentication
-Requests from Azure Active Directory include an OAuth 2.0 bearer token. Any service receiving the request should authenticate the issuer as being Azure Active Directory on behalf of the expected Azure Active Directory tenant, for access to the Azure Active Directory Graph web service. In the token, the issuer is identified by an iss claim, like, "iss":"https://sts.windows.net/cbb1a5ac-f33b-45fa-9bf5-f37db0fed422/". In this example, the base address of the claim value, https://sts.windows.net, identifies Azure Active Directory as the issuer, while the relative address segment, cbb1a5ac-f33b-45fa-9bf5-f37db0fed422, is a unique identifier of the Azure Active Directory tenant on behalf of which the token was issued. If the token was issued for accessing the Azure Active Directory Graph web service, then the identifier of that service, 00000002-0000-0000-c000-000000000000, should be in the value of the token’s aud claim. Note that each of the applications that are registered in a single tenant may receive the same `iss` claim with SCIM requests.
+Requests from Azure Active Directory include an OAuth 2.0 bearer token. Any service receiving the request should authenticate the issuer as being Azure Active Directory for the expected Azure Active Directory tenant, for access to the Azure Active Directory Graph web service. In the token, the issuer is identified by an iss claim, like "iss":"https://sts.windows.net/cbb1a5ac-f33b-45fa-9bf5-f37db0fed422/". In this example, the base address of the claim value, https://sts.windows.net, identifies Azure Active Directory as the issuer, while the relative address segment, cbb1a5ac-f33b-45fa-9bf5-f37db0fed422, is a unique identifier of the Azure Active Directory tenant for which the token was issued. If the token was issued for accessing the Azure Active Directory Graph web service, then the identifier of that service, 00000002-0000-0000-c000-000000000000, should be in the value of the token’s aud claim. Each of the applications that are registered in a single tenant may receive the same `iss` claim with SCIM requests.
Developers using the CLI libraries provided by Microsoft for building a SCIM service can authenticate requests from Azure Active Directory using the Microsoft.Owin.Security.ActiveDirectory package by following these steps:
@@ -824,7 +840,7 @@ Developers using the CLI libraries provided by Microsoft for building a SCIM ser
}
```
-2. Add the following code to that method to have any request to any of the service’s endpoints authenticated as bearing a token issued by Azure Active Directory on behalf of a specified tenant, for access to the Azure AD Graph web service:
+2. Add the following code to that method to have any request to any of the service’s endpoints authenticated as bearing a token issued by Azure Active Directory for a specified tenant, for access to the Azure AD Graph web service:
```
private void OnServiceStartup(
@@ -862,7 +878,7 @@ Developers using the CLI libraries provided by Microsoft for building a SCIM ser
1. Azure Active Directory queries the service for a user with an externalId attribute value matching the mailNickname attribute value of a user in Azure AD. The query is expressed as a Hypertext Transfer Protocol (HTTP) request such as this example, wherein jyoung is a sample of a mailNickname of a user in Azure Active Directory.
>[!NOTE]
- > This is an example only. Not all users will have a mailNickname attribute, and the value a user has may not be unique in the directory. Furthermore, the attribute used for matching (which in this case is externalId) is configurable in the [Azure AD attribute mappings](customize-application-attributes.md).
+ > This is an example only. Not all users will have a mailNickname attribute, and the value a user has may not be unique in the directory. Also, the attribute used for matching (which in this case is externalId) is configurable in the [Azure AD attribute mappings](customize-application-attributes.md).
````
GET https://.../scim/Users?filter=externalId eq jyoung HTTP/1.1
@@ -963,7 +979,7 @@ Developers using the CLI libraries provided by Microsoft for building a SCIM ser
* parameters.AlternateFilter.ElementAt(0).ComparisonValue: "jyoung"
* correlationIdentifier: System.Net.Http.HttpRequestMessage.GetOwinEnvironment["owin.RequestId"]
-2. If the response to a query to the web service for a user with an externalId attribute value that matches the mailNickname attribute value of a user does not return any users, then Azure Active Directory requests that the service provision a user corresponding to the one in Azure Active Directory. Here is an example of such a request:
+2. If the response to a query to the web service for a user with an externalId attribute value that matches the mailNickname attribute value of a user doesn't return any users, then Azure Active Directory requests that the service provision a user corresponding to the one in Azure Active Directory. Here is an example of such a request:
````
POST https://.../scim/Users HTTP/1.1
@@ -1045,7 +1061,7 @@ Developers using the CLI libraries provided by Microsoft for building a SCIM ser
* Identifier: "54D382A4-2050-4C03-94D1-E769F1D15682"
* SchemaIdentifier: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
-4. If a reference attribute is to be updated, then Azure Active Directory queries the service to determine whether or not the current value of the reference attribute in the identity store fronted by the service already matches the value of that attribute in Azure Active Directory. For users, the only attribute of which the current value is queried in this way is the manager attribute. Here is an example of a request to determine whether the manager attribute of a particular user object currently has a certain value:
+4. If a reference attribute is to be updated, then Azure Active Directory queries the service to determine whether the current value of the reference attribute in the identity store fronted by the service already matches the value of that attribute in Azure Active Directory. For users, the only attribute of which the current value is queried in this way is the manager attribute. Here is an example of a request to determine whether the manager attribute of a particular user object currently has a certain value:
If the service was built using the CLI libraries provided by Microsoft for implementing SCIM services, then the request is translated into a call to the Query method of the service’s provider. The value of the properties of the object provided as the value of the parameters argument are as follows:
@@ -1059,7 +1075,7 @@ Developers using the CLI libraries provided by Microsoft for building a SCIM ser
* parameters.RequestedAttributePaths.ElementAt(0): "ID"
* parameters.SchemaIdentifier: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
- Here, the value of the index x may be 0 and the value of the index y may be 1, or the value of x may be 1 and the value of y may be 0, depending on the order of the expressions of the filter query parameter.
+ Here, the value of the index x can be 0 and the value of the index y can be 1, or the value of x can be 1 and the value of y can be 0, depending on the order of the expressions of the filter query parameter.
5. Here is an example of a request from Azure Active Directory to an SCIM service to update a user:
````
@@ -1130,7 +1146,7 @@ Developers using the CLI libraries provided by Microsoft for building a SCIM ser
* parameters.RequestedAttributePaths.ElementAt(0): "ID"
* parameters.SchemaIdentifier: "urn:ietf:params:scim:schemas:extension:enterprise:2.0:User"
- Here, the value of the index x may be 0 and the value of the index y may be 1, or the value of x may be 1 and the value of y may be 0, depending on the order of the expressions of the filter query parameter.
+ Here, the value of the index x can be 0 and the value of the index y can be 1, or the value of x can be 1 and the value of y can be 0, depending on the order of the expressions of the filter query parameter.
1. Here is an example of a request from Azure Active Directory to an SCIM service to update a user:
@@ -1292,9 +1308,9 @@ Developers using the CLI libraries provided by Microsoft for building a SCIM ser
## User and group schema reference
Azure Active Directory can provision two types of resources to SCIM web services. Those types of resources are users and groups.
-User resources are identified by the schema identifier, `urn:ietf:params:scim:schemas:extension:enterprise:2.0:User`, which is included in this protocol specification: https://tools.ietf.org/html/rfc7643. The default mapping of the attributes of users in Azure Active Directory to the attributes of user resources is provided in table 1 below.
+User resources are identified by the schema identifier, `urn:ietf:params:scim:schemas:extension:enterprise:2.0:User`, which is included in this protocol specification: https://tools.ietf.org/html/rfc7643. The default mapping of the attributes of users in Azure Active Directory to the attributes of user resources is provided in Table 1.
-Group resources are identified by the schema identifier, `urn:ietf:params:scim:schemas:core:2.0:Group`. Table 2 below shows the default mapping of the attributes of groups in Azure Active Directory to the attributes of group resources.
+Group resources are identified by the schema identifier, `urn:ietf:params:scim:schemas:core:2.0:Group`. Table 2 shows the default mapping of the attributes of groups in Azure Active Directory to the attributes of group resources.
### Table 1: Default user attribute mapping
diff --git a/articles/active-directory/manage-apps/view-applications-portal.md b/articles/active-directory/manage-apps/view-applications-portal.md
index cfc0526531513..824c8f7208a40 100644
--- a/articles/active-directory/manage-apps/view-applications-portal.md
+++ b/articles/active-directory/manage-apps/view-applications-portal.md
@@ -12,7 +12,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: quickstart
-ms.date: 07/25/2018
+ms.date: 04/09/2019
ms.author: celested
ms.reviewer: arvinh
ms.custom: it-pro
@@ -38,11 +38,11 @@ To find your tenant applications:
1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, select **Azure Active Directory**.
-2. In the **Azure Active Directory** pane, select **Enterprise applications**.
+1. In the **Azure Active Directory** pane, select **Enterprise applications**.
-3. From the **Application Type** drop-down menu, select **All Applications**, and choose **Apply**. A random sample of your tenant applications appears.
+1. From the **Application Type** drop-down menu, select **All Applications**, and choose **Apply**. A random sample of your tenant applications appears.
-4. To view more applications, select **Load more** at the bottom of the list. Depending on the number of applications in your tenant, it might be easier to [search for a particular application](#search-for-a-tenant-application), instead of scrolling through the list.
+1. To view more applications, select **Load more** at the bottom of the list. Depending on the number of applications in your tenant, it might be easier to [search for a particular application](#search-for-a-tenant-application), instead of scrolling through the list.
## Select viewing options
@@ -50,17 +50,17 @@ Select options according to what you're looking for.
1. You can view the applications by **Application Type**, **Application Status**, and **Application visibility**.
-2. Under **Application Type**, choose one of these options:
+1. Under **Application Type**, choose one of these options:
- **Enterprise Applications** shows non-Microsoft applications.
- **Microsoft Applications** shows Microsoft applications.
- **All Applications** shows both non-Microsoft and Microsoft applications.
-3. Under **Application Status**, choose **Any**, **Disabled**, or **Enabled**. The **Any** option includes both disabled and enabled applications.
+1. Under **Application Status**, choose **Any**, **Disabled**, or **Enabled**. The **Any** option includes both disabled and enabled applications.
-4. Under **Application Visibility**, choose **Any**, or **Hidden**. The **Hidden** option shows applications that are in the tenant, but aren't visible to users.
+1. Under **Application Visibility**, choose **Any**, or **Hidden**. The **Hidden** option shows applications that are in the tenant, but aren't visible to users.
-5. After choosing the options you want, select **Apply**.
+1. After choosing the options you want, select **Apply**.
## Search for a tenant application
@@ -69,11 +69,11 @@ To search for a particular application:
1. In the **Application Type** menu, select **All applications**, and choose **Apply**.
-2. Enter the name of the application you want to find. If the application has been added to your Azure AD tenant, it appears in the search results. This example shows that GitHub hasn't been added to the tenant applications.
+1. Enter the name of the application you want to find. If the application has been added to your Azure AD tenant, it appears in the search results. This example shows that GitHub hasn't been added to the tenant applications.
![Search for an application](media/view-applications-portal/search-for-tenant-application.png)
-3. Try entering the first few letters of an application name. This example shows all the applications that start with **Sales**.
+1. Try entering the first few letters of an application name. This example shows all the applications that start with **Sales**.
![Search with a prefix](media/view-applications-portal/search-by-prefix.png)
diff --git a/articles/active-directory/manage-apps/what-is-single-sign-on.md b/articles/active-directory/manage-apps/what-is-single-sign-on.md
index 22961a1230f6f..7e1240ff3ddaa 100644
--- a/articles/active-directory/manage-apps/what-is-single-sign-on.md
+++ b/articles/active-directory/manage-apps/what-is-single-sign-on.md
@@ -16,24 +16,25 @@ ms.collection: M365-identity-device-management
---
# Single sign-on to applications in Azure Active Directory
+
Single sign-on (SSO) adds security and convenience when users sign-on to applications in Azure Active Directory (Azure AD). This article describes the single sign-on methods, and helps you choose the most appropriate SSO method when configuring your applications.
-- **With single sign-on**, users sign in once with one account to access domain-joined devices, company resources, software as a service (SaaS) applications, and web applications. After signing in, the user can launch applications from the Office 365 portal or the Azure AD MyApps access panel. Administrators can centralize user account management, and automatically add or remove user access to applications based on group membership.
+- **With single sign-on**, users sign in once with one account to access domain-joined devices, company resources, software as a service (SaaS) applications, and web applications. After signing in, the user can launch applications from the Office 365 portal or the Azure AD MyApps access panel. Administrators can centralize user account management, and automatically add or remove user access to applications based on group membership.
- **Without single sign-on**, users must remember application-specific passwords and sign in to each application. IT staff needs to create and update user accounts for each application such as Office 365, Box, and Salesforce. Users need to remember their passwords, plus spend the time to sign in to each application.
## Choosing a single sign-on method
-There are several ways to configure an application for single sign-on. Choosing a single sign-on method depends on how the application is configured for authentication.
+There are several ways to configure an application for single sign-on. Choosing a single sign-on method depends on how the application is configured for authentication.
- Cloud applications can use OpenID Connect, OAuth, SAML, password-based, linked, or disabled methods for single sign-on.
- On-premises applications can use password-based, Integrated Windows Authentication, header-based, linked, or disabled methods for single sign-on. The on-premises choices work when applications are configured for Application Proxy.
-This flowchart helps you decide which single sign-on method is best for your situation.
+This flowchart helps you decide which single sign-on method is best for your situation.
-![Choose single sign-on method](./media/what-is-single-sign-on/choose-single-sign-on-method-updated.png)
+![Choose single sign-on method](./media/what-is-single-sign-on/choose-single-sign-on-method-040419.png)
-The following table summarizes the single sign-on methods, and links to more details.
+The following table summarizes the single sign-on methods, and links to more details.
| Single sign-on method | Application types | When to use |
| :------ | :------- | :----- |
diff --git a/articles/active-directory/managed-identities-azure-resources/how-to-use-vm-token.md b/articles/active-directory/managed-identities-azure-resources/how-to-use-vm-token.md
index 12cbb5997b97d..7b29af6f4b4bc 100644
--- a/articles/active-directory/managed-identities-azure-resources/how-to-use-vm-token.md
+++ b/articles/active-directory/managed-identities-azure-resources/how-to-use-vm-token.md
@@ -76,10 +76,11 @@ GET 'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-0
| `Metadata` | An HTTP request header field, required by managed identities for Azure resources as a mitigation against Server Side Request Forgery (SSRF) attack. This value must be set to "true", in all lower case. |
| `object_id` | (Optional) A query string parameter, indicating the object_id of the managed identity you would like the token for. Required, if your VM has multiple user-assigned managed identities.|
| `client_id` | (Optional) A query string parameter, indicating the client_id of the managed identity you would like the token for. Required, if your VM has multiple user-assigned managed identities.|
+| `mi_res_id` | (Optional) A query string parameter, indicating the mi_res_id (Azure Resource ID) of the managed identity you would like the token for. Required, if your VM has multiple user-assigned managed identities. |
Sample request using the managed identities for Azure resources VM Extension Endpoint *(planned for deprecation in January 2019)*:
-```
+```http
GET http://localhost:50342/oauth2/token?resource=https%3A%2F%2Fmanagement.azure.com%2F HTTP/1.1
Metadata: true
```
@@ -93,10 +94,9 @@ Metadata: true
| `object_id` | (Optional) A query string parameter, indicating the object_id of the managed identity you would like the token for. Required, if your VM has multiple user-assigned managed identities.|
| `client_id` | (Optional) A query string parameter, indicating the client_id of the managed identity you would like the token for. Required, if your VM has multiple user-assigned managed identities.|
-
Sample response:
-```
+```json
HTTP/1.1 200 OK
Content-Type: application/json
{
diff --git a/articles/active-directory/managed-identities-azure-resources/overview.md b/articles/active-directory/managed-identities-azure-resources/overview.md
index 60553d0dfdfa0..244a6cf0cc5cd 100644
--- a/articles/active-directory/managed-identities-azure-resources/overview.md
+++ b/articles/active-directory/managed-identities-azure-resources/overview.md
@@ -47,12 +47,21 @@ There are two types of managed identities:
- A **system-assigned managed identity** is enabled directly on an Azure service instance. When the identity is enabled, Azure creates an identity for the instance in the Azure AD tenant that's trusted by the subscription of the instance. After the identity is created, the credentials are provisioned onto the instance. The lifecycle of a system-assigned identity is directly tied to the Azure service instance that it's enabled on. If the instance is deleted, Azure automatically cleans up the credentials and the identity in Azure AD.
- A **user-assigned managed identity** is created as a standalone Azure resource. Through a create process, Azure creates an identity in the Azure AD tenant that's trusted by the subscription in use. After the identity is created, the identity can be assigned to one or more Azure service instances. The lifecycle of a user-assigned identity is managed separately from the lifecycle of the Azure service instances to which it's assigned.
-Your code can use a managed identity to request access tokens for services that support Azure AD authentication. Azure takes care of rolling the credentials that are used by the service instance.
+Internally, managed identities are service principals of a special type, which are locked to only be used with Azure resources. When the managed identity is deleted, the corresponding service principal is automatically removed.
+
+Your code can use a managed identity to request access tokens for services that support Azure AD authentication. Azure takes care of rolling the credentials that are used by the service instance.
The following diagram shows how managed service identities work with Azure virtual machines (VMs):
![Managed service identities and Azure VMs](media/overview/msi-vm-vmextension-imds-example.png)
+| Property | System-assigned managed identity | User-assigned managed identity |
+|------|----------------------------------|--------------------------------|
+| Creation | Created as part of an Azure resource (for example, an Azure virtual machine or Azure App Service) | Created as a stand-alone Azure resource |
+| Lifecycle | Shared lifecycle with the Azure resource that the managed identity is created with. When the parent resource is deleted, the managed identity is deleted as well. | Independent life-cycle. Must be explicitly deleted. |
+| Sharing across Azure resources | Cannot be shared. It can only be associated with a single Azure resource. | Can be shared The same user-assigned managed identity can be associated with more than one Azure resource. |
+| Common use cases | Workloads that are contained within a single Azure resource Workloads for which you need independent identities. For example, an application that runs on a single virtual machine | Workloads that run on multiple resources and which can share a single identity. Workloads that need pre-authorization to a secure resource as part of a provisioning flow. Workloads where resources are recycled frequently, but permissions should stay consistent. For example, a workload where multiple virtual machines need to access the same resource |
+
### How a system-assigned managed identity works with an Azure VM
1. Azure Resource Manager receives a request to enable the system-assigned managed identity on a VM.
diff --git a/articles/active-directory/managed-identities-azure-resources/qs-configure-rest-vmss.md b/articles/active-directory/managed-identities-azure-resources/qs-configure-rest-vmss.md
index 2cfa93f3371f2..0eee0da2e44bd 100644
--- a/articles/active-directory/managed-identities-azure-resources/qs-configure-rest-vmss.md
+++ b/articles/active-directory/managed-identities-azure-resources/qs-configure-rest-vmss.md
@@ -156,7 +156,7 @@ To create a virtual machine scale set with system-assigned managed identity enab
}
```
-### Enable system-assigned managed identity on a existing virtual machine scale set
+### Enable system-assigned managed identity on an existing virtual machine scale set
To enable system-assigned managed identity on an existing virtual machine scale set, you need to acquire an access token and then use CURL to call the Resource Manager REST endpoint to update the identity type.
diff --git a/articles/active-directory/managed-identities-azure-resources/qs-configure-template-windows-vmss.md b/articles/active-directory/managed-identities-azure-resources/qs-configure-template-windows-vmss.md
index be581ce7702ec..4410e0adfa65f 100644
--- a/articles/active-directory/managed-identities-azure-resources/qs-configure-template-windows-vmss.md
+++ b/articles/active-directory/managed-identities-azure-resources/qs-configure-template-windows-vmss.md
@@ -56,7 +56,7 @@ Regardless of the option you choose, template syntax is the same during initial
In this section, you will enable and disable the system-assigned managed identity using an Azure Resource Manager template.
-### Enable system-assigned managed identity during creation the creation of a virtual machines scale set or a existing virtual machine scale set
+### Enable system-assigned managed identity during creation the creation of a virtual machines scale set or an existing virtual machine scale set
1. Whether you sign in to Azure locally or via the Azure portal, use an account that is associated with the Azure subscription that contains the virtual machine scale set.
2. To enable the system-assigned managed identity, load the template into an editor, locate the `Microsoft.Compute/virtualMachinesScaleSets` resource of interest within the resources section and add the `identity` property at the same level as the `"type": "Microsoft.Compute/virtualMachinesScaleSets"` property. Use the following syntax:
diff --git a/articles/active-directory/managed-identities-azure-resources/services-support-managed-identities.md b/articles/active-directory/managed-identities-azure-resources/services-support-managed-identities.md
index 9471f9ef12af7..219a8cd806e4a 100644
--- a/articles/active-directory/managed-identities-azure-resources/services-support-managed-identities.md
+++ b/articles/active-directory/managed-identities-azure-resources/services-support-managed-identities.md
@@ -172,7 +172,7 @@ Refer to the following list to configure access to Azure Resource Manager:
| Azure Germany | `https://vault.microsoftazure.de` | Available |
| Azure China 21Vianet | `https://vault.azure.cn` | Available |
-## Azure Data Lake
+### Azure Data Lake
| Cloud | Resource ID | Status |
|--------|------------|--------|
@@ -181,7 +181,7 @@ Refer to the following list to configure access to Azure Resource Manager:
| Azure Germany | | Not Available |
| Azure China 21Vianet | | Not Available |
-## Azure SQL
+### Azure SQL
| Cloud | Resource ID | Status |
|--------|------------|--------|
@@ -190,7 +190,7 @@ Refer to the following list to configure access to Azure Resource Manager:
| Azure Germany | `https://database.cloudapi.de/` | Available |
| Azure China 21Vianet | `https://database.chinacloudapi.cn/` | Available |
-## Azure Event Hubs
+### Azure Event Hubs
| Cloud | Resource ID | Status |
|--------|------------|--------|
@@ -199,7 +199,7 @@ Refer to the following list to configure access to Azure Resource Manager:
| Azure Germany | | Not Available |
| Azure China 21Vianet | | Not Available |
-## Azure Service Bus
+### Azure Service Bus
| Cloud | Resource ID | Status |
|--------|------------|--------|
@@ -208,7 +208,7 @@ Refer to the following list to configure access to Azure Resource Manager:
| Azure Germany | | Not Available |
| Azure China 21Vianet | | Not Available |
-## Azure Storage
+### Azure Storage
| Cloud | Resource ID | Status |
|--------|------------|--------|
diff --git a/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-cosmos-db.md b/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-cosmos-db.md
index 3c967f314fded..b961972b0e68a 100644
--- a/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-cosmos-db.md
+++ b/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-cosmos-db.md
@@ -153,7 +153,7 @@ The CURL response gives you the list of Keys. For example, if you get the read-
"secondaryReadonlyMasterKey":"38v5ns...7bA=="}
```
-Now that you have the access key for the Cosmos DB account you can pass it to a Cosmos DB SDK and make calls to access the account. For a quick example, you can pass the access key to the Azure CLI. You can get the from the **Overview** tab on the Cosmos DB account blade in the Azure portal. Replace the with the value you obtained above:
+Now that you have the access key for the Cosmos DB account you can pass it to a Cosmos DB SDK and make calls to access the account. For a quick example, you can pass the access key to the Azure CLI. You can get the `` from the **Overview** tab on the Cosmos DB account blade in the Azure portal. Replace the `` with the value you obtained above:
```bash
az cosmosdb collection show -c -d --url-connection "" --key
diff --git a/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-storage-sas.md b/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-storage-sas.md
index 6c1889f142b22..54935843f13de 100644
--- a/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-storage-sas.md
+++ b/articles/active-directory/managed-identities-azure-resources/tutorial-linux-vm-access-storage-sas.md
@@ -25,6 +25,9 @@ ms.collection: M365-identity-device-management
This tutorial shows you how to use a system-assigned managed identity for a Linux virtual machine (VM) to obtain a storage Shared Access Signature (SAS) credential. Specifically, a [Service SAS credential](/azure/storage/common/storage-dotnet-shared-access-signature-part-1?toc=%2fazure%2fstorage%2fblobs%2ftoc.json#types-of-shared-access-signatures).
+> [!NOTE]
+> The SAS key generated in this tutorial will not be restricted/bound to the VM.
+
A Service SAS provides the ability to grant limited access to objects in a storage account, for a limited time and a specific service (in our case, the blob service), without exposing an account access key. You can use a SAS credential as usual when doing storage operations, for example when using the Storage SDK. For this tutorial, we demonstrate uploading and downloading a blob using Azure Storage CLI. You will learn how to:
diff --git a/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-azure-ad-graph.md b/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-azure-ad-graph.md
index 0840ec9498c6f..bfc587b992db1 100644
--- a/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-azure-ad-graph.md
+++ b/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-azure-ad-graph.md
@@ -161,7 +161,7 @@ To use the VM's system assigned managed identity for authentication to Azure AD
$AccessToken = $content.access_token
```
-5. Using the Object ID of your VM identity's service principal (you can retrieve this value from the variable declared in previous steps: ``$ManagedIdentitiesServicePrincipal.ObjectId``), you can query the Azure AD Graph API to retrieve its group memberships. Replace with the Object ID from the previous step and with the previously obtained access token:
+5. Using the Object ID of your VM identity's service principal (you can retrieve this value from the variable declared in previous steps: ``$ManagedIdentitiesServicePrincipal.ObjectId``), you can query the Azure AD Graph API to retrieve its group memberships. Replace `` with the Object ID from the previous step and <`ACCESS-TOKEN>` with the previously obtained access token:
```powershell
Invoke-WebRequest 'https://graph.windows.net//servicePrincipals//getMemberGroups?api-version=1.6' -Method POST -Body '{"securityEnabledOnly":"false"}' -Headers @{Authorization="Bearer $AccessToken"} -ContentType "application/json"
diff --git a/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-cosmos-db.md b/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-cosmos-db.md
index 17a77d3f15a8a..67e6cb3659f72 100644
--- a/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-cosmos-db.md
+++ b/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-access-cosmos-db.md
@@ -106,7 +106,7 @@ The response give you the list of Keys. For example, if you get read-only keys:
{"primaryReadonlyMasterKey":"bWpDxS...dzQ==",
"secondaryReadonlyMasterKey":"38v5ns...7bA=="}
```
-Now that you have the access key for the Cosmos DB account you can pass it to a Cosmos DB SDK and make calls to access the account. For a quick example, you can pass the access key to the Azure CLI. You can get the from the **Overview** tab on the Cosmos DB account blade in the Azure portal. Replace the with the value you obtained above:
+Now that you have the access key for the Cosmos DB account you can pass it to a Cosmos DB SDK and make calls to access the account. For a quick example, you can pass the access key to the Azure CLI. You can get the `` from the **Overview** tab on the Cosmos DB account blade in the Azure portal. Replace the `` with the value you obtained above:
```bash
az cosmosdb collection show -c -d --url-connection "" --key
diff --git a/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-ua-arm.md b/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-ua-arm.md
index 41ef01bcc49a9..80d590b639973 100644
--- a/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-ua-arm.md
+++ b/articles/active-directory/managed-identities-azure-resources/tutorial-windows-vm-ua-arm.md
@@ -131,7 +131,7 @@ For the remainder of the tutorial, you will work from the VM we created earlier.
## Read the properties of a Resource Group
-Use the access token retrieved in the previous step to access Azure Resource Manager, and read the properties of the Resource Group you granted your user-assigned identity access. Replace with the subscription id of your environment.
+Use the access token retrieved in the previous step to access Azure Resource Manager, and read the properties of the Resource Group you granted your user-assigned identity access. Replace `` with the subscription id of your environment.
```azurepowershell
(Invoke-WebRequest -Uri https://management.azure.com/subscriptions/80c696ff-5efa-4909-a64d-f1b616f423ca/resourceGroups/myResourceGroupVM?api-version=2016-06-01 -Method GET -ContentType "application/json" -Headers @{Authorization ="Bearer $ArmToken"}).content
diff --git a/articles/active-directory/privileged-identity-management/azure-ad-pim-approval-workflow.md b/articles/active-directory/privileged-identity-management/azure-ad-pim-approval-workflow.md
index 972fecc8a4311..be45b24a014a2 100644
--- a/articles/active-directory/privileged-identity-management/azure-ad-pim-approval-workflow.md
+++ b/articles/active-directory/privileged-identity-management/azure-ad-pim-approval-workflow.md
@@ -13,7 +13,7 @@ ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: identity
ms.subservice: pim
-ms.date: 02/08/2019
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/azure-pim-resource-rbac.md b/articles/active-directory/privileged-identity-management/azure-pim-resource-rbac.md
index f86cb6723bed1..b015ebee26543 100644
--- a/articles/active-directory/privileged-identity-management/azure-pim-resource-rbac.md
+++ b/articles/active-directory/privileged-identity-management/azure-pim-resource-rbac.md
@@ -14,7 +14,7 @@ ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: identity
ms.subservice: pim
-ms.date: 01/24/2019
+ms.date: 04/09/2019
ms.author: rolyon
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/media/azure-ad-pim-approval-workflow/image021.png b/articles/active-directory/privileged-identity-management/media/azure-ad-pim-approval-workflow/image021.png
index c7100d2ce7b50..20e7f854a3f97 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-ad-pim-approval-workflow/image021.png and b/articles/active-directory/privileged-identity-management/media/azure-ad-pim-approval-workflow/image021.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-ad-pim-approval-workflow/pim-directory-roles-approve-requests.png b/articles/active-directory/privileged-identity-management/media/azure-ad-pim-approval-workflow/pim-directory-roles-approve-requests.png
index 9eca28a34477b..4980c3323c845 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-ad-pim-approval-workflow/pim-directory-roles-approve-requests.png and b/articles/active-directory/privileged-identity-management/media/azure-ad-pim-approval-workflow/pim-directory-roles-approve-requests.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/RBAC-alerts-home.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/RBAC-alerts-home.png
index e7b127576c334..24c6cf88760cd 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/RBAC-alerts-home.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/RBAC-alerts-home.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_manage_azure_resource_some_there.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_manage_azure_resource_some_there.png
index baf4348c08604..11e70914e7ba5 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_manage_azure_resource_some_there.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_manage_azure_resource_some_there.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_admin_approve_grid.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_admin_approve_grid.png
index c15155b121dd3..c5a9ccf78e1b6 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_admin_approve_grid.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_admin_approve_grid.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_admin_extend.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_admin_extend.png
index 46aaa1efaec54..13d42046adc6d 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_admin_extend.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_admin_extend.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_cancel_request.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_cancel_request.png
index 9b298d3e7dc86..cf5cefe91530e 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_cancel_request.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_cancel_request.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_ui.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_ui.png
index 6f76c0d50c5d9..6b8fac4a62295 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_ui.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_extend_ui.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_renew_from_member_blade.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_renew_from_member_blade.png
index 3370b38ab1004..4711b2294c811 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_renew_from_member_blade.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/aadpim_rbac_renew_from_member_blade.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/export-membership.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/export-membership.png
index b183d546a4d64..0225d3b5d9fc8 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/export-membership.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/export-membership.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/my-audit-time.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/my-audit-time.png
index 321cf9c8ac949..57c7a99e1e821 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/my-audit-time.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/my-audit-time.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-complete.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-complete.png
index 6ff00434d9950..a3c743f9f68ca 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-complete.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-complete.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-home-list.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-home-list.png
index df7ddab812bbd..c48fd0abf9574 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-home-list.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-home-list.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-home.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-home.png
index bd9d6c30ca5f5..798e8789ad24b 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-home.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-access-review-home.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-navigate-settings.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-navigate-settings.png
index 8b074ac2f4602..0a03e51bc0a23 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-navigate-settings.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-navigate-settings.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-overview-top.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-overview-top.png
index d1dfa4d2b8ee3..626377e55b38d 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-overview-top.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-overview-top.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-resource-audit.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-resource-audit.png
index c00699f860c35..76af9261c6bcf 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-resource-audit.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/rbac-resource-audit.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/role-settings.png b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/role-settings.png
index 9da3d189f0e31..054271ce60760 100644
Binary files a/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/role-settings.png and b/articles/active-directory/privileged-identity-management/media/azure-pim-resource-rbac/role-settings.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-configure/pim-overview.png b/articles/active-directory/privileged-identity-management/media/pim-configure/pim-overview.png
index d4a7727aba886..4c5b861afd4c9 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-configure/pim-overview.png and b/articles/active-directory/privileged-identity-management/media/pim-configure/pim-overview.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-getting-started/pim-quickstart-tasks.png b/articles/active-directory/privileged-identity-management/media/pim-getting-started/pim-quickstart-tasks.png
index b16e7d6f1fd88..8041a7ebb0af7 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-getting-started/pim-quickstart-tasks.png and b/articles/active-directory/privileged-identity-management/media/pim-getting-started/pim-quickstart-tasks.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-requests.png b/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-requests.png
index 3ac9af274451d..f41082d6969c6 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-requests.png and b/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-requests.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-roles-activate.png b/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-roles-activate.png
index 7edb1086990b6..3b1d8719f82f9 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-roles-activate.png and b/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-roles-activate.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-roles.png b/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-roles.png
index 4ba549ea08410..5fe9470e72432 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-roles.png and b/articles/active-directory/privileged-identity-management/media/pim-how-to-activate-role/directory-roles-my-roles.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-how-to-add-role-to-user/pim-directory-role-list-members.png b/articles/active-directory/privileged-identity-management/media/pim-how-to-add-role-to-user/pim-directory-role-list-members.png
index 7de80c72fed3c..f683a1e870742 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-how-to-add-role-to-user/pim-directory-role-list-members.png and b/articles/active-directory/privileged-identity-management/media/pim-how-to-add-role-to-user/pim-directory-role-list-members.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-how-to-add-role-to-user/pim-directory-roles.png b/articles/active-directory/privileged-identity-management/media/pim-how-to-add-role-to-user/pim-directory-roles.png
index 870cdb2a1cb31..c72eb8e9bda38 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-how-to-add-role-to-user/pim-directory-roles.png and b/articles/active-directory/privileged-identity-management/media/pim-how-to-add-role-to-user/pim-directory-roles.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-how-to-change-default-settings/pim-directory-roles-settings.png b/articles/active-directory/privileged-identity-management/media/pim-how-to-change-default-settings/pim-directory-roles-settings.png
index d6932b536e84a..998cc174f200c 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-how-to-change-default-settings/pim-directory-roles-settings.png and b/articles/active-directory/privileged-identity-management/media/pim-how-to-change-default-settings/pim-directory-roles-settings.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-how-to-configure-security-alerts/pim-directory-alerts.png b/articles/active-directory/privileged-identity-management/media/pim-how-to-configure-security-alerts/pim-directory-alerts.png
index ebeeb650aec31..c9dfab4759145 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-how-to-configure-security-alerts/pim-directory-alerts.png and b/articles/active-directory/privileged-identity-management/media/pim-how-to-configure-security-alerts/pim-directory-alerts.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-how-to-give-access-to-pim/pim-directory-roles-roles.png b/articles/active-directory/privileged-identity-management/media/pim-how-to-give-access-to-pim/pim-directory-roles-roles.png
index 395393b74425d..50f9830576a62 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-how-to-give-access-to-pim/pim-directory-roles-roles.png and b/articles/active-directory/privileged-identity-management/media/pim-how-to-give-access-to-pim/pim-directory-roles-roles.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-activate-your-roles/resources-my-requests.png b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-activate-your-roles/resources-my-requests.png
index a201ca8a1b46c..629dbde385798 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-activate-your-roles/resources-my-requests.png and b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-activate-your-roles/resources-my-requests.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-activate-your-roles/resources-my-roles.png b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-activate-your-roles/resources-my-roles.png
index 2c6d0afa8bfc5..890d218db39eb 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-activate-your-roles/resources-my-roles.png and b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-activate-your-roles/resources-my-roles.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-approval-workflow/resources-approve-requests.png b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-approval-workflow/resources-approve-requests.png
index b68bc23070cc7..b2188962a4d41 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-approval-workflow/resources-approve-requests.png and b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-approval-workflow/resources-approve-requests.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-list.png b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-list.png
index d3cae13d16dc6..805fb737b07f2 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-list.png and b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-list.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-roles.png b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-roles.png
index c307e4c91a910..0182035b29b4b 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-roles.png and b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-roles.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-update-select-role.png b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-update-select-role.png
index 46d3759a5a096..b134cccc9d763 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-update-select-role.png and b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-assign-roles/resources-update-select-role.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-configure-role-settings/resources-list.png b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-configure-role-settings/resources-list.png
index d3cae13d16dc6..805fb737b07f2 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-configure-role-settings/resources-list.png and b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-configure-role-settings/resources-list.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-configure-role-settings/resources-role-settings.png b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-configure-role-settings/resources-role-settings.png
index ff73c6547524f..bbbc10c710b76 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-configure-role-settings/resources-role-settings.png and b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-configure-role-settings/resources-role-settings.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-discover-resources/discover-resources.png b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-discover-resources/discover-resources.png
index cc2af1d5e51d8..efc8ffba66b46 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-discover-resources/discover-resources.png and b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-discover-resources/discover-resources.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-external-users/audit-resource.png b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-external-users/audit-resource.png
index 02e51eade18a2..c7dae1ef4c658 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-resource-roles-external-users/audit-resource.png and b/articles/active-directory/privileged-identity-management/media/pim-resource-roles-external-users/audit-resource.png differ
diff --git a/articles/active-directory/privileged-identity-management/media/pim-security-wizard/wizard-start.png b/articles/active-directory/privileged-identity-management/media/pim-security-wizard/wizard-start.png
index 6435283312fc8..6eae07d2faf11 100644
Binary files a/articles/active-directory/privileged-identity-management/media/pim-security-wizard/wizard-start.png and b/articles/active-directory/privileged-identity-management/media/pim-security-wizard/wizard-start.png differ
diff --git a/articles/active-directory/privileged-identity-management/pim-configure.md b/articles/active-directory/privileged-identity-management/pim-configure.md
index c95bb9fc822dd..83f487e69953a 100644
--- a/articles/active-directory/privileged-identity-management/pim-configure.md
+++ b/articles/active-directory/privileged-identity-management/pim-configure.md
@@ -10,7 +10,7 @@ ms.service: active-directory
ms.workload: identity
ms.subservice: pim
ms.topic: overview
-ms.date: 01/16/2019
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-getting-started.md b/articles/active-directory/privileged-identity-management/pim-getting-started.md
index ea3457117694b..a393a9f826da3 100644
--- a/articles/active-directory/privileged-identity-management/pim-getting-started.md
+++ b/articles/active-directory/privileged-identity-management/pim-getting-started.md
@@ -11,7 +11,7 @@ ms.service: active-directory
ms.subservice: pim
ms.topic: conceptual
ms.workload: identity
-ms.date: 11/09/2018
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-how-to-activate-role.md b/articles/active-directory/privileged-identity-management/pim-how-to-activate-role.md
index 14d2041070cee..bc8b1062b1064 100644
--- a/articles/active-directory/privileged-identity-management/pim-how-to-activate-role.md
+++ b/articles/active-directory/privileged-identity-management/pim-how-to-activate-role.md
@@ -11,7 +11,7 @@ ms.service: active-directory
ms.topic: conceptual
ms.workload: identity
ms.subservice: pim
-ms.date: 03/05/2019
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-how-to-add-role-to-user.md b/articles/active-directory/privileged-identity-management/pim-how-to-add-role-to-user.md
index 248f96f32d934..b5f4d38078766 100644
--- a/articles/active-directory/privileged-identity-management/pim-how-to-add-role-to-user.md
+++ b/articles/active-directory/privileged-identity-management/pim-how-to-add-role-to-user.md
@@ -10,7 +10,7 @@ ms.service: active-directory
ms.topic: conceptual
ms.workload: identity
ms.subservice: pim
-ms.date: 10/30/2018
+ms.date: 04/09/2019
ms.author: rolyon
ms.collection: M365-identity-device-management
---
diff --git a/articles/active-directory/privileged-identity-management/pim-how-to-change-default-settings.md b/articles/active-directory/privileged-identity-management/pim-how-to-change-default-settings.md
index 3fe402b2ecc69..fd1d627123cd1 100644
--- a/articles/active-directory/privileged-identity-management/pim-how-to-change-default-settings.md
+++ b/articles/active-directory/privileged-identity-management/pim-how-to-change-default-settings.md
@@ -11,7 +11,7 @@ ms.service: active-directory
ms.topic: conceptual
ms.workload: identity
ms.subservice: pim
-ms.date: 11/30/2018
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-how-to-configure-security-alerts.md b/articles/active-directory/privileged-identity-management/pim-how-to-configure-security-alerts.md
index 182bc598431ef..2e9df265ab64c 100644
--- a/articles/active-directory/privileged-identity-management/pim-how-to-configure-security-alerts.md
+++ b/articles/active-directory/privileged-identity-management/pim-how-to-configure-security-alerts.md
@@ -11,7 +11,7 @@ ms.service: active-directory
ms.topic: conceptual
ms.workload: identity
ms.subservice: pim
-ms.date: 01/04/2019
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-how-to-give-access-to-pim.md b/articles/active-directory/privileged-identity-management/pim-how-to-give-access-to-pim.md
index add36bce1eea3..a5507f3469949 100644
--- a/articles/active-directory/privileged-identity-management/pim-how-to-give-access-to-pim.md
+++ b/articles/active-directory/privileged-identity-management/pim-how-to-give-access-to-pim.md
@@ -11,7 +11,7 @@ ms.service: active-directory
ms.topic: conceptual
ms.workload: identity
ms.subservice: pim
-ms.date: 08/29/2018
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-resource-roles-activate-your-roles.md b/articles/active-directory/privileged-identity-management/pim-resource-roles-activate-your-roles.md
index b671272ed935f..0dbd5efc5595c 100644
--- a/articles/active-directory/privileged-identity-management/pim-resource-roles-activate-your-roles.md
+++ b/articles/active-directory/privileged-identity-management/pim-resource-roles-activate-your-roles.md
@@ -11,7 +11,7 @@ ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: identity
ms.subservice: pim
-ms.date: 03/05/2019
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-resource-roles-approval-workflow.md b/articles/active-directory/privileged-identity-management/pim-resource-roles-approval-workflow.md
index a04e039383726..bb526baf41e3d 100644
--- a/articles/active-directory/privileged-identity-management/pim-resource-roles-approval-workflow.md
+++ b/articles/active-directory/privileged-identity-management/pim-resource-roles-approval-workflow.md
@@ -11,7 +11,7 @@ ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: identity
ms.subservice: pim
-ms.date: 02/08/2019
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-resource-roles-assign-roles.md b/articles/active-directory/privileged-identity-management/pim-resource-roles-assign-roles.md
index a799ee9133376..dcbe72e316066 100644
--- a/articles/active-directory/privileged-identity-management/pim-resource-roles-assign-roles.md
+++ b/articles/active-directory/privileged-identity-management/pim-resource-roles-assign-roles.md
@@ -11,7 +11,7 @@ ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: identity
ms.subservice: pim
-ms.date: 08/30/2018
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-resource-roles-configure-role-settings.md b/articles/active-directory/privileged-identity-management/pim-resource-roles-configure-role-settings.md
index edf2d337af1cd..cd70ac0c0400b 100644
--- a/articles/active-directory/privileged-identity-management/pim-resource-roles-configure-role-settings.md
+++ b/articles/active-directory/privileged-identity-management/pim-resource-roles-configure-role-settings.md
@@ -11,7 +11,7 @@ ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: identity
ms.subservice: pim
-ms.date: 08/30/2018
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-resource-roles-discover-resources.md b/articles/active-directory/privileged-identity-management/pim-resource-roles-discover-resources.md
index 1865904e33481..bf4c598b3a696 100644
--- a/articles/active-directory/privileged-identity-management/pim-resource-roles-discover-resources.md
+++ b/articles/active-directory/privileged-identity-management/pim-resource-roles-discover-resources.md
@@ -11,7 +11,7 @@ ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: identity
ms.subservice: pim
-ms.date: 01/23/2019
+ms.date: 04/09/2019
ms.author: rolyon
ms.collection: M365-identity-device-management
---
diff --git a/articles/active-directory/privileged-identity-management/pim-resource-roles-external-users.md b/articles/active-directory/privileged-identity-management/pim-resource-roles-external-users.md
index 7fe671ba8097a..0ecbe7d12ed41 100644
--- a/articles/active-directory/privileged-identity-management/pim-resource-roles-external-users.md
+++ b/articles/active-directory/privileged-identity-management/pim-resource-roles-external-users.md
@@ -11,7 +11,7 @@ ms.topic: conceptual
ms.tgt_pltfrm: na
ms.workload: identity
ms.subservice: pim
-ms.date: 03/13/2019
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/privileged-identity-management/pim-security-wizard.md b/articles/active-directory/privileged-identity-management/pim-security-wizard.md
index 462cd2094d3d0..51e90e8742a3a 100644
--- a/articles/active-directory/privileged-identity-management/pim-security-wizard.md
+++ b/articles/active-directory/privileged-identity-management/pim-security-wizard.md
@@ -11,7 +11,7 @@ ms.service: active-directory
ms.topic: conceptual
ms.workload: identity
ms.subservice: pim
-ms.date: 11/09/2018
+ms.date: 04/09/2019
ms.author: rolyon
ms.custom: pim ; H1Hack27Feb2017
ms.collection: M365-identity-device-management
diff --git a/articles/active-directory/saas-apps/10000ftplans-tutorial.md b/articles/active-directory/saas-apps/10000ftplans-tutorial.md
index 51742b70f1d4b..e0fdfbdeeb019 100644
--- a/articles/active-directory/saas-apps/10000ftplans-tutorial.md
+++ b/articles/active-directory/saas-apps/10000ftplans-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: b60c955e-8fa3-4872-a897-c4e81fd7beac
ms.service: active-directory
@@ -12,8 +13,8 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 07/14/2017
+ms.topic: tutorial
+ms.date: 04/03/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -21,208 +22,181 @@ ms.collection: M365-identity-device-management
# Tutorial: Azure Active Directory integration with 10,000ft Plans
In this tutorial, you learn how to integrate 10,000ft Plans with Azure Active Directory (Azure AD).
-
Integrating 10,000ft Plans with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to 10,000ft Plans
-- You can enable your users to automatically get signed-on to 10,000ft Plans (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to 10,000ft Plans.
+* You can enable your users to be automatically signed-in to 10,000ft Plans (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with 10,000ft Plans, you need the following items:
-- An Azure AD subscription
-- A 10,000ft Plans single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial here [trial offer](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* 10,000ft Plans single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding 10,000ft Plans from the gallery
-2. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* 10,000ft Plans support **SP** initiated SSO
+* 10,000ft Plans support **Just In Time** user provisioning
## Adding 10,000ft Plans from the gallery
+
To configure the integration of 10,000ft Plans into Azure AD, you need to add 10,000ft Plans from the gallery to your list of managed SaaS apps.
**To add 10,000ft Plans from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-3. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add a new application, click the **New application** button at the top of the dialog.
-4. In the search box, type **10,000ft Plans**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/10000ftplans-tutorial/tutorial_10,000ftplans_search.png)
+4. In the search box, type **10,000ft Plans**, select **10,000ft Plans** from the result panel then click the **Add** button to add the application.
-5. In the results panel, select **10,000ft Plans**, and then click **Add** button to add the application.
+ ![10,000ft Plans in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/10000ftplans-tutorial/tutorial_10,000ftplans_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with 10,000ft Plans based on a test user called "Britta Simon."
+In this section, you configure and test Azure AD single sign-on with 10,000ft Plans based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in 10,000ft Plans needs to be established.
-For single sign-on to work, Azure AD needs to know what the counterpart user in 10,000ft Plans is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in 10,000ft Plans needs to be established.
+To configure and test Azure AD single sign-on with 10,000ft Plans, you need to complete the following building blocks:
-In 10,000ft Plans, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure 10000ft Plans Single Sign-On](#configure-10000ft-plans-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create 10000ft Plans test user](#create-10000ft-plans-test-user)** - to have a counterpart of Britta Simon in 10,000ft Plans that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-To configure and test Azure AD single sign-on with 10,000ft Plans, you need to complete the following building blocks:
+### Configure Azure AD single sign-on
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-3. **[Creating a 10,000ft Plans test user](#creating-a-10000ft-plans-test-user)** - to have a counterpart of Britta Simon in 10,000ft Plans that is linked to the Azure AD representation of user.
-4. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-### Configuring Azure AD single sign-on
+To configure Azure AD single sign-on with 10,000ft Plans, perform the following steps:
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your 10,000ft Plans application.
+1. In the [Azure portal](https://portal.azure.com/), on the **10,000ft Plans** application integration page, select **Single sign-on**.
-**To configure Azure AD single sign-on with 10,000ft Plans, perform the following steps:**
+ ![Configure single sign-on link](common/select-sso.png)
-1. In the Azure portal, on the **10,000ft Plans** application integration page, click **Single sign-on**.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On][4]
+ ![Single sign-on select mode](common/select-saml-option.png)
-2. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/10000ftplans-tutorial/tutorial_10,000ftplans_samlbase.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-3. On the **10,000ft Plans Domain and URLs** section, perform the following steps:
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Configure Single Sign-On](./media/10000ftplans-tutorial/tutorial_10,000ftplans_url.png)
+4. On the **Basic SAML Configuration** section, perform the following steps:
- a. In the **Sign-on URL** textbox, type the URL: `https://app.10000ft.com`
+ ![10,000ft Plans Domain and URLs single sign-on information](common/sp-identifier.png)
- b. In the **Identifier** textbox, type the URL: `https://app.10000ft.com/saml/metadata`
+ a. In the **Sign on URL** text box, type the URL:
+ `https://app.10000ft.com`
- > [!NOTE]
- > The value for **Identifier** is different if you have a custom domain. Contact [10,000ft Plans support team](https://www.10000ft.com/plans/support) to get this value.
-
-4. On the **SAML Signing Certificate** section, click **Certificate(Raw)** and then save the certificate file on your computer.
+ b. In the **Identifier (Entity ID)** text box, type the URL:
+ `https://app.10000ft.com/saml/metadata`
- ![Configure Single Sign-On](./media/10000ftplans-tutorial/tutorial_10,000ftplans_certificate.png)
+ > [!NOTE]
+ > The value for **Identifier** is different if you have a custom domain. Contact [10,000ft Plans Client support team](https://www.10000ft.com/plans/support) to get this value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-5. Click **Save** button.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Raw)** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On](./media/10000ftplans-tutorial/tutorial_general_400.png)
+ ![The Certificate download link](common/certificateraw.png)
-6. On the **10,000ft Plans Configuration** section, click **Configure 10,000ft Plans** to open **Configure sign-on** window. Copy the **Sign-Out URL, SAML Entity ID, and SAML Single Sign-On Service URL** from the **Quick Reference section.**
+6. On the **Set up 10,000ft Plans** section, copy the appropriate URL(s) as per your requirement.
- ![Configure Single Sign-On](./media/10000ftplans-tutorial/tutorial_10,000ftplans_configure.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-7. To configure single sign-on on **10,000ft Plans** side, you need to send the downloaded **Certificate(Raw), Sign-Out URL, SAML Entity ID, and SAML Single Sign-On Service URL** to [10,000ft Plans support team](https://www.10000ft.com/plans/support).
+ a. Login URL
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
+ b. Azure AD Identifier
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ c. Logout URL
-![Create Azure AD User][100]
+### Configure 10000ft Plans Single Sign-On
-**To create a test user in Azure AD, perform the following steps:**
+To configure single sign-on on **10,000ft Plans** side, you need to send the downloaded **Certificate (Raw)** and appropriate copied URLs from Azure portal to [10,000ft Plans support team](https://www.10000ft.com/plans/support). They set this setting to have the SAML SSO connection set properly on both sides.
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+### Create an Azure AD test user
- ![Creating an Azure AD test user](./media/10000ftplans-tutorial/create_aaduser_01.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-2. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/10000ftplans-tutorial/create_aaduser_02.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-3. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/10000ftplans-tutorial/create_aaduser_03.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
-4. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/10000ftplans-tutorial/create_aaduser_04.png)
+2. Select **New user** at the top of the screen.
- a. In the **Name** textbox, type **BrittaSimon**.
+ ![New user Button](common/new-user.png)
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+3. In the User properties, perform the following steps.
- c. Select **Show Password** and write down the value of the **Password**.
+ ![The User dialog box](common/user-properties.png)
- d. Click **Create**.
-
-### Creating a 10,000ft Plans test user
+ a. In the **Name** field, enter **BrittaSimon**.
+
+ b. In the **User name** field, type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
-The objective of this section is to create a user called Britta Simon in 10,000ft Plans. 10,000ft Plans supports just-in-time provisioning, which is by default enabled. There is no action item for you in this section. A new user is created during an attempt to access 10,000ft Plans if it doesn't exist yet.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-> [!NOTE]
-> If you need to create a user manually, you need to contact the [10,000ft Plans support team](https://www.10000ft.com/plans/support).
+ d. Click **Create**.
-### Assigning the Azure AD test user
+### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to 10,000ft Plans.
-![Assign User][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **10,000ft Plans**.
-**To assign Britta Simon to 10,000ft Plans, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **10,000ft Plans**.
- ![Assign User][201]
+ ![The 10,000ft Plans link in the Applications list](common/all-applications.png)
-2. In the applications list, select **10,000ft Plans**.
+3. In the menu on the left, select **Users and groups**.
- ![Configure Single Sign-On](./media/10000ftplans-tutorial/tutorial_10,000ftplans_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-3. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![Assign User][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-4. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog, select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![Assign User][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-5. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog, click the **Assign** button.
-6. Click **Select** button on **Users and groups** dialog.
+### Create 10000ft Plans test user
-7. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+In this section, a user called Britta Simon is created in 10,000ft Plans. 10,000ft Plans supports just-in-time user provisioning, which is enabled by default. There is no action item for you in this section. If a user doesn't already exist in 10,000ft Plans, a new one is created after authentication.
+
+> [!NOTE]
+> If you need to create a user manually, you need to contact the [10,000ft Plans Client support team](https://www.10000ft.com/plans/support).
-The objective of this section is to test your Azure AD single sign-on configuration using the Access Panel.
-When you click the 10,000ft Plans tile in the Access Panel, you should get automatically signed-on to your 10,000ft Plans application.
-
-## Additional resources
+### Test single sign-on
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-
+When you click the 10,000ft Plans tile in the Access Panel, you should be automatically signed in to the 10,000ft Plans for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-[1]: ./media/10000ftplans-tutorial/tutorial_general_01.png
-[2]: ./media/10000ftplans-tutorial/tutorial_general_02.png
-[3]: ./media/10000ftplans-tutorial/tutorial_general_03.png
-[4]: ./media/10000ftplans-tutorial/tutorial_general_04.png
+## Additional Resources
-[100]: ./media/10000ftplans-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/10000ftplans-tutorial/tutorial_general_200.png
-[201]: ./media/10000ftplans-tutorial/tutorial_general_201.png
-[202]: ./media/10000ftplans-tutorial/tutorial_general_202.png
-[203]: ./media/10000ftplans-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/agiloft-tutorial.md b/articles/active-directory/saas-apps/agiloft-tutorial.md
index ba05f5d00b8ba..4157a41d8be61 100644
--- a/articles/active-directory/saas-apps/agiloft-tutorial.md
+++ b/articles/active-directory/saas-apps/agiloft-tutorial.md
@@ -163,13 +163,13 @@ To configure Azure AD single sign-on with Agiloft, perform the following steps:
![Agiloft Configuration](./media/agiloft-tutorial/setup4.png)
- a. In **IdP Entity Id / Issuer** textbox, paste the value of **Azure Ad Identifier**, which you have copied from Azure portal.
+ a. In **IdP Entity Id / Issuer** textbox, paste the value of **Azure Ad Identifier**, which you have copied from Azure portal.
- b. In **IdP Login URL** textbox, paste the value of **Login URL**, which you have copied from Azure portal.
+ b. In **IdP Login URL** textbox, paste the value of **Login URL**, which you have copied from Azure portal.
- c. In **IdP Logout URL** textbox, paste the value of **Logout URL**, which you have copied from Azure portal.
+ c. In **IdP Logout URL** textbox, paste the value of **Logout URL**, which you have copied from Azure portal.
- d. Open your **base-64 encoded certificate** in notepad downloaded from Azure portal, copy the content of it into your clipboard, and then paste it to the **IdP Provided X.509 certificate contents** textbox.
+ d. Open your **base-64 encoded certificate** in notepad downloaded from Azure portal, copy the content of it into your clipboard, and then paste it to the **IdP Provided X.509 certificate contents** textbox.
e. Click **Finish**.
diff --git a/articles/active-directory/saas-apps/alibaba-cloud-service-role-based-sso-tutorial.md b/articles/active-directory/saas-apps/alibaba-cloud-service-role-based-sso-tutorial.md
new file mode 100644
index 0000000000000..255798359caea
--- /dev/null
+++ b/articles/active-directory/saas-apps/alibaba-cloud-service-role-based-sso-tutorial.md
@@ -0,0 +1,234 @@
+---
+title: 'Tutorial: Azure Active Directory integration with Alibaba Cloud Service (Role-based SSO) | Microsoft Docs'
+description: Learn how to configure single sign-on between Azure Active Directory and Alibaba Cloud Service (Role-based SSO).
+services: active-directory
+documentationCenter: na
+author: jeevansd
+manager: mtillman
+ms.reviewer: barbkess
+
+ms.assetid: 3667841e-acfc-4490-acf5-80d9ca3e71e8
+ms.service: active-directory
+ms.subservice: saas-app-tutorial
+ms.workload: identity
+ms.tgt_pltfrm: na
+ms.devlang: na
+ms.topic: tutorial
+ms.date: 04/05/2019
+ms.author: jeedes
+
+ms.collection: M365-identity-device-management
+---
+# Tutorial: Azure Active Directory integration with Alibaba Cloud Service (Role-based SSO)
+
+In this tutorial, you learn how to integrate Alibaba Cloud Service (Role-based SSO) with Azure Active Directory (Azure AD).
+Integrating Alibaba Cloud Service (Role-based SSO) with Azure AD provides you with the following benefits:
+
+* You can control in Azure AD who has access to Alibaba Cloud Service (Role-based SSO).
+* You can enable your users to be automatically signed-in to Alibaba Cloud Service (Role-based SSO) (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
+
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+
+## Prerequisites
+
+To configure Azure AD integration with Alibaba Cloud Service (Role-based SSO), you need the following items:
+
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Alibaba Cloud Service (Role-based SSO) single sign-on enabled subscription
+
+## Scenario description
+
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Alibaba Cloud Service (Role-based SSO) supports **IDP** initiated SSO
+
+## Adding Alibaba Cloud Service (Role-based SSO) from the gallery
+
+To configure the integration of Alibaba Cloud Service (Role-based SSO) into Azure AD, you need to add Alibaba Cloud Service (Role-based SSO) from the gallery to your list of managed SaaS apps.
+
+**To add Alibaba Cloud Service (Role-based SSO) from the gallery, perform the following steps:**
+
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+
+ ![The Azure Active Directory button](common/select-azuread.png)
+
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
+
+3. To add new application, click **New application** button on the top of dialog.
+
+ ![The New application button](common/add-new-app.png)
+
+4. In the search box, type **Alibaba Cloud Service (Role-based SSO)**, select **Alibaba Cloud Service (Role-based SSO)** from result panel then click **Add** button to add the application.
+
+ ![Alibaba Cloud Service (Role-based SSO) in the results list](common/search-new-app.png)
+
+## Configure and test Azure AD single sign-on
+
+In this section, you configure and test Azure AD single sign-on with Alibaba Cloud Service (Role-based SSO) based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Alibaba Cloud Service (Role-based SSO) needs to be established.
+
+To configure and test Azure AD single sign-on with Alibaba Cloud Service (Role-based SSO), you need to complete the following building blocks:
+
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Alibaba Cloud Service (Role-based SSO) Single Sign-On](#configure-alibaba-cloud-service-role-based-sso-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Alibaba Cloud Service (Role-based SSO) test user](#create-alibaba-cloud-service-role-based-sso-test-user)** - to have a counterpart of Britta Simon in Alibaba Cloud Service (Role-based SSO) that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with Alibaba Cloud Service (Role-based SSO), perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **Alibaba Cloud Service (Role-based SSO)** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+
+ ![Single sign-on select mode](common/select-saml-option.png)
+
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+4. On the **Set up Single Sign-On with SAML** page, perform the following steps:
+
+ ![Alibaba Cloud Service (Role-based SSO) Domain and URLs single sign-on information](common/idp-intiated.png)
+
+ a. In the **Identifier** text box, type any of the URL:
+
+ | |
+ |--|
+ | `urn:alibaba:cloudcomputing` |
+ | `urn:alibaba:cloudcomputing:international` |
+
+ b. In the **Reply URL** text box, type any of the URL:
+
+ | |
+ |--|
+ | `https://signin.aliyun.com/saml-role/SSO` |
+ | `https://signin.alibabacloud.com/saml-role/SSO` |
+
+5. Alibaba Cloud Service (Role-based SSO) application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes. Click **Edit** icon to open **User Attributes** dialog.
+
+ ![image](common/edit-attribute.png)
+
+6. In addition to above, Alibaba Cloud Service (Role-based SSO) application expects few more attributes to be passed back in SAML response. In the **User Claims** section on the **User Attributes** dialog, perform the following steps to add SAML token attribute as shown in the below table:
+
+ | Name | Source Attribute|
+ | ---------------| --------------- |
+ | Role | user.assignedroles |
+ | RoleSessionName | user.mail |
+
+ > [!NOTE]
+ > Please click [here](https://docs.microsoft.com/azure/active-directory/develop/active-directory-enterprise-app-role-management) to know how to configure **Role** in Azure AD
+
+ a. Click **Add new claim** to open the **Manage user claims** dialog.
+
+ ![image](common/new-save-attribute.png)
+
+ ![image](common/new-attribute-details.png)
+
+ b. In the **Name** textbox, type the attribute name shown for that row.
+
+ c. Leave the **Namespace** blank.
+
+ d. Select Source as **Attribute**.
+
+ e. From the **Source attribute** list, type the attribute value shown for that row.
+
+ f. Click **Save**.
+
+7. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/metadataxml.png)
+
+8. On the **Set up Alibaba Cloud Service (Role-based SSO)** section, copy the appropriate URL(s) as per your requirement.
+
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
+
+ a. Login URL
+
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure Alibaba Cloud Service (Role-based SSO) Single Sign-On
+
+To configure single sign-on on **Alibaba Cloud Service (Role-based SSO)** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [Alibaba Cloud Service (Role-based SSO) support team](https://www.aliyun.com/service/). They set this setting to have the SAML SSO connection set properly on both sides.
+
+### Create an Azure AD test user
+
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
+
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
+
+ ![The "Users and groups" and "All users" links](common/users.png)
+
+2. Select **New user** at the top of the screen.
+
+ ![New user Button](common/new-user.png)
+
+3. In the User properties, perform the following steps.
+
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
+
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
+
+### Assign the Azure AD test user
+
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to Alibaba Cloud Service (Role-based SSO).
+
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Alibaba Cloud Service (Role-based SSO)**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **Alibaba Cloud Service (Role-based SSO)**.
+
+ ![The Alibaba Cloud Service (Role-based SSO) link in the Applications list](common/all-applications.png)
+
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
+
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+
+ ![The Add Assignment pane](common/add-assign-user.png)
+
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create Alibaba Cloud Service (Role-based SSO) test user
+
+In this section, you create a user called Britta Simon in Alibaba Cloud Service (Role-based SSO). Work with [Alibaba Cloud Service (Role-based SSO) support team](https://www.aliyun.com/service/) to add the users in the Alibaba Cloud Service (Role-based SSO) platform. Users must be created and activated before you use single sign-on.
+
+### Test single sign-on
+
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+
+When you click the Alibaba Cloud Service (Role-based SSO) tile in the Access Panel, you should be automatically signed in to the Alibaba Cloud Service (Role-based SSO) for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+
+## Additional Resources
+
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
+
diff --git a/articles/active-directory/saas-apps/amms-tutorial.md b/articles/active-directory/saas-apps/amms-tutorial.md
new file mode 100644
index 0000000000000..0d7fa92cb0380
--- /dev/null
+++ b/articles/active-directory/saas-apps/amms-tutorial.md
@@ -0,0 +1,189 @@
+---
+title: 'Tutorial: Azure Active Directory integration with AMMS | Microsoft Docs'
+description: Learn how to configure single sign-on between Azure Active Directory and AMMS.
+services: active-directory
+documentationCenter: na
+author: jeevansd
+manager: mtillman
+ms.reviewer: barbkess
+
+ms.assetid: 107653a2-bd5c-4916-9fd2-1c15a9e24dc1
+ms.service: active-directory
+ms.subservice: saas-app-tutorial
+ms.workload: identity
+ms.tgt_pltfrm: na
+ms.devlang: na
+ms.topic: tutorial
+ms.date: 04/04/2019
+ms.author: jeedes
+
+ms.collection: M365-identity-device-management
+---
+# Tutorial: Azure Active Directory integration with AMMS
+
+In this tutorial, you learn how to integrate AMMS with Azure Active Directory (Azure AD).
+Integrating AMMS with Azure AD provides you with the following benefits:
+
+* You can control in Azure AD who has access to AMMS.
+* You can enable your users to be automatically signed-in to AMMS (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
+
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+
+## Prerequisites
+
+To configure Azure AD integration with AMMS, you need the following items:
+
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* AMMS single sign-on enabled subscription
+
+## Scenario description
+
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* AMMS supports **SP** initiated SSO
+
+## Adding AMMS from the gallery
+
+To configure the integration of AMMS into Azure AD, you need to add AMMS from the gallery to your list of managed SaaS apps.
+
+**To add AMMS from the gallery, perform the following steps:**
+
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+
+ ![The Azure Active Directory button](common/select-azuread.png)
+
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
+
+3. To add new application, click **New application** button on the top of dialog.
+
+ ![The New application button](common/add-new-app.png)
+
+4. In the search box, type **AMMS**, select **AMMS** from result panel then click **Add** button to add the application.
+
+ ![AMMS in the results list](common/search-new-app.png)
+
+## Configure and test Azure AD single sign-on
+
+In this section, you configure and test Azure AD single sign-on with AMMS based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in AMMS needs to be established.
+
+To configure and test Azure AD single sign-on with AMMS, you need to complete the following building blocks:
+
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure AMMS Single Sign-On](#configure-amms-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create AMMS test user](#create-amms-test-user)** - to have a counterpart of Britta Simon in AMMS that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with AMMS, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **AMMS** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+
+ ![Single sign-on select mode](common/select-saml-option.png)
+
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+4. On the **Basic SAML Configuration** section, perform the following steps:
+
+ ![AMMS Domain and URLs single sign-on information](common/sp-identifier.png)
+
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://.microwestcloud.com/amms/pages/login.aspx`
+
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+ `.microwestcloud.com/amms`
+
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign on URL and Identifier. Contact [AMMS Client support team](mailto:techsupport@microwestsoftware.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+
+5. On the **Set up Single Sign-On with SAML** page, In the **SAML Signing Certificate** section, click copy button to copy **App Federation Metadata Url** and save it on your computer.
+
+ ![The Certificate download link](common/copy-metadataurl.png)
+
+### Configure AMMS Single Sign-On
+
+To configure single sign-on on **AMMS** side, you need to send the **App Federation Metadata Url** to [AMMS support team](mailto:techsupport@microwestsoftware.com). They set this setting to have the SAML SSO connection set properly on both sides.
+
+### Create an Azure AD test user
+
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
+
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
+
+ ![The "Users and groups" and "All users" links](common/users.png)
+
+2. Select **New user** at the top of the screen.
+
+ ![New user Button](common/new-user.png)
+
+3. In the User properties, perform the following steps.
+
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
+
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
+
+### Assign the Azure AD test user
+
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to AMMS.
+
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **AMMS**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **AMMS**.
+
+ ![The AMMS link in the Applications list](common/all-applications.png)
+
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
+
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+
+ ![The Add Assignment pane](common/add-assign-user.png)
+
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create AMMS test user
+
+In this section, you create a user called Britta Simon in AMMS. Work with [AMMS support team](mailto:techsupport@microwestsoftware.com) to add the users in the AMMS platform. Users must be created and activated before you use single sign-on.
+
+### Test single sign-on
+
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+
+When you click the AMMS tile in the Access Panel, you should be automatically signed in to the AMMS for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+
+## Additional Resources
+
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
+
diff --git a/articles/active-directory/saas-apps/appraisd-tutorial.md b/articles/active-directory/saas-apps/appraisd-tutorial.md
index 531b52977a16e..dfa617ba9407f 100644
--- a/articles/active-directory/saas-apps/appraisd-tutorial.md
+++ b/articles/active-directory/saas-apps/appraisd-tutorial.md
@@ -158,7 +158,7 @@ To configure Azure AD single sign-on with Appraisd, perform the following steps:
1. In a different web browser window, sign in to Appraisd as a Security Administrator.
-2. On the top right of the page, click on **Settings** icon, then navigate to **Configuration**.
+2. On the top right of the page, click on **Settings** icon, then navigate to **Configuration**.
![image](./media/appraisd-tutorial/tutorial_appraisd_sett.png)
@@ -170,9 +170,9 @@ To configure Azure AD single sign-on with Appraisd, perform the following steps:
![image](./media/appraisd-tutorial/tutorial_appraisd_saml.png)
- a. Copy the **Default Relay State** value and paste it in **Relay State** textbox in **Basic SAML Configuration** on Azure portal.
+ a. Copy the **Default Relay State** value and paste it in **Relay State** textbox in **Basic SAML Configuration** on Azure portal.
- b. Copy the **Service-initiated login URL** value and paste it in **Sign-on URL** textbox in **Basic SAML Configuration** on Azure portal.
+ b. Copy the **Service-initiated login URL** value and paste it in **Sign-on URL** textbox in **Basic SAML Configuration** on Azure portal.
5. Scroll down the same page under **Identifying users**, perform the following steps:
@@ -182,7 +182,7 @@ To configure Azure AD single sign-on with Appraisd, perform the following steps:
b. In the **Identity Provider Issuer URL** textbox, paste the value of **Azure Ad Identifier**, which you have copied from the Azure portal and click **Save**.
- c. In Notepad, open the base-64 encoded certificate that you downloaded from the Azure portal, copy its content, and then paste it into the **X.509 Certificate** box and click **Save**.
+ c. In Notepad, open the base-64 encoded certificate that you downloaded from the Azure portal, copy its content, and then paste it into the **X.509 Certificate** box and click **Save**.
### Create an Azure AD test user
@@ -243,11 +243,11 @@ To enable Azure AD users sign in to Appraisd, they must be provisioned into Appr
1. Sign in to Appraisd as a Security Administrator.
-2. On the top right of the page, click on **Settings** icon, then navigate to **Administration centre**.
+2. On the top right of the page, click on **Settings** icon, then navigate to **Administration centre**.
![image](./media/appraisd-tutorial/tutorial_appraisd_admin.png)
-3. In the toolbar at the top of the page, click **People**, then navigate to **Add a new user**.
+3. In the toolbar at the top of the page, click **People**, then navigate to **Add a new user**.
![image](./media/appraisd-tutorial/tutorial_appraisd_user.png)
diff --git a/articles/active-directory/saas-apps/asana-provisioning-tutorial.md b/articles/active-directory/saas-apps/asana-provisioning-tutorial.md
index d36ab15da65dd..f242f3fbbdc79 100644
--- a/articles/active-directory/saas-apps/asana-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/asana-provisioning-tutorial.md
@@ -1,5 +1,4 @@
---
-
title: 'Tutorial: Configure Asana for automatic user provisioning with Azure Active Directory | Microsoft Docs'
description: Learn how to configure Azure Active Directory to automatically provision and de-provision user accounts to Asana.
services: active-directory
@@ -15,7 +14,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 01/26/2018
+ms.date: 03/27/2019
ms.author: asmalser
ms.reviewer: asmalser
@@ -30,16 +29,16 @@ The objective of this tutorial is to show you the steps you need to perform in A
The scenario outlined in this tutorial assumes that you already have the following items:
-* An Azure AD tenant
-* An Asana tenant with an [Enterprise](https://www.asana.com/pricing) plan or better enabled
-* A user account in Asana with admin permissions
+* An Azure AD tenant
+* An Asana tenant with an [Enterprise](https://www.asana.com/pricing) plan or better enabled
+* A user account in Asana with admin permissions
-> [!NOTE]
+> [!NOTE]
> Azure AD provisioning integration relies on the [Asana API](https://asana.com/developers/api-reference/users), which is available to Asana.
## Assign users to Asana
-Azure AD uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user account provisioning, only the users assigned to an application in Azure AD are synchronized.
+Azure AD uses a concept called *assignments* to determine which users should receive access to selected apps. In the context of automatic user account provisioning, only the users assigned to an application in Azure AD are synchronized.
Before you configure and enable the provisioning service, you must decide which users in Azure AD need access to your Asana app. Then you can assign these users to your Asana app by following the instructions here:
@@ -49,7 +48,7 @@ Before you configure and enable the provisioning service, you must decide which
We recommend that you assign a single Azure AD user to Asana to test the provisioning configuration. Additional users can be assigned later.
-## Configure user provisioning to Asana
+## Configure user provisioning to Asana
This section guides you through connecting your Azure AD to Asana user account provisioning API. You also configure the provisioning service to create, update, and disable assigned user accounts in Asana based on user assignments in Azure AD.
@@ -84,7 +83,7 @@ This section guides you through connecting your Azure AD to Asana user account p
1. Enter the email address of a person or group that you want to receive provisioning error notifications in **Notification Email**. Select the check box underneath.
-1. Select **Save**.
+1. Select **Save**.
1. Under the **Mappings** section, select **Synchronize Azure Active Directory Users to Asana**.
@@ -92,7 +91,7 @@ This section guides you through connecting your Azure AD to Asana user account p
1. To enable the Azure AD provisioning service for Asana, in the **Settings** section, change **Provisioning Status** to **On**.
-1. Select **Save**.
+1. Select **Save**.
Now the initial synchronization starts for any users assigned to Asana in the **Users** section. The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the service is running. Use the **Synchronization Details** section to monitor progress and follow links to provisioning activity logs. The audit logs describe all actions performed by the provisioning service on your Asana app.
diff --git a/articles/active-directory/saas-apps/atlassian-cloud-provisioning-tutorial.md b/articles/active-directory/saas-apps/atlassian-cloud-provisioning-tutorial.md
index bc73a2f400de7..16186c6320c24 100644
--- a/articles/active-directory/saas-apps/atlassian-cloud-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/atlassian-cloud-provisioning-tutorial.md
@@ -14,70 +14,65 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 03/03/2019
+ms.date: 03/27/2019
ms.author: v-ant
---
# Tutorial: Configure Atlassian Cloud for automatic user provisioning
-The objective of this tutorial is to demonstrate the steps to be performed in Atlassian Cloud and Azure Active Directory (Azure AD) to configure Azure AD to automatically provision and de-provision users and/or groups to Atlassian Cloud.
+The objective of this tutorial is to demonstrate the steps to be performed in Atlassian Cloud and Azure Active Directory (Azure AD) to configure Azure AD to automatically provision and de-provision users and/or groups to Atlassian Cloud.
> [!NOTE]
> This tutorial describes a connector built on top of the Azure AD User Provisioning Service. For important details on what this service does, how it works, and frequently asked questions, see [Automate user provisioning and deprovisioning to SaaS applications with Azure Active Directory](../manage-apps/user-provisioning.md).
->
+>
> This connector is currently in Public Preview. For more information on the general Microsoft Azure terms of use for Preview features, see [Supplemental Terms of Use for Microsoft Azure Previews](https://azure.microsoft.com/support/legal/preview-supplemental-terms/).
## Prerequisites
The scenario outlined in this tutorial assumes that you already have the following prerequisites:
-* An Azure AD tenant
-* [An Atlassian Cloud tenant](https://www.atlassian.com/licensing/cloud)
-* An user account in Atlassian Cloud with Admin permissions.
+* An Azure AD tenant
+* [An Atlassian Cloud tenant](https://www.atlassian.com/licensing/cloud)
+* An user account in Atlassian Cloud with Admin permissions.
> [!NOTE]
> The Azure AD provisioning integration relies on the **Atlassian Cloud SCIM API**, which is available to Atlassian Cloud teams.
-## Adding Atlassian Cloud from the gallery
+## Add Atlassian Cloud from the gallery
+
Before configuring Atlassian Cloud for automatic user provisioning with Azure AD, you need to add Atlassian Cloud from the Azure AD application gallery to your list of managed SaaS applications.
**To add Atlassian Cloud from the Azure AD application gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click on the **Azure Active Directory** icon.
-
- ![The Azure Active Directory button][1]
-
-2. Navigate to **Enterprise applications** > **All applications**.
+1. In the **[Azure portal](https://portal.azure.com)**, in the left navigation panel, select **Azure Active Directory**.
- ![The Enterprise applications Section][2]
-
-3. To add Atlassian Cloud, click the **New application** button on the top of the dialog.
+ ![The Azure Active Directory button](common/select-azuread.png)
- ![The New application button][3]
+2. Go to **Enterprise applications**, and then select **All applications**.
-4. In the search box, type **Atlassian Cloud**.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/app-search.png)
+3. To add a new application, select the **New application** button at the top of the pane.
-5. In the results panel, select **Atlassian Cloud**, and then click the **Add** button to add Atlassian Cloud to your list of SaaS applications.
+ ![The New application button](common/add-new-app.png)
- ![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/app-create.png)
+4. In the search box, enter **Atlassian Cloud**, select **Atlassian Cloud** in the results panel, and then click the **Add** button to add the application.
- ![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/app-instance.png)
+ ![Atlassian Cloud in the results list](common/search-new-app.png)
## Assigning users to Atlassian Cloud
-Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user provisioning, only the users and/or groups that have been "assigned" to an application in Azure AD are synchronized.
+Azure Active Directory uses a concept called *assignments* to determine which users should receive access to selected apps. In the context of automatic user provisioning, only the users and/or groups that have been assigned to an application in Azure AD are synchronized.
Before configuring and enabling automatic user provisioning, you should decide which users and/or groups in Azure AD need access to Atlassian Cloud. Once decided, you can assign these users and/or groups to Atlassian Cloud by following the instructions here:
-* [Assign a user or group to an enterprise app](../manage-apps/assign-user-or-group-access-portal.md)
+* [Assign a user or group to an enterprise app](../manage-apps/assign-user-or-group-access-portal.md)
### Important tips for assigning users to Atlassian Cloud
-* It is recommended that a single Azure AD user is assigned to Atlassian Cloud to test the automatic user provisioning configuration. Additional users and/or groups may be assigned later.
+* It is recommended that a single Azure AD user is assigned to Atlassian Cloud to test the automatic user provisioning configuration. Additional users and/or groups may be assigned later.
-* When assigning a user to Atlassian Cloud, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
+* When assigning a user to Atlassian Cloud, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
## Configuring automatic user provisioning to Atlassian Cloud
@@ -88,14 +83,16 @@ This section guides you through the steps to configure the Azure AD provisioning
### To configure automatic user provisioning for Atlassian Cloud in Azure AD:
-1. Sign in to the [Azure portal](https://portal.azure.com) and browse to **Azure Active Directory > Enterprise applications > All applications**.
+1. Sign in to the [Azure portal](https://portal.azure.com) and select **Enterprise Applications**, select **All applications**, then select **Atlassian Cloud**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **Atlassian Cloud**.
-2. Select Atlassian Cloud from your list of SaaS applications.
-
- ![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/application-instance-search.png)
+ ![The Atlassian Cloud link in the Applications list](common/all-applications.png)
3. Select the **Provisioning** tab.
-
+
![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/provisioning-tab.png)
4. Set the **Provisioning Mode** to **Automatic**.
@@ -104,7 +101,7 @@ This section guides you through the steps to configure the Azure AD provisioning
5. Under the **Admin Credentials** section, input the **Tenant URL** and **Secret Token** of your Atlassian Cloud's account. Examples of these values are:
- * In the **Tenant URL** field, fill the specific tenant endpoint you receive from the Atlassian, as described in Step 6. For Example: **https://api.atlassian.com/scim/directory/{directoryId}**
+ * In the **Tenant URL** field, fill the specific tenant endpoint you receive from the Atlassian, as described in Step 6. For Example: `https://api.atlassian.com/scim/directory/{directoryId}`.
* In the **Secret Token** field, populate the secret token as described in Step 6.
@@ -112,13 +109,13 @@ This section guides you through the steps to configure the Azure AD provisioning
![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/secret-token-1.png)
![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/secret-token-2.png)
-
+
![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/secret-token-3.png)
7. Upon populating the fields shown in Step 5, click **Test Connection** to ensure Azure AD can connect to Atlassian Cloud. If the connection fails, ensure your Atlassian Cloud account has Admin permissions and try again.
![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/test-connection.png)
-
+
8. In the **Notification Email** field, enter the email address of a person or group who should receive the provisioning error notifications and check the checkbox - **Send an email notification when a failure occurs**.
![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/notification.png)
@@ -155,7 +152,6 @@ This section guides you through the steps to configure the Azure AD provisioning
![Atlassian Cloud Provisioning](./media/atlassian-cloud-provisioning-tutorial/save.png)
-
This operation starts the initial synchronization of all users and/or groups defined in **Scope** in the **Settings** section. The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the Azure AD provisioning service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity report, which describes all actions performed by the Azure AD provisioning service on Atlassian Cloud.
For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](../manage-apps/check-status-user-account-provisioning.md).
diff --git a/articles/active-directory/saas-apps/auditboard-tutorial.md b/articles/active-directory/saas-apps/auditboard-tutorial.md
index bba79edc803ea..0e1a2b25cb941 100644
--- a/articles/active-directory/saas-apps/auditboard-tutorial.md
+++ b/articles/active-directory/saas-apps/auditboard-tutorial.md
@@ -13,7 +13,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: tutorial
-ms.date: 12/18/2018
+ms.date: 04/03/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -34,7 +34,7 @@ If you don't have an Azure subscription, [create a free account](https://azure.m
To configure Azure AD integration with AuditBoard, you need the following items:
-* An Azure AD subscription. If you don't have an Azure AD environment, you can get one-month trial [here](https://azure.microsoft.com/pricing/free-trial/)
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
* AuditBoard single sign-on enabled subscription
## Scenario description
@@ -63,7 +63,7 @@ To configure the integration of AuditBoard into Azure AD, you need to add AuditB
4. In the search box, type **AuditBoard**, select **AuditBoard** from result panel then click **Add** button to add the application.
- ![AuditBoard in the results list](common/search-new-app.png)
+ ![AuditBoard in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
@@ -75,8 +75,8 @@ To configure and test Azure AD single sign-on with AuditBoard, you need to compl
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
2. **[Configure AuditBoard Single Sign-On](#configure-auditboard-single-sign-on)** - to configure the Single Sign-On settings on application side.
3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-4. **[Create AuditBoard test user](#create-auditboard-test-user)** - to have a counterpart of Britta Simon in AuditBoard that is linked to the Azure AD representation of user.
-5. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create AuditBoard test user](#create-auditboard-test-user)** - to have a counterpart of Britta Simon in AuditBoard that is linked to the Azure AD representation of user.
6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
@@ -117,7 +117,7 @@ To configure Azure AD single sign-on with AuditBoard, perform the following step
> [!NOTE]
> These values are not real. Update these values with the actual Identifier, Reply URL and Sign-on URL. Contact [AuditBoard Client support team](mailto:support@auditboard.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-4. On the **Set up Single Sign-On with SAML** page, In the **SAML Signing Certificate** section, click copy button to copy **App Federation Metadata Url** and save it on your computer.
+5. On the **Set up Single Sign-On with SAML** page, In the **SAML Signing Certificate** section, click copy button to copy **App Federation Metadata Url** and save it on your computer.
![The Certificate download link](common/copy-metadataurl.png)
@@ -125,7 +125,7 @@ To configure Azure AD single sign-on with AuditBoard, perform the following step
To configure single sign-on on **AuditBoard** side, you need to send the **App Federation Metadata Url** to [AuditBoard support team](mailto:support@auditboard.com). They set this setting to have the SAML SSO connection set properly on both sides.
-### Create an Azure AD test user
+### Create an Azure AD test user
The objective of this section is to create a test user in the Azure portal called Britta Simon.
@@ -143,8 +143,7 @@ The objective of this section is to create a test user in the Azure portal calle
a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field type `brittasimon\@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
@@ -180,7 +179,7 @@ In this section, you enable Britta Simon to use Azure single sign-on by granting
In this section, you create a user called Britta Simon in AuditBoard. Work with [AuditBoard support team](mailto:support@auditboard.com) to add the users in the AuditBoard platform. Users must be created and activated before you use single sign-on.
-### Test single sign-on
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
@@ -192,5 +191,4 @@ When you click the AuditBoard tile in the Access Panel, you should be automatica
- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
-
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/bambubysproutsocial-tutorial.md b/articles/active-directory/saas-apps/bambubysproutsocial-tutorial.md
index fc0eb40982b1e..c9f62efad6d78 100644
--- a/articles/active-directory/saas-apps/bambubysproutsocial-tutorial.md
+++ b/articles/active-directory/saas-apps/bambubysproutsocial-tutorial.md
@@ -183,8 +183,8 @@ When you click the Bambu by Sprout Social tile in the Access Panel, you should b
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/beeline-tutorial.md b/articles/active-directory/saas-apps/beeline-tutorial.md
index 00605ee586077..7e17a0172f92b 100644
--- a/articles/active-directory/saas-apps/beeline-tutorial.md
+++ b/articles/active-directory/saas-apps/beeline-tutorial.md
@@ -199,8 +199,8 @@ When you click the BeeLine tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/benchling-tutorial.md b/articles/active-directory/saas-apps/benchling-tutorial.md
index cb07ab6452a90..e823ff1a692e7 100644
--- a/articles/active-directory/saas-apps/benchling-tutorial.md
+++ b/articles/active-directory/saas-apps/benchling-tutorial.md
@@ -219,9 +219,9 @@ When you click the Benchling tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/bersin-tutorial.md b/articles/active-directory/saas-apps/bersin-tutorial.md
index 546c7baac3fe2..aac6b40a6a1f1 100644
--- a/articles/active-directory/saas-apps/bersin-tutorial.md
+++ b/articles/active-directory/saas-apps/bersin-tutorial.md
@@ -197,8 +197,8 @@ When you click the Bersin tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/betterworks-tutorial.md b/articles/active-directory/saas-apps/betterworks-tutorial.md
index 6783bd90ae872..3aeaf9bbd0f5e 100644
--- a/articles/active-directory/saas-apps/betterworks-tutorial.md
+++ b/articles/active-directory/saas-apps/betterworks-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 5bb9505a-be02-46ae-9979-5308715d2b47
ms.service: active-directory
@@ -12,8 +13,8 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/09/2017
+ms.topic: tutorial
+ms.date: 04/05/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -21,235 +22,212 @@ ms.collection: M365-identity-device-management
# Tutorial: Azure Active Directory integration with BetterWorks
In this tutorial, you learn how to integrate BetterWorks with Azure Active Directory (Azure AD).
-
Integrating BetterWorks with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to BetterWorks
-- You can enable your users to automatically get signed-on to BetterWorks (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to BetterWorks.
+* You can enable your users to be automatically signed-in to BetterWorks (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with BetterWorks, you need the following items:
-- An Azure AD subscription
-- A BetterWorks single-sign on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* BetterWorks single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding BetterWorks from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* BetterWorks supports **SP and IDP** initiated SSO
## Adding BetterWorks from the gallery
+
To configure the integration of BetterWorks into Azure AD, you need to add BetterWorks from the gallery to your list of managed SaaS apps.
**To add BetterWorks from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add a new application, click the **New application** button at the top of the dialog.
-1. In the search box, type **BetterWorks**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/betterworks-tutorial/tutorial_betterworks_search.png)
+4. In the search box, type **BetterWorks**, select **BetterWorks** from the result panel then click the **Add** button to add the application.
-1. In the results panel, select **BetterWorks**, and then click **Add** button to add the application.
+ ![BetterWorks in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/betterworks-tutorial/tutorial_betterworks_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with BetterWorks based on a test user called "Britta Simon."
+In this section, you configure and test Azure AD single sign-on with BetterWorks based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in BetterWorks needs to be established.
-For single sign-on to work, Azure AD needs to know what the counterpart user in BetterWorks is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in BetterWorks needs to be established.
+To configure and test Azure AD single sign-on with BetterWorks, you need to complete the following building blocks:
-In BetterWorks, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure BetterWorks Single Sign-On](#configure-betterworks-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create BetterWorks test user](#create-betterworks-test-user)** - to have a counterpart of Britta Simon in BetterWorks that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-To configure and test Azure AD single sign-on with BetterWorks, you need to complete the following building blocks:
+### Configure Azure AD single sign-on
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a BetterWorks test user](#creating-a-betterworks-test-user)** - to have a counterpart of Britta Simon in BetterWorks that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-### Configuring Azure AD single sign-on
+To configure Azure AD single sign-on with BetterWorks, perform the following steps:
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your BetterWorks application.
+1. In the [Azure portal](https://portal.azure.com/), on the **BetterWorks** application integration page, select **Single sign-on**.
-**To configure Azure AD single sign-on with BetterWorks, perform the following steps:**
+ ![Configure single sign-on link](common/select-sso.png)
-1. In the Azure portal, on the **BetterWorks** application integration page, click **Single sign-on**.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On][4]
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/betterworks-tutorial/tutorial_betterworks_samlbase.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **BetterWorks Domain and URLs** section, If you wish to configure the application in **IDP initiated mode**:
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Configure Single Sign-On](./media/betterworks-tutorial/tutorial_betterworks_url.png)
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following steps:
- a. In the **Identifier** textbox, type a URL using the following pattern: `https://app.betterworks.com/saml2/metadata/`
+ ![BetterWorks Domain and URLs single sign-on information](common/idp-intiated.png)
- b. In the **Reply URL** textbox, type a URL using the following pattern: `https://app.betterworks.com/saml2/acs/`
+ a. In the **Identifier** text box, type a URL using the following pattern:
+ `https://app.betterworks.com/saml2/metadata/`
-1. On the **BetterWorks Domain and URLs** section, If you wish to configure the application in **SP initiated mode**, perform the following steps:
-
- ![Configure Single Sign-On](./media/betterworks-tutorial/tutorial_betterworks_url1.png)
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://app.betterworks.com/saml2/acs/`
- a. Click on the **Show advanced URL settings**.
+5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
- b. In the **Sign On URL** textbox, type a URL using the following pattern: `https://app.betterworks.com`
+ ![BetterWorks Domain and URLs single sign-on information](common/metadata-upload-additional-signon.png)
- > [!NOTE]
- > These are not real values. Update these values with the Reply URL, Identifier and actual Sign On URL. Contact [BetterWorks support team](mailto:support@betterworks.com) to get these values.
-
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+ In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://app.betterworks.com`
- ![Configure Single Sign-On](./media/betterworks-tutorial/tutorial_betterworks_certificate.png)
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Identifier, Reply URL and Sign-on URL. Contact [BetterWorks Client support team](mailto:support@betterworks.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. BetterWorks application expects the SAML assertions in a specific format. Configure the following claims for this application. You can manage the values of these attributes from the "**Attribute**" tab of the application. The following screenshot shows an example for this.
+6. Your BetterWorks application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes. Click **Edit** icon to open **User Attributes** dialog.
- ![Configure Single Sign-On](./media/betterworks-tutorial/tutorial_betterworks_attribute.png)
+ ![image](common/edit-attribute.png)
-1. On the **SAML token attributes** dialog, for each row shown in the table below, perform the following steps:
-
- | Attribute Name | Attribute Value |
- | -------------- | ------------ |
- | saml_token | bd189cf6-1701-11e6-8f90-d26992eca2a5 |
+7. In the **User Claims** section on the **User Attributes** dialog, edit the claims by using **Edit icon** or add the claims by using **Add new claim** to configure SAML token attribute as shown in the image above and perform the following steps:
- a. Click **Add attribute** to open the **Add Attribute** dialog.
+ | Name | Source Attribute|
+ | ----- | ------------ |
+ | saml_token | bd189cf6-1701-11e6-8f90-d26992eca2a5 |
- ![Configure Single Sign-On](./media/betterworks-tutorial/tutorial_officespace_04.png)
+ a. Click **Add new claim** to open the **Manage user claims** dialog.
- ![Configure Single Sign-On](./media/betterworks-tutorial/tutorial_officespace_05.png)
+ ![image](common/new-save-attribute.png)
- b. In the **Name** textbox, type the attribute name shown for that row.
+ ![image](common/new-attribute-details.png)
- c. From the **Value** list, type the attribute value shown for that row.
-
- d. Click **Ok**.
+ b. In the **Name** textbox, type the attribute name shown for that row.
-1. Click **Save** button.
+ c. Leave the **Namespace** blank.
- ![Configure Single Sign-On](./media/betterworks-tutorial/tutorial_general_400.png)
+ d. Select Source as **Attribute**.
-1. To configure single sign-on on **BetterWorks** side, you need to send the downloaded **Metadata XML** to [BetterWorks support team](mailto:support@betterworks.com).
+ e. From the **Source attribute** list, type the attribute value shown for that row.
+ f. Click **Ok**
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
-
+ g. Click **Save**.
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+8. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/metadataxml.png)
-![Create Azure AD User][100]
+9. On the **Set up BetterWorks** section, copy the appropriate URL(s) as per your requirement.
-**To create a test user in Azure AD, perform the following steps:**
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+ a. Login URL
- ![Creating an Azure AD test user](./media/betterworks-tutorial/create_aaduser_01.png)
+ b. Azure AD Identifier
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/betterworks-tutorial/create_aaduser_02.png)
+ c. Logout URL
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/betterworks-tutorial/create_aaduser_03.png)
+### Configure BetterWorks Single Sign-On
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/betterworks-tutorial/create_aaduser_04.png)
+To configure single sign-on on **BetterWorks** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [BetterWorks support team](mailto:support@betterworks.com). They set this setting to have the SAML SSO connection set properly on both sides.
- a. In the **Name** textbox, type **BrittaSimon**.
+### Create an Azure AD test user
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- c. Select **Show Password** and write down the value of the **Password**.
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- d. Click **Create**.
-
-### Creating a BetterWorks test user
+ ![The "Users and groups" and "All users" links](common/users.png)
-In this section, you create a user called Britta Simon in BetterWorks. Work with [BetterWorks support team](mailto:support@betterworks.com) to add the users in the BetterWorks platform.
+2. Select **New user** at the top of the screen.
-### Assigning the Azure AD test user
+ ![New user Button](common/new-user.png)
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to BetterWorks.
+3. In the User properties, perform the following steps.
+
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
-![Assign User][200]
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-**To assign Britta Simon to BetterWorks, perform the following steps:**
+ d. Click **Create**.
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+### Assign the Azure AD test user
- ![Assign User][201]
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to BetterWorks.
-1. In the applications list, select **BetterWorks**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **BetterWorks**.
- ![Configure Single Sign-On](./media/betterworks-tutorial/tutorial_betterworks_app.png)
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the menu on the left, click **Users and groups**.
+2. In the applications list, select **BetterWorks**.
- ![Assign User][202]
+ ![The BetterWorks link in the Applications list](common/all-applications.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+3. In the menu on the left, select **Users and groups**.
- ![Assign User][203]
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. Click **Select** button on **Users and groups** dialog.
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-The objective of this section is to test your Azure AD single sign-on configuration using the Access Panel.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-When you click the BetterWorks tile in the Access Panel, you should get automatically signed-on to your BetterWorks application.
+7. In the **Add Assignment** dialog click the **Assign** button.
-## Additional resources
+### Create BetterWorks test user
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+In this section, you create a user called Britta Simon in BetterWorks. Work with [BetterWorks support team](mailto:support@betterworks.com) to add the users in the BetterWorks platform. Users must be created and activated before you use single sign-on.
+### Test single sign-on
-
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-[1]: ./media/betterworks-tutorial/tutorial_general_01.png
-[2]: ./media/betterworks-tutorial/tutorial_general_02.png
-[3]: ./media/betterworks-tutorial/tutorial_general_03.png
-[4]: ./media/betterworks-tutorial/tutorial_general_04.png
+When you click the BetterWorks tile in the Access Panel, you should be automatically signed in to the BetterWorks for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+
+## Additional resources
-[100]: ./media/betterworks-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/betterworks-tutorial/tutorial_general_200.png
-[201]: ./media/betterworks-tutorial/tutorial_general_201.png
-[202]: ./media/betterworks-tutorial/tutorial_general_202.png
-[203]: ./media/betterworks-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/bluejeans-provisioning-tutorial.md b/articles/active-directory/saas-apps/bluejeans-provisioning-tutorial.md
index e5e5113b92e33..742b67dc21429 100644
--- a/articles/active-directory/saas-apps/bluejeans-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/bluejeans-provisioning-tutorial.md
@@ -14,7 +14,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 02/01/2018
+ms.date: 03/27/2019
ms.author: v-ant
ms.collection: M365-identity-device-management
@@ -31,53 +31,48 @@ The objective of this tutorial is to demonstrate the steps to be performed in Bl
The scenario outlined in this tutorial assumes that you already have the following:
-* An Azure AD tenant
-* A BlueJeans tenant with the [My Company](https://www.BlueJeans.com/pricing) plan or better enabled
-* A user account in BlueJeans with Admin permissions
+* An Azure AD tenant
+* A BlueJeans tenant with the [My Company](https://www.BlueJeans.com/pricing) plan or better enabled
+* A user account in BlueJeans with Admin permissions
> [!NOTE]
> The Azure AD provisioning integration relies on the [BlueJeans API](https://BlueJeans.github.io/developer), which is available to BlueJeans teams on the Standard plan or better.
## Adding BlueJeans from the gallery
+
Before configuring BlueJeans for automatic user provisioning with Azure AD, you need to add BlueJeans from the Azure AD application gallery to your list of managed SaaS applications.
**To add BlueJeans from the Azure AD application gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click on the **Azure Active Directory** icon.
-
- ![The Azure Active Directory button][1]
+1. In the **[Azure portal](https://portal.azure.com)**, in the left navigation panel, select **Azure Active Directory**.
-2. Navigate to **Enterprise applications** > **All applications**.
+ ![The Azure Active Directory button](common/select-azuread.png)
- ![The Enterprise applications Section][2]
-
-3. To add BlueJeans, click the **New application** button on the top of the dialog.
+2. Go to **Enterprise applications**, and then select **All applications**.
- ![The New application button][3]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
-4. In the search box, type **BlueJeans**.
+3. To add a new application, select the **New application** button at the top of the pane.
- ![BlueJeans Provisioning](./media/bluejeans-provisioning-tutorial/BluejeansAppSearch.png)
+ ![The New application button](common/add-new-app.png)
-5. In the results panel, select **BlueJeans**, and then click the **Add** button to add BlueJeans to your list of SaaS applications.
+4. In the search box, enter **BlueJeans**, select **BlueJeans** in the results panel, and then select the **Add** button to add the application.
- ![BlueJeans Provisioning](./media/bluejeans-provisioning-tutorial/BluejeansAppSearchResults.png)
+ ![BlueJeans in the results list](common/search-new-app.png)
- ![BlueJeans Provisioning](./media/bluejeans-provisioning-tutorial/BluejeansAppCreate.png)
-
## Assigning users to BlueJeans
Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user provisioning, only the users and/or groups that have been "assigned" to an application in Azure AD are synchronized.
Before configuring and enabling automatic user provisioning, you should decide which users and/or groups in Azure AD need access to BlueJeans. Once decided, you can assign these users and/or groups to BlueJeans by following the instructions here:
-* [Assign a user or group to an enterprise app](../manage-apps/assign-user-or-group-access-portal.md)
+* [Assign a user or group to an enterprise app](../manage-apps/assign-user-or-group-access-portal.md)
### Important tips for assigning users to BlueJeans
-* It is recommended that a single Azure AD user is assigned to BlueJeans to test the automatic user provisioning configuration. Additional users and/or groups may be assigned later.
+* It is recommended that a single Azure AD user is assigned to BlueJeans to test the automatic user provisioning configuration. Additional users and/or groups may be assigned later.
-* When assigning a user to BlueJeans, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
+* When assigning a user to BlueJeans, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
## Configuring automatic user provisioning to BlueJeans
@@ -88,11 +83,13 @@ This section guides you through the steps to configure the Azure AD provisioning
### To configure automatic user provisioning for BlueJeans in Azure AD:
-1. Sign in to the [Azure portal](https://portal.azure.com) and browse to **Azure Active Directory > Enterprise applications > All applications**.
+1. Sign in to the [Azure portal](https://portal.azure.com) and select **Enterprise Applications**, select **All applications**, then select **BlueJeans**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
-2. Select BlueJeans from your list of SaaS applications.
-
- ![BlueJeans Provisioning](./media/bluejeans-provisioning-tutorial/Bluejeans2.png)
+2. In the applications list, select **BlueJeans**.
+
+ ![The BlueJeans link in the Applications list](common/all-applications.png)
3. Select the **Provisioning** tab.
@@ -158,6 +155,7 @@ For more information on how to read the Azure AD provisioning logs, see [Reporti
* [Learn how to review logs and get reports on provisioning activity](../manage-apps/check-status-user-account-provisioning.md)
+
[1]: ./media/bluejeans-provisioning-tutorial/tutorial_general_01.png
[2]: ./media/bluejeans-tutorial/tutorial_general_02.png
[3]: ./media/bluejeans-tutorial/tutorial_general_03.png
diff --git a/articles/active-directory/saas-apps/bonusly-provisioning-tutorial.md b/articles/active-directory/saas-apps/bonusly-provisioning-tutorial.md
index 1e792af4af3db..94ecd865477bb 100644
--- a/articles/active-directory/saas-apps/bonusly-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/bonusly-provisioning-tutorial.md
@@ -7,13 +7,14 @@ author: zchia
writer: zchia
manager: beatrizd-msft
-ms.assetid: na
+ms.assetid: 879b0ee9-042a-441b-90a7-8c364d62426a
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 06/27/2018
+ms.date: 03/27/2019
ms.author: v-wingf-msft
ms.collection: M365-identity-device-management
---
@@ -29,39 +30,34 @@ The objective of this tutorial is to demonstrate the steps to be performed in Bo
The scenario outlined in this tutorial assumes that you already have the following:
-* An Azure AD tenant
-* A [Bonusly tenant](https://bonus.ly/pricing)
-* A user account in Bonusly with Admin permissions
+* An Azure AD tenant
+* A [Bonusly tenant](https://bonus.ly/pricing)
+* A user account in Bonusly with Admin permissions
> [!NOTE]
> The Azure AD provisioning integration relies on the [Bonusly Rest API](https://bonusly.gelato.io/reference), which is available to Bonusly developers.
## Adding Bonusly from the gallery
+
Before configuring Bonusly for automatic user provisioning with Azure AD, you need to add Bonusly from the Azure AD application gallery to your list of managed SaaS applications.
**To add Bonusly from the Azure AD application gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click on the **Azure Active Directory** icon.
-
- ![The Azure Active Directory button][1]
-
-2. Navigate to **Enterprise applications** > **All applications**.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Enterprise applications Section][2]
-
-3. To add Bonusly, click the **New application** button on the top of the dialog.
+ ![The Azure Active Directory button](common/select-azuread.png)
- ![The New application button][3]
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
-4. In the search box, type **Bonusly**.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Bonusly Provisioning](./media/bonusly-provisioning-tutorial/AppSearch.png)
+3. To add new application, click **New application** button on the top of dialog.
-5. In the results panel, select **Bonusly**, and then click the **Add** button to add Bonusly to your list of SaaS applications.
+ ![The New application button](common/add-new-app.png)
- ![Bonusly Provisioning](./media/bonusly-provisioning-tutorial/AppSearchResults.png)
+4. In the search box, type **Bonusly**, select **Bonusly** from result panel then click **Add** button to add the application.
- ![Bonusly Provisioning](./media/bonusly-provisioning-tutorial/AppCreation.png)
+ ![Bonusly in the results list](common/search-new-app.png)
## Assigning users to Bonusly
@@ -69,13 +65,13 @@ Azure Active Directory uses a concept called "assignments" to determine which us
Before configuring and enabling automatic user provisioning, you should decide which users and/or groups in Azure AD need access to Bonusly. Once decided, you can assign these users and/or groups to Bonusly by following the instructions here:
-* [Assign a user or group to an enterprise app](https://docs.microsoft.com/azure/active-directory/active-directory-coreapps-assign-user-azure-portal)
+* [Assign a user or group to an enterprise app](https://docs.microsoft.com/azure/active-directory/active-directory-coreapps-assign-user-azure-portal)
### Important tips for assigning users to Bonusly
-* It is recommended that a single Azure AD user is assigned to Bonusly to test the automatic user provisioning configuration. Additional users and/or groups may be assigned later.
+* It is recommended that a single Azure AD user is assigned to Bonusly to test the automatic user provisioning configuration. Additional users and/or groups may be assigned later.
-* When assigning a user to Bonusly, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
+* When assigning a user to Bonusly, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
## Configuring automatic user provisioning to Bonusly
@@ -86,14 +82,16 @@ This section guides you through the steps to configure the Azure AD provisioning
### To configure automatic user provisioning for Bonusly in Azure AD:
-1. Sign in to the [Azure portal](https://portal.azure.com) and browse to **Azure Active Directory > Enterprise applications > All applications**.
+1. Sign in to the [Azure portal](https://portal.azure.com) and select **Enterprise Applications**, select **All applications**, then select **Bonusly**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **Bonusly**.
-2. Select Bonusly from your list of SaaS applications.
-
- ![Bonusly Provisioning](./media/bonusly-provisioning-tutorial/AppInstanceSearch.png)
+ ![The Bonusly link in the Applications list](common/all-applications.png)
3. Select the **Provisioning** tab.
-
+
![Bonusly Provisioning](./media/bonusly-provisioning-tutorial/ProvisioningTab.png)
4. Set the **Provisioning Mode** to **Automatic**.
@@ -102,6 +100,8 @@ This section guides you through the steps to configure the Azure AD provisioning
5. Under the **Admin Credentials** section, input the **Secret Token** of your Bonusly account as described in Step 6.
+ ![Bonusly Provisioning](./media/bonusly-provisioning-tutorial/secrettoken.png)
+
6. The **Secret Token** for your Bonusly account is located in **Admin > Company > Integrations**. In the **If you want to code** section, click on **API > Create New API Access Token** to create a new Secret Token.
![Bonusly Provisioning](./media/bonusly-provisioning-tutorial/BonuslyIntegrations.png)
@@ -119,7 +119,7 @@ This section guides you through the steps to configure the Azure AD provisioning
8. Upon populating the fields shown in Step 5, click **Test Connection** to ensure Azure AD can connect to Bonusly. If the connection fails, ensure your Bonusly account has Admin permissions and try again.
![Bonusly Provisioning](./media/bonusly-provisioning-tutorial/TestConnection.png)
-
+
9. In the **Notification Email** field, enter the email address of a person or group who should receive the provisioning error notifications and check the checkbox **Send an email notification when a failure occurs**.
![Bonusly Provisioning](./media/bonusly-provisioning-tutorial/EmailNotification.png)
@@ -148,7 +148,6 @@ This section guides you through the steps to configure the Azure AD provisioning
![Bonusly Provisioning](./media/bonusly-provisioning-tutorial/SaveProvisioning.png)
-
This operation starts the initial synchronization of all users and/or groups defined in **Scope** in the **Settings** section. The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the Azure AD provisioning service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity report, which describes all actions performed by the Azure AD provisioning service on Bonusly.
For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](../manage-apps/check-status-user-account-provisioning.md).
@@ -158,7 +157,6 @@ For more information on how to read the Azure AD provisioning logs, see [Reporti
* [Managing user account provisioning for Enterprise Apps](../manage-apps/configure-automatic-user-provisioning-portal.md)
* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
## Next steps
* [Learn how to review logs and get reports on provisioning activity](../manage-apps/check-status-user-account-provisioning.md)
diff --git a/articles/active-directory/saas-apps/borrowbox-tutorial.md b/articles/active-directory/saas-apps/borrowbox-tutorial.md
index 01563120d2c25..3e99cd2d66a4a 100644
--- a/articles/active-directory/saas-apps/borrowbox-tutorial.md
+++ b/articles/active-directory/saas-apps/borrowbox-tutorial.md
@@ -200,8 +200,8 @@ When you click the BorrowBox tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/bpmonline-tutorial.md b/articles/active-directory/saas-apps/bpmonline-tutorial.md
index 54465579839e1..cfd76cd1bd90f 100644
--- a/articles/active-directory/saas-apps/bpmonline-tutorial.md
+++ b/articles/active-directory/saas-apps/bpmonline-tutorial.md
@@ -4,17 +4,17 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
-ms.assetid: 052db91d-ccff-4098-8ae3-2f76eca90539
+ms.assetid: 052db91d-ccff-4098-8ae3-2f76eca9053
ms.service: active-directory
ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 04/16/2018
+ms.topic: tutorial
+ms.date: 04/03/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -22,206 +22,174 @@ ms.collection: M365-identity-device-management
# Tutorial: Azure Active Directory integration with Bpm’online
In this tutorial, you learn how to integrate Bpm’online with Azure Active Directory (Azure AD).
-
Integrating Bpm’online with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Bpm’online.
-- You can enable your users to automatically get signed-on to Bpm’online (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Bpm’online.
+* You can enable your users to be automatically signed-in to Bpm’online (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Bpm’online, you need the following items:
-- An Azure AD subscription
-- A Bpm’online single-sign on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Bpm’online single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Bpm’online from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Bpm’online supports **SP and IDP** initiated SSO
## Adding Bpm’online from the gallery
+
To configure the integration of Bpm’online into Azure AD, you need to add Bpm’online from the gallery to your list of managed SaaS apps.
**To add Bpm’online from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![The New application button][3]
+3. To add a new application, click the **New application** button at the top of the dialog.
-1. In the search box, type **Bpm’online**, select **Bpm’online** from result panel then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![Bpm’online in the results list](./media/bpmonline-tutorial/tutorial_bpmonline_addfromgallery.png)
+4. In the search box, type **Bpm’online**, select **Bpm’online** from the result panel then click the **Add** button to add the application.
-## Configure and test Azure AD single sign-on
-
-In this section, you configure and test Azure AD single sign-on with Bpm’online based on a test user called "Britta Simon."
+ ![Bpm’online in the results list](common/search-new-app.png)
-For single sign-on to work, Azure AD needs to know what the counterpart user in Bpm’online is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Bpm’online needs to be established.
+## Configure and test Azure AD single sign-on
-In Bpm’online, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+In this section, you configure and test Azure AD single sign-on with Bpm’online based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Bpm’online needs to be established.
To configure and test Azure AD single sign-on with Bpm’online, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a Bpm’online test user](#create-a-bpmonline-test-user)** - to have a counterpart of Britta Simon in Bpm’online that is linked to the Azure AD representation of user.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure Bpm’online Single Sign-On](#configure-bpmonline-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Bpm’online test user](#create-bpmonline-test-user)** - to have a counterpart of Britta Simon in Bpm’online that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Bpm’online application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with Bpm’online, perform the following steps:**
+To configure Azure AD single sign-on with Bpm’online, perform the following steps:
-1. In the Azure portal, on the **Bpm’online** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **Bpm’online** application integration page, select **Single sign-on**.
- ![Configure single sign-on link][4]
+ ![Configure single sign-on link](common/select-sso.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Single sign-on dialog box](./media/bpmonline-tutorial/tutorial_bpmonline_samlbase.png)
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Bpm’online Domain and URLs** section, perform the following steps if you wish to configure the application in **IDP** initiated mode:
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Bpm’online Domain and URLs single sign-on information](./media/bpmonline-tutorial/tutorial_bpmonline_url.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- a. In the **Identifier** textbox, type a URL using the following pattern: `https://.bpmonline.com/`
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following steps:
- b. In the **Reply URL** textbox, type a URL using the following pattern: `https://.bpmonline.com/ServiceModel/AuthService.svc/SsoLogin`
+ ![Bpm’online Domain and URLs single sign-on information](common/idp-intiated.png)
-1. Check **Show advanced URL settings** and perform the following step if you wish to configure the application in **SP** initiated mode:
+ a. In the **Identifier** text box, type a URL using the following pattern:
+ `https://.bpmonline.com/`
- ![Bpm’online Domain and URLs single sign-on information](./media/bpmonline-tutorial/tutorial_bpmonline_url1.png)
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://.bpmonline.com/ServiceModel/AuthService.svc/SsoLogin`
- In the **Sign-on URL** textbox, type a URL using the following pattern: `https://.bpmonline.com/`
-
- > [!NOTE]
- > These values are not real. Update these values with the actual Identifier, Reply URL, and Sign-On URL. Contact [Bpm’online Client support team](mailto:support@bpmonline.com) to get these values.
+5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
-1. On the **SAML Signing Certificate** section, click the copy button to copy **App Federation Metadata Url** and paste it into notepad.
-
- ![Configure Single Sign-On](./media/bpmonline-tutorial/tutorial_metadataurl.png)
-
-1. Click **Save** button.
+ ![Bpm’online Domain and URLs single sign-on information](common/metadata-upload-additional-signon.png)
- ![Configure Single Sign-On Save button](./media/bpmonline-tutorial/tutorial_general_400.png)
-
-1. To configure single sign-on on **Bpm’online** side, you need to send the **App Federation Metadata Url** to [Bpm’online support team](mailto:support@bpmonline.com). They set this setting to have the SAML SSO connection set properly on both sides.
+ In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://.bpmonline.com/`
-### Create an Azure AD test user
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Identifier, Reply URL and Sign-on URL. Contact [Bpm’online Client support team](mailto:support@bpmonline.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+6. On the **Set up Single Sign-On with SAML** page, In the **SAML Signing Certificate** section, click copy button to copy **App Federation Metadata Url** and save it on your computer.
- ![Create an Azure AD test user][100]
+ ![The Certificate download link](common/copy-metadataurl.png)
-**To create a test user in Azure AD, perform the following steps:**
+### Configure Bpm’online Single Sign-On
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+To configure single sign-on on **Bpm’online** side, you need to send the **App Federation Metadata Url** to [Bpm’online support team](mailto:support@bpmonline.com). They set this setting to have the SAML SSO connection set properly on both sides.
- ![The Azure Active Directory button](./media/bpmonline-tutorial/create_aaduser_01.png)
+### Create an Azure AD test user
-1. To display the list of users, go to **Users and groups**, and then click **All users**.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- ![The "Users and groups" and "All users" links](./media/bpmonline-tutorial/create_aaduser_02.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-1. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+ ![The "Users and groups" and "All users" links](common/users.png)
- ![The Add button](./media/bpmonline-tutorial/create_aaduser_03.png)
+2. Select **New user** at the top of the screen.
-1. In the **User** dialog box, perform the following steps:
+ ![New user Button](common/new-user.png)
- ![The User dialog box](./media/bpmonline-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** box, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** box, type the email address of user Britta Simon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-
-### Create a Bpm’online test user
-
-In this section, you create a user called Britta Simon in Bpm’online. Work with [Bpm’online support team](mailto:support@bpmonline.com) to add the users in the Bpm’online platform. Users must be created and activated before you use single sign-on.
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Bpm’online.
-![Assign the user role][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Bpm’online**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
-**To assign Britta Simon to Bpm’online, perform the following steps:**
+2. In the applications list, select **Bpm’online**.
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+ ![The Bpm’online link in the Applications list](common/all-applications.png)
- ![Assign User][201]
+3. In the menu on the left, select **Users and groups**.
-1. In the applications list, select **Bpm’online**.
+ ![The "Users and groups" link](common/users-groups-blade.png)
- ![The Bpm’online link in the Applications list](./media/bpmonline-tutorial/tutorial_bpmonline_app.png)
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. In the menu on the left, click **Users and groups**.
+ ![The Add Assignment pane](common/add-assign-user.png)
- ![The "Users and groups" link][202]
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
- ![The Add Assignment pane][203]
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+### Create Bpm’online test user
-1. Click **Select** button on **Users and groups** dialog.
+In this section, you create a user called Britta Simon in Bpm’online. Work with [Bpm’online support team](mailto:support@bpmonline.com) to add the users in the Bpm’online platform. Users must be created and activated before you use single sign-on.
-1. Click **Assign** button on **Add Assignment** dialog.
-
### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the Bpm’online tile in the Access Panel, you should get automatically signed-on to your Bpm’online application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
-
-## Additional resources
-
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
-
-
-
+When you click the Bpm’online tile in the Access Panel, you should be automatically signed in to the Bpm’online for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-[1]: ./media/bpmonline-tutorial/tutorial_general_01.png
-[2]: ./media/bpmonline-tutorial/tutorial_general_02.png
-[3]: ./media/bpmonline-tutorial/tutorial_general_03.png
-[4]: ./media/bpmonline-tutorial/tutorial_general_04.png
+## Additional Resources
-[100]: ./media/bpmonline-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/bpmonline-tutorial/tutorial_general_200.png
-[201]: ./media/bpmonline-tutorial/tutorial_general_201.png
-[202]: ./media/bpmonline-tutorial/tutorial_general_202.png
-[203]: ./media/bpmonline-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/cernercentral-provisioning-tutorial.md b/articles/active-directory/saas-apps/cernercentral-provisioning-tutorial.md
index 2861e0ac641c0..0af710800b851 100644
--- a/articles/active-directory/saas-apps/cernercentral-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/cernercentral-provisioning-tutorial.md
@@ -14,22 +14,21 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 01/26/2018
+ms.date: 03/27/2019
ms.author: asmalser-msft
ms.collection: M365-identity-device-management
---
# Tutorial: Configure Cerner Central for automatic user provisioning
-The objective of this tutorial is to show you the steps you need to perform in Cerner Central and Azure AD to automatically provision and de-provision user accounts from Azure AD to a user roster in Cerner Central.
-
+The objective of this tutorial is to show you the steps you need to perform in Cerner Central and Azure AD to automatically provision and de-provision user accounts from Azure AD to a user roster in Cerner Central.
## Prerequisites
The scenario outlined in this tutorial assumes that you already have the following items:
-* An Azure Active Directory tenant
-* A Cerner Central tenant
+* An Azure Active Directory tenant
+* A Cerner Central tenant
> [!NOTE]
> Azure Active Directory integrates with Cerner Central using the [SCIM](http://www.simplecloud.info/) protocol.
@@ -44,12 +43,11 @@ Before configuring and enabling the provisioning service, you should decide what
### Important tips for assigning users to Cerner Central
-* It is recommended that a single Azure AD user be assigned to Cerner Central to test the provisioning configuration. Additional users and/or groups may be assigned later.
+* It is recommended that a single Azure AD user be assigned to Cerner Central to test the provisioning configuration. Additional users and/or groups may be assigned later.
* Once initial testing is complete for a single user, Cerner Central recommends assigning the entire list of users intended to access any Cerner solution (not just Cerner Central) to be provisioned to Cerner’s user roster. Other Cerner solutions leverage this list of users in the user roster.
-* When assigning a user to Cerner Central, you must select the **User** role in the assignment dialog. Users with the "Default Access" role are excluded from provisioning.
-
+* When assigning a user to Cerner Central, you must select the **User** role in the assignment dialog. Users with the "Default Access" role are excluded from provisioning.
## Configuring user provisioning to Cerner Central
@@ -58,10 +56,8 @@ This section guides you through connecting your Azure AD to Cerner Central’s U
> [!TIP]
> You may also choose to enabled SAML-based Single Sign-On for Cerner Central, following the instructions provided in [Azure portal](https://portal.azure.com). Single sign-on can be configured independently of automatic provisioning, though these two features complement each other. For more information, see the [Cerner Central single sign-on tutorial](cernercentral-tutorial.md).
-
### To configure automatic user account provisioning to Cerner Central in Azure AD:
-
In order to provision user accounts to Cerner Central, you’ll need to request a Cerner Central system account from Cerner, and generate an OAuth bearer token that Azure AD can use to connect to Cerner's SCIM endpoint. It is also recommended that the integration be performed in a Cerner sandbox environment before deploying to production.
1. The first step is to ensure the people managing the Cerner and Azure AD integration have a CernerCare account, which is required to access the documentation necessary to complete the instructions. If necessary, use the URLs below to create CernerCare accounts in each applicable environment.
@@ -102,11 +98,11 @@ In order to provision user accounts to Cerner Central, you’ll need to request
* In the **Tenant URL** field, enter a URL in the format below, replacing "User-Roster-Realm-ID" with the realm ID you acquired in step #4.
-> Sandbox:
-> https://user-roster-api.sandboxcernercentral.com/scim/v1/Realms/User-Roster-Realm-ID/
->
-> Production:
-> https://user-roster-api.cernercentral.com/scim/v1/Realms/User-Roster-Realm-ID/
+ > Sandbox:
+ > https://user-roster-api.sandboxcernercentral.com/scim/v1/Realms/User-Roster-Realm-ID/
+ >
+ > Production:
+ > https://user-roster-api.cernercentral.com/scim/v1/Realms/User-Roster-Realm-ID/
* In the **Secret Token** field, enter the OAuth bearer token you generated in step #3 and click **Test Connection**.
@@ -114,13 +110,13 @@ In order to provision user accounts to Cerner Central, you’ll need to request
1. Enter the email address of a person or group who should receive provisioning error notifications in the **Notification Email** field, and check the checkbox below.
-1. Click **Save**.
+1. Click **Save**.
1. In the **Attribute Mappings** section, review the user and group attributes to be synchronized from Azure AD to Cerner Central. The attributes selected as **Matching** properties are used to match the user accounts and groups in Cerner Central for update operations. Select the Save button to commit any changes.
1. To enable the Azure AD provisioning service for Cerner Central, change the **Provisioning Status** to **On** in the **Settings** section
-1. Click **Save**.
+1. Click **Save**.
This starts the initial synchronization of any users and/or groups assigned to Cerner Central in the Users and Groups section. The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the Azure AD provisioning service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity logs, which describe all actions performed by the provisioning service on your Cerner Central app.
@@ -134,4 +130,5 @@ For more information on how to read the Azure AD provisioning logs, see [Reporti
* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
## Next steps
+
* [Learn how to review logs and get reports on provisioning activity](https://docs.microsoft.com/azure/active-directory/active-directory-saas-provisioning-reporting).
diff --git a/articles/active-directory/saas-apps/certent-equity-management-tutorial.md b/articles/active-directory/saas-apps/certent-equity-management-tutorial.md
new file mode 100644
index 0000000000000..05a8323900a06
--- /dev/null
+++ b/articles/active-directory/saas-apps/certent-equity-management-tutorial.md
@@ -0,0 +1,230 @@
+---
+title: 'Tutorial: Azure Active Directory integration with Certent Equity Management | Microsoft Docs'
+description: Learn how to configure single sign-on between Azure Active Directory and Certent Equity Management.
+services: active-directory
+documentationCenter: na
+author: jeevansd
+manager: mtillman
+ms.reviewer: barbkess
+
+ms.assetid: 08f1452b-3947-48f1-a1a1-58ebe6ebf1cd
+ms.service: active-directory
+ms.subservice: saas-app-tutorial
+ms.workload: identity
+ms.tgt_pltfrm: na
+ms.devlang: na
+ms.topic: tutorial
+ms.date: 04/05/2019
+ms.author: jeedes
+
+ms.collection: M365-identity-device-management
+---
+# Tutorial: Azure Active Directory integration with Certent Equity Management
+
+In this tutorial, you learn how to integrate Certent Equity Management with Azure Active Directory (Azure AD).
+Integrating Certent Equity Management with Azure AD provides you with the following benefits:
+
+* You can control in Azure AD who has access to Certent Equity Management.
+* You can enable your users to be automatically signed-in to Certent Equity Management (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
+
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+
+## Prerequisites
+
+To configure Azure AD integration with Certent Equity Management, you need the following items:
+
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Certent Equity Management single sign-on enabled subscription
+
+## Scenario description
+
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Certent Equity Management supports **IDP** initiated SSO
+
+## Adding Certent Equity Management from the gallery
+
+To configure the integration of Certent Equity Management into Azure AD, you need to add Certent Equity Management from the gallery to your list of managed SaaS apps.
+
+**To add Certent Equity Management from the gallery, perform the following steps:**
+
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+
+ ![The Azure Active Directory button](common/select-azuread.png)
+
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
+
+3. To add new application, click **New application** button on the top of dialog.
+
+ ![The New application button](common/add-new-app.png)
+
+4. In the search box, type **Certent Equity Management**, select **Certent Equity Management** from result panel then click **Add** button to add the application.
+
+ ![Certent Equity Management in the results list](common/search-new-app.png)
+
+## Configure and test Azure AD single sign-on
+
+In this section, you configure and test Azure AD single sign-on with Certent Equity Management based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Certent Equity Management needs to be established.
+
+To configure and test Azure AD single sign-on with Certent Equity Management, you need to complete the following building blocks:
+
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Certent Equity Management Single Sign-On](#configure-certent-equity-management-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Certent Equity Management test user](#create-certent-equity-management-test-user)** - to have a counterpart of Britta Simon in Certent Equity Management that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with Certent Equity Management, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **Certent Equity Management** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+
+ ![Single sign-on select mode](common/select-saml-option.png)
+
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+4. On the **Set up Single Sign-On with SAML** page, perform the following steps:
+
+ ![Certent Equity Management Domain and URLs single sign-on information](common/idp-intiated.png)
+
+ a. In the **Identifier** text box, type a URL using the following pattern:
+ `https://.certent.com/sys/sso/saml/acs.aspx`
+
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://.certent.com/sys/sso/saml/acs.aspx`
+
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Identifier and Reply URL. Contact Certent Integration Analyst assigned by Customer Success Manager to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+
+5. Certent Equity Management application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes. Click **Edit** icon to open **User Attributes** dialog.
+
+ ![image](common/edit-attribute.png)
+
+6. For classic SSO, Certent Equity Management application expects few more attributes to be passed back in SAML response. In the **User Claims** section on the **User Attributes** dialog, perform the following steps to add SAML token attribute as shown in the below table:
+
+ | Name | Source Attribute|
+ | ---------------| --------------- |
+ | COMPANY | user.companyname |
+ | USER | user.userprincipalname |
+ | ROLE | user.assignedroles |
+
+ > [!NOTE]
+ > Please click [here](https://docs.microsoft.com/azure/active-directory/develop/active-directory-enterprise-app-role-management) to know how to configure **Role** in Azure AD
+
+ a. Click **Add new claim** to open the **Manage user claims** dialog.
+
+ ![image](common/new-save-attribute.png)
+
+ ![image](common/new-attribute-details.png)
+
+ b. In the **Name** textbox, type the attribute name shown for that row.
+
+ c. Leave the **Namespace** blank.
+
+ d. Select Source as **Attribute**.
+
+ e. From the **Source attribute** list, type the attribute value shown for that row.
+
+ f. Click **Save**.
+
+7. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/metadataxml.png)
+
+8. On the **Set up Certent Equity Management** section, copy the appropriate URL(s) as per your requirement.
+
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
+
+ a. Login URL
+
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure Certent Equity Management Single Sign-On
+
+To configure single sign-on on **Certent Equity Management** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to Certent Integration Analyst assigned by Customer Success Manager. They set this setting to have the SAML SSO connection set properly on both sides.
+
+### Create an Azure AD test user
+
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
+
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
+
+ ![The "Users and groups" and "All users" links](common/users.png)
+
+2. Select **New user** at the top of the screen.
+
+ ![New user Button](common/new-user.png)
+
+3. In the User properties, perform the following steps.
+
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
+
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
+
+### Assign the Azure AD test user
+
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to Certent Equity Management.
+
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Certent Equity Management**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **Certent Equity Management**.
+
+ ![The Certent Equity Management link in the Applications list](common/all-applications.png)
+
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
+
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+
+ ![The Add Assignment pane](common/add-assign-user.png)
+
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create Certent Equity Management test user
+
+In this section, you create a user called Britta Simon in Certent Equity Management. Work with Certent Integration Analyst assigned by Customer Success Manager to add the users in the Certent Equity Management platform. Users must be created and activated before you use single sign-on.
+
+### Test single sign-on
+
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+
+When you click the Certent Equity Management tile in the Access Panel, you should be automatically signed in to the Certent Equity Management for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+
+## Additional Resources
+
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
+
diff --git a/articles/active-directory/saas-apps/chronicx-tutorial.md b/articles/active-directory/saas-apps/chronicx-tutorial.md
index ec2c7f96ef56e..6055c3f232986 100644
--- a/articles/active-directory/saas-apps/chronicx-tutorial.md
+++ b/articles/active-directory/saas-apps/chronicx-tutorial.md
@@ -195,8 +195,8 @@ When you click the ChronicX® tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/cisco-spark-provisioning-tutorial.md b/articles/active-directory/saas-apps/cisco-spark-provisioning-tutorial.md
index 127b3a8d62791..7e1055157a970 100644
--- a/articles/active-directory/saas-apps/cisco-spark-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/cisco-spark-provisioning-tutorial.md
@@ -9,21 +9,20 @@ manager: beatrizd
ms.assetid: d4ca2365-6729-48f7-bb7f-c0f5ffe740a3
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 06/12/2018
+ms.date: 03/27/2019
ms.author: v-wingf
ms.collection: M365-identity-device-management
---
# Tutorial: Configure Cisco Spark for automatic user provisioning
-
The objective of this tutorial is to demonstrate the steps to be performed in Cisco Spark and Azure Active Directory (Azure AD) to configure Azure AD to automatically provision and de-provision users to Cisco Spark.
-
> [!NOTE]
> This tutorial describes a connector built on top of the Azure AD User Provisioning Service. For important details on what this service does, how it works, and frequently asked questions, see [Automate user provisioning and deprovisioning to SaaS applications with Azure Active Directory](../manage-apps/user-provisioning.md).
@@ -31,40 +30,34 @@ The objective of this tutorial is to demonstrate the steps to be performed in Ci
The scenario outlined in this tutorial assumes that you already have the following prerequisites:
-* An Azure AD tenant
-* A Cisco Spark tenant
-* A user account in Cisco Spark with Admin permissions
-
+* An Azure AD tenant
+* A Cisco Spark tenant
+* A user account in Cisco Spark with Admin permissions
> [!NOTE]
> The Azure AD provisioning integration relies on the [Cisco Spark Webservice](https://developer.webex.com/getting-started.html), which is available to Cisco Spark teams.
## Adding Cisco Spark from the gallery
+
Before configuring Cisco Spark for automatic user provisioning with Azure AD, you need to add Cisco Spark from the Azure AD application gallery to your list of managed SaaS applications.
**To add Cisco Spark from the Azure AD application gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click on the **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications** > **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications Section][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
-3. To add Cisco Spark, click the **New application** button on the top of the dialog.
+3. To add new application, click **New application** button on the top of dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
-4. In the search box, type **Cisco Spark**.
+4. In the search box, type **Cisco Spark**, select **Cisco Spark** from result panel then click **Add** button to add the application.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/AppSearch.png)
-
-5. In the results panel, select **Cisco Spark**, and then click the **Add** button to add Cisco Spark to your list of SaaS applications.
-
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/AppSearchResults.png)
-
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/AppCreation.png)
+ ![Cisco Spark in the results list](common/search-new-app.png)
## Assigning users to Cisco Spark
@@ -72,52 +65,60 @@ Azure Active Directory uses a concept called "assignments" to determine which us
Before configuring and enabling automatic user provisioning, you should decide which users in Azure AD need access to Cisco Spark. Once decided, you can assign these users to Cisco Spark by following the instructions here:
-* [Assign a user or group to an enterprise app](../manage-apps/assign-user-or-group-access-portal.md)
+* [Assign a user or group to an enterprise app](../manage-apps/assign-user-or-group-access-portal.md)
### Important tips for assigning users to Cisco Spark
-* It is recommended that a single Azure AD user is assigned to Cisco Spark to test the automatic user provisioning configuration. Additional users may be assigned later.
+* It is recommended that a single Azure AD user is assigned to Cisco Spark to test the automatic user provisioning configuration. Additional users may be assigned later.
-* When assigning a user to Cisco Spark, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
+* When assigning a user to Cisco Spark, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
## Configuring automatic user provisioning to Cisco Spark
This section guides you through the steps to configure the Azure AD provisioning service to create, update, and disable users in Cisco Spark based on user assignments in Azure AD.
-
### To configure automatic user provisioning for Cisco Spark in Azure AD:
+1. Sign in to the [Azure portal](https://portal.azure.com) and select **Enterprise Applications**, select **All applications**, then select **Cisco Spark**.
-1. Sign in to the [Azure portal](https://portal.azure.com) and browse to **Azure Active Directory > Enterprise applications > All applications**.
+ ![Enterprise applications blade](common/enterprise-applications.png)
-2. Select Cisco Spark from your list of SaaS applications.
+2. In the applications list, select **Cisco Spark**.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/Successcenter2.png)
+ ![The Cisco Spark link in the Applications list](common/all-applications.png)
3. Select the **Provisioning** tab.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/ProvisioningTab.png)
+ ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/ProvisioningTab.png)
4. Set the **Provisioning Mode** to **Automatic**.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/ProvisioningCredentials.png)
+ ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/ProvisioningCredentials.png)
5. Under the **Admin Credentials** section, input the **Tenant URL**, and **Secret Token** of your Cisco Spark's account.
- * In the **Tenant URL** field, populate the Cisco Spark SCIM API URL for your tenant, which takes the form of `https://api.ciscospark.com/v1/scim/[Tenant ID]/`, where `[Tenant ID]` is an alphanumeric string as described in step 6.
+ ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/secrettoken1.png)
- * In the **Secret Token** field, populate the Secret Token as described in step 6.
+ * In the **Tenant URL** field, populate the Cisco Spark SCIM API URL for your tenant, which takes the form of `https://api.ciscospark.com/v1/scim/[Tenant ID]/`, where `[Tenant ID]` is an alphanumeric string as described in step 6.
+
+ * In the **Secret Token** field, populate the Secret Token as described in step 6.
+
+6. The **Tenant ID** and **Secret Token** for your Cisco Spark account can be found by logging into the [Cisco Spark developer site](https://developer.webex.com/) with your Admin account. Once logged in -
-1. The **Tenant ID** and **Secret Token** for your Cisco Spark account can be found by logging into the [Cisco Spark developer site](https://developer.webex.com/) with your Admin account. Once logged in -
* Go to the [Getting Started page](https://developer.webex.com/getting-started.html)
+
* Scroll down to the [Authentication Section](https://developer.webex.com/getting-started.html#authentication)
- ![Cisco Spark Authentication Token](./media/cisco-spark-provisioning-tutorial/SecretToken.png)
+
+ ![Cisco Spark Authentication Token](./media/cisco-spark-provisioning-tutorial/SecretToken.png)
+
* The alphanumeric string in the box is your **Secret Token**. Copy this token to the clipboard
+
* Go to the [Get My Own Details page](https://developer.webex.com/endpoint-people-me-get.html)
* Make sure that Test Mode is ON
* Type the word "Bearer" followed by a space, and then paste the Secret Token into the Authorization field
![Cisco Spark Authentication Token](./media/cisco-spark-provisioning-tutorial/GetMyDetails.png)
* Click Run
+
* In the response text to the right, the **Tenant ID** appears as "orgId":
```json
@@ -133,38 +134,37 @@ This section guides you through the steps to configure the Azure AD provisioning
}
```
-1. Upon populating the fields shown in Step 5, click **Test Connection** to ensure Azure AD can connect to Cisco Spark. If the connection fails, ensure your Cisco Spark account has Admin permissions and try again.
+7. Upon populating the fields shown in Step 5, click **Test Connection** to ensure Azure AD can connect to Cisco Spark. If the connection fails, ensure your Cisco Spark account has Admin permissions and try again.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/TestConnection.png)
+ ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/TestConnection.png)
8. In the **Notification Email** field, enter the email address of a person or group who should receive the provisioning error notifications and check the checkbox - **Send an email notification when a failure occurs**.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/EmailNotification.png)
+ ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/EmailNotification.png)
9. Click **Save**.
10. Under the **Mappings** section, select **Synchronize Azure Active Directory Users to Cisco Spark**.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/UserMapping.png)
+ ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/UserMapping.png)
11. Review the user attributes that are synchronized from Azure AD to Cisco Spark in the **Attribute Mapping** section. The attributes selected as **Matching** properties are used to match the user accounts in Cisco Spark for update operations. Select the **Save** button to commit any changes.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/UserMappingAttributes.png)
+ ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/UserMappingAttributes.png)
12. To configure scoping filters, refer to the following instructions provided in the [Scoping filter tutorial](../manage-apps/define-conditional-rules-for-provisioning-user-accounts.md).
13. To enable the Azure AD provisioning service for Cisco Spark, change the **Provisioning Status** to **On** in the **Settings** section.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/ProvisioningStatus.png)
+ ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/ProvisioningStatus.png)
14. Define the users and/or groups that you would like to provision to Cisco Spark by choosing the desired values in **Scope** in the **Settings** section.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/SyncScope.png)
+ ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/SyncScope.png)
15. When you are ready to provision, click **Save**.
- ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/Save.png)
-
+ ![Cisco Spark Provisioning](./media/cisco-spark-provisioning-tutorial/Save.png)
This operation starts the initial synchronization of all users and/or groups defined in **Scope** in the **Settings** section. The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the Azure AD provisioning service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity report, which describes all actions performed by the Azure AD provisioning service on Cisco Spark.
@@ -179,7 +179,6 @@ For more information on how to read the Azure AD provisioning logs, see [Reporti
* [Managing user account provisioning for Enterprise Apps](../manage-apps/configure-automatic-user-provisioning-portal.md)
* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
## Next steps
* [Learn how to review logs and get reports on provisioning activity](../manage-apps/check-status-user-account-provisioning.md)
diff --git a/articles/active-directory/saas-apps/cisco-spark-tutorial.md b/articles/active-directory/saas-apps/cisco-spark-tutorial.md
index 3319fc59693e8..aea1ed367247e 100644
--- a/articles/active-directory/saas-apps/cisco-spark-tutorial.md
+++ b/articles/active-directory/saas-apps/cisco-spark-tutorial.md
@@ -112,7 +112,7 @@ To configure Azure AD single sign-on with Cisco Webex, perform the following ste
> [!NOTE]
> This Identifier value is not real. Update this value with the actual Identifier. If you have Service Provider Metadata, upload it in the **Basic SAML Configuration** section then the **Identifier (Entity ID)** value gets auto populated automatically.
-5. Cisco Webex application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes. Click on **Edit** icon to add the attributes.
+5. Cisco Webex application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes. Click on **Edit** icon to add the attributes.
![image](common/edit-attribute.png)
@@ -257,9 +257,9 @@ When you click the Cisco Webex tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/ciscocloud-tutorial.md b/articles/active-directory/saas-apps/ciscocloud-tutorial.md
index 628e4b39bb38a..e4ccf6f3c696f 100644
--- a/articles/active-directory/saas-apps/ciscocloud-tutorial.md
+++ b/articles/active-directory/saas-apps/ciscocloud-tutorial.md
@@ -218,8 +218,8 @@ When you click the Cisco Cloud tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/citrix-netscaler-tutorial.md b/articles/active-directory/saas-apps/citrix-netscaler-tutorial.md
index 0d04640ad3fb6..2742a3cc7a0c8 100644
--- a/articles/active-directory/saas-apps/citrix-netscaler-tutorial.md
+++ b/articles/active-directory/saas-apps/citrix-netscaler-tutorial.md
@@ -382,9 +382,9 @@ When you click the Citrix Netscaler tile in the Access Panel, you should be auto
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/clickup-productivity-platform-tutorial.md b/articles/active-directory/saas-apps/clickup-productivity-platform-tutorial.md
index 778163f8372c4..96f3fe25b82ed 100644
--- a/articles/active-directory/saas-apps/clickup-productivity-platform-tutorial.md
+++ b/articles/active-directory/saas-apps/clickup-productivity-platform-tutorial.md
@@ -211,9 +211,9 @@ When you click the ClickUp Productivity Platform tile in the Access Panel, you s
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/confirmit-horizons-tutorial.md b/articles/active-directory/saas-apps/confirmit-horizons-tutorial.md
index 8ffcc3c80fbbe..7a2ece7ed6134 100644
--- a/articles/active-directory/saas-apps/confirmit-horizons-tutorial.md
+++ b/articles/active-directory/saas-apps/confirmit-horizons-tutorial.md
@@ -214,9 +214,9 @@ When you click the Confirmit Horizons tile in the Access Panel, you should be au
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/confluencemicrosoft-tutorial.md b/articles/active-directory/saas-apps/confluencemicrosoft-tutorial.md
index 469845ddb1c99..cfc41fea060be 100644
--- a/articles/active-directory/saas-apps/confluencemicrosoft-tutorial.md
+++ b/articles/active-directory/saas-apps/confluencemicrosoft-tutorial.md
@@ -9,11 +9,12 @@ ms.reviewer: barbkess
ms.assetid: 1ad1cf90-52bc-4b71-ab2b-9a5a1280fb2d
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: tutorial
-ms.date: 12/31/2018
+ms.date: 04/10/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -32,7 +33,7 @@ If you don't have an Azure subscription, [create a free account](https://azure.m
## Description:
-Use your Microsoft Azure Active Directory account with Atlassian Confluence server to enable single sign-on. This way all your organization users can use the Azure AD credentials to login into the Confluence application. This plugin uses SAML 2.0 for federation.
+Use your Microsoft Azure Active Directory account with Atlassian Confluence server to enable single sign-on. This way all your organization users can use the Azure AD credentials to signin into the Confluence application. This plugin uses SAML 2.0 for federation.
## Prerequisites
@@ -74,6 +75,9 @@ As of now, following versions of Confluence are supported:
- Confluence: 6.11.0
- Confluence: 6.12.0
+> [!NOTE]
+> Please note that Confluence also supports Linux Ubuntu version 16.04
+
## Scenario description
In this tutorial, you configure and test Azure AD single sign-on in a test environment.
@@ -100,7 +104,7 @@ To configure the integration of Confluence SAML SSO by Microsoft into Azure AD,
4. In the search box, type **Confluence SAML SSO by Microsoft**, select **Confluence SAML SSO by Microsoft** from result panel then click **Add** button to add the application.
- ![Confluence SAML SSO by Microsoft in the results list](common/search-new-app.png)
+ ![Confluence SAML SSO by Microsoft in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
@@ -156,7 +160,7 @@ To configure Azure AD single sign-on with Confluence SAML SSO by Microsoft, perf
### Configure Confluence SAML SSO by Microsoft Single Sign-On
-1. In a different web browser window, log in to your Confluence instance as an administrator.
+1. In a different web browser window, sign in to your Confluence instance as an administrator.
2. Hover on cog and click the **Add-ons**.
@@ -183,18 +187,18 @@ To configure Azure AD single sign-on with Confluence SAML SSO by Microsoft, perf
c. In **Login Button Name** type the name of button your organization wants the users to see on login screen.
- d. In **SAML User ID Locations**, select either **User ID is in the NameIdentifier element of the Subject statement** or **User ID is in an Attribute element**. This ID has to be the Confluence user id. If the user id is not matched, then system will not allow users to log in.
+ d. In **SAML User ID Locations**, select either **User ID is in the NameIdentifier element of the Subject statement** or **User ID is in an Attribute element**. This ID has to be the Confluence user ID. If the user ID is not matched, then system will not allow users to sign in.
> [!Note]
> Default SAML User ID location is Name Identifier. You can change this to an attribute option and enter the appropriate attribute name.
- e. If you select **User ID is in an Attribute element** option, then in **Attribute name** textbox type the name of the attribute where User Id is expected.
+ e. If you select **User ID is in an Attribute element** option, then in **Attribute name** textbox type the name of the attribute where User ID is expected.
f. If you are using the federated domain (like ADFS etc.) with Azure AD, then click on the **Enable Home Realm Discovery** option and configure the **Domain Name**.
g. In **Domain Name** type the domain name here in case of the ADFS-based login.
- h. Check **Enable Single Sign out** if you wish to log out from Azure AD when a user logs out from Confluence.
+ h. Check **Enable Single Sign out** if you wish to sign out from Azure AD when a user signs out from Confluence.
i. Click **Save** button to save the settings.
@@ -219,8 +223,7 @@ The objective of this section is to create a test user in the Azure portal calle
a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field type `brittasimon\@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
@@ -254,11 +257,11 @@ In this section, you enable Britta Simon to use Azure single sign-on by granting
### Create Confluence SAML SSO by Microsoft test user
-To enable Azure AD users to log in to Confluence on-premises server, they must be provisioned into Confluence SAML SSO by Microsoft. For Confluence SAML SSO by Microsoft, provisioning is a manual task.
+To enable Azure AD users to sign in to Confluence on-premises server, they must be provisioned into Confluence SAML SSO by Microsoft. For Confluence SAML SSO by Microsoft, provisioning is a manual task.
**To provision a user account, perform the following steps:**
-1. Log in to your Confluence on-premises server as an administrator.
+1. Sign in to your Confluence on-premises server as an administrator.
2. Hover on cog and click the **User management**.
diff --git a/articles/active-directory/saas-apps/coralogix-tutorial.md b/articles/active-directory/saas-apps/coralogix-tutorial.md
index b5949cedfcdc9..b783a8f0594f1 100644
--- a/articles/active-directory/saas-apps/coralogix-tutorial.md
+++ b/articles/active-directory/saas-apps/coralogix-tutorial.md
@@ -24,131 +24,131 @@ In this tutorial, you learn how to integrate Coralogix with Azure Active Directo
Integrating Coralogix with Azure AD provides you with the following benefits:
* You can control in Azure AD who has access to Coralogix.
-* You can enable your users to be automatically signed-in to Coralogix (Single Sign-On) with their Azure AD accounts.
-* You can manage your accounts in one central location - the Azure portal.
+* You can enable your users to be automatically signed in to Coralogix (single sign-on) with their Azure AD accounts.
+* You can manage your accounts in one central location: the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+For more information about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Coralogix, you need the following items:
-* An Azure AD subscription. If you don't have an Azure AD environment, you can get one-month trial [here](https://azure.microsoft.com/pricing/free-trial/)
-* Coralogix single sign-on enabled subscription
+- An Azure AD subscription. If you don't have an Azure AD environment, you can get a [one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+- A Coralogix single-sign-on enabled subscription.
## Scenario description
In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-* Coralogix supports **SP** initiated SSO
+* Coralogix supports SP-initiated SSO.
-## Adding Coralogix from the gallery
+## Add Coralogix from the gallery
-To configure the integration of Coralogix into Azure AD, you need to add Coralogix from the gallery to your list of managed SaaS apps.
+To configure the integration of Coralogix into Azure AD, first add Coralogix from the gallery to your list of managed SaaS apps.
-**To add Coralogix from the gallery, perform the following steps:**
+To add Coralogix from the gallery, take the following steps:
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the [Azure portal](https://portal.azure.com), in the left pane, select the **Azure Active Directory** icon.
![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+2. Go to **Enterprise Applications**, and then select **All Applications**.
![The Enterprise applications blade](common/enterprise-applications.png)
-3. To add new application, click **New application** button on the top of dialog.
+3. To add a new application, select the **New application** button at the top of the dialog box.
![The New application button](common/add-new-app.png)
-4. In the search box, type **Coralogix**, select **Coralogix** from result panel then click **Add** button to add the application.
+4. In the search box, enter **Coralogix**. Select **Coralogix** from the results pane, and then select the **Add** button to add the application.
![Coralogix in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Coralogix based on a test user called **Britta Simon**.
-For single sign-on to work, a link relationship between an Azure AD user and the related user in Coralogix needs to be established.
+In this section, you configure and test Azure AD single sign-on with Coralogix based on a test user called Britta Simon.
+For single sign-on to work, you need to establish a link between an Azure AD user and the related user in Coralogix.
-To configure and test Azure AD single sign-on with Coralogix, you need to complete the following building blocks:
+To configure and test Azure AD single sign-on with Coralogix, first complete the following building blocks:
-1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Configure Coralogix Single Sign-On](#configure-coralogix-single-sign-on)** - to configure the Single Sign-On settings on application side.
-3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Create Coralogix test user](#create-coralogix-test-user)** - to have a counterpart of Britta Simon in Coralogix that is linked to the Azure AD representation of user.
-6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+1. [Configure Azure AD single sign-on](#configure-azure-ad-single-sign-on) to enable your users to use this feature.
+2. [Configure Coralogix single sign-on](#configure-coralogix-single-sign-on) to configure the single sign-on settings on the application side.
+3. [Create an Azure AD test user](#create-an-azure-ad-test-user) to test Azure AD single sign-on with Britta Simon.
+4. [Assign the Azure AD test user](#assign-the-azure-ad-test-user) to enable Britta Simon to use Azure AD single sign-on.
+5. [Create a Coralogix test user](#create-a-coralogix-test-user) to have a counterpart of Britta Simon in Coralogix that is linked to the Azure AD representation of user.
+6. [Test single sign-on](#test-single-sign-on) to verify that the configuration works.
### Configure Azure AD single sign-on
In this section, you enable Azure AD single sign-on in the Azure portal.
-To configure Azure AD single sign-on with Coralogix, perform the following steps:
+To configure Azure AD single sign-on with Coralogix, take the following steps:
1. In the [Azure portal](https://portal.azure.com/), on the **Coralogix** application integration page, select **Single sign-on**.
![Configure single sign-on link](common/select-sso.png)
-2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+2. In the **Select a Single sign-on method** dialog box, select **SAML** to enable single sign-on.
![Single sign-on select mode](common/select-saml-option.png)
-3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+3. On the **Set up Single Sign-On with SAML** page, select the **Edit** icon to open the **Basic SAML Configuration** dialog box.
![Edit Basic SAML Configuration](common/edit-urls.png)
-4. On the **Basic SAML Configuration** section, perform the following steps:
+4. In the **Basic SAML Configuration** dialog box, take the following steps:
![Coralogix Domain and URLs single sign-on information](common/sp-identifier.png)
- a. In the **Sign on URL** text box, type a URL using the following pattern:
+ a. In the **Sign on URL** box, enter a URL with the following pattern:
`https://.coralogix.com`
- b. In the **Identifier (Entity ID)** text box, type a URL:
+ b. In the **Identifier (Entity ID)** text box, enter a URL, such as:
+
+ `https://api.coralogix.com/saml/metadata.xml`
- | |
- |--|
- | `https://api.coralogix.com/saml/metadata.xml` |
- | `https://aws-client-prod.coralogix.com/saml/metadata.xml` |
+ or
+
+ `https://aws-client-prod.coralogix.com/saml/metadata.xml`
> [!NOTE]
- > The Sign on URL value is not real. Update the value with the actual Sign on URL. Contact [Coralogix Client support team](mailto:info@coralogix.com) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+ > The sign-on URL value isn't real. Update the value with the actual sign-on URL. Contact the [Coralogix Client support team](mailto:info@coralogix.com) to get the value. You can also refer to the patterns in the **Basic SAML Configuration** section in the Azure portal.
-5. Coralogix application expects the SAML assertions in a specific format. Configure the following claims for this application. You can manage the values of these attributes from the **User Attributes** section on application integration page. On the **Set up Single Sign-On with SAML** page, click **Edit** button to open **User Attributes** dialog.
+5. The Coralogix application expects the SAML assertions in a specific format. Configure the following claims for this application. You can manage the values of these attributes from the **User Attributes** section on the application integration page. On the **Set up Single Sign-On with SAML** page, select the **Edit** button to open the **User Attributes** dialog box.
![image](common/edit-attribute.png)
-6. In the **User Claims** section on the **User Attributes** dialog, edit the claims by using **Edit icon** or add the claims by using **Add new claim** to configure SAML token attribute as shown in the image above and perform the following steps:
+6. In the **User Claims** section in the **User Attributes** dialog box, edit the claims by using the **Edit** icon. You can also add the claims by using **Add new claim** to configure the SAML token attribute as shown in the previous image. Then take the following steps:
- a. Click **Edit icon** to open the **Manage user claims** dialog.
+ a. Select the **Edit icon** to open the **Manage user claims** dialog box.
![image](./media/coralogix-tutorial/tutorial_usermail.png)
-
![image](./media/coralogix-tutorial/tutorial_usermailedit.png)
b. From the **Choose name identifier format** list, select **Email address**.
c. From the **Source attribute** list, select **user.mail**.
- d. Click **Save**.
+ d. Select **Save**.
-7. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
+7. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, select **Download** to download the **Federation Metadata XML** from the given options according to your requirements. Then save it on your computer.
![The Certificate download link](common/metadataxml.png)
-8. On the **Set up Coralogix** section, copy the appropriate URL(s) as per your requirement.
+8. In the **Set up Coralogix** section, copy the appropriate URL(s).
![Copy configuration URLs](common/copy-configuration-urls.png)
a. Login URL
- b. Azure Ad Identifier
+ b. Azure AD Identifier
c. Logout URL
-### Configure Coralogix Single Sign-On
+### Configure Coralogix single sign-on
-To configure single sign-on on **Coralogix** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [Coralogix support team](mailto:info@coralogix.com). They set this setting to have the SAML SSO connection set properly on both sides.
+To configure single sign-on on the **Coralogix** side, send the downloaded **Federation Metadata XML** and copied URLs from the Azure portal to the [Coralogix support team](mailto:info@coralogix.com). They ensure that the SAML SSO connection is set properly on both sides.
### Create an Azure AD test user
@@ -158,28 +158,27 @@ The objective of this section is to create a test user in the Azure portal calle
![The "Users and groups" and "All users" links](common/users.png)
-2. Select **New user** at the top of the screen.
+2. At the top of the screen, select **New user**.
![New user Button](common/new-user.png)
-3. In the User properties, perform the following steps.
+3. In the **User** dialog box, take the following steps.
![The User dialog box](common/user-properties.png)
- a. In the **Name** field enter **BrittaSimon**.
+ a. In the **Name** field, enter **BrittaSimon**.
- b. In the **User name** field type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field, enter "brittasimon@yourcompanydomain.extension." For example, in this case, you might enter "brittasimon@contoso.com."
- c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+ c. Select the **Show password** check box, and then note the value that's displayed in the **Password** box.
- d. Click **Create**.
+ d. Select **Create**.
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Coralogix.
-1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Coralogix**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, and then select **Coralogix**.
![Enterprise applications blade](common/enterprise-applications.png)
@@ -191,29 +190,29 @@ In this section, you enable Britta Simon to use Azure single sign-on by granting
![The "Users and groups" link](common/users-groups-blade.png)
-4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+4. Select the **Add user** button. Then select **Users and groups** in the **Add Assignment** dialog box.
![The Add Assignment pane](common/add-assign-user.png)
-5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+5. In the **Users and groups** dialog box, select **Britta Simon** in the users list. Then click the **Select** button at the bottom of the screen.
-6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+6. If you're expecting a role value in the SAML assertion, in the **Select Role** dialog box, select the appropriate role for the user from the list. Then click the **Select** button at the bottom of the screen.
-7. In the **Add Assignment** dialog click the **Assign** button.
+7. In the **Add Assignment** dialog box, select the **Assign** button.
-### Create Coralogix test user
+### Create a Coralogix test user
-In this section, you create a user called Britta Simon in Coralogix. Work with [Coralogix support team](mailto:info@coralogix.com) to add the users in the Coralogix platform. Users must be created and activated before you use single sign-on.
+In this section, you create a user called Britta Simon in Coralogix. Work with the [Coralogix support team](mailto:info@coralogix.com) to add the users in the Coralogix platform. You must create and activate users before you use single sign-on.
### Test single sign-on
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+In this section, you test your Azure AD single sign-on configuration by using the MyApps portal.
-When you click the Coralogix tile in the Access Panel, you should be automatically signed in to the Coralogix for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+When you select the Coralogix tile in the MyApps portal, you should be automatically signed in to Coralogix. For more information about the MyApps portal, see [What is the MyApps portal?](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-## Additional Resources
+## Additional resources
-- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [ List of tutorials on how to integrate SaaS apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
diff --git a/articles/active-directory/saas-apps/cornerstone-ondemand-provisioning-tutorial.md b/articles/active-directory/saas-apps/cornerstone-ondemand-provisioning-tutorial.md
index 25f9784342f69..a2d405a116d44 100644
--- a/articles/active-directory/saas-apps/cornerstone-ondemand-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/cornerstone-ondemand-provisioning-tutorial.md
@@ -14,17 +14,15 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 01/31/2018
+ms.date: 03/27/2019
ms.author: v-ant
ms.collection: M365-identity-device-management
---
# Tutorial: Configure Cornerstone OnDemand for automatic user provisioning
-
The objective of this tutorial is to demonstrate the steps to be performed in Cornerstone OnDemand and Azure Active Directory (Azure AD) to configure Azure AD to automatically provision and de-provision users and/or groups to Cornerstone OnDemand.
-
> [!NOTE]
> This tutorial describes a connector built on top of the Azure AD User Provisioning Service. For important details on what this service does, how it works, and frequently asked questions, see [Automate user provisioning and deprovisioning to SaaS applications with Azure Active Directory](../manage-apps/user-provisioning.md).
@@ -32,68 +30,62 @@ The objective of this tutorial is to demonstrate the steps to be performed in Co
The scenario outlined in this tutorial assumes that you already have the following prerequisites:
-* An Azure AD tenant
-* A Cornerstone OnDemand tenant
-* A user account in Cornerstone OnDemand with Admin permissions
-
+* An Azure AD tenant
+* A Cornerstone OnDemand tenant
+* A user account in Cornerstone OnDemand with Admin permissions
> [!NOTE]
> The Azure AD provisioning integration relies on the [Cornerstone OnDemand Webservice](https://help.csod.com/help/csod_0/Content/Resources/Documents/WebServices/CSOD_-_Summary_of_Web_Services_v20151106.pdf), which is available to Cornerstone OnDemand teams.
## Adding Cornerstone OnDemand from the gallery
+
Before configuring Cornerstone OnDemand for automatic user provisioning with Azure AD, you need to add Cornerstone OnDemand from the Azure AD application gallery to your list of managed SaaS applications.
**To add Cornerstone OnDemand from the Azure AD application gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click on the **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications** > **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications Section][2]
-
-3. To add Cornerstone OnDemand, click the **New application** button on the top of the dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![The New application button][3]
+3. To add new application, click **New application** button on the top of dialog.
-4. In the search box, type **Cornerstone OnDemand**.
+ ![The New application button](common/add-new-app.png)
- ![Cornerstone OnDemand Provisioning](./media/cornerstone-ondemand-provisioning-tutorial/AppSearch.png)
+4. In the search box, type **Cornerstone OnDemand**, select **Cornerstone OnDemand** from result panel then click **Add** button to add the application.
-5. In the results panel, select **Cornerstone OnDemand**, and then click the **Add** button to add Cornerstone OnDemand to your list of SaaS applications.
-
- ![Cornerstone OnDemand Provisioning](./media/cornerstone-ondemand-provisioning-tutorial/AppSearchResults.png)
-
- ![Cornerstone OnDemand Provisioning](./media/cornerstone-ondemand-provisioning-tutorial/AppCreation.png)
+ ![Cornerstone OnDemand in the results list](common/search-new-app.png)
## Assigning users to Cornerstone OnDemand
-Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user provisioning, only the users and/or groups that have been "assigned" to an application in Azure AD are synchronized.
+Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user provisioning, only the users and/or groups that have been "assigned" to an application in Azure AD are synchronized.
Before configuring and enabling automatic user provisioning, you should decide which users and/or groups in Azure AD need access to Cornerstone OnDemand. Once decided, you can assign these users and/or groups to Cornerstone OnDemand by following the instructions here:
-* [Assign a user or group to an enterprise app](../manage-apps/assign-user-or-group-access-portal.md)
+* [Assign a user or group to an enterprise app](../manage-apps/assign-user-or-group-access-portal.md)
### Important tips for assigning users to Cornerstone OnDemand
-* It is recommended that a single Azure AD user is assigned to Cornerstone OnDemand to test the automatic user provisioning configuration. Additional users and/or groups may be assigned later.
+* It is recommended that a single Azure AD user is assigned to Cornerstone OnDemand to test the automatic user provisioning configuration. Additional users and/or groups may be assigned later.
-* When assigning a user to Cornerstone OnDemand, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
+* When assigning a user to Cornerstone OnDemand, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
## Configuring automatic user provisioning to Cornerstone OnDemand
This section guides you through the steps to configure the Azure AD provisioning service to create, update, and disable users and/or groups in Cornerstone OnDemand based on user and/or group assignments in Azure AD.
-
### To configure automatic user provisioning for Cornerstone OnDemand in Azure AD:
+1. Sign in to the [Azure portal](https://portal.azure.com) and select **Enterprise Applications**, select **All applications**, then select **Cornerstone OnDemand**.
-1. Sign in to the [Azure portal](https://portal.azure.com) and browse to **Azure Active Directory > Enterprise applications > All applications**.
+ ![Enterprise applications blade](common/enterprise-applications.png)
-2. Select Cornerstone OnDemand from your list of SaaS applications.
-
- ![Cornerstone OnDemand Provisioning](./media/cornerstone-ondemand-provisioning-tutorial/Successcenter2.png)
+2. In the applications list, select **Cornerstone OnDemand**.
+
+ ![The Cornerstone OnDemand link in the Applications list](common/all-applications.png)
3. Select the **Provisioning** tab.
@@ -105,11 +97,11 @@ This section guides you through the steps to configure the Azure AD provisioning
5. Under the **Admin Credentials** section, input the **Admin Username**, **Admin Password**, and **Domain** of your Cornerstone OnDemand's account.
- * In the **Admin Username** field, populate the domain\username of the admin account on your Cornerstone OnDemand tenant. Example: contoso\admin.
+ * In the **Admin Username** field, populate the domain\username of the admin account on your Cornerstone OnDemand tenant. Example: contoso\admin.
- * In the **Admin Password** field, populate the password corresponding to the admin username.
+ * In the **Admin Password** field, populate the password corresponding to the admin username.
- * In the **Domain** field, populate the webservice URL of the Cornerstone OnDemand tenant. Example: The service is located at `https://ws-[corpname].csod.com/feed30/clientdataservice.asmx`, for Contoso the domain is `https://ws-contoso.csod.com/feed30/clientdataservice.asmx`. For more information on how to retrieve the webservice URL, see [here](https://help.csod.com/help/csod_0/Content/Resources/Documents/WebServices/CSOD_Web_Services_-_User-OU_Technical_Specification_v20160222.pdf).
+ * In the **Domain** field, populate the webservice URL of the Cornerstone OnDemand tenant. Example: The service is located at `https://ws-[corpname].csod.com/feed30/clientdataservice.asmx`, for Contoso the domain is `https://ws-contoso.csod.com/feed30/clientdataservice.asmx`. For more information on how to retrieve the webservice URL, see [here](https://help.csod.com/help/csod_0/Content/Resources/Documents/WebServices/CSOD_Web_Services_-_User-OU_Technical_Specification_v20160222.pdf).
6. Upon populating the fields shown in Step 5, click **Test Connection** to ensure Azure AD can connect to Cornerstone OnDemand. If the connection fails, ensure your Cornerstone OnDemand account has Admin permissions and try again.
@@ -143,24 +135,23 @@ This section guides you through the steps to configure the Azure AD provisioning
![Cornerstone OnDemand Provisioning](./media/cornerstone-ondemand-provisioning-tutorial/Save.png)
-
This operation starts the initial synchronization of all users and/or groups defined in **Scope** in the **Settings** section. The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the Azure AD provisioning service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity report, which describes all actions performed by the Azure AD provisioning service on Cornerstone OnDemand.
For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](../manage-apps/check-status-user-account-provisioning.md).
+
## Connector Limitations
* The Cornerstone OnDemand **Position** attribute expects a value that corresponds to the roles on the Cornerstone OnDemand portal. The list of valid **Position** values can be obtained by navigating to **Edit User Record > Organization Structure > Position** in the Cornerstone OnDemand portal.
+
![Cornerstone OnDemand Provisioning Edit User](./media/cornerstone-ondemand-provisioning-tutorial/UserEdit.png)
![Cornerstone OnDemand Provisioning Position](./media/cornerstone-ondemand-provisioning-tutorial/UserPosition.png)
![Cornerstone OnDemand Provisioning Positions List](./media/cornerstone-ondemand-provisioning-tutorial/PostionId.png)
-
+
## Additional resources
* [Managing user account provisioning for Enterprise Apps](../manage-apps/configure-automatic-user-provisioning-portal.md)
* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
-
## Next steps
* [Learn how to review logs and get reports on provisioning activity](../manage-apps/check-status-user-account-provisioning.md)
diff --git a/articles/active-directory/saas-apps/direct-tutorial.md b/articles/active-directory/saas-apps/direct-tutorial.md
index 9f7cf3e3e0732..7c48ed733299e 100644
--- a/articles/active-directory/saas-apps/direct-tutorial.md
+++ b/articles/active-directory/saas-apps/direct-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 7c2cd1f0-d14c-42f0-94a8-9b800008b285
ms.service: active-directory
@@ -12,46 +13,35 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 09/06/2018
+ms.topic: tutorial
+ms.date: 04/01/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with direct
In this tutorial, you learn how to integrate direct with Azure Active Directory (Azure AD).
-
Integrating direct with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to direct
-- You can enable your users to automatically get signed-on to direct (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to direct.
+* You can enable your users to be automatically signed-in to direct (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with direct, you need the following items:
-- An Azure AD subscription
-- A direct single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* direct single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-1. Adding direct from the gallery
-2. Configuring and testing Azure AD single sign-on
+* direct supports **SP** and **IDP** initiated SSO
## Adding direct from the gallery
@@ -59,141 +49,141 @@ To configure the integration of direct into Azure AD, you need to add direct fro
**To add direct from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
3. To add new application, click **New application** button on the top of dialog.
- ![Applications][3]
+ ![The New application button](common/add-new-app.png)
-4. In the search box, type **direct**. Select **direct** from the results panel, and then select the **Add** button to add the application.
+4. In the search box, type **direct**, select **direct** from result panel then click **Add** button to add the application.
- ![Creating an Azure AD test user](./media/direct-tutorial/tutorial_direct_addfromgallery.png)
+ ![direct in the results list](common/search-new-app.png)
-## Configuring and testing Azure AD single sign-on
+## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with direct based on a test user called "Britta Simon."
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in direct is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in direct needs to be established.
-
-In direct, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+In this section, you configure and test Azure AD single sign-on with direct based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in direct needs to be established.
To configure and test Azure AD single sign-on with direct, you need to complete the following building blocks:
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-3. **[Creating a direct test user](#creating-a-direct-test-user)** - to have a counterpart of Britta Simon in direct that is linked to the Azure AD representation of user.
-4. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure direct Single Sign-On](#configure-direct-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create direct test user](#create-direct-test-user)** - to have a counterpart of Britta Simon in direct that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-### Configuring Azure AD single sign-on
+### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your direct application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with direct, perform the following steps:**
+To configure Azure AD single sign-on with direct, perform the following steps:
-1. In the Azure portal, on the **direct** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **direct** application integration page, select **Single sign-on**.
- ![Configure Single Sign-On][4]
+ ![Configure single sign-on link](common/select-sso.png)
-2. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/direct-tutorial/tutorial_direct_samlbase.png)
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-3. On the **direct Domain and URLs** section, If you wish to configure the application in **IDP** initiated mode:
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Configure Single Sign-On](./media/direct-tutorial/tutorial_direct_url.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- In the **Identifier** textbox, type the URL: `https://direct4b.com/`
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
-4. Check **Show advanced URL settings**, If you wish to configure the application in **SP** initiated mode:
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following step:
- ![Configure Single Sign-On](./media/direct-tutorial/tutorial_direct_url1.png)
+ ![direct Domain and URLs single sign-on information](common/idp-identifier.png)
- In the **Sign-on URL** textbox, type the URL: `https://direct4b.com/sso`
+ In the **Identifier** text box, type a URL:
+ `https://direct4b.com/`
-5. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
- ![Configure Single Sign-On](./media/direct-tutorial/tutorial_direct_certificate.png)
+ ![image](common/both-preintegrated-signon.png)
-6. Click **Save** button.
+ In the **Sign-on URL** text box, type a URL:
+ `https://direct4b.com/sso`
- ![Configure Single Sign-On](./media/direct-tutorial/tutorial_general_400.png)
+6. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-7. To configure single sign-on on **direct** side, you need to send the downloaded **Metadata XML** to [direct support team](https://direct4b.com/ja/support.html#inquiry).
+ ![The Certificate download link](common/metadataxml.png)
-### Creating an Azure AD test user
+7. On the **Set up direct** section, copy the appropriate URL(s) as per your requirement.
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-![Create Azure AD User][100]
+ a. Login URL
-**To create a test user in Azure AD, perform the following steps:**
+ b. Azure AD Identifier
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+ c. Logout URL
- ![Creating an Azure AD test user](./media/direct-tutorial/create_aaduser_01.png)
+### Configure direct Single Sign-On
-2. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/direct-tutorial/create_aaduser_02.png)
+To configure single sign-on on **direct** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [direct support team](https://direct4b.com/ja/support.html#inquiry). They set this setting to have the SAML SSO connection set properly on both sides.
-3. To open the **User** dialog, click **Add** on the top of the dialog.
+### Create an Azure AD test user
- ![Creating an Azure AD test user](./media/direct-tutorial/create_aaduser_03.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-4. On the **User** dialog page, perform the following steps:
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![Creating an Azure AD test user](./media/direct-tutorial/create_aaduser_04.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
- a. In the **Name** textbox, type **BrittaSimon**.
+2. Select **New user** at the top of the screen.
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+ ![New user Button](common/new-user.png)
- c. Select **Show Password** and write down the value of the **Password**.
+3. In the User properties, perform the following steps.
- d. Click **Create**.
+ ![The User dialog box](common/user-properties.png)
-### Creating a direct test user
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
-In this section, you create a user called Britta Simon in direct. Work with [direct support team](https://direct4b.com/ja/support.html#inquiry) to add the users in the direct platform. Users must be created and activated before you use single sign-on.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
-### Assigning the Azure AD test user
+### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to direct.
-![Assign User][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **direct**.
-**To assign Britta Simon to direct, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **direct**.
- ![Assign User][201]
+ ![The direct link in the Applications list](common/all-applications.png)
-2. In the applications list, select **direct**.
+3. In the menu on the left, select **Users and groups**.
- ![Configure Single Sign-On](./media/direct-tutorial/tutorial_direct_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-3. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![Assign User][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-4. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![Assign User][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-5. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-6. Click **Select** button on **Users and groups** dialog.
+### Create direct test user
-7. Click **Assign** button on **Add Assignment** dialog.
+In this section, you create a user called Britta Simon in direct. Work with [direct support team](https://direct4b.com/ja/support.html#inquiry) to add the users in the direct platform. Users must be created and activated before you use single sign-on.
-### Testing single sign-on
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
@@ -205,25 +195,15 @@ In this section, you test your Azure AD single sign-on configuration using the A
a. Click on the **direct** tile in the Access Panel and you will be redirected to the application sign-on page.
- b. Input your `subdomain` in the textbox displayed and press '次へ (Next)' and you should get automatically signed-on to your **direct** application .
-
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+ b. Input your `subdomain` in the textbox displayed and press '次へ (Next)' and you should get automatically signed-on to your **direct** application .
-## Additional resources
+When you click the direct tile in the Access Panel, you should be automatically signed in to the direct for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+## Additional Resources
-
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[1]: ./media/direct-tutorial/tutorial_general_01.png
-[2]: ./media/direct-tutorial/tutorial_general_02.png
-[3]: ./media/direct-tutorial/tutorial_general_03.png
-[4]: ./media/direct-tutorial/tutorial_general_04.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[100]: ./media/direct-tutorial/tutorial_general_100.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
-[200]: ./media/direct-tutorial/tutorial_general_200.png
-[201]: ./media/direct-tutorial/tutorial_general_201.png
-[202]: ./media/direct-tutorial/tutorial_general_202.png
-[203]: ./media/direct-tutorial/tutorial_general_203.png
diff --git a/articles/active-directory/saas-apps/docusign-tutorial.md b/articles/active-directory/saas-apps/docusign-tutorial.md
index a9a273f0a6946..9a38fb7514ece 100644
--- a/articles/active-directory/saas-apps/docusign-tutorial.md
+++ b/articles/active-directory/saas-apps/docusign-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: a691288b-84c1-40fb-84bd-5b06878865f0
ms.service: active-directory
@@ -13,46 +13,37 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 11/19/2018
+ms.topic: tutorial
+ms.date: 04/01/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with DocuSign
In this tutorial, you learn how to integrate DocuSign with Azure Active Directory (Azure AD).
-
Integrating DocuSign with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to DocuSign.
-- You can enable your users to automatically get signed-on to DocuSign (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to DocuSign.
+* You can enable your users to be automatically signed-in to DocuSign (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md)
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with DocuSign, you need the following items:
-- An Azure AD subscription
-- A DocuSign single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* DocuSign single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* DocuSign supports **SP** initiated SSO
-1. Adding DocuSign from the gallery
-2. Configuring and testing Azure AD single sign-on
+* DocuSign supports **Just In Time** user provisioning
## Adding DocuSign from the gallery
@@ -60,70 +51,74 @@ To configure the integration of DocuSign into Azure AD, you need to add DocuSign
**To add DocuSign from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
3. To add new application, click **New application** button on the top of dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
4. In the search box, type **DocuSign**, select **DocuSign** from result panel then click **Add** button to add the application.
- ![DocuSign in the results list](./media/docusign-tutorial/tutorial_docusign_addfromgallery.png)
+ ![DocuSign in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with DocuSign based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in DocuSign is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in DocuSign needs to be established.
+In this section, you configure and test Azure AD single sign-on with DocuSign based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in DocuSign needs to be established.
To configure and test Azure AD single sign-on with DocuSign, you need to complete the following building blocks:
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-3. **[Creating a DocuSign test user](#creating-a-docusign-test-user)** - to have a counterpart of Britta Simon in DocuSign that is linked to the Azure AD representation of user.
-4. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Testing single sign-on](#testing-single-sign-on)** - to verify whether the configuration works.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure DocuSign Single Sign-On](#configure-docusign-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create DocuSign test user](#create-docusign-test-user)** - to have a counterpart of Britta Simon in DocuSign that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-### Configuring Azure AD single sign-on
+### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your DocuSign application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with DocuSign, perform the following steps:**
+To configure Azure AD single sign-on with DocuSign, perform the following steps:
-1. In the Azure portal, on the **DocuSign** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **DocuSign** application integration page, select **Single sign-on**.
- ![Configure single sign-on link][4]
+ ![Configure single sign-on link](common/select-sso.png)
-2. On the **Select a Single sign-on method** dialog, Click **Select** for **SAML** mode to enable single sign-on.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On](common/tutorial_general_301.png)
+ ![Single sign-on select mode](common/select-saml-option.png)
3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Configure Single Sign-On](common/editconfigure.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
4. On the **Basic SAML Configuration** section, perform the following steps:
- ![DocuSign Domain and URLs single sign-on information](./media/docusign-tutorial/tutorial_docusign_url.png)
+ ![DocuSign Domain and URLs single sign-on information](common/sp-identifier.png)
- a. In the **Sign-on URL** textbox, type a URL using the following pattern: `https://.docusign.com/organizations//saml2/login/sp/`
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://.docusign.com/organizations//saml2/login/sp/`
- b. In the **Identifier** textbox, type a URL using the following pattern: `https://.docusign.com/organizations//saml2`
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+ `https://.docusign.com/organizations//saml2`
> [!NOTE]
> These values are not real. Update these values with the actual Sign-On URL and Identifier which is explained later **View SAML 2.0 Endpoints** section in the tutorial.
-5. On the **SAML Signing Certificate** page, in the **SAML Signing Certificate** section, click **Download** to download **Certificate (Base64)** and then save certificate file on your computer.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/certificatebase64.png)
- ![The Certificate download link](./media/docusign-tutorial/tutorial_docusign_certificate.png)
+6. On the **Set up DocuSign** section, copy the appropriate URL(s) as per your requirement.
-6. On the **Set up DocuSign** section, copy the appropriate URL as per your requirement.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
a. Login URL
@@ -131,35 +126,35 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
c. Logout URL
- ![DocuSign Configuration](common/configuresection.png)
+### Configure DocuSign Single Sign-On
-7. In a different web browser window, login to your **DocuSign admin portal** as an administrator.
+1. In a different web browser window, sign to your **DocuSign admin portal** as an administrator.
-8. On the top right of the page click on profile **logo** and then click on **Go to Admin**.
+2. On the top right of the page click on profile **logo** and then click on **Go to Admin**.
![Configuring single sign-on][51]
-9. On your domain solutions page, click on **Domains**
+3. On your domain solutions page, click on **Domains**
![Configuring single sign-on][50]
-10. Under the **Domains** section, click **CLAIM DOMAIN**.
+4. Under the **Domains** section, click **CLAIM DOMAIN**.
![Configuring single sign-on][52]
-11. On the **Claim a domain** dialog, in the **Domain Name** textbox, type your company domain, and then click **CLAIM**. Make sure that you verify the domain and the status is active.
+5. On the **Claim a domain** dialog, in the **Domain Name** textbox, type your company domain, and then click **CLAIM**. Make sure that you verify the domain and the status is active.
![Configuring single sign-on][53]
-12. On your domain solutions page, click **Identity Providers**.
+6. On your domain solutions page, click **Identity Providers**.
![Configuring single sign-on][54]
-13. Under **Identity Providers** section, click **ADD IDENTITY PROVIDER**.
+7. Under **Identity Providers** section, click **ADD IDENTITY PROVIDER**.
![Configuring single sign-on][55]
-14. On the **Identity Provider Settings** page, perform the following steps:
+8. On the **Identity Provider Settings** page, perform the following steps:
![Configuring single sign-on][56]
@@ -200,91 +195,85 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
![Configuring single sign-on][60]
- * Copy the **Service Provider Issuer URL**, and then paste it into the **Identifier** textbox in **DocuSign Domain and URLs** section on the Azure portal.
+ * Copy the **Service Provider Issuer URL**, and then paste it into the **Identifier** textbox in **Basic SAML Configuration** section on the Azure portal.
- * Copy the **Service Provider Login URL**, and then paste it into the **Sign On URL** textbox in **DocuSign Domain and URLs** section on the Azure portal.
+ * Copy the **Service Provider Login URL**, and then paste it into the **Sign On URL** textbox in **Basic SAML Configuration** section on the Azure portal.
* Click **Close**
-### Creating an Azure AD test user
+### Create an Azure AD test user
The objective of this section is to create a test user in the Azure portal called Britta Simon.
1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![Create Azure AD User][100]
+ ![The "Users and groups" and "All users" links](common/users.png)
2. Select **New user** at the top of the screen.
- ![Creating an Azure AD test user](common/create_aaduser_01.png)
+ ![New user Button](common/new-user.png)
3. In the User properties, perform the following steps.
- ![Creating an Azure AD test user](common/create_aaduser_02.png)
+ ![The User dialog box](common/user-properties.png)
- a. In the **Name** field, enter **BrittaSimon**.
+ a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field, type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
- c. Select **Properties**, select the **Show password** check box, and then write down the value that's displayed in the Password box.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
- d. Select **Create**.
+ d. Click **Create**.
-### Creating a DocuSign test user
-
-The objective of this section is to create a user called Britta Simon in DocuSign. DocuSign supports just-in-time provisioning, which is by default enabled. There is no action item for you in this section. A new user is created during an attempt to access DocuSign if it doesn't exist yet.
->[!Note]
->If you need to create a user manually, contact [DocuSign support team](https://support.docusign.com/).
-
-### Assigning the Azure AD test user
+### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to DocuSign.
-1. In the Azure portal, select **Enterprise Applications**, select **All applications**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **DocuSign**.
- ![Assign User][201]
+ ![Enterprise applications blade](common/enterprise-applications.png)
2. In the applications list, select **DocuSign**.
- ![Configure Single Sign-On](./media/docusign-tutorial/tutorial_docusign_app.png)
+ ![The DocuSign link in the Applications list](common/all-applications.png)
-3. In the menu on the left, click **Users and groups**.
+3. In the menu on the left, select **Users and groups**.
- ![Assign User][202]
+ ![The "Users and groups" link](common/users-groups-blade.png)
-4. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![Assign User][203]
+ ![The Add Assignment pane](common/add-assign-user.png)
5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-6. In the **Add Assignment** dialog select the **Assign** button.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create DocuSign test user
+
+In this section, a user called Britta Simon is created in DocuSign. DocuSign supports just-in-time user provisioning, which is enabled by default. There is no action item for you in this section. If a user doesn't already exist in DocuSign, a new one is created after authentication.
-### Testing single sign-on
+>[!Note]
+>If you need to create a user manually, contact [DocuSign support team](https://support.docusign.com/).
+
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the DocuSign tile in the Access Panel, you should get automatically signed-on to your DocuSign application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+When you click the DocuSign tile in the Access Panel, you should be automatically signed in to the DocuSign for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-## Additional resources
+## Additional Resources
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[1]: common/tutorial_general_01.png
-[2]: common/tutorial_general_02.png
-[3]: common/tutorial_general_03.png
-[4]: common/tutorial_general_04.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
-[100]: common/tutorial_general_100.png
+
-[201]: common/tutorial_general_201.png
-[202]: common/tutorial_general_202.png
-[203]: common/tutorial_general_203.png
[50]: ./media/docusign-tutorial/tutorial_docusign_18.png
[51]: ./media/docusign-tutorial/tutorial_docusign_21.png
[52]: ./media/docusign-tutorial/tutorial_docusign_22.png
diff --git a/articles/active-directory/saas-apps/dossier-tutorial.md b/articles/active-directory/saas-apps/dossier-tutorial.md
index 78a41683949c6..7315f4d84b4c4 100644
--- a/articles/active-directory/saas-apps/dossier-tutorial.md
+++ b/articles/active-directory/saas-apps/dossier-tutorial.md
@@ -4,54 +4,44 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 7a5fec92-9c01-4ced-99b2-a10e28fc028e
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 08/01/2018
+ms.topic: tutorial
+ms.date: 04/04/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Dossier
In this tutorial, you learn how to integrate Dossier with Azure Active Directory (Azure AD).
-
Integrating Dossier with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Dossier.
-- You can enable your users to automatically get signed-on to Dossier (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Dossier.
+* You can enable your users to be automatically signed-in to Dossier (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md)
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Dossier, you need the following items:
-- An Azure AD subscription
-- A Dossier single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Dossier single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-1. Adding Dossier from the gallery
-2. Configuring and testing Azure AD single sign-on
+* Dossier supports **SP** initiated SSO
## Adding Dossier from the gallery
@@ -61,175 +51,164 @@ To configure the integration of Dossier into Azure AD, you need to add Dossier f
1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
3. To add new application, click **New application** button on the top of dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
4. In the search box, type **Dossier**, select **Dossier** from result panel then click **Add** button to add the application.
- ![Dossier in the results list](./media/dossier-tutorial/tutorial_dossier_addfromgallery.png)
+ ![Dossier in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Dossier based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in Dossier is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Dossier needs to be established.
+In this section, you configure and test Azure AD single sign-on with Dossier based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Dossier needs to be established.
To configure and test Azure AD single sign-on with Dossier, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-3. **[Create a Dossier test user](#create-a-dossier-test-user)** - to have a counterpart of Britta Simon in Dossier that is linked to the Azure AD representation of user.
+2. **[Configure Dossier Single Sign-On](#configure-dossier-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+5. **[Create Dossier test user](#create-dossier-test-user)** - to have a counterpart of Britta Simon in Dossier that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Dossier application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with Dossier, perform the following steps:**
+To configure Azure AD single sign-on with Dossier, perform the following steps:
-1. In the Azure portal, on the **Dossier** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **Dossier** application integration page, select **Single sign-on**.
- ![Configure single sign-on link][4]
+ ![Configure single sign-on link](common/select-sso.png)
-2. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Single sign-on dialog box](./media/dossier-tutorial/tutorial_dossier_samlbase.png)
+ ![Single sign-on select mode](common/select-saml-option.png)
-3. On the **Dossier Domain and URLs** section, perform the following steps:
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Dossier Domain and URLs single sign-on information](./media/dossier-tutorial/tutorial_dossier_url1.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- a. In the **Sign-on URL** textbox, type a URL using the following pattern:
-
- | | |
+4. On the **Basic SAML Configuration** section, perform the following steps:
+
+ ![Dossier Domain and URLs single sign-on information](common/sp-identifier-reply.png)
+
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+
+ | |
|-|-|
| `https://.dossiersystems.com/azuresso/account/SignIn`|
| `https://dossier./azuresso/account/SignIn`|
| |
- b. In the **Identifier** textbox, type a URL using the following pattern: `Dossier/`
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern: `Dossier/`
- > [!NOTE]
+ > [!NOTE]
> For identifier value it should be in the format of `Dossier/` or any user personalized value.
- c. In the **Reply URL** textbox, type a URL using the following pattern:
+ c. In the **Reply URL** textbox, type a URL using the following pattern:
- | | |
+ | |
|-|-|
| `https://.dossiersystems.com/azuresso`|
| `https://dossier./azuresso`|
| |
- > [!NOTE]
- > These values are not real. Update these values with the actual Identifier, Reply URL, and Sign-On URL. Contact [Dossier Client support team](mailto:support@intellimedia.ca) to get these values.
-4. On the **SAML Signing Certificate** section, click the copy button to copy **App Federation Metadata Url** and paste it into Notepad.
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign on URL, Identifier and Reply URL. Contact [Dossier Client support team](mailto:support@intellimedia.ca) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
- ![The Certificate download link](./media/dossier-tutorial/tutorial_dossier_certificate.png)
+4. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click the copy button to copy **App Federation Metadata Url** from the given options as per your requirement and save it on your computer.
-6. Click **Save** button.
+ ![The Certificate download link](common/copy-metadataurl.png)
- ![Configure Single Sign-On Save button](./media/dossier-tutorial/tutorial_general_400.png)
+6. On the **Set up Dossier** section, copy the appropriate URL(s) as per your requirement.
-7. To configure single sign-on on **Dossier** side, you need to send the **App Federation Metadata Url** to [Dossier support team](mailto:support@intellimedia.ca). They set this setting to have the SAML SSO connection set properly on both sides.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-### Create an Azure AD test user
+ a. Login URL
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ b. Azure AD Identifier
- ![Create an Azure AD test user][100]
+ c. Logout URL
-**To create a test user in Azure AD, perform the following steps:**
+### Configure Dossier Single Sign-On
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+To configure single sign-on on **Dossier** side, you need to send the **App Federation Metadata Url** to [Dossier support team](mailto:support@intellimedia.ca). They set this setting to have the SAML SSO connection set properly on both sides.
- ![The Azure Active Directory button](./media/dossier-tutorial/create_aaduser_01.png)
+### Create an Azure AD test user
-2. To display the list of users, go to **Users and groups**, and then click **All users**.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- ![The "Users and groups" and "All users" links](./media/dossier-tutorial/create_aaduser_02.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-3. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+ ![The "Users and groups" and "All users" links](common/users.png)
- ![The Add button](./media/dossier-tutorial/create_aaduser_03.png)
+2. Select **New user** at the top of the screen.
-4. In the **User** dialog box, perform the following steps:
+ ![New user Button](common/new-user.png)
- ![The User dialog box](./media/dossier-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** box, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** box, type the email address of user Britta Simon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-### Create a Dossier test user
-
-In this section, you create a user called Britta Simon in Dossier. Work with [Dossier support team](mailto:support@intellimedia.ca) to add the users in the Dossier platform. Users must be created and activated before you use single sign-on.
-
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Dossier.
-![Assign the user role][200]
-
-**To assign Britta Simon to Dossier, perform the following steps:**
-
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Dossier**.
- ![Assign User][201]
+ ![Enterprise applications blade](common/enterprise-applications.png)
2. In the applications list, select **Dossier**.
- ![The Dossier link in the Applications list](./media/dossier-tutorial/tutorial_dossier_app.png)
+ ![The Dossier link in the Applications list](common/all-applications.png)
-3. In the menu on the left, click **Users and groups**.
+3. In the menu on the left, select **Users and groups**.
- ![The "Users and groups" link][202]
+ ![The "Users and groups" link](common/users-groups-blade.png)
-4. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![The Add Assignment pane][203]
+ ![The Add Assignment pane](common/add-assign-user.png)
-5. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-6. Click **Select** button on **Users and groups** dialog.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-7. Click **Assign** button on **Add Assignment** dialog.
+7. In the **Add Assignment** dialog click the **Assign** button.
-### Test single sign-on
+### Create Dossier test user
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+In this section, you create a user called Britta Simon in Dossier. Work with [Dossier support team](mailto:support@intellimedia.ca) to add the users in the Dossier platform. Users must be created and activated before you use single sign-on.
-When you click the Dossier tile in the Access Panel, you should get automatically signed-on to your Dossier application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+### Test single sign-on
-## Additional resources
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+When you click the Dossier tile in the Access Panel, you should be automatically signed in to the Dossier for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional Resources
-[1]: ./media/dossier-tutorial/tutorial_general_01.png
-[2]: ./media/dossier-tutorial/tutorial_general_02.png
-[3]: ./media/dossier-tutorial/tutorial_general_03.png
-[4]: ./media/dossier-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/dossier-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/dossier-tutorial/tutorial_general_200.png
-[201]: ./media/dossier-tutorial/tutorial_general_201.png
-[202]: ./media/dossier-tutorial/tutorial_general_202.png
-[203]: ./media/dossier-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/ebsco-tutorial.md b/articles/active-directory/saas-apps/ebsco-tutorial.md
index d1e75fd10e1fa..a556e15d5242e 100644
--- a/articles/active-directory/saas-apps/ebsco-tutorial.md
+++ b/articles/active-directory/saas-apps/ebsco-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 144f7f65-69e9-4016-a151-fe1104fd6ba8
ms.service: active-directory
@@ -13,109 +13,108 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 01/31/2018
+ms.topic: tutorial
+ms.date: 04/01/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with EBSCO
In this tutorial, you learn how to integrate EBSCO with Azure Active Directory (Azure AD).
-
Integrating EBSCO with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to EBSCO.
-- You can enable your users to automatically get signed-on to EBSCO (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to EBSCO.
+* You can enable your users to be automatically signed-in to EBSCO (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with EBSCO, you need the following items:
-- An Azure AD subscription
-- An EBSCO single-sign on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* EBSCO single sign-on enabled subscription
-To test the steps in this tutorial, you should follow these recommendations:
+## Scenario description
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+* EBSCO supports **SP** and **IDP** initiated SSO
-1. Adding EBSCO from the gallery
-1. Configuring and testing Azure AD single sign-on
+* EBSCO supports **Just In Time** user provisioning
## Adding EBSCO from the gallery
+
To configure the integration of EBSCO into Azure AD, you need to add EBSCO from the gallery to your list of managed SaaS apps.
**To add EBSCO from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![The New application button][3]
+3. To add a new application, click the **New application** button at the top of the dialog.
-1. In the search box, type **EBSCO**, select **EBSCO** from result panel then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![EBSCO in the results list](./media/ebsco-tutorial/tutorial_ebsco_addfromgallery.png)
+4. In the search box, type **EBSCO**, select **EBSCO** from the result panel then click the **Add** button to add the application.
-## Configure and test Azure AD single sign-on
+ ![EBSCO in the results list](common/search-new-app.png)
-In this section, you configure and test Azure AD single sign-on with EBSCO based on a test user called "Britta Simon".
+## Configure and test Azure AD single sign-on
-For single sign-on to work, Azure AD needs to know what the counterpart user in EBSCO is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in EBSCO needs to be established.
+In this section, you configure and test Azure AD single sign-on with EBSCO based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in EBSCO needs to be established.
To configure and test Azure AD single sign-on with EBSCO, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create an EBSCO test user](#create-an-ebsco-test-user)** - you can automate EBSCOhost user provisioning/personalization. EBSCO supports Just-In-Time user provisioning.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure EBSCO Single Sign-On](#configure-ebsco-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create EBSCO test user](#create-ebsco-test-user)** - to have a counterpart of Britta Simon in EBSCO that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your EBSCO application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with EBSCO, perform the following steps:**
+To configure Azure AD single sign-on with EBSCO, perform the following steps:
-1. In the Azure portal, on the **EBSCO** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **EBSCO** application integration page, select **Single sign-on**.
- ![Configure single sign-on link][4]
+ ![Configure single sign-on link](common/select-sso.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Single sign-on dialog box](./media/ebsco-tutorial/tutorial_ebsco_samlbase.png)
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+
+ ![Single sign-on select mode](common/select-saml-option.png)
+
+3. On the **Set up Single Sign-On with SAML** page, click the **Edit** icon to open the **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
-1. On the **EBSCO Domain and URLs** section, perform the following steps if you wish to configure the application in **IDP** initiated mode:
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following step:
- ![EBSCO Domain and URLs single sign-on information](./media/ebsco-tutorial/tutorial_ebsco_url.png)
+ ![EBSCO Domain and URLs single sign-on information](common/idp-identifier.png)
- In the **Identifier** textbox, type a URL: `pingsso.ebscohost.com`
+ In the **Identifier** text box, type a URL:
+ `pingsso.ebscohost.com`
-1. Check **Show advanced URL settings** and perform the following step if you wish to configure the application in **SP** initiated mode:
+5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
- ![EBSCO Domain and URLs single sign-on information](./media/ebsco-tutorial/tutorial_ebsco_url1.png)
+ ![image](common/both-preintegrated-signon.png)
- In the **Sign-on URL** textbox, type a URL using the following pattern: `http://search.ebscohost.com/login.aspx?authtype=sso&custid=&profile=`
-
- > [!NOTE]
- > The Sign-on URL value is not real. Update the value with the actual Sign-on URL. Contact [EBSCO Client support team](mailto:sso@ebsco.com) to get the value.
+ In the **Sign-on URL** text box, type a URL using the following pattern:
+ `http://search.ebscohost.com/login.aspx?authtype=sso&custid=&profile=`
+
+ > [!NOTE]
+ > The Sign-on URL value is not real. Update the value with the actual Sign-on URL. Contact [EBSCO Client support team](mailto:sso@ebsco.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
o **Unique elements:**
@@ -123,154 +122,138 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
o **Profile** = Clients can tailor the link to direct users to a specific profile (depending on what they purchase from EBSCO). They can enter a specific profile ID. The main IDs are eds (EBSCO Discovery Service) and ehost (EBSOCOhost databases). Instructions for the same are given [here](https://help.ebsco.com/interfaces/EBSCOhost/EBSCOhost_FAQs/How_do_I_set_up_direct_links_to_EBSCOhost_profiles_and_or_databases#profile).
-1. EBSCO application expects the SAML assertions in a specific format. Configure the following claims for this application. You can manage the values of these attributes from the "**User Attributes**" section on application integration page. The following screenshot shows an example for this.
-
- ![Configure Single Sign-On](./media/ebsco-tutorial/tutorial_ebsco_attribute.png)
+6. EBSCO application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes. Click **Edit** icon to open **User Attributes** dialog.
- > [!Note]
- > The **name** attribute is mandatory and it is mapped with **User Identifier** in EBSCO application. This is added by default so you don't need to add this manually.
-
-1. In the **User Attributes** section on the **Single sign-on** dialog, configure SAML token attribute as shown in the image above and perform the following steps:
-
- | Attribute Name | Attribute Value |
+ ![image](common/edit-attribute.png)
+
+ > [!Note]
+ > The **name** attribute is mandatory and it is mapped with **Name Identifier value** in EBSCO application. This is added by default so you don't need to add this manually.
+
+7. In addition to above, EBSCO application expects few more attributes to be passed back in SAML response. In the **User Claims** section on the **User Attributes** dialog, perform the following steps to add SAML token attribute as shown in the below table:
+
+ | Name | Source Attribute|
| ---------------| --------------- |
| FirstName | user.givenname |
| LastName | user.surname |
| Email | user.mail |
- a. Click **Add attribute** to open the **Add Attribute** dialog.
+ a. Click **Add new claim** to open the **Manage user claims** dialog.
- ![Configure Single Sign-On](./media/ebsco-tutorial/tutorial_officespace_04.png)
+ ![image](common/new-save-attribute.png)
+
+ ![image](common/new-attribute-details.png)
- ![Configure Single Sign-On](./media/ebsco-tutorial/tutorial_attribute_05.png)
-
b. In the **Name** textbox, type the attribute name shown for that row.
-
- c. From the **Value** list, type the attribute value shown for that row.
-
- d. Click **Ok**
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+ c. Leave the **Namespace** blank.
- ![The Certificate download link](./media/ebsco-tutorial/tutorial_ebsco_certificate.png)
+ d. Select Source as **Attribute**.
-1. Click **Save** button.
+ e. From the **Source attribute** list, type the attribute value shown for that row.
- ![Configure Single Sign-On Save button](./media/ebsco-tutorial/tutorial_general_400.png)
-
-1. To configure single sign-on on **EBSCO** side, you need to send the downloaded **Metadata XML** to [EBSCO support team](mailto:sso@ebsco.com). They set this setting to have the SAML SSO connection set properly on both sides.
+ f. Click **Save**.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
+8. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-### Create an Azure AD test user
+ ![The Certificate download link](common/metadataxml.png)
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+9. On the **Set up EBSCO** section, copy the appropriate URL(s) as per your requirement.
- ![Create an Azure AD test user][100]
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-**To create a test user in Azure AD, perform the following steps:**
+ a. Login URL
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+ b. Azure AD Identifier
- ![The Azure Active Directory button](./media/ebsco-tutorial/create_aaduser_01.png)
+ c. Logout URL
-1. To display the list of users, go to **Users and groups**, and then click **All users**.
+### Configure EBSCO Single Sign-On
- ![The "Users and groups" and "All users" links](./media/ebsco-tutorial/create_aaduser_02.png)
+To configure single sign-on on **EBSCO** side, you need to send the downloaded **Metadata XML** and appropriate copied URLs from Azure portal to [EBSCO support team](mailto:sso@ebsco.com). They set this setting to have the SAML SSO connection set properly on both sides.
-1. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+### Create an Azure AD test user
- ![The Add button](./media/ebsco-tutorial/create_aaduser_03.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. In the **User** dialog box, perform the following steps:
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![The User dialog box](./media/ebsco-tutorial/create_aaduser_04.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
- a. In the **Name** box, type **BrittaSimon**.
+2. Select **New user** at the top of the screen.
- b. In the **User name** box, type the email address of user Britta Simon.
+ ![New user Button](common/new-user.png)
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+3. In the User properties, perform the following steps.
- d. Click **Create**.
-
-### Create an EBSCO test user
+ ![The User dialog box](common/user-properties.png)
-In the case of EBSCO, user provisioning is automatic.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
-**To provision a user account, perform the following steps:**
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-Azure AD passes the required data to EBSCO application. EBSCO’s user provisioning can be automatic OR require a one-time form. It depends on whether the client has a lot of pre-existing EBSCOhost accounts with personal settings saved. The same can be discussed with the [EBSCO support team](mailto:sso@ebsco.com) during the implementation. Either way, the client doesn’t have to create any EBSCOhost accounts prior to testing.
+ d. Click **Create**.
- >[!Note]
- >You can automate EBSCOhost user provisioning/personalization. Contact [EBSCO support team](mailto:sso@ebsco.com) about Just-In-Time user provisioning.
-
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to EBSCO.
-![Assign the user role][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **EBSCO**.
-**To assign Britta Simon to EBSCO, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **EBSCO**.
- ![Assign User][201]
+ ![The EBSCO link in the Applications list](common/all-applications.png)
-1. In the applications list, select **EBSCO**.
+3. In the menu on the left, select **Users and groups**.
- ![The EBSCO link in the Applications list](./media/ebsco-tutorial/tutorial_ebsco_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![The "Users and groups" link][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![The Add Assignment pane][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Select** button on **Users and groups** dialog.
+### Create EBSCO test user
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Test single sign-on
+In the case of EBSCO, user provisioning is automatic.
+
+**To provision a user account, perform the following steps:**
+
+Azure AD passes the required data to EBSCO application. EBSCO’s user provisioning can be automatic OR require a one-time form. It depends on whether the client has a lot of pre-existing EBSCOhost accounts with personal settings saved. The same can be discussed with the [EBSCO support team](mailto:sso@ebsco.com) during the implementation. Either way, the client doesn’t have to create any EBSCOhost accounts prior to testing.
+
+ >[!Note]
+ >You can automate EBSCOhost user provisioning/personalization. Contact [EBSCO support team](mailto:sso@ebsco.com) about Just-In-Time user provisioning.
+
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
1. When you click the EBSCO tile in the Access Panel, you should get automatically signed-on to your EBSCO application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
-1. Once you login to the application, click on the **sign in** button in the top right corner.
+2. Once you login to the application, click on the **sign in** button in the top right corner.
- ![The EBSCO signin in the Applications list](./media/ebsco-tutorial/tutorial_ebsco_signin.png)
+ ![The EBSCO sign-in in the Applications list](./media/ebsco-tutorial/tutorial_ebsco_signin.png)
-1. You will receive a one-time prompt to pair the institutional/SAML login with an **Link your existing MyEBSCOhost account to your institution account now** OR **Create a new MyEBSCOhost account and link it to your institution account**. The account is used for personalization on the EBSCOhost application. Select the option **Create a new account** and you will see that the form for personalization is pre-completed with the values from the saml response as shown in the screenshot below. Click **‘Continue’** to save this selection.
+3. You will receive a one-time prompt to pair the institutional/SAML login with an **Link your existing MyEBSCOhost account to your institution account now** OR **Create a new MyEBSCOhost account and link it to your institution account**. The account is used for personalization on the EBSCOhost application. Select the option **Create a new account** and you will see that the form for personalization is pre-completed with the values from the saml response as shown in the screenshot below. Click **‘Continue’** to save this selection.
![The EBSCO user in the Applications list](./media/ebsco-tutorial/tutorial_ebsco_user.png)
-1. After completing the above setup, clear cookies/cache and login again. You won’t have to manually signin again and the personalization settings are remembered
-
-## Additional resources
-
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
-
+1. After completing the above setup, clear cookies/cache and login again. You won’t have to manually sign in again and the personalization settings are remembered
-
+## Additional sesources
-[1]: ./media/ebsco-tutorial/tutorial_general_01.png
-[2]: ./media/ebsco-tutorial/tutorial_general_02.png
-[3]: ./media/ebsco-tutorial/tutorial_general_03.png
-[4]: ./media/ebsco-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/ebsco-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/ebsco-tutorial/tutorial_general_200.png
-[201]: ./media/ebsco-tutorial/tutorial_general_201.png
-[202]: ./media/ebsco-tutorial/tutorial_general_202.png
-[203]: ./media/ebsco-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/edigitalresearch-tutorial.md b/articles/active-directory/saas-apps/edigitalresearch-tutorial.md
index 26ab31d1e7266..431dcb0652fac 100644
--- a/articles/active-directory/saas-apps/edigitalresearch-tutorial.md
+++ b/articles/active-directory/saas-apps/edigitalresearch-tutorial.md
@@ -36,7 +36,7 @@ If you want to know more details about SaaS app integration with Azure AD, see [
To configure Azure AD integration with eDigitalResearch, you need the following items:
- An Azure AD subscription
-- A eDigitalResearch single sign-on enabled subscription
+- An eDigitalResearch single sign-on enabled subscription
> [!NOTE]
> To test the steps in this tutorial, we do not recommend using a production environment.
@@ -86,7 +86,7 @@ To configure and test Azure AD single sign-on with eDigitalResearch, you need to
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a eDigitalResearch test user](#create-a-edigitalresearch-test-user)** - to have a counterpart of Britta Simon in eDigitalResearch that is linked to the Azure AD representation of user.
+1. **[Create an eDigitalResearch test user](#create-an-edigitalresearch-test-user)** - to have a counterpart of Britta Simon in eDigitalResearch that is linked to the Azure AD representation of user.
1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
1. **[Test single sign-on](#test-single-sign-on)** to verify whether the configuration works.
@@ -166,7 +166,7 @@ The objective of this section is to create a test user in the Azure portal calle
d. Click **Create**.
-### Create a eDigitalResearch test user
+### Create an eDigitalResearch test user
The objective of this section is to create a user called Britta Simon in eDigitalResearch.
diff --git a/articles/active-directory/saas-apps/edubrite-lms-tutorial.md b/articles/active-directory/saas-apps/edubrite-lms-tutorial.md
new file mode 100644
index 0000000000000..dbfc0e880b0e8
--- /dev/null
+++ b/articles/active-directory/saas-apps/edubrite-lms-tutorial.md
@@ -0,0 +1,208 @@
+---
+title: 'Tutorial: Azure Active Directory integration with EduBrite LMS | Microsoft Docs'
+description: Learn how to configure single sign-on between Azure Active Directory and EduBrite LMS.
+services: active-directory
+documentationCenter: na
+author: jeevansd
+manager: mtillman
+ms.reviewer: barbkess
+
+ms.assetid: f071670e-a1bd-45d6-bd71-b3ea6eb92bf9
+ms.service: active-directory
+ms.subservice: saas-app-tutorial
+ms.workload: identity
+ms.tgt_pltfrm: na
+ms.devlang: na
+ms.topic: tutorial
+ms.date: 04/03/2019
+ms.author: jeedes
+
+ms.collection: M365-identity-device-management
+---
+# Tutorial: Azure Active Directory integration with EduBrite LMS
+
+In this tutorial, you learn how to integrate EduBrite LMS with Azure Active Directory (Azure AD).
+Integrating EduBrite LMS with Azure AD provides you with the following benefits:
+
+* You can control in Azure AD who has access to EduBrite LMS.
+* You can enable your users to be automatically signed-in to EduBrite LMS (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
+
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+
+## Prerequisites
+
+To configure Azure AD integration with EduBrite LMS, you need the following items:
+
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* EduBrite LMS single sign-on enabled subscription
+
+## Scenario description
+
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* EduBrite LMS supports **SP and IDP** initiated SSO
+
+* EduBrite LMS supports **Just In Time** user provisioning
+
+## Adding EduBrite LMS from the gallery
+
+To configure the integration of EduBrite LMS into Azure AD, you need to add EduBrite LMS from the gallery to your list of managed SaaS apps.
+
+**To add EduBrite LMS from the gallery, perform the following steps:**
+
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+
+ ![The Azure Active Directory button](common/select-azuread.png)
+
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
+
+3. To add new application, click **New application** button on the top of dialog.
+
+ ![The New application button](common/add-new-app.png)
+
+4. In the search box, type **EduBrite LMS**, select **EduBrite LMS** from result panel then click **Add** button to add the application.
+
+ ![EduBrite LMS in the results list](common/search-new-app.png)
+
+## Configure and test Azure AD single sign-on
+
+In this section, you configure and test Azure AD single sign-on with EduBrite LMS based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in EduBrite LMS needs to be established.
+
+To configure and test Azure AD single sign-on with EduBrite LMS, you need to complete the following building blocks:
+
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure EduBrite LMS Single Sign-On](#configure-edubrite-lms-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create EduBrite LMS test user](#create-edubrite-lms-test-user)** - to have a counterpart of Britta Simon in EduBrite LMS that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with EduBrite LMS, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **EduBrite LMS** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+
+ ![Single sign-on select mode](common/select-saml-option.png)
+
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following steps:
+
+ ![EduBrite LMS Domain and URLs single sign-on information](common/idp-intiated.png)
+
+ a. In the **Identifier** text box, type a URL using the following pattern:
+ `https://.edubrite.com`
+
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://.edubrite.com/oltpublish/site/samlLoginResponse.do`
+
+5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
+
+ ![EduBrite LMS Domain and URLs single sign-on information](common/metadata-upload-additional-signon.png)
+
+ In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://.edubrite.com/oltpublish/site/samlLoginResponse.do`
+
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Identifier, Reply URL and Sign-on URL. Contact [EduBrite LMS Client support team](mailto:support@edubrite.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+
+6. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/certificatebase64.png)
+
+7. On the **Set up EduBrite LMS** section, copy the appropriate URL(s) as per your requirement.
+
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
+
+ a. Login URL
+
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure EduBrite LMS Single Sign-On
+
+To configure single sign-on on **EduBrite LMS** side, you need to send the downloaded **Certificate (Base64)** and appropriate copied URLs from Azure portal to [EduBrite LMS support team](mailto:support@edubrite.com). They set this setting to have the SAML SSO connection set properly on both sides.
+
+### Create an Azure AD test user
+
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
+
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
+
+ ![The "Users and groups" and "All users" links](common/users.png)
+
+2. Select **New user** at the top of the screen.
+
+ ![New user Button](common/new-user.png)
+
+3. In the User properties, perform the following steps.
+
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
+
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
+
+### Assign the Azure AD test user
+
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to EduBrite LMS.
+
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **EduBrite LMS**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **EduBrite LMS**.
+
+ ![The EduBrite LMS link in the Applications list](common/all-applications.png)
+
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
+
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+
+ ![The Add Assignment pane](common/add-assign-user.png)
+
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create EduBrite LMS test user
+
+In this section, a user called Britta Simon is created in EduBrite LMS. EduBrite LMS supports just-in-time user provisioning, which is enabled by default. There is no action item for you in this section. If a user doesn't already exist in EduBrite LMS, a new one is created after authentication.
+
+### Test single sign-on
+
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+
+When you click the EduBrite LMS tile in the Access Panel, you should be automatically signed in to the EduBrite LMS for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+
+## Additional Resources
+
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
+
diff --git a/articles/active-directory/saas-apps/empactis-tutorial.md b/articles/active-directory/saas-apps/empactis-tutorial.md
index 35a356b3b1296..da564f944071a 100644
--- a/articles/active-directory/saas-apps/empactis-tutorial.md
+++ b/articles/active-directory/saas-apps/empactis-tutorial.md
@@ -182,9 +182,9 @@ When you click the Empactis tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/eplatform-tutorial.md b/articles/active-directory/saas-apps/eplatform-tutorial.md
index 698e3412430af..bdfed87743399 100644
--- a/articles/active-directory/saas-apps/eplatform-tutorial.md
+++ b/articles/active-directory/saas-apps/eplatform-tutorial.md
@@ -219,9 +219,9 @@ When you click the ePlatform tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/evernote-tutorial.md b/articles/active-directory/saas-apps/evernote-tutorial.md
index 174baae635842..53918ae5c2d17 100644
--- a/articles/active-directory/saas-apps/evernote-tutorial.md
+++ b/articles/active-directory/saas-apps/evernote-tutorial.md
@@ -9,14 +9,14 @@ ms.reviewer: barbkess
ms.assetid: 28acce3e-22a0-4a37-8b66-6e518d777350
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: tutorial
-ms.date: 02/07/2019
+ms.date: 04/10/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Evernote
@@ -49,7 +49,7 @@ To configure the integration of Evernote into Azure AD, you need to add Evernote
**To add Evernote from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
![The Azure Active Directory button](common/select-azuread.png)
@@ -57,11 +57,11 @@ To configure the integration of Evernote into Azure AD, you need to add Evernote
![The Enterprise applications blade](common/enterprise-applications.png)
-3. To add new application, click **New application** button on the top of dialog.
+3. To add a new application, click the **New application** button at the top of the dialog.
![The New application button](common/add-new-app.png)
-4. In the search box, type **Evernote**, select **Evernote** from result panel then click **Add** button to add the application.
+4. In the search box, type **Evernote**, select **Evernote** from the result panel then click the **Add** button to add the application.
![Evernote in the results list](common/search-new-app.png)
@@ -93,11 +93,11 @@ To configure Azure AD single sign-on with Evernote, perform the following steps:
![Single sign-on select mode](common/select-saml-option.png)
-3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+3. On the **Set up Single Sign-On with SAML** page, click the **Edit** icon to open the **Basic SAML Configuration** dialog.
![Edit Basic SAML Configuration](common/edit-urls.png)
-4. On the **Basic SAML Configuration** section, If you wish to configure the application in **IDP** initiated mode, perform the following step:
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following step:
![Evernote Domain and URLs single sign-on information](common/idp-identifier.png)
@@ -115,13 +115,23 @@ To configure Azure AD single sign-on with Evernote, perform the following steps:
![The Certificate download link](common/certificatebase64.png)
-7. On the **Set up Evernote** section, copy the appropriate URL(s) as per your requirement.
+7. To modify the **Signing** options, click the **Edit** button to open the **SAML Signing Certificate** dialog.
+
+ ![image](common/edit-certificate.png)
+
+ ![image](./media/evernote-tutorial/samlassertion.png)
+
+ a. Select the **Sign SAML response and assertion** option for **Signing Option**.
+
+ b. Click **Save**
+
+8. On the **Set up Evernote** section, copy the appropriate URL(s) as per your requirement.
![Copy configuration URLs](common/copy-configuration-urls.png)
a. Login URL
- b. Azure Ad Identifier
+ b. Azure AD Identifier
c. Logout URL
@@ -167,8 +177,7 @@ The objective of this section is to create a test user in the Azure portal calle
a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
@@ -229,7 +238,7 @@ In this section, you test your Azure AD single sign-on configuration using the A
When you click the Evernote tile in the Access Panel, you should be automatically signed in to the Evernote for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-## Additional Resources
+## Additional resources
- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
diff --git a/articles/active-directory/saas-apps/excelityglobal-tutorial.md b/articles/active-directory/saas-apps/excelityglobal-tutorial.md
index 1d82c19906cfa..09fbec77f9725 100644
--- a/articles/active-directory/saas-apps/excelityglobal-tutorial.md
+++ b/articles/active-directory/saas-apps/excelityglobal-tutorial.md
@@ -201,8 +201,8 @@ When you click the ExcelityGlobal tile in the Access Panel, you should be automa
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/explanation-based-auditing-system-tutorial.md b/articles/active-directory/saas-apps/explanation-based-auditing-system-tutorial.md
index 6fbfc51b7fcb7..3333878485146 100644
--- a/articles/active-directory/saas-apps/explanation-based-auditing-system-tutorial.md
+++ b/articles/active-directory/saas-apps/explanation-based-auditing-system-tutorial.md
@@ -176,9 +176,9 @@ When you click the Explanation-Based Auditing System tile in the Access Panel, y
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/firmplay-tutorial.md b/articles/active-directory/saas-apps/firmplay-tutorial.md
index 3a6dbbdea84fd..0bf5ccf08240a 100644
--- a/articles/active-directory/saas-apps/firmplay-tutorial.md
+++ b/articles/active-directory/saas-apps/firmplay-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: a6799629-7546-43f8-a966-956db32864b1
ms.service: active-directory
@@ -12,243 +13,183 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 02/15/2017
+ms.topic: tutorial
+ms.date: 04/01/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with FirmPlay - Employee Advocacy for Recruiting
In this tutorial, you learn how to integrate FirmPlay - Employee Advocacy for Recruiting with Azure Active Directory (Azure AD).
-
Integrating FirmPlay - Employee Advocacy for Recruiting with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to FirmPlay - Employee Advocacy for Recruiting
-- You can enable your users to automatically get signed-on to FirmPlay - Employee Advocacy for Recruiting (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure Management portal
+* You can control in Azure AD who has access to FirmPlay - Employee Advocacy for Recruiting.
+* You can enable your users to be automatically signed-in to FirmPlay - Employee Advocacy for Recruiting (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with FirmPlay - Employee Advocacy for Recruiting, you need the following items:
-- An Azure AD subscription
-- A FirmPlay - Employee Advocacy for Recruiting single-sign on enabled subscription
-
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- You should not use your production environment, unless this is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
-
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* FirmPlay - Employee Advocacy for Recruiting single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding FirmPlay - Employee Advocacy for Recruiting from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+* FirmPlay - Employee Advocacy for Recruiting supports **SP** initiated SSO
## Adding FirmPlay - Employee Advocacy for Recruiting from the gallery
+
To configure the integration of FirmPlay - Employee Advocacy for Recruiting into Azure AD, you need to add FirmPlay - Employee Advocacy for Recruiting from the gallery to your list of managed SaaS apps.
**To add FirmPlay - Employee Advocacy for Recruiting from the gallery, perform the following steps:**
-1. In the **[Azure Management Portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. Click **Add** button on the top of the dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **FirmPlay - Employee Advocacy for Recruiting**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/firmplay-tutorial/tutorial_firmplay_001.png)
+4. In the search box, type **FirmPlay - Employee Advocacy for Recruiting**, select **FirmPlay - Employee Advocacy for Recruiting** from result panel then click **Add** button to add the application.
-1. In the results panel, select **FirmPlay - Employee Advocacy for Recruiting**, and then click **Add** button to add the application.
+ ![FirmPlay - Employee Advocacy for Recruiting in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/firmplay-tutorial/tutorial_firmplay_0001.png)
+## Configure and test Azure AD single sign-on
-
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with FirmPlay - Employee Advocacy for Recruiting based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in FirmPlay - Employee Advocacy for Recruiting is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in FirmPlay - Employee Advocacy for Recruiting needs to be established.
-
-This link relationship is established by assigning the value of the **user name** in Azure AD as the value of the **Username** in FirmPlay - Employee Advocacy for Recruiting.
+In this section, you configure and test Azure AD single sign-on with FirmPlay - Employee Advocacy for Recruiting based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in FirmPlay - Employee Advocacy for Recruiting needs to be established.
To configure and test Azure AD single sign-on with FirmPlay - Employee Advocacy for Recruiting, you need to complete the following building blocks:
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a FirmPlay - Employee Advocacy for Recruiting test user](#creating-a-firmplay---employee-advocacy-for-recruiting-test-user)** - to have a counterpart of Britta Simon in FirmPlay: Employee Advocacy for Recruiting that is linked to the Azure AD representation of her.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
-
-### Configuring Azure AD single sign-on
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure FirmPlay - Employee Advocacy for Recruiting Single Sign-On](#configure-firmplay---employee-advocacy-for-recruiting-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create FirmPlay - Employee Advocacy for Recruiting test user](#create-firmplay---employee-advocacy-for-recruiting-test-user)** - to have a counterpart of Britta Simon in FirmPlay - Employee Advocacy for Recruiting that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-In this section, you enable Azure AD single sign-on in the Azure Management portal and configure single sign-on in your FirmPlay - Employee Advocacy for Recruiting application.
+### Configure Azure AD single sign-on
-**To configure Azure AD single sign-on with FirmPlay - Employee Advocacy for Recruiting, perform the following steps:**
+In this section, you enable Azure AD single sign-on in the Azure portal.
-1. In the Azure Management portal, on the **FirmPlay - Employee Advocacy for Recruiting** application integration page, click **Single sign-on**.
+To configure Azure AD single sign-on with FirmPlay - Employee Advocacy for Recruiting, perform the following steps:
- ![Configure Single Sign-On][4]
+1. In the [Azure portal](https://portal.azure.com/), on the **FirmPlay - Employee Advocacy for Recruiting** application integration page, select **Single sign-on**.
-1. On the **Single sign-on** dialog, as **Mode** select **SAML-based Sign-on** to enable single sign on.
-
- ![Configure Single Sign-On](./media/firmplay-tutorial/tutorial_firmplay_01.png)
+ ![Configure single sign-on link](common/select-sso.png)
-1. On the **FirmPlay - Employee Advocacy for Recruiting Domain and URLs** section, in the **Sign On URL** textbox, type a URL using the following pattern: `https://.firmplay.com/`
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On](./media/firmplay-tutorial/tutorial_firmplay_02.png)
+ ![Single sign-on select mode](common/select-saml-option.png)
- > [!NOTE]
- > Please note that this is not the real value. You have to update this value with the actual Sign On URL. Contact [FirmPlay - Employee Advocacy for Recruiting support team](mailto:engineering@firmplay.com) to get this value.
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **SAML Signing Certificate** section, click **Create new certificate**.
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Configure Single Sign-On](./media/firmplay-tutorial/tutorial_firmplay_03.png)
+4. On the **Basic SAML Configuration** section, perform the following steps:
-1. On the **Create New Certificate** dialog, click the calendar icon and select an **expiry date**. Then click **Save** button.
+ ![FirmPlay - Employee Advocacy for Recruiting Domain and URLs single sign-on information](common/sp-signonurl.png)
- ![Configure Single Sign-On](./media/firmplay-tutorial/tutorial_general_300.png)
+ In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://.firmplay.com/`
-1. On the **SAML Signing Certificate** section, select **Make new certificate active** and click **Save** button.
+ > [!NOTE]
+ > The value is not real. Update the value with the actual Sign-On URL. Contact [FirmPlay - Employee Advocacy for Recruiting Client support team](mailto:engineering@firmplay.com) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
- ![Configure Single Sign-On](./media/firmplay-tutorial/tutorial_firmplay_04.png)
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
-1. On the pop-up **Rollover certificate** window, click **OK**.
+ ![The Certificate download link](common/certificatebase64.png)
- ![Configure Single Sign-On](./media/firmplay-tutorial/tutorial_general_400.png)
+6. On the **Set up FirmPlay - Employee Advocacy for Recruiting** section, copy the appropriate URL(s) as per your requirement.
-1. On the **SAML Signing Certificate** section, click **Certificate (base64)** and then save the certificate file on your computer.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
- ![Configure Single Sign-On](./media/firmplay-tutorial/tutorial_firmplay_05.png)
+ a. Login URL
-1. On the **FirmPlay - Employee Advocacy for Recruiting Configuration** section, click **Configure FirmPlay - Employee Advocacy for Recruiting** to open **Configure sign-on** dialog.
+ b. Azure AD Identifier
- ![Configure Single Sign-On](./media/firmplay-tutorial/tutorial_firmplay_06.png)
+ c. Logout URL
- ![Configure Single Sign-On](./media/firmplay-tutorial/tutorial_firmplay_07.png)
+### Configure FirmPlay - Employee Advocacy for Recruiting Single Sign-On
-1. To get SSO configured for your application, contact [FirmPlay - Employee Advocacy for Recruiting support team](mailto:engineering@firmplay.com) and provide them with the following:
+To configure single sign-on on **FirmPlay - Employee Advocacy for Recruiting** side, you need to send the downloaded **Certificate (Base64)** and appropriate copied URLs from Azure portal to [FirmPlay - Employee Advocacy for Recruiting support team](mailto:engineering@firmplay.com). They set this setting to have the SAML SSO connection set properly on both sides.
- • The downloaded **Certificate file**
+### Create an Azure AD test user
- • The **SAML Single Sign-On Service URL**
-
- • The **SAML Entity ID**
-
- • The **Sign-Out URL**
-
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure Management portal called Britta Simon.
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-![Create Azure AD User][100]
+ ![The "Users and groups" and "All users" links](common/users.png)
-**To create a test user in Azure AD, perform the following steps:**
+2. Select **New user** at the top of the screen.
-1. In the **Azure Management portal**, on the left navigation pane, click **Azure Active Directory** icon.
+ ![New user Button](common/new-user.png)
- ![Creating an Azure AD test user](./media/firmplay-tutorial/create_aaduser_01.png)
+3. In the User properties, perform the following steps.
-1. Go to **Users and groups** and click **All users** to display the list of users.
-
- ![Creating an Azure AD test user](./media/firmplay-tutorial/create_aaduser_02.png)
+ ![The User dialog box](common/user-properties.png)
-1. At the top of the dialog click **Add** to open the **User** dialog.
-
- ![Creating an Azure AD test user](./media/firmplay-tutorial/create_aaduser_03.png)
-
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/firmplay-tutorial/create_aaduser_04.png)
-
- a. In the **Name** textbox, type **BrittaSimon**.
-
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
-
- c. Select **Show Password** and write down the value of the **Password**.
-
- d. Click **Create**.
-
-
-
-### Creating a FirmPlay - Employee Advocacy for Recruiting test user
-
-In this section, you create a user called Britta Simon in FirmPlay - Employee Advocacy for Recruiting. Please work with [FirmPlay - Employee Advocacy for Recruiting support team](mailto:engineering@firmplay.com) to add the users in the FirmPlay - Employee Advocacy for Recruiting platform.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-### Assigning the Azure AD test user
+ d. Click **Create**.
-In this section, you enable Britta Simon to use Azure single sign-on by granting her access to FirmPlay - Employee Advocacy for Recruiting.
+### Assign the Azure AD test user
-![Assign User][200]
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to FirmPlay - Employee Advocacy for Recruiting.
-**To assign Britta Simon to FirmPlay - Employee Advocacy for Recruiting, perform the following steps:**
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **FirmPlay - Employee Advocacy for Recruiting**.
-1. In the Azure Management portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+ ![Enterprise applications blade](common/enterprise-applications.png)
- ![Assign User][201]
+2. In the applications list, select **FirmPlay - Employee Advocacy for Recruiting**.
-1. In the applications list, select **FirmPlay - Employee Advocacy for Recruiting**.
+ ![The FirmPlay - Employee Advocacy for Recruiting link in the Applications list](common/all-applications.png)
- ![Configure Single Sign-On](./media/firmplay-tutorial/tutorial_firmplay_50.png)
+3. In the menu on the left, select **Users and groups**.
-1. In the menu on the left, click **Users and groups**.
+ ![The "Users and groups" link](common/users-groups-blade.png)
- ![Assign User][202]
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+ ![The Add Assignment pane](common/add-assign-user.png)
- ![Assign User][203]
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. Click **Select** button on **Users and groups** dialog.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Assign** button on **Add Assignment** dialog.
-
+### Create FirmPlay - Employee Advocacy for Recruiting test user
+In this section, you create a user called Britta Simon in FirmPlay - Employee Advocacy for Recruiting. Work with [FirmPlay - Employee Advocacy for Recruiting support team](mailto:engineering@firmplay.com) to add the users in the FirmPlay - Employee Advocacy for Recruiting platform. Users must be created and activated before you use single sign-on.
-### Testing single sign-on
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the FirmPlay - Employee Advocacy for Recruiting tile in the Access Panel, you should get automatically signed-on to your FirmPlay - Employee Advocacy for Recruiting application.
-
-
-## Additional resources
-
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
+When you click the FirmPlay - Employee Advocacy for Recruiting tile in the Access Panel, you should be automatically signed in to the FirmPlay - Employee Advocacy for Recruiting for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+## Additional Resources
-
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[1]: ./media/firmplay-tutorial/tutorial_general_01.png
-[2]: ./media/firmplay-tutorial/tutorial_general_02.png
-[3]: ./media/firmplay-tutorial/tutorial_general_03.png
-[4]: ./media/firmplay-tutorial/tutorial_general_04.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[100]: ./media/firmplay-tutorial/tutorial_general_100.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
-[200]: ./media/firmplay-tutorial/tutorial_general_200.png
-[201]: ./media/firmplay-tutorial/tutorial_general_201.png
-[202]: ./media/firmplay-tutorial/tutorial_general_202.png
-[203]: ./media/firmplay-tutorial/tutorial_general_203.png
diff --git a/articles/active-directory/saas-apps/five9-tutorial.md b/articles/active-directory/saas-apps/five9-tutorial.md
index 0fb2f3633e4d6..03a83c3a0ea3f 100644
--- a/articles/active-directory/saas-apps/five9-tutorial.md
+++ b/articles/active-directory/saas-apps/five9-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 88dc82ab-be0b-4017-8335-c47d00775d7b
ms.service: active-directory
@@ -12,133 +13,127 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 07/18/2017
+ms.topic: tutorial
+ms.date: 04/04/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Five9 Plus Adapter (CTI, Contact Center Agents)
In this tutorial, you learn how to integrate Five9 Plus Adapter (CTI, Contact Center Agents) with Azure Active Directory (Azure AD).
-
Integrating Five9 Plus Adapter (CTI, Contact Center Agents) with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Five9 Plus Adapter (CTI, Contact Center Agents)
-- You can enable your users to automatically get signed-on to Five9 Plus Adapter (CTI, Contact Center Agents) (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to Five9 Plus Adapter (CTI, Contact Center Agents).
+* You can enable your users to be automatically signed-in to Five9 Plus Adapter (CTI, Contact Center Agents) (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Five9 Plus Adapter (CTI, Contact Center Agents), you need the following items:
-- An Azure AD subscription
-- A Five9 Plus Adapter (CTI, Contact Center Agents) single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial here: [Trial offer](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/).
+* Five9 Plus Adapter (CTI, Contact Center Agents) single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Five9 Plus Adapter (CTI, Contact Center Agents) from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Five9 Plus Adapter (CTI, Contact Center Agents) supports **IDP** initiated SSO
## Adding Five9 Plus Adapter (CTI, Contact Center Agents) from the gallery
+
To configure the integration of Five9 Plus Adapter (CTI, Contact Center Agents) into Azure AD, you need to add Five9 Plus Adapter (CTI, Contact Center Agents) from the gallery to your list of managed SaaS apps.
**To add Five9 Plus Adapter (CTI, Contact Center Agents) from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **Five9 Plus Adapter (CTI, Contact Center Agents)**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/five9-tutorial/tutorial_five9_search.png)
+4. In the search box, type **Five9 Plus Adapter (CTI, Contact Center Agents)**, select **Five9 Plus Adapter (CTI, Contact Center Agents)** from result panel then click **Add** button to add the application.
-1. In the results panel, select **Five9 Plus Adapter (CTI, Contact Center Agents)**, and then click **Add** button to add the application.
+ ![Five9 Plus Adapter (CTI, Contact Center Agents) in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/five9-tutorial/tutorial_five9_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Five9 Plus Adapter (CTI, Contact Center Agents) based on a test user called "Britta Simon".
+In this section, you configure and test Azure AD single sign-on with Five9 Plus Adapter (CTI, Contact Center Agents) based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Five9 Plus Adapter (CTI, Contact Center Agents) needs to be established.
-For single sign-on to work, Azure AD needs to know what the counterpart user in Five9 Plus Adapter (CTI, Contact Center Agents) is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Five9 Plus Adapter (CTI, Contact Center Agents) needs to be established.
+To configure and test Azure AD single sign-on with Five9 Plus Adapter (CTI, Contact Center Agents), you need to complete the following building blocks:
-In Five9 Plus Adapter (CTI, Contact Center Agents), assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Five9 Plus Adapter (CTI, Contact Center Agents) Single Sign-On](#configure-five9-plus-adapter-cti-contact-center-agents-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Five9 Plus Adapter (CTI, Contact Center Agents) test user](#create-five9-plus-adapter-cti-contact-center-agents-test-user)** - to have a counterpart of Britta Simon in Five9 Plus Adapter (CTI, Contact Center Agents) that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-To configure and test Azure AD single sign-on with Five9 Plus Adapter (CTI, Contact Center Agents), you need to complete the following building blocks:
+### Configure Azure AD single sign-on
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a Five9 Plus Adapter (CTI, Contact Center Agents) test user](#creating-a-five9-plus-adapter-cti-contact-center-agents-test-user)** - to have a counterpart of Britta Simon in Five9 Plus Adapter (CTI, Contact Center Agents) that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-### Configuring Azure AD single sign-on
+To configure Azure AD single sign-on with Five9 Plus Adapter (CTI, Contact Center Agents), perform the following steps:
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Five9 Plus Adapter (CTI, Contact Center Agents) application.
+1. In the [Azure portal](https://portal.azure.com/), on the **Five9 Plus Adapter (CTI, Contact Center Agents)** application integration page, select **Single sign-on**.
-**To configure Azure AD single sign-on with Five9 Plus Adapter (CTI, Contact Center Agents), perform the following steps:**
+ ![Configure single sign-on link](common/select-sso.png)
-1. In the Azure portal, on the **Five9 Plus Adapter (CTI, Contact Center Agents)** application integration page, click **Single sign-on**.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On][4]
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/five9-tutorial/tutorial_five9_samlbase.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **Five9 Plus Adapter (CTI, Contact Center Agents) Domain and URLs** section, perform the following steps:
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Configure Single Sign-On](./media/five9-tutorial/tutorial_five9_url.png)
-
- a. In the **Identifier** textbox, type a URL using the following patterns:
+4. On the **Set up Single Sign-On with SAML** page, perform the following steps:
+
+ ![Five9 Plus Adapter (CTI, Contact Center Agents) Domain and URLs single sign-on information](common/idp-intiated.png)
+ a. In the **Identifier** text box, type a URL using the following pattern:
+
| Environment | URL |
| :-- | :-- |
| For “Five9 Plus Adapter for Microsoft Dynamics CRM” | `https://app.five9.com/appsvcs/saml/metadata/alias/msdc` |
| For “Five9 Plus Adapter for Zendesk” | `https://app.five9.com/appsvcs/saml/metadata/alias/zd` |
| For “Five9 Plus Adapter for Agent Desktop Toolkit” | `https://app.five9.com/appsvcs/saml/metadata/alias/adt` |
- b. In the **Reply URL** textbox, type a URL using the following pattern:
+ b. In the **Reply URL** text box, type a URL using the following pattern:
- | Environment | URL |
+ | Environment | URL |
| :-- | :-- |
| For “Five9 Plus Adapter for Microsoft Dynamics CRM” | `https://app.five9.com/appsvcs/saml/SSO/alias/msdc` |
| For “Five9 Plus Adapter for Zendesk” | `https://app.five9.com/appsvcs/saml/SSO/alias/zd` |
| For “Five9 Plus Adapter for Agent Desktop Toolkit” | `https://app.five9.com/appsvcs/saml/SSO/alias/adt` |
-1. On the **SAML Signing Certificate** section, click **Certificate(Base64)** and then save the certificate file on your computer.
+6. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On](./media/five9-tutorial/tutorial_five9_certificate.png)
+ ![The Certificate download link](common/certificatebase64.png)
-1. Click **Save** button.
+7. On the **Set up Five9 Plus Adapter (CTI, Contact Center Agents)** section, copy the appropriate URL(s) as per your requirement.
- ![Configure Single Sign-On](./media/five9-tutorial/tutorial_general_400.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-1. On the **Five9 Plus Adapter (CTI, Contact Center Agents) Configuration** section, click **Configure Five9 Plus Adapter (CTI, Contact Center Agents)** to open **Configure sign-on** window. Copy the **Sign-Out URL, SAML Entity ID, and SAML Single Sign-On Service URL** from the **Quick Reference section.**
+ a. Login URL
- ![Configure Single Sign-On](./media/five9-tutorial/tutorial_five9_configure.png)
+ b. Azure AD Identifier
-1. To configure single sign-on on **Five9 Plus Adapter (CTI, Contact Center Agents)** side, you need to send the downloaded **Certificate(Base64), Sign-Out URL, SAML Entity ID, and SAML Single Sign-On Service URL** to [Five9 Plus Adapter (CTI, Contact Center Agents) support team](https://www.five9.com/about/contact). Also additionally, for configuring SSO further please follow the below steps according to the adapter:
+ c. Logout URL
+
+### Configure Five9 Plus Adapter (CTI, Contact Center Agents) Single Sign-On
+
+1. To configure single sign-on on **Five9 Plus Adapter (CTI, Contact Center Agents)** side, you need to send the downloaded **Certificate(Base64)** and appropriate copied URL(s) to [Five9 Plus Adapter (CTI, Contact Center Agents) support team](https://www.five9.com/about/contact). Also additionally, for configuring SSO further please follow the below steps according to the adapter:
a. “Five9 Plus Adapter for Agent Desktop Toolkit” Admin Guide: [https://webapps.five9.com/assets/files/for_customers/documentation/integrations/agent-desktop-toolkit/plus-agent-desktop-toolkit-administrators-guide.pdf](https://webapps.five9.com/assets/files/for_customers/documentation/integrations/agent-desktop-toolkit/plus-agent-desktop-toolkit-administrators-guide.pdf)
@@ -146,99 +141,71 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
c. “Five9 Plus Adapter for Zendesk” Admin Guide: [https://webapps.five9.com/assets/files/for_customers/documentation/integrations/zendesk/zendesk-plus-administrators-guide.pdf](https://webapps.five9.com/assets/files/for_customers/documentation/integrations/zendesk/zendesk-plus-administrators-guide.pdf)
+### Create an Azure AD test user
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
-
-### Creating an Azure AD test user
The objective of this section is to create a test user in the Azure portal called Britta Simon.
-![Create Azure AD User][100]
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-**To create a test user in Azure AD, perform the following steps:**
+ ![The "Users and groups" and "All users" links](common/users.png)
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
-
- ![Creating an Azure AD test user](./media/five9-tutorial/create_aaduser_01.png)
-
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/five9-tutorial/create_aaduser_02.png)
+2. Select **New user** at the top of the screen.
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/five9-tutorial/create_aaduser_03.png)
+ ![New user Button](common/new-user.png)
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/five9-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** textbox, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
- c. Select **Show Password** and write down the value of the **Password**.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-
-### Creating a Five9 Plus Adapter (CTI, Contact Center Agents) test user
-In this section, you create a user called Britta Simon in Five9 Plus Adapter (CTI, Contact Center Agents). Work with [Five9 Plus Adapter (CTI, Contact Center Agents) support team](https://www.five9.com/about/contact) to add the users in the Five9 Plus Adapter (CTI, Contact Center Agents) platform. Users must be created and activated before you use single sign-on.
-
-### Assigning the Azure AD test user
+### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Five9 Plus Adapter (CTI, Contact Center Agents).
-![Assign User][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Five9 Plus Adapter (CTI, Contact Center Agents)**.
-**To assign Britta Simon to Five9 Plus Adapter (CTI, Contact Center Agents), perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **Five9 Plus Adapter (CTI, Contact Center Agents)**.
- ![Assign User][201]
+ ![The Five9 Plus Adapter (CTI, Contact Center Agents) link in the Applications list](common/all-applications.png)
-1. In the applications list, select **Five9 Plus Adapter (CTI, Contact Center Agents)**.
+3. In the menu on the left, select **Users and groups**.
- ![Configure Single Sign-On](./media/five9-tutorial/tutorial_five9_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![Assign User][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![Assign User][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Select** button on **Users and groups** dialog.
+### Create Five9 Plus Adapter (CTI, Contact Center Agents) test user
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+In this section, you create a user called Britta Simon in Five9 Plus Adapter (CTI, Contact Center Agents). Work with [Five9 Plus Adapter (CTI, Contact Center Agents) support team](https://www.five9.com/about/contact) to add the users in the Five9 Plus Adapter (CTI, Contact Center Agents) platform. Users must be created and activated before you use single sign-on.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+### Test single sign-on
-When you click the Five9 Plus Adapter (CTI, Contact Center Agents) tile in the Access Panel, you should get automatically signed-on to your Five9 Plus Adapter (CTI, Contact Center Agents) application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
-
-## Additional resources
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+When you click the Five9 Plus Adapter (CTI, Contact Center Agents tile in the Access Panel, you should be automatically signed in to the Five9 Plus Adapter (CTI, Contact Center Agents) for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional Resources
-[1]: ./media/five9-tutorial/tutorial_general_01.png
-[2]: ./media/five9-tutorial/tutorial_general_02.png
-[3]: ./media/five9-tutorial/tutorial_general_03.png
-[4]: ./media/five9-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/five9-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/five9-tutorial/tutorial_general_200.png
-[201]: ./media/five9-tutorial/tutorial_general_201.png
-[202]: ./media/five9-tutorial/tutorial_general_202.png
-[203]: ./media/five9-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/floqast-tutorial.md b/articles/active-directory/saas-apps/floqast-tutorial.md
index 264904f1ab948..e23ec46b920fc 100644
--- a/articles/active-directory/saas-apps/floqast-tutorial.md
+++ b/articles/active-directory/saas-apps/floqast-tutorial.md
@@ -231,9 +231,9 @@ When you click the FloQast tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/fluxxlabs-tutorial.md b/articles/active-directory/saas-apps/fluxxlabs-tutorial.md
index 0ff042658acc5..7810d11c9aa06 100644
--- a/articles/active-directory/saas-apps/fluxxlabs-tutorial.md
+++ b/articles/active-directory/saas-apps/fluxxlabs-tutorial.md
@@ -4,149 +4,147 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: d8fac770-bb57-4e1f-b50b-9ffeae239d07
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/20/2018
+ms.topic: tutorial
+ms.date: 04/01/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Fluxx Labs
In this tutorial, you learn how to integrate Fluxx Labs with Azure Active Directory (Azure AD).
-
Integrating Fluxx Labs with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Fluxx Labs.
-- You can enable your users to automatically get signed-on to Fluxx Labs (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Fluxx Labs.
+* You can enable your users to be automatically signed-in to Fluxx Labs (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Fluxx Labs, you need the following items:
-- An Azure AD subscription
-- A Fluxx Labs single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Fluxx Labs single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Fluxx Labs from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Fluxx Labs supports **IDP** initiated SSO
## Adding Fluxx Labs from the gallery
+
To configure the integration of Fluxx Labs into Azure AD, you need to add Fluxx Labs from the gallery to your list of managed SaaS apps.
**To add Fluxx Labs from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
-1. To add new application, click **New application** button on the top of dialog.
+3. To add new application, click **New application** button on the top of dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
-1. In the search box, type **Fluxx Labs**, select **Fluxx Labs** from result panel then click **Add** button to add the application.
+4. In the search box, type **Fluxx Labs**, select **Fluxx Labs** from result panel then click **Add** button to add the application.
- ![Fluxx Labs in the results list](./media/fluxxlabs-tutorial/tutorial_fluxxlabs_addfromgallery.png)
+ ![Fluxx Labs in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Fluxx Labs based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in Fluxx Labs is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Fluxx Labs needs to be established.
-
-In Fluxx Labs, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+In this section, you configure and test Azure AD single sign-on with Fluxx Labs based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Fluxx Labs needs to be established.
To configure and test Azure AD single sign-on with Fluxx Labs, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a Fluxx Labs test user](#create-a-fluxx-labs-test-user)** - to have a counterpart of Britta Simon in Fluxx Labs that is linked to the Azure AD representation of user.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure Fluxx Labs Single Sign-On](#configure-fluxx-labs-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Fluxx Labs test user](#create-fluxx-labs-test-user)** - to have a counterpart of Britta Simon in Fluxx Labs that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Fluxx Labs application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with Fluxx Labs, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **Fluxx Labs** application integration page, select **Single sign-on**.
-**To configure Azure AD single sign-on with Fluxx Labs, perform the following steps:**
+ ![Configure single sign-on link](common/select-sso.png)
-1. In the Azure portal, on the **Fluxx Labs** application integration page, click **Single sign-on**.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure single sign-on link][4]
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Single sign-on dialog box](./media/fluxxlabs-tutorial/tutorial_fluxxlabs_samlbase.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
-1. On the **Fluxx Labs Domain and URLs** section, perform the following steps:
+4. On the **Set up Single Sign-On with SAML** page, perform the following steps:
- ![Fluxx Labs Domain and URLs single sign-on information](./media/fluxxlabs-tutorial/tutorial_fluxxlabs_url.png)
+ ![Fluxx Labs Domain and URLs single sign-on information](common/idp-intiated.png)
- a. In the **Identifier** textbox, type a URL using the following pattern:
+ a. In the **Identifier** text box, type a URL using the following pattern:
- | Environment | URL Pattern|
+ | Environment | URL Pattern|
|-------------|------------|
| Production | `https://.fluxx.io` |
| Pre production | `https://.preprod.fluxxlabs.com`|
-
- b. In the **Reply URL** textbox, type a URL using the following pattern:
- | Environment | URL Pattern|
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+
+ | Environment | URL Pattern|
|-------------|------------|
| Production | `https://.fluxx.io/auth/saml/callback` |
| Pre production | `https://.preprod.fluxxlabs.com/auth/saml/callback`|
> [!NOTE]
- > These values are not real. Update these values with the actual Identifier and Reply URL. Contact [Fluxx Labs support team](mailto:travis@fluxxlabs.com) to get these values.
+ > These values are not real. Update these values with the actual Identifier and Reply URL. Contact [Fluxx Labs Client support team](mailto:travis@fluxxlabs.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/certificatebase64.png)
-1. On the **SAML Signing Certificate** section, click **Certificate (Base64)** and then save the certificate file on your computer.
+6. On the **Set up Fluxx Labs** section, copy the appropriate URL(s) as per your requirement.
- ![The Certificate download link](./media/fluxxlabs-tutorial/tutorial_fluxxlabs_certificate.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-1. Click **Save** button.
+ a. Login URL
- ![Configure Single Sign-On Save button](./media/fluxxlabs-tutorial/tutorial_general_400.png)
+ b. Azure AD Identifier
-1. On the **Fluxx Labs Configuration** section, click **Configure Fluxx Labs** to open **Configure sign-on** window. Copy the **SAML Single Sign-On Service URL** from the **Quick Reference section.**
+ c. Logout URL
- ![Fluxx Labs Configuration](./media/fluxxlabs-tutorial/tutorial_fluxxlabs_configure.png)
+### Configure Fluxx Labs Single Sign-On
-1. In a different web browser window, sign on to your Fluxx Labs company site as administrator.
+1. In a different web browser window, sign in to your Fluxx Labs company site as administrator.
-1. Select **Admin** below the **Settings** section.
+2. Select **Admin** below the **Settings** section.
![Fluxx Labs Configuration](./media/fluxxlabs-tutorial/config1.png)
-1. In the Admin Panel, Select **Plug-ins** > **Integrations** and then select **SAML SSO-(Disabled)**
+3. In the Admin Panel, Select **Plug-ins** > **Integrations** and then select **SAML SSO-(Disabled)**
![Fluxx Labs Configuration](./media/fluxxlabs-tutorial/config2.png)
-1. In the attribute section, perform the following steps:
+4. In the attribute section, perform the following steps:
![Fluxx Labs Configuration](./media/fluxxlabs-tutorial/config3.png)
@@ -160,7 +158,7 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
e. In the **Audience(SP Entity ID)** textbox, enter the **Identifier** value, which you have entered in the Azure portal.
- f. In the **Identity Provider SSO Target URL** textbox, paste the **SAML Single Sign-On Service URL** value, which you have copied from the Azure portal.
+ f. In the **Identity Provider SSO Target URL** textbox, paste the **Login URL** value, which you have copied from the Azure portal.
g. Open your base-64 encoded certificate in notepad, copy the content of it into your clipboard, and then paste it to the **Identity Provider Certificate** textbox.
@@ -171,114 +169,91 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
> [!NOTE]
> Once the content saved, the field will appear blank for security, but the value has been saved in the configuration.
-### Create an Azure AD test user
+### Create an Azure AD test user
The objective of this section is to create a test user in the Azure portal called Britta Simon.
- ![Create an Azure AD test user][100]
-
-**To create a test user in Azure AD, perform the following steps:**
-
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![The Azure Active Directory button](./media/fluxxlabs-tutorial/create_aaduser_01.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
-1. To display the list of users, go to **Users and groups**, and then click **All users**.
+2. Select **New user** at the top of the screen.
- ![The "Users and groups" and "All users" links](./media/fluxxlabs-tutorial/create_aaduser_02.png)
+ ![New user Button](common/new-user.png)
-1. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+3. In the User properties, perform the following steps.
- ![The Add button](./media/fluxxlabs-tutorial/create_aaduser_03.png)
+ ![The User dialog box](common/user-properties.png)
-1. In the **User** dialog box, perform the following steps:
-
- ![The User dialog box](./media/fluxxlabs-tutorial/create_aaduser_04.png)
-
- a. In the **Name** box, type **BrittaSimon**.
-
- b. In the **User name** box, type the email address of user Britta Simon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-
-### Create a Fluxx Labs test user
-To enable Azure AD users to log in to Fluxx Labs, they must be provisioned into Fluxx Labs. In the case of Fluxx Labs, provisioning is a manual task.
+### Assign the Azure AD test user
-**To provision a user account, perform the following steps:**
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to Fluxx Labs.
-1. Log in to your Fluxx Labs company site as an administrator.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Fluxx Labs**.
-1. Click on the below displayed **icon**.
+ ![Enterprise applications blade](common/enterprise-applications.png)
- ![Fluxx Labs Configuration](./media/fluxxlabs-tutorial/config6.png)
+2. In the applications list, select **Fluxx Labs**.
-1. On the dashboard, click on the below displayed icon to open the **New PEOPLE** card.
+ ![The Fluxx Labs link in the Applications list](common/all-applications.png)
- ![Fluxx Labs Configuration](./media/fluxxlabs-tutorial/config4.png)
+3. In the menu on the left, select **Users and groups**.
-1. On the **NEW PEOPLE** section, perform the following steps:
+ ![The "Users and groups" link](common/users-groups-blade.png)
- ![Fluxx Labs Configuration](./media/fluxxlabs-tutorial/config5.png)
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- a. Fluxx Labs use email as the unique identifier for SSO logins. Populate the **SSO UID** field with the user’s email address, that matches the email address, which they are using as login with SSO.
+ ![The Add Assignment pane](common/add-assign-user.png)
- b. Click **Save**.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-### Assign the Azure AD test user
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to Fluxx Labs.
-
-![Assign the user role][200]
+7. In the **Add Assignment** dialog click the **Assign** button.
-**To assign Britta Simon to Fluxx Labs, perform the following steps:**
+### Create Fluxx Labs test user
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+To enable Azure AD users to sign in to Fluxx Labs, they must be provisioned into Fluxx Labs. In the case of Fluxx Labs, provisioning is a manual task.
- ![Assign User][201]
+**To provision a user account, perform the following steps:**
-1. In the applications list, select **Fluxx Labs**.
+1. Sign in to your Fluxx Labs company site as an administrator.
- ![The Fluxx Labs link in the Applications list](./media/fluxxlabs-tutorial/tutorial_fluxxlabs_app.png)
+2. Click on the below displayed **icon**.
-1. In the menu on the left, click **Users and groups**.
+ ![Fluxx Labs Configuration](./media/fluxxlabs-tutorial/config6.png)
- ![The "Users and groups" link][202]
+3. On the dashboard, click on the below displayed icon to open the **New PEOPLE** card.
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+ ![Fluxx Labs Configuration](./media/fluxxlabs-tutorial/config4.png)
- ![The Add Assignment pane][203]
+4. On the **NEW PEOPLE** section, perform the following steps:
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+ ![Fluxx Labs Configuration](./media/fluxxlabs-tutorial/config5.png)
-1. Click **Select** button on **Users and groups** dialog.
+ a. Fluxx Labs use email as the unique identifier for SSO logins. Populate the **SSO UID** field with the user’s email address, that matches the email address, which they are using as login with SSO.
-1. Click **Assign** button on **Add Assignment** dialog.
+ b. Click **Save**.
-### Test single sign-on
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the Fluxx Labs tile in the Access Panel, you should get automatically signed-on to your Fluxx Labs application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
-
-## Additional resources
+When you click the Fluxx Labs tile in the Access Panel, you should be automatically signed in to the Fluxx Labs for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+## Additional Resources
-
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[1]: ./media/fluxxlabs-tutorial/tutorial_general_01.png
-[2]: ./media/fluxxlabs-tutorial/tutorial_general_02.png
-[3]: ./media/fluxxlabs-tutorial/tutorial_general_03.png
-[4]: ./media/fluxxlabs-tutorial/tutorial_general_04.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[100]: ./media/fluxxlabs-tutorial/tutorial_general_100.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
-[200]: ./media/fluxxlabs-tutorial/tutorial_general_200.png
-[201]: ./media/fluxxlabs-tutorial/tutorial_general_201.png
-[202]: ./media/fluxxlabs-tutorial/tutorial_general_202.png
-[203]: ./media/fluxxlabs-tutorial/tutorial_general_203.png
diff --git a/articles/active-directory/saas-apps/fm-systems-tutorial.md b/articles/active-directory/saas-apps/fm-systems-tutorial.md
index 66e44279de407..14153d46d3a49 100644
--- a/articles/active-directory/saas-apps/fm-systems-tutorial.md
+++ b/articles/active-directory/saas-apps/fm-systems-tutorial.md
@@ -4,236 +4,208 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: f78c58c5-6e98-458b-8991-78624a245665
ms.service: active-directory
-ms.subservice: saas-app-tutorial
+ms.workload: identity
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/17/2017
+ms.topic: tutorial
+ms.date: 04/05/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with FM:Systems
In this tutorial, you learn how to integrate FM:Systems with Azure Active Directory (Azure AD).
-
Integrating FM:Systems with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to FM:Systems
-- You can enable your users to automatically get signed-on to FM:Systems (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to FM:Systems.
+* You can enable your users to be automatically signed-in to FM:Systems (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with FM:Systems, you need the following items:
-- An Azure AD subscription
-- An FM:Systems single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* FM:Systems single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding FM:Systems from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* FM:Systems supports **IDP** initiated SSO
## Adding FM:Systems from the gallery
+
To configure the integration of FM:Systems into Azure AD, you need to add FM:Systems from the gallery to your list of managed SaaS apps.
**To add FM:Systems from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
-
- ![Active Directory][1]
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
-
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Azure Active Directory button](common/select-azuread.png)
- ![Applications][3]
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
-1. In the search box, type **FM:Systems**.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Creating an Azure AD test user](./media/fm-systems-tutorial/tutorial_fmsystems_search.png)
+3. To add new application, click **New application** button on the top of dialog.
-1. In the results panel, select **FM:Systems**, and then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/fm-systems-tutorial/tutorial_fmsystems_addfromgallery.png)
+4. In the search box, type **FM:Systems**, select **FM:Systems** from result panel then click **Add** button to add the application.
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with FM:Systems based on a test user called "Britta Simon".
+ ![FM:Systems in the results list](common/search-new-app.png)
-For single sign-on to work, Azure AD needs to know what the counterpart user in FM:Systems is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in FM:Systems needs to be established.
+## Configure and test Azure AD single sign-on
-In FM:Systems, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+In this section, you configure and test Azure AD single sign-on with FM:Systems based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in FM:Systems needs to be established.
To configure and test Azure AD single sign-on with FM:Systems, you need to complete the following building blocks:
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating an FM:Systems test user](#creating-an-fmsystems-test-user)** - to have a counterpart of Britta Simon in FM:Systems that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure FM:Systems Single Sign-On](#configure-fmsystems-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create FM:Systems test user](#create-fmsystems-test-user)** - to have a counterpart of Britta Simon in FM:Systems that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-### Configuring Azure AD single sign-on
+### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your FM:Systems application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with FM:Systems, perform the following steps:**
+To configure Azure AD single sign-on with FM:Systems, perform the following steps:
-1. In the Azure portal, on the **FM:Systems** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **FM:Systems** application integration page, select **Single sign-on**.
- ![Configure Single Sign-On][4]
+ ![Configure single sign-on link](common/select-sso.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/fm-systems-tutorial/tutorial_fmsystems_samlbase.png)
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. On the **FM:Systems Domain and URLs** section, perform the following steps:
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Configure Single Sign-On](./media/fm-systems-tutorial/tutorial_fmsystems_url.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- In the **Reply URL** textbox, type your FM:Systems **Reply URL**, type the URL using the following pattern: `https://.fmshosted.com/fminteract/ConsumerService2.aspx`
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- > [!NOTE]
- > This value is not real. Update this value with the actual Reply URL. Contact [FM:Systems support team](https://fmsystems.com/ask-us/) to get this value.
-
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+4. On the **Basic SAML Configuration** section, perform the following steps:
- ![Configure Single Sign-On](./media/fm-systems-tutorial/tutorial_fmsystems_certificate.png)
+ ![FM:Systems Domain and URLs single sign-on information](common/both-replyurl.png)
-1. Click **Save** button.
+ In the **Reply URL** text box, type a URL using the following pattern:
+ `https://.fmshosted.com/fminteract/ConsumerService2.aspx`
+
+ > [!NOTE]
+ > This value is not real. Update this value with the actual Reply URL. Contact [FM:Systems Client support team](https://fmsystems.com/ask-us/) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
- ![Configure Single Sign-On](./media/fm-systems-tutorial/tutorial_general_400.png)
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-1. To configure single sign-on on **FM:Systems** side, you need to send the downloaded **Metadata XML** to [FM:Systems support team](https://fmsystems.com/ask-us/). They set this setting to have the SAML SSO connection set properly on both sides. You will get a notification when SSO has been enabled for your subscription.
+ ![The Certificate download link](common/metadataxml.png)
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
+6. On the **Set up FM:Systems** section, copy the appropriate URL(s) as per your requirement.
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-![Create Azure AD User][100]
+ a. Login URL
-**To create a test user in Azure AD, perform the following steps:**
+ b. Azure AD Identifier
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+ c. Logout URL
- ![Creating an Azure AD test user](./media/fm-systems-tutorial/create_aaduser_01.png)
+### Configure FM:Systems Single Sign-On
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/fm-systems-tutorial/create_aaduser_02.png)
+To configure single sign-on on **FM:Systems** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [FM:Systems support team](https://fmsystems.com/ask-us/). They set this setting to have the SAML SSO connection set properly on both sides.
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/fm-systems-tutorial/create_aaduser_03.png)
+### Create an Azure AD test user
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/fm-systems-tutorial/create_aaduser_04.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- a. In the **Name** textbox, type **BrittaSimon**.
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+ ![The "Users and groups" and "All users" links](common/users.png)
- c. Select **Show Password** and write down the value of the **Password**.
+2. Select **New user** at the top of the screen.
- d. Click **Create**.
-
-### Creating an FM:Systems test user
+ ![New user Button](common/new-user.png)
-1. In a web browser window, log into your FM:Systems company site as an administrator.
+3. In the User properties, perform the following steps.
-1. Go to **System Administration \> Manage Security \> Users \> User list**.
-
- ![System Administration](./media/fm-systems-tutorial/ic795905.png "System Administration")
+ ![The User dialog box](common/user-properties.png)
-1. Click **Create new user**.
-
- ![Create New User](./media/fm-systems-tutorial/ic795906.png "Create New User")
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
-1. In the **Create User** section, perform the following steps:
-
- ![Create User](./media/fm-systems-tutorial/ic795907.png "Create User")
-
- a. Type the **UserName**, the **Password**, **Confirm Password**, **E-mail** and the **Employee ID** of a valid Azure Active Directory account you want to provision into the related textboxes.
-
- b. Click **Next**.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-### Assigning the Azure AD test user
+ d. Click **Create**.
+
+### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to FM:Systems.
-![Assign User][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **FM:Systems**.
-**To assign Britta Simon to FM:Systems, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **FM:Systems**.
- ![Assign User][201]
+ ![The FM:Systems link in the Applications list](common/all-applications.png)
-1. In the applications list, select **FM:Systems**.
+3. In the menu on the left, select **Users and groups**.
- ![Configure Single Sign-On](./media/fm-systems-tutorial/tutorial_fmsystems_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![Assign User][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![Assign User][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Select** button on **Users and groups** dialog.
+### Create FM:Systems test user
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+1. In a web browser window, sign into your FM:Systems company site as an administrator.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+2. Go to **System Administration \> Manage Security \> Users \> User list**.
+
+ ![System Administration](./media/fm-systems-tutorial/ic795905.png "System Administration")
-When you click the FM:Systems tile in the Access Panel, you should get automatically signed-on to your FM:Systems application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+3. Click **Create new user**.
+
+ ![Create New User](./media/fm-systems-tutorial/ic795906.png "Create New User")
-## Additional resources
+4. In the **Create User** section, perform the following steps:
+
+ ![Create User](./media/fm-systems-tutorial/ic795907.png "Create User")
+
+ a. Type the **UserName**, the **Password**, **Confirm Password**, **E-mail** and the **Employee ID** of a valid Azure Active Directory account you want to provision into the related textboxes.
+
+ b. Click **Next**.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+When you click the FM:Systems tile in the Access Panel, you should be automatically signed in to the FM:Systems for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional Resources
-[1]: ./media/fm-systems-tutorial/tutorial_general_01.png
-[2]: ./media/fm-systems-tutorial/tutorial_general_02.png
-[3]: ./media/fm-systems-tutorial/tutorial_general_03.png
-[4]: ./media/fm-systems-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/fm-systems-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/fm-systems-tutorial/tutorial_general_200.png
-[201]: ./media/fm-systems-tutorial/tutorial_general_201.png
-[202]: ./media/fm-systems-tutorial/tutorial_general_202.png
-[203]: ./media/fm-systems-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/foreseecxsuite-tutorial.md b/articles/active-directory/saas-apps/foreseecxsuite-tutorial.md
index fbc9dc64eb288..31b0616437b23 100644
--- a/articles/active-directory/saas-apps/foreseecxsuite-tutorial.md
+++ b/articles/active-directory/saas-apps/foreseecxsuite-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 5f4b7830-6186-4d17-b77b-504d4192bfde
ms.service: active-directory
@@ -13,219 +13,197 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 05/24/2018
+ms.topic: tutorial
+ms.date: 04/01/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with ForeSee CX Suite
In this tutorial, you learn how to integrate ForeSee CX Suite with Azure Active Directory (Azure AD).
-
Integrating ForeSee CX Suite with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to ForeSee CX Suite.
-- You can enable your users to automatically get signed-on to ForeSee CX Suite (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to ForeSee CX Suite.
+* You can enable your users to be automatically signed-in to ForeSee CX Suite (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with ForeSee CX Suite, you need the following items:
-- An Azure AD subscription
-- A ForeSee CX Suite single sign-on enabled subscription
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* ForeSee CX Suite single sign-on enabled subscription
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
+## Scenario description
-To test the steps in this tutorial, you should follow these recommendations:
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* ForeSee CX Suite supports **SP** initiated SSO
-## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-
-1. Adding ForeSee CX Suite from the gallery
-1. Configuring and testing Azure AD single sign-on
+* ForeSee CX Suite supports **Just In Time** user provisioning
## Adding ForeSee CX Suite from the gallery
+
To configure the integration of ForeSee CX Suite into Azure AD, you need to add ForeSee CX Suite from the gallery to your list of managed SaaS apps.
**To add ForeSee CX Suite from the gallery, perform the following steps:**
1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
-1. To add new application, click **New application** button on the top of dialog.
+3. To add new application, click **New application** button on the top of dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
-1. In the search box, type **ForeSee CX Suite**, select **ForeSee CX Suite** from result panel then click **Add** button to add the application.
+4. In the search box, type **ForeSee CX Suite**, select **ForeSee CX Suite** from result panel then click **Add** button to add the application.
- ![ForeSee CX Suite in the results list](./media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_addfromgallery.png)
+ ![ForeSee CX Suite in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with ForeSee CX Suite based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in ForeSee CX Suite is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in ForeSee CX Suite needs to be established.
+In this section, you configure and test Azure AD single sign-on with ForeSee CX Suite based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in ForeSee CX Suite needs to be established.
To configure and test Azure AD single sign-on with ForeSee CX Suite, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a ForeSee CX Suite test user](#create-a-foresee-cx-suite-test-user)** - to have a counterpart of Britta Simon in ForeSee CX Suite that is linked to the Azure AD representation of user.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure ForeSee CX Suite Single Sign-On](#configure-foresee-cx-suite-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create ForeSee CX Suite test user](#create-foresee-cx-suite-test-user)** - to have a counterpart of Britta Simon in ForeSee CX Suite that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your ForeSee CX Suite application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with ForeSee CX Suite, perform the following steps:
-**To configure Azure AD single sign-on with ForeSee CX Suite, perform the following steps:**
+1. In the [Azure portal](https://portal.azure.com/), on the **ForeSee CX Suite** application integration page, select **Single sign-on**.
-1. In the Azure portal, on the **ForeSee CX Suite** application integration page, click **Single sign-on**.
+ ![Configure single sign-on link](common/select-sso.png)
- ![Configure single sign-on link][4]
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Single sign-on dialog box](./media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_samlbase.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **ForeSee CX Suite Domain and URLs** section, if you have **Service Provider metadata file**, perform the following steps:
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![ForeSee CX Suite Domain and URLs single sign-on information](./media/foreseecxsuite-tutorial/upload.png)
+4. On the **Basic SAML Configuration** section, if you have **Service Provider metadata file**, perform the following steps:
a. Click **Upload metadata file**.
- ![ForeSee CX Suite Domain and URLs single sign-on information](./media/foreseecxsuite-tutorial/tutorial_foreseen_uploadconfig.png)
+ ![Upload metadata file](common/upload-metadata.png)
b. Click on **folder logo** to select the metadata file and click **Upload**.
- c. After successful completion of uploading **Service Provider metadata file** the **Identifier** value get auto populated in **ForeSee CX Suite Domain and URLs** section textbox as shown below:
+ ![choose metadata file](common/browse-upload-metadata.png)
- ![ForeSee CX Suite Domain and URLs single sign-on information](./media/foreseecxsuite-tutorial/urlupload.png)
+ c. After the metadata file is successfully uploaded, the **Identifier** value gets auto populated in Basic SAML Configuration section.
-1. If you don't have **Service Provider metadata file**, perform the following steps:
+ ![ForeSee CX Suite Domain and URLs single sign-on information](common/sp-identifier.png)
- ![ForeSee CX Suite Domain and URLs single sign-on information](./media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_url.png)
+ a. In the **Sign-on URL** text box, type a URL:
+ `https://cxsuite.foresee.com/`
- a. In the **Sign-on URL** textbox, type the URL: `https://cxsuite.foresee.com/`
+ b. In the **Identifier** textbox, type a URL using the following pattern: https://www.okta.com/saml2/service-provider/
- b. In the **Identifier** textbox, type a URL using the following pattern: `https://www.okta.com/saml2/service-provider/`
+ > [!Note]
+ > If the **Identifier** value do not get auto polulated, then please fill in the value manually according to above pattern. The Identifier value is not real. Update this value with the actual Identifier. Contact [ForeSee CX Suite Client support team](mailto:support@foresee.com) to get this value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
- > [!NOTE]
- > The Identifier value is not real. Update this value with the actual Identifier. Contact [ForeSee CX Suite Client support team](mailto:support@foresee.com) to get this value.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+ ![The Certificate download link](common/metadataxml.png)
- ![The Certificate download link](./media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_certificate.png)
+6. On the **Set up ForeSee CX Suite** section, copy the appropriate URL(s) as per your requirement.
-1. Click **Save** button.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
- ![Configure Single Sign-On Save button](./media/foreseecxsuite-tutorial/tutorial_general_400.png)
+ a. Login URL
-1. To configure single sign-on on **ForeSee CX Suite** side, you need to send the downloaded **Metadata XML** to [ForeSee CX Suite support team](mailto:support@foresee.com). They set this setting to have the SAML SSO connection set properly on both sides.
+ b. Azure AD Identifier
-### Create an Azure AD test user
-
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ c. Logout URL
- ![Create an Azure AD test user][100]
+### Configure ForeSee CX Suite Single Sign-On
-**To create a test user in Azure AD, perform the following steps:**
+To configure single sign-on on **ForeSee CX Suite** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [ForeSee CX Suite support team](mailto:support@foresee.com). They set this setting to have the SAML SSO connection set properly on both sides.
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+### Create an Azure AD test user
- ![The Azure Active Directory button](./media/foreseecxsuite-tutorial/create_aaduser_01.png)
-
-1. To display the list of users, go to **Users and groups**, and then click **All users**.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- ![The "Users and groups" and "All users" links](./media/foreseecxsuite-tutorial/create_aaduser_02.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-1. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+ ![The "Users and groups" and "All users" links](common/users.png)
- ![The Add button](./media/foreseecxsuite-tutorial/create_aaduser_03.png)
+2. Select **New user** at the top of the screen.
-1. In the **User** dialog box, perform the following steps:
+ ![New user Button](common/new-user.png)
- ![The User dialog box](./media/foreseecxsuite-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** box, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** box, type the email address of user Britta Simon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-### Create a ForeSee CX Suite test user
-
-In this section, you create a user called Britta Simon in ForeSee CX Suite. Work with [ForeSee CX Suite support team](mailto:support@foresee.com) to add the users or the domain which is needed to be whitelisted in the ForeSee CX Suite platform. If the domain is added by the team, users will get automatically provisioned to the ForeSee CX Suite platform. Users must be created and activated before you use single sign-on.
-
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to ForeSee CX Suite.
-![Assign the user role][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **ForeSee CX Suite**.
-**To assign Britta Simon to ForeSee CX Suite, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **ForeSee CX Suite**.
- ![Assign User][201]
+ ![The ForeSee CX Suite link in the Applications list](common/all-applications.png)
-1. In the applications list, select **ForeSee CX Suite**.
+3. In the menu on the left, select **Users and groups**.
- ![The ForeSee CX Suite link in the Applications list](./media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![The "Users and groups" link][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![The Add Assignment pane][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Select** button on **Users and groups** dialog.
+### Create ForeSee CX Suite test user
-1. Click **Assign** button on **Add Assignment** dialog.
+In this section, you create a user called Britta Simon in ForeSee CX Suite. Work with [ForeSee CX Suite support team](mailto:support@foresee.com) to add the users or the domain which is needed to be whitelisted in the ForeSee CX Suite platform. If the domain is added by the team, users will get automatically provisioned to the ForeSee CX Suite platform. Users must be created and activated before you use single sign-on.
-### Test single sign-on
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the ForeSee CX Suite tile in the Access Panel, you should get automatically signed-on to your ForeSee CX Suite application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
-
-## Additional resources
-
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+When you click the ForeSee CX Suite tile in the Access Panel, you should be automatically signed in to the ForeSee CX Suite for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional Resources
-[1]: ./media/foreseecxsuite-tutorial/tutorial_general_01.png
-[2]: ./media/foreseecxsuite-tutorial/tutorial_general_02.png
-[3]: ./media/foreseecxsuite-tutorial/tutorial_general_03.png
-[4]: ./media/foreseecxsuite-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/foreseecxsuite-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/foreseecxsuite-tutorial/tutorial_general_200.png
-[201]: ./media/foreseecxsuite-tutorial/tutorial_general_201.png
-[202]: ./media/foreseecxsuite-tutorial/tutorial_general_202.png
-[203]: ./media/foreseecxsuite-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/fulcrum-tutorial.md b/articles/active-directory/saas-apps/fulcrum-tutorial.md
index 47020da4a916b..2fd18dbae0e23 100644
--- a/articles/active-directory/saas-apps/fulcrum-tutorial.md
+++ b/articles/active-directory/saas-apps/fulcrum-tutorial.md
@@ -226,9 +226,9 @@ When you click the Fulcrum tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/getthere-tutorial.md b/articles/active-directory/saas-apps/getthere-tutorial.md
index aea1ec1c4a46a..49928caa24a5e 100644
--- a/articles/active-directory/saas-apps/getthere-tutorial.md
+++ b/articles/active-directory/saas-apps/getthere-tutorial.md
@@ -226,9 +226,9 @@ When you click the GetThere tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/github-provisioning-tutorial.md b/articles/active-directory/saas-apps/github-provisioning-tutorial.md
index a4adde79ec7f1..70856051b973e 100644
--- a/articles/active-directory/saas-apps/github-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/github-provisioning-tutorial.md
@@ -14,24 +14,22 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 01/26/2018
+ms.date: 03/27/2019
ms.author: asmalser-msft
ms.collection: M365-identity-device-management
---
-
# Tutorial: Configure GitHub for automatic user provisioning
-
-The objective of this tutorial is to show you the steps you need to perform in GitHub and Azure AD to automatically provision and de-provision user accounts from Azure AD to GitHub.
+The objective of this tutorial is to show you the steps you need to perform in GitHub and Azure AD to automatically provision and de-provision user accounts from Azure AD to GitHub.
## Prerequisites
The scenario outlined in this tutorial assumes that you already have the following items:
-* An Azure Active directory tenant
-* A GitHub organization created in [GitHub Enterprise Cloud](https://help.github.com/articles/github-s-products/#github-enterprise), which requires the [GitHub Enterprise billing plan](https://help.github.com/articles/github-s-billing-plans/#billing-plans-for-organizations)
-* A user account in GitHub with Admin permissions to the organization
+* An Azure Active directory tenant
+* A GitHub organization created in [GitHub Enterprise Cloud](https://help.github.com/articles/github-s-products/#github-enterprise), which requires the [GitHub Enterprise billing plan](https://help.github.com/articles/github-s-billing-plans/#billing-plans-for-organizations)
+* A user account in GitHub with Admin permissions to the organization
> [!NOTE]
> The Azure AD provisioning integration relies on the [GitHub SCIM API](https://developer.github.com/v3/scim/), which is available to [GitHub Enterprise Cloud](https://help.github.com/articles/github-s-products/#github-enterprise) customers on the [GitHub Enterprise billing plan](https://help.github.com/articles/github-s-billing-plans/#billing-plans-for-organizations).
@@ -46,22 +44,19 @@ Before configuring and enabling the provisioning service, you need to decide wha
### Important tips for assigning users to GitHub
-* It is recommended that a single Azure AD user is assigned to GitHub to test the provisioning configuration. Additional users and/or groups may be assigned later.
-
-* When assigning a user to GitHub, you must select either the **User** role, or another valid application-specific role (if available) in the assignment dialog. The **Default Access** role does not work for provisioning, and these users are skipped.
+* It is recommended that a single Azure AD user is assigned to GitHub to test the provisioning configuration. Additional users and/or groups may be assigned later.
+* When assigning a user to GitHub, you must select either the **User** role, or another valid application-specific role (if available) in the assignment dialog. The **Default Access** role does not work for provisioning, and these users are skipped.
-## Configuring user provisioning to GitHub
+## Configuring user provisioning to GitHub
This section guides you through connecting your Azure AD to GitHub's user account provisioning API, and configuring the provisioning service to create, update, and disable assigned user accounts in GitHub based on user and group assignment in Azure AD.
> [!TIP]
> You may also choose to enabled SAML-based Single Sign-On for GitHub, following the instructions provided in [Azure portal](https://portal.azure.com). Single sign-on can be configured independently of automatic provisioning, though these two features compliment each other.
-
### Configure automatic user account provisioning to GitHub in Azure AD
-
1. In the [Azure portal](https://portal.azure.com), browse to the **Azure Active Directory > Enterprise Apps > All applications** section.
2. If you have already configured GitHub for single sign-on, search for your instance of GitHub using the search field. Otherwise, select **Add** and search for **GitHub** in the application gallery. Select GitHub from the search results, and add it to your list of applications.
@@ -84,7 +79,7 @@ This section guides you through connecting your Azure AD to GitHub's user accoun
8. Enter the email address of a person or group who should receive provisioning error notifications in the **Notification Email** field, and check the checkbox "Send an email notification when a failure occurs."
-9. Click **Save**.
+9. Click **Save**.
10. Under the Mappings section, select **Synchronize Azure Active Directory Users to GitHub**.
@@ -92,13 +87,12 @@ This section guides you through connecting your Azure AD to GitHub's user accoun
12. To enable the Azure AD provisioning service for GitHub, change the **Provisioning Status** to **On** in the **Settings** section
-13. Click **Save**.
+13. Click **Save**.
This operation starts the initial synchronization of any users and/or groups assigned to GitHub in the Users and Groups section. The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity logs, which describe all actions performed by the provisioning service.
For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](../manage-apps/check-status-user-account-provisioning.md).
-
## Additional resources
* [Managing user account provisioning for Enterprise Apps](../manage-apps/configure-automatic-user-provisioning-portal.md)
diff --git a/articles/active-directory/saas-apps/github-tutorial.md b/articles/active-directory/saas-apps/github-tutorial.md
index 9dde716a223b0..04081d9707c1d 100644
--- a/articles/active-directory/saas-apps/github-tutorial.md
+++ b/articles/active-directory/saas-apps/github-tutorial.md
@@ -63,7 +63,7 @@ To configure the integration of GitHub into Azure AD, you need to add GitHub fro
![The New application button](common/add-new-app.png)
-4. In the search box, type **GitHub**, select **GitHub** from result panel then click **Add** button to add the application.
+4. In the search box, type **GitHub**, select **GitHub.com** from result panel then click **Add** button to add the application.
![GitHub in the results list](common/search-new-app.png)
diff --git a/articles/active-directory/saas-apps/glassfrog-tutorial.md b/articles/active-directory/saas-apps/glassfrog-tutorial.md
index b4df9e35fa915..4537fed720f23 100644
--- a/articles/active-directory/saas-apps/glassfrog-tutorial.md
+++ b/articles/active-directory/saas-apps/glassfrog-tutorial.md
@@ -4,186 +4,192 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 7cf5dae6-32d6-418e-8ef2-b2041e686086
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 10/17/2018
+ms.topic: tutorial
+ms.date: 04/01/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with GlassFrog
In this tutorial, you learn how to integrate GlassFrog with Azure Active Directory (Azure AD).
-
Integrating GlassFrog with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to GlassFrog.
-- You can enable your users to automatically get signed-on to GlassFrog (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to GlassFrog.
+* You can enable your users to be automatically signed-in to GlassFrog (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with GlassFrog, you need the following items:
-- An Azure AD subscription
-- A GlassFrog single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* GlassFrog single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding GlassFrog from the gallery
-2. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* GlassFrog supports **SP** initiated SSO
## Adding GlassFrog from the gallery
+
To configure the integration of GlassFrog into Azure AD, you need to add GlassFrog from the gallery to your list of managed SaaS apps.
**To add GlassFrog from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![image](./media/glassfrog-tutorial/selectazuread.png)
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![image](./media/glassfrog-tutorial/a_select_app.png)
-
3. To add new application, click **New application** button on the top of dialog.
- ![image](./media/glassfrog-tutorial/a_new_app.png)
+ ![The New application button](common/add-new-app.png)
4. In the search box, type **GlassFrog**, select **GlassFrog** from result panel then click **Add** button to add the application.
- ![image](./media/glassfrog-tutorial/tutorial_glassfrog_addfromgallery.png)
+ ![GlassFrog in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with GlassFrog based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in GlassFrog is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in GlassFrog needs to be established.
+In this section, you configure and test Azure AD single sign-on with GlassFrog based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in GlassFrog needs to be established.
To configure and test Azure AD single sign-on with GlassFrog, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-3. **[Create a GlassFrog test user](#create-a-glassfrog-test-user)** - to have a counterpart of Britta Simon in GlassFrog that is linked to the Azure AD representation of user.
+2. **[Configure GlassFrog Single Sign-On](#configure-glassfrog-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+5. **[Create GlassFrog test user](#create-glassfrog-test-user)** - to have a counterpart of Britta Simon in GlassFrog that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your GlassFrog application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with GlassFrog, perform the following steps:**
+To configure Azure AD single sign-on with GlassFrog, perform the following steps:
1. In the [Azure portal](https://portal.azure.com/), on the **GlassFrog** application integration page, select **Single sign-on**.
- ![image](./media/glassfrog-tutorial/b1_b2_select_sso.png)
+ ![Configure single sign-on link](common/select-sso.png)
-2. On the **Select a Single sign-on method** dialog, Click **Select** for **SAML** mode to enable single sign-on.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![image](./media/glassfrog-tutorial/b1_b2_saml_sso.png)
+ ![Single sign-on select mode](common/select-saml-option.png)
-3. On the **Set up Single Sign-On with SAML** page, click **Edit** button to open **Basic SAML Configuration** dialog.
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![image](./media/glassfrog-tutorial/b1-domains_and_urlsedit.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
4. On the **Basic SAML Configuration** section, perform the following steps:
- In the **Sign-on URL** text box, type a URL using the following pattern:
+ ![GlassFrog Domain and URLs single sign-on information](common/sp-signonurl.png)
+
+ In the **Sign-on URL** text box, type a URL using the following pattern:
`https://app.glassfrog.com/people/sso?org_id=`
- ![image](./media/glassfrog-tutorial/tutorial_glassfrog_url.png)
+ > [!NOTE]
+ > The value is not real. Update the value with the actual Sign-On URL. Contact [GlassFrog Client support team](mailto:support@glassfrog.com) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/metadataxml.png)
- > [!NOTE]
- > The Sign-on URL value is not real. Update the value with the actual Sign-On URL. Contact [GlassFrog support team](https://support.glassfrog.com/support/solutions/9000107654) to get the value.
-
-5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** and save it on your computer.
+6. On the **Set up GlassFrog** section, copy the appropriate URL(s) as per your requirement.
- ![image](./media/glassfrog-tutorial/tutorial_glassfrog_certificate.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-6. To configure single sign-on on **GlassFrog** side, you need to send the downloaded **Federation Metadata XML** to [GlassFrog support team](mailto:support@alchemy.fr). They set this setting to have the SAML SSO connection set properly on both sides.
+ a. Login URL
-### Create an Azure AD test user
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure GlassFrog Single Sign-On
+
+To configure single sign-on on **GlassFrog** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [GlassFrog support team](mailto:support@glassfrog.com). They set this setting to have the SAML SSO connection set properly on both sides.
+
+### Create an Azure AD test user
The objective of this section is to create a test user in the Azure portal called Britta Simon.
1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![image](./media/glassfrog-tutorial/d_users_and_groups.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
2. Select **New user** at the top of the screen.
- ![image](./media/glassfrog-tutorial/d_adduser.png)
+ ![New user Button](common/new-user.png)
3. In the User properties, perform the following steps.
- ![image](./media/glassfrog-tutorial/d_userproperties.png)
+ ![The User dialog box](common/user-properties.png)
a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
-
- c. Select **Properties**, select the **Show password** check box, and then write down the value that's displayed in the Password box.
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
- d. Select **Create**.
-
-### Create a GlassFrog test user
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-In this section, you create a user called Britta Simon in GlassFrog. Work with [GlassFrog support team](https://support.glassfrog.com/support/solutions/9000107654) to add the users in the GlassFrog platform. Users must be created and activated before you use single sign-on.
+ d. Click **Create**.
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to GlassFrog.
-1. In the Azure portal, select **Enterprise Applications**, select **All applications**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **GlassFrog**.
- ![image](./media/glassfrog-tutorial/d_all_applications.png)
+ ![Enterprise applications blade](common/enterprise-applications.png)
2. In the applications list, select **GlassFrog**.
- ![image](./media/glassfrog-tutorial/tutorial_glassfrog_app.png)
+ ![The GlassFrog link in the Applications list](common/all-applications.png)
3. In the menu on the left, select **Users and groups**.
- ![image](./media/glassfrog-tutorial/d_leftpaneusers.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-4. Select the **Add** button, then select **Users and groups** in the **Add Assignment** dialog.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![image](./media/glassfrog-tutorial/d_assign_user.png)
+ ![The Add Assignment pane](common/add-assign-user.png)
-4. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-5. In the **Add Assignment** dialog select the **Assign** button.
-
-### Test single sign-on
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create GlassFrog test user
+
+In this section, you create a user called Britta Simon in GlassFrog. Work with [GlassFrog support team](mailto:support@glassfrog.com) to add the users in the GlassFrog platform. Users must be created and activated before you use single sign-on.
+
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the GlassFrog tile in the Access Panel, you should get automatically signed-on to your GlassFrog application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../active-directory-saas-access-panel-introduction.md).
+When you click the GlassFrog tile in the Access Panel, you should be automatically signed in to the GlassFrog for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+
+## Additional Resources
-## Additional resources
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/google-apps-provisioning-tutorial.md b/articles/active-directory/saas-apps/google-apps-provisioning-tutorial.md
index 3ffcafc5a781f..bb5baa75ef0e2 100644
--- a/articles/active-directory/saas-apps/google-apps-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/google-apps-provisioning-tutorial.md
@@ -13,7 +13,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 01/26/2018
+ms.date: 03/27/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -66,78 +66,77 @@ This section guides you through the process of connecting your Azure AD to the u
> Another viable option for automating user provisioning to G Suite is to use [Google Apps Directory Sync (GADS)](https://support.google.com/a/answer/106368?hl=en). GADS provisions your on-premises Active Directory identities to G Suite. In contrast, the solution in this tutorial provisions your Azure Active Directory (cloud) users and email-enabled groups to G Suite.
1. Sign in to the [Google Apps Admin console](https://admin.google.com/) with your administrator account, and then select **Security**. If you don't see the link, it might be hidden under the **More Controls** menu at the bottom of the screen.
-
+
![Select security.][10]
1. On the **Security** page, select **API Reference**.
-
+
![Select API Reference.][15]
1. Select **Enable API access**.
-
+
![Select API Reference.][16]
> [!IMPORTANT]
> For every user that you intend to provision to G Suite, their user name in Azure Active Directory *must* be tied to a custom domain. For example, user names that look like bob@contoso.onmicrosoft.com are not accepted by G Suite. On the other hand, bob@contoso.com is accepted. You can change an existing user's domain by editing their properties in Azure AD. We've included instructions for how to set a custom domain for both Azure Active Directory and G Suite in the following steps.
-
+
1. If you haven't added a custom domain name to your Azure Active Directory yet, then take the following steps:
- a. In the [Azure portal](https://portal.azure.com), on the left navigation pane, select **Active Directory**. In the directory list, select your directory.
+ a. In the [Azure portal](https://portal.azure.com), on the left navigation pane, select **Active Directory**. In the directory list, select your directory.
b. Select **Domain name** on the left navigation pane, and then select **Add**.
-
- ![Domain](./media/google-apps-provisioning-tutorial/domain_1.png)
- ![Domain add](./media/google-apps-provisioning-tutorial/domain_2.png)
+ ![Domain](./media/google-apps-provisioning-tutorial/domain_1.png)
+
+ ![Domain add](./media/google-apps-provisioning-tutorial/domain_2.png)
c. Type your domain name into the **Domain name** field. This domain name should be the same domain name that you intend to use for G Suite. Then select the **Add Domain** button.
-
- ![Domain name](./media/google-apps-provisioning-tutorial/domain_3.png)
- d. Select **Next** to go to the verification page. To verify that you own this domain, edit the domain's DNS records according to the values that are provided on this page. You might choose to verify by using either **MX records** or **TXT records**, depending on what you select for the **Record Type** option.
-
+ ![Domain name](./media/google-apps-provisioning-tutorial/domain_3.png)
+
+ d. Select **Next** to go to the verification page. To verify that you own this domain, edit the domain's DNS records according to the values that are provided on this page. You might choose to verify by using either **MX records** or **TXT records**, depending on what you select for the **Record Type** option.
+
For more comprehensive instructions on how to verify domain names with Azure AD, see [Add your own domain name to Azure AD](https://go.microsoft.com/fwLink/?LinkID=278919&clcid=0x409).
-
- ![Domain](./media/google-apps-provisioning-tutorial/domain_4.png)
- e. Repeat the preceding steps for all the domains that you intend to add to your directory.
+ ![Domain](./media/google-apps-provisioning-tutorial/domain_4.png)
- > [!NOTE]
- > For user provisioning, the custom domain must match the domain name of the source Azure AD. If they do not match, you may be able to solve the problem by implementing attribute mapping customization.
+ e. Repeat the preceding steps for all the domains that you intend to add to your directory.
+ > [!NOTE]
+ > For user provisioning, the custom domain must match the domain name of the source Azure AD. If they do not match, you may be able to solve the problem by implementing attribute mapping customization.
1. Now that you have verified all your domains with Azure AD, you must verify them again with Google Apps. For each domain that isn't already registered with Google, take the following steps:
-
+
a. In the [Google Apps Admin Console](https://admin.google.com/), select **Domains**.
-
- ![Select Domains][20]
+
+ ![Select Domains][20]
b. Select **Add a domain or a domain alias**.
-
- ![Add a new domain][21]
+
+ ![Add a new domain][21]
c. Select **Add another domain**, and then type in the name of the domain that you want to add.
-
- ![Type in your domain name][22]
+
+ ![Type in your domain name][22]
d. Select **Continue and verify domain ownership**. Then follow the steps to verify that you own the domain name. For comprehensive instructions on how to verify your domain with Google, see [Verify your site ownership with Google Apps](https://support.google.com/webmasters/answer/35179).
e. Repeat the preceding steps for any additional domains that you intend to add to Google Apps.
-
- > [!WARNING]
- > If you change the primary domain for your G Suite tenant, and if you have already configured single sign-on with Azure AD, then you have to repeat step #3 under Step 2: Enable single sign-on.
-
+
+ > [!WARNING]
+ > If you change the primary domain for your G Suite tenant, and if you have already configured single sign-on with Azure AD, then you have to repeat step #3 under Step 2: Enable single sign-on.
+
1. In the [Google Apps Admin console](https://admin.google.com/), select **Admin Roles**.
-
- ![Select Google Apps][26]
+
+ ![Select Google Apps][26]
1. Determine which admin account you want to use to manage user provisioning. For the **admin role** of that account, edit the **Privileges** for that role. Make sure to enable all **Admin API Privileges** so that this account can be used for provisioning.
-
- ![Select Google Apps][27]
-
+
+ ![Select Google Apps][27]
+
> [!NOTE]
> If you are configuring a production environment, the best practice is to create an admin account in G Suite specifically for this step. These accounts must have an admin role associated with them that has the necessary API privileges.
-
+
1. In the [Azure portal](https://portal.azure.com), browse to the **Azure Active Directory** > **Enterprise Apps** > **All applications** section.
1. If you have already configured G Suite for single sign-on, search for your instance of G Suite by using the search field. Otherwise, select **Add**, and then search for **G Suite** or **Google Apps** in the application gallery. Select your app from the search results, and then add it to your list of applications.
@@ -146,13 +145,13 @@ This section guides you through the process of connecting your Azure AD to the u
1. Set the **Provisioning Mode** to **Automatic**.
- ![Provisioning](./media/google-apps-provisioning-tutorial/provisioning.png)
+ ![Provisioning](./media/google-apps-provisioning-tutorial/provisioning.png)
1. Under the **Admin Credentials** section, select **Authorize**. It opens a Google authorization dialog box in a new browser window.
1. Confirm that you want to give Azure Active Directory permission to make changes to your G Suite tenant. Select **Accept**.
-
- ![Confirm permissions.][28]
+
+ ![Confirm permissions.][28]
1. In the Azure portal, select **Test Connection** to ensure that Azure AD can connect to your app. If the connection fails, ensure that your G Suite account has Team Admin permissions. Then try the **Authorize** step again.
@@ -178,8 +177,6 @@ For more information on how to read the Azure AD provisioning logs, see [Reporti
* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
* [Configure single sign-on](google-apps-tutorial.md)
-
-
[10]: ./media/google-apps-provisioning-tutorial/gapps-security.png
diff --git a/articles/active-directory/saas-apps/greenorbit-tutorial.md b/articles/active-directory/saas-apps/greenorbit-tutorial.md
new file mode 100644
index 0000000000000..94f65580f9b25
--- /dev/null
+++ b/articles/active-directory/saas-apps/greenorbit-tutorial.md
@@ -0,0 +1,201 @@
+---
+title: 'Tutorial: Azure Active Directory integration with GreenOrbit | Microsoft Docs'
+description: Learn how to configure single sign-on between Azure Active Directory and GreenOrbit.
+services: active-directory
+documentationCenter: na
+author: jeevansd
+manager: mtillman
+ms.reviewer: barbkess
+
+ms.assetid: 93d37c7a-9322-4024-8eec-d57e0317eb10
+ms.service: active-directory
+ms.subservice: saas-app-tutorial
+ms.workload: identity
+ms.tgt_pltfrm: na
+ms.devlang: na
+ms.topic: tutorial
+ms.date: 04/08/2019
+ms.author: jeedes
+
+ms.collection: M365-identity-device-management
+---
+# Tutorial: Azure Active Directory integration with GreenOrbit
+
+In this tutorial, you learn how to integrate GreenOrbit with Azure Active Directory (Azure AD).
+Integrating GreenOrbit with Azure AD provides you with the following benefits:
+
+* You can control in Azure AD who has access to GreenOrbit.
+* You can enable your users to be automatically signed-in to GreenOrbit (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
+
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+
+## Prerequisites
+
+To configure Azure AD integration with GreenOrbit, you need the following items:
+
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* GreenOrbit single sign-on enabled subscription
+
+## Scenario description
+
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* GreenOrbit supports **SP** initiated SSO
+
+* GreenOrbit supports **Just In Time** user provisioning
+
+## Adding GreenOrbit from the gallery
+
+To configure the integration of GreenOrbit into Azure AD, you need to add GreenOrbit from the gallery to your list of managed SaaS apps.
+
+**To add GreenOrbit from the gallery, perform the following steps:**
+
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
+
+ ![The Azure Active Directory button](common/select-azuread.png)
+
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
+
+3. To add a new application, click the **New application** button at the top of the dialog.
+
+ ![The New application button](common/add-new-app.png)
+
+4. In the search box, type **GreenOrbit**, select **GreenOrbit** from the result panel then click the **Add** button to add the application.
+
+ ![GreenOrbit in the results list](common/search-new-app.png)
+
+## Configure and test Azure AD single sign-on
+
+In this section, you configure and test Azure AD single sign-on with GreenOrbit based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in GreenOrbit needs to be established.
+
+To configure and test Azure AD single sign-on with GreenOrbit, you need to complete the following building blocks:
+
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure GreenOrbit Single Sign-On](#configure-greenorbit-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create GreenOrbit test user](#create-greenorbit-test-user)** - to have a counterpart of Britta Simon in GreenOrbit that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with GreenOrbit, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **GreenOrbit** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+
+ ![Single sign-on select mode](common/select-saml-option.png)
+
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+4. On the **Basic SAML Configuration** section, perform the following steps:
+
+ ![GreenOrbit Domain and URLs single sign-on information](common/sp-identifier.png)
+
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://.GreenOrbit.com`
+
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+ `http://.trial.GreenOrbit.com`
+
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign on URL and Identifier. Contact [GreenOrbit Client support team](mailto:support@greenorbit.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/certificatebase64.png)
+
+6. On the **Set up GreenOrbit** section, copy the appropriate URL(s) as per your requirement.
+
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
+
+ a. Login URL
+
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure GreenOrbit Single Sign-On
+
+To configure single sign-on on **GreenOrbit** side, you need to send the downloaded **Certificate (Base64)** and appropriate copied URLs from Azure portal to [GreenOrbit support team](mailto:support@greenorbit.com). They set this setting to have the SAML SSO connection set properly on both sides.
+
+### Create an Azure AD test user
+
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
+
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
+
+ ![The "Users and groups" and "All users" links](common/users.png)
+
+2. Select **New user** at the top of the screen.
+
+ ![New user Button](common/new-user.png)
+
+3. In the User properties, perform the following steps.
+
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
+
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
+
+### Assign the Azure AD test user
+
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to GreenOrbit.
+
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **GreenOrbit**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **GreenOrbit**.
+
+ ![The GreenOrbit link in the Applications list](common/all-applications.png)
+
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
+
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+
+ ![The Add Assignment pane](common/add-assign-user.png)
+
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create GreenOrbit test user
+
+In this section, a user called Britta Simon is created in GreenOrbit. GreenOrbit supports just-in-time user provisioning, which is enabled by default. There is no action item for you in this section. If a user doesn't already exist in GreenOrbit, a new one is created after authentication.
+
+### Test single sign-on
+
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+
+When you click the GreenOrbit tile in the Access Panel, you should be automatically signed in to the GreenOrbit for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+
+## Additional Resources
+
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
+
diff --git a/articles/active-directory/saas-apps/grovo-tutorial.md b/articles/active-directory/saas-apps/grovo-tutorial.md
index 6e86df24ee211..8f700de92b610 100644
--- a/articles/active-directory/saas-apps/grovo-tutorial.md
+++ b/articles/active-directory/saas-apps/grovo-tutorial.md
@@ -260,9 +260,9 @@ When you click the Grovo tile in the Access Panel, you should be automatically s
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/hackerone-tutorial.md b/articles/active-directory/saas-apps/hackerone-tutorial.md
index 79a6b758b669e..e4ca76e3d05af 100644
--- a/articles/active-directory/saas-apps/hackerone-tutorial.md
+++ b/articles/active-directory/saas-apps/hackerone-tutorial.md
@@ -143,9 +143,9 @@ To configure Azure AD single sign-on with HackerOne, perform the following steps
a. In the **Email Domain** textbox, type a registered domain.
- b. In **Single Sign On URL** textboxes, paste the value of **Login URL** which you have copied from Azure portal.
+ b. In **Single Sign On URL** textboxes, paste the value of **Login URL** which you have copied from Azure portal.
- c. Open your downloaded **Certificate file** from Azure portal into Notepad, copy the content of it into your clipboard, and then paste it to the **X509 Certificate** textbox.
+ c. Open your downloaded **Certificate file** from Azure portal into Notepad, copy the content of it into your clipboard, and then paste it to the **X509 Certificate** textbox.
d. Click **Save**.
diff --git a/articles/active-directory/saas-apps/helpscout-tutorial.md b/articles/active-directory/saas-apps/helpscout-tutorial.md
index c8474760add35..3c51e45f68b8e 100644
--- a/articles/active-directory/saas-apps/helpscout-tutorial.md
+++ b/articles/active-directory/saas-apps/helpscout-tutorial.md
@@ -107,7 +107,7 @@ To configure Azure AD single sign-on with Help Scout, perform the following step
b. **Reply URL** is the **Post-back URL (Assertion Consumer Service URL)** from Help Scout, starts with `https://`
> [!NOTE]
- > The values in these URLs are for demonstration only. You need to update these values from actual Reply URL and Identifier. You get these values from the **Single Sign-On** tab under Authentication section, which is explained later in the tutorial.
+ > The values in these URLs are for demonstration only. You need to update these values from actual Reply URL and Identifier. You get these values from the **Single Sign-On** tab under Authentication section, which is explained later in the tutorial.
5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
@@ -153,7 +153,7 @@ To configure Azure AD single sign-on with Help Scout, perform the following step
![Configure Single Sign-On](./media/helpscout-tutorial/settings4.png)
- a. In **Single Sign-On URL** textbox, paste the value of **Login URL**, which you have copied from Azure portal.
+ a. In **Single Sign-On URL** textbox, paste the value of **Login URL**, which you have copied from Azure portal.
b. Click **Upload Certificate** to upload the **Certificate(Base64)** downloaded from Azure portal.
diff --git a/articles/active-directory/saas-apps/heybuddy-tutorial.md b/articles/active-directory/saas-apps/heybuddy-tutorial.md
index 8dfc65c35d90b..2168cc3412c4f 100644
--- a/articles/active-directory/saas-apps/heybuddy-tutorial.md
+++ b/articles/active-directory/saas-apps/heybuddy-tutorial.md
@@ -217,8 +217,8 @@ When you click the HeyBuddy tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/hightail-tutorial.md b/articles/active-directory/saas-apps/hightail-tutorial.md
index 8ee3177643a38..67ebb0108b68d 100644
--- a/articles/active-directory/saas-apps/hightail-tutorial.md
+++ b/articles/active-directory/saas-apps/hightail-tutorial.md
@@ -253,8 +253,8 @@ When you click the Hightail tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/hrworks-single-sign-on-tutorial.md b/articles/active-directory/saas-apps/hrworks-single-sign-on-tutorial.md
index 96c3f0a9b8a82..68f2610400669 100644
--- a/articles/active-directory/saas-apps/hrworks-single-sign-on-tutorial.md
+++ b/articles/active-directory/saas-apps/hrworks-single-sign-on-tutorial.md
@@ -217,9 +217,9 @@ When you click the HRworks Single Sign-On tile in the Access Panel, you should b
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/ibmopenpages-tutorial.md b/articles/active-directory/saas-apps/ibmopenpages-tutorial.md
index 0c4776eb87cf4..6934eec054133 100644
--- a/articles/active-directory/saas-apps/ibmopenpages-tutorial.md
+++ b/articles/active-directory/saas-apps/ibmopenpages-tutorial.md
@@ -191,8 +191,8 @@ When you click the IBM OpenPages tile in the Access Panel, you should be automat
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/igloo-software-tutorial.md b/articles/active-directory/saas-apps/igloo-software-tutorial.md
index 0a24a2efdee96..4f0fcc649fc5d 100644
--- a/articles/active-directory/saas-apps/igloo-software-tutorial.md
+++ b/articles/active-directory/saas-apps/igloo-software-tutorial.md
@@ -247,8 +247,8 @@ When you click the Igloo Software tile in the Access Panel, you should be automa
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/ilms-tutorial.md b/articles/active-directory/saas-apps/ilms-tutorial.md
index 8ba9f937bf4ed..99e6fad0519ad 100644
--- a/articles/active-directory/saas-apps/ilms-tutorial.md
+++ b/articles/active-directory/saas-apps/ilms-tutorial.md
@@ -292,8 +292,8 @@ When you click the iLMS tile in the Access Panel, you should be automatically si
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/imagerelay-tutorial.md b/articles/active-directory/saas-apps/imagerelay-tutorial.md
index 572d99bbe4c4f..3ba03065ee58f 100644
--- a/articles/active-directory/saas-apps/imagerelay-tutorial.md
+++ b/articles/active-directory/saas-apps/imagerelay-tutorial.md
@@ -255,8 +255,8 @@ When you click the Image Relay tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/imageworks-tutorial.md b/articles/active-directory/saas-apps/imageworks-tutorial.md
index 614d89ccbd32c..545453f4c81bd 100644
--- a/articles/active-directory/saas-apps/imageworks-tutorial.md
+++ b/articles/active-directory/saas-apps/imageworks-tutorial.md
@@ -191,8 +191,8 @@ When you click the IMAGE WORKS tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/impacriskmanager-tutorial.md b/articles/active-directory/saas-apps/impacriskmanager-tutorial.md
index 27e9b1527399f..46803366abfd5 100644
--- a/articles/active-directory/saas-apps/impacriskmanager-tutorial.md
+++ b/articles/active-directory/saas-apps/impacriskmanager-tutorial.md
@@ -213,8 +213,8 @@ When you click the IMPAC Risk Manager tile in the Access Panel, you should be au
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/infinitecampus-tutorial.md b/articles/active-directory/saas-apps/infinitecampus-tutorial.md
index af9b7b678935d..810e27d218659 100644
--- a/articles/active-directory/saas-apps/infinitecampus-tutorial.md
+++ b/articles/active-directory/saas-apps/infinitecampus-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 3995b544-e751-4e0f-ab8b-c9a3862da6ba
ms.service: active-directory
@@ -13,47 +13,36 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 10/30/2018
+ms.topic: tutorial
+ms.date: 03/28/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Infinite Campus
In this tutorial, you learn how to integrate Infinite Campus with Azure Active Directory (Azure AD).
-
Integrating Infinite Campus with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Infinite Campus.
-- You can enable your users to automatically get signed-on to Infinite Campus (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Infinite Campus.
+* You can enable your users to be automatically signed-in to Infinite Campus (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md)
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Infinite Campus, you need the following items:
-- An Azure AD subscription
-- An Infinite Campus single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
-- At minimum, you need to be an Azure Active Directory administrator, and have a Campus Product Security Role of "Student Information System (SIS)" to complete the configuration.
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Infinite Campus single sign-on enabled subscription
+* At minimum, you need to be an Azure Active Directory administrator, and have a Campus Product Security Role of "Student Information System (SIS)" to complete the configuration.
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-1. Adding Infinite Campus from the gallery
-2. Configuring and testing Azure AD single sign-on
+* Infinite Campus supports **SP** initiated SSO
## Adding Infinite Campus from the gallery
@@ -61,71 +50,55 @@ To configure the integration of Infinite Campus into Azure AD, you need to add I
**To add Infinite Campus from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
-3. To add new application, click **New application** button on the top of dialog.
+3. To add a new application, click the **New application** button at the top of the dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
-4. In the search box, type **Infinite Campus**, select **Infinite Campus** from result panel then click **Add** button to add the application.
+4. In the search box, type **Infinite Campus**, select **Infinite Campus** from the result panel then click the **Add** button to add the application.
- ![Infinite Campus in the results list](./media/infinitecampus-tutorial/tutorial_infinitecampus_addfromgallery.png)
+ ![Infinite Campus in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Infinite Campus based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in Infinite Campus is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Infinite Campus needs to be established.
+In this section, you configure and test Azure AD single sign-on with Infinite Campus based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Infinite Campus needs to be established.
To configure and test Azure AD single sign-on with Infinite Campus, you need to complete the following building blocks:
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-3. **[Creating an Infinite Campus test user](#creating-an-infinite-campus-test-user)** - to have a counterpart of Britta Simon in Infinite Campus that is linked to the Azure AD representation of user.
-4. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Testing single sign-on](#testing-single-sign-on)** - to verify whether the configuration works.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Infinite Campus Single Sign-On](#configure-infinite-campus-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Infinite Campus test user](#create-infinite-campus-test-user)** - to have a counterpart of Britta Simon in Infinite Campus that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-### Configuring Azure AD single sign-on
+### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Infinite Campus application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with Infinite Campus, perform the following steps:**
+To configure Azure AD single sign-on with Infinite Campus, perform the following steps:
-1. In the Azure portal, on the **Infinite Campus** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **Infinite Campus** application integration page, select **Single sign-on**.
- ![Configure single sign-on link][4]
+ ![Configure single sign-on link](common/select-sso.png)
-2. On the **Select a Single sign-on method** dialog, Click **Select** for **SAML** mode to enable single sign-on.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On](common/tutorial_general_301.png)
+ ![Single sign-on select mode](common/select-saml-option.png)
3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Configure Single Sign-On](common/editconfigure.png)
-
-4. On the **Basic SAML Configuration** section, if you have a **Service Provider metadata file** exported from Infinite Campus, complete steps 4.a through 4.d, and then skip to step 11.c. If you don't have a Service Provider Metadata file, skip to step 5.
-
- a. Click **Upload metadata file**.
-
- ![image](common/b9_saml.png)
-
- b. Click on **folder logo** to select the metadata file and click **Upload**.
-
- ![image](common/b9(1)_saml.png)
-
- c. Once the metadata file is successfully uploaded, the **Identifier** and **Reply URL** values get auto populated in **Basic SAML Configuration** section textbox as shown below:
-
- ![image](./media/infinitecampus-tutorial/tutorial_infinitecampus_url.png)
-
- d. In the **Sign-on URL** textbox, type a URL using the following pattern (the domain will vary with Hosting Model): `https://.infinitecampus.com/campus/SSO//SIS`
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
-5. If you do not have **Service Provider metadata file**, perform the following steps (note that the domain will vary with Hosting Model):
+4. On the Basic SAML Configuration section, perform the following steps (note that the domain will vary with Hosting Model, but the **FULLY-QUALIFIED-DOMAIN** value must match your Infinite Campus installation):
a. In the **Sign-on URL** textbox, type a URL using the following pattern: `https://.infinitecampus.com/campus/SSO//SIS`
@@ -133,121 +106,105 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
c. In the **Reply URL** textbox, type a URL using the following pattern: `https://.infinitecampus.com/campus/SSO/`
- ![Infinite Campus Domain and URLs single sign-on information](./media/infinitecampus-tutorial/tutorial_infinitecampus_url1.png)
+ ![Infinite Campus Domain and URLs single sign-on information](common/sp-identifier-reply.png)
-6. On the **SAML Signing Certificate** page, in the **SAML Signing Certificate** section, click the copy **icon** to copy **App Federation Metadata Url** and paste it into notepad.
+5. On the **Set up Single Sign-On with SAML** page, In the **SAML Signing Certificate** section, click copy button to copy **App Federation Metadata Url** and save it on your computer.
- ![The Certificate download link](./media/infinitecampus-tutorial/tutorial_infinitecampus_certificate.png)
+ ![The Certificate download link](common/copy-metadataurl.png)
-7. On the **Set up Infinite Campus** section, use the following values to validate when uploading or utilizing the Azure metadata file/URL.
+### Configure Infinite Campus Single Sign-On
- a. Login URL
+1. In a different web browser window, sign in to Infinite Campus as a Security Administrator.
- b. Azure AD Identifier
-
- c. Logout URL
-
- ![Infinite Campus Configuration](common/configuresection.png)
-
-8. In a different web browser window, login to Infinite Campus as a Security Administrator.
-
-9. On the left side of menu, click **System Administration**.
+2. On the left side of menu, click **System Administration**.
![The Admin](./media/infinitecampus-tutorial/tutorial_infinitecampus_admin.png)
-10. Navigate to **User Security** > **SAML Management** > **SSO Service Provider Configuration**.
+3. Navigate to **User Security** > **SAML Management** > **SSO Service Provider Configuration**.
![The saml](./media/infinitecampus-tutorial/tutorial_infinitecampus_saml.png)
-11. On the **SSO Service Provider Configuration** page, perform the following steps:
+4. On the **SSO Service Provider Configuration** page, perform the following steps:
![The sso](./media/infinitecampus-tutorial/tutorial_infinitecampus_sso.png)
a. Select **Enable SAML Single Sign On**.
-
+
b. Edit the **Optional Attribute Name** to contain **name**
-
- c. On the **Select an option to retrieve Identity Provider (IDP) server data** section, select **Metadata URL**, paste the **App Federation Metadata Url** (from Step 6 above) in the box, and then click **Sync**.
- d. Click on **Service Provider Metadata** link to save the **Service Provider metadata file** on your computer, and upload it in **Basic SAML Configuration** section to auto populate the **Identifier** and **Reply URL** values in the Azure portal (refer to step 4 for upload and automatic population of values, or step 5 for manual entry).
+ c. On the **Select an option to retrieve Identity Provider (IDP) server data** section, select **Metadata URL**, paste the **App Federation Metadata Url** value, which you have copied from the Azure portal in the box, and then click **Sync**.
- e. After clicking **Sync** the values get auto-populated in **SSO Service Provider Configuration** page.
+ d. After clicking **Sync** the values get auto-populated in **SSO Service Provider Configuration** page. These values can be verified to match the values seen in Step 4 above.
- f. Click **Save**.
+ e. Click **Save**.
-### Creating an Azure AD test user
+### Create an Azure AD test user
-The objective of this section is to create a _single_ test user in the Azure portal called Britta Simon.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![Create Azure AD User][100]
+ ![The "Users and groups" and "All users" links](common/users.png)
2. Select **New user** at the top of the screen.
- ![Creating an Azure AD test user](common/create_aaduser_01.png)
+ ![New user Button](common/new-user.png)
3. In the User properties, perform the following steps.
- ![Creating an Azure AD test user](common/create_aaduser_02.png)
+ ![The User dialog box](common/user-properties.png)
- a. In the **Name** field, enter **BrittaSimon**.
+ a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field, type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
-
- c. Select **Properties**, select the **Show password** check box, and then write down the value that's displayed in the Password box.
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
- d. Select **Create**.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-### Creating an Infinite Campus test user
+ d. Click **Create**.
-Infinite Campus has a demographics centered architecture. Please contact [Infinite Campus support team](mailto:sales@infinitecampus.com) to add the users in the Infinite Campus platform.
+### Assign the Azure AD test user
-### Assigning the Azure AD test user
+> [!NOTE]
+> If you want all of your Azure users to have single sign-on access to Infinite Campus and rely on Infinite Campus internal permissions system to control access, you can set the **User Assignment Required** property of the application to No and skip the following steps.
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Infinite Campus.
-1. In the Azure portal, select **Enterprise Applications**, select **All applications**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Infinite Campus**.
- ![Assign User][201]
+ ![Enterprise applications blade](common/enterprise-applications.png)
2. In the applications list, select **Infinite Campus**.
- ![Configure Single Sign-On](./media/infinitecampus-tutorial/tutorial_infinitecampus_app.png)
+ ![The Infinite Campus link in the Applications list](common/all-applications.png)
-3. In the menu on the left, click **Users and groups**.
+3. In the menu on the left, select **Users and groups**.
- ![Assign User][202]
+ ![The "Users and groups" link](common/users-groups-blade.png)
-4. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![Assign User][203]
+ ![The Add Assignment pane](common/add-assign-user.png)
5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-6. In the **Add Assignment** dialog select the **Assign** button.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-### Testing single sign-on
+7. In the **Add Assignment** dialog click the **Assign** button.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+### Create Infinite Campus test user
-When you click the Infinite Campus tile in the Access Panel, you should get automatically signed-on to your Infinite Campus application. If you are logging into the Infinite Campus application in the same browser you are administering Azure AD, ensure you are logged into Azure AD as the test user. For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+Infinite Campus has a demographics centered architecture. Please contact [Infinite Campus support team](mailto:sales@infinitecampus.com) to add the users in the Infinite Campus platform.
-## Additional resources
+### Test single sign-on
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+
+When you click the Infinite Campus tile in the Access Panel, you should be automatically signed in to the Infinite Campus for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional resources
-[1]: common/tutorial_general_01.png
-[2]: common/tutorial_general_02.png
-[3]: common/tutorial_general_03.png
-[4]: common/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: common/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[201]: common/tutorial_general_201.png
-[202]: common/tutorial_general_202.png
-[203]: common/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/infogix-tutorial.md b/articles/active-directory/saas-apps/infogix-tutorial.md
index e14e6b5397690..e34808e04a6f2 100644
--- a/articles/active-directory/saas-apps/infogix-tutorial.md
+++ b/articles/active-directory/saas-apps/infogix-tutorial.md
@@ -232,9 +232,9 @@ When you click the Infogix Data3Sixty Govern tile in the Access Panel, you shoul
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/inkling-tutorial.md b/articles/active-directory/saas-apps/inkling-tutorial.md
index 0d5a9d3579453..fd84031dd9d26 100644
--- a/articles/active-directory/saas-apps/inkling-tutorial.md
+++ b/articles/active-directory/saas-apps/inkling-tutorial.md
@@ -191,8 +191,8 @@ When you click the Inkling tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/insidertrack-tutorial.md b/articles/active-directory/saas-apps/insidertrack-tutorial.md
index b1f8c813a4b04..94e694f93d1c1 100644
--- a/articles/active-directory/saas-apps/insidertrack-tutorial.md
+++ b/articles/active-directory/saas-apps/insidertrack-tutorial.md
@@ -188,8 +188,8 @@ When you click the Insider Track tile in the Access Panel, you should be automat
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/insideview-tutorial.md b/articles/active-directory/saas-apps/insideview-tutorial.md
index f7286b4eee1d0..c5ebe8eed6c1d 100644
--- a/articles/active-directory/saas-apps/insideview-tutorial.md
+++ b/articles/active-directory/saas-apps/insideview-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: c489a7ab-6b1f-4efb-8a66-8bc13bca78c3
ms.service: active-directory
@@ -12,122 +13,117 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/29/2017
+ms.topic: tutorial
+ms.date: 03/20/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with InsideView
In this tutorial, you learn how to integrate InsideView with Azure Active Directory (Azure AD).
-
Integrating InsideView with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to InsideView
-- You can enable your users to automatically get signed-on to InsideView (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to InsideView.
+* You can enable your users to be automatically signed-in to InsideView (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with InsideView, you need the following items:
-- An Azure AD subscription
-- An InsideView single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* InsideView single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding InsideView from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* InsideView supports **IDP** initiated SSO
## Adding InsideView from the gallery
-To configure the integration of InsideView in to Azure AD, you need to add InsideView from the gallery to your list of managed SaaS apps.
+
+To configure the integration of InsideView into Azure AD, you need to add InsideView from the gallery to your list of managed SaaS apps.
**To add InsideView from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **InsideView**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/insideview-tutorial/tutorial_insideview_search.png)
+4. In the search box, type **InsideView**, select **InsideView** from result panel then click **Add** button to add the application.
-1. In the results panel, select **InsideView**, and then click **Add** button to add the application.
+ ![InsideView in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/insideview-tutorial/tutorial_insideview_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with InsideView based on a test user called "Britta Simon."
+In this section, you configure and test Azure AD single sign-on with InsideView based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in InsideView needs to be established.
-For single sign-on to work, Azure AD needs to know what the counterpart user in InsideView is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in InsideView needs to be established.
+To configure and test Azure AD single sign-on with InsideView, you need to complete the following building blocks:
-In InsideView, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure InsideView Single Sign-On](#configure-insideview-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create InsideView test user](#create-insideview-test-user)** - to have a counterpart of Britta Simon in InsideView that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-To configure and test Azure AD single sign-on with InsideView, you need to complete the following building blocks:
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with InsideView, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **InsideView** application integration page, select **Single sign-on**.
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating an InsideView test user](#creating-an-insideview-test-user)** - to have a counterpart of Britta Simon in InsideView that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+ ![Configure single sign-on link](common/select-sso.png)
-### Configuring Azure AD single sign-on
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your InsideView application.
+ ![Single sign-on select mode](common/select-saml-option.png)
-**To configure Azure AD single sign-on with InsideView, perform the following steps:**
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. In the Azure portal, on the **InsideView** application integration page, click **Single sign-on**.
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Configure Single Sign-On][4]
+4. On the **Basic SAML Configuration** section, perform the following steps:
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/insideview-tutorial/tutorial_insideview_samlbase.png)
+ ![InsideView Domain and URLs single sign-on information](common/idp-reply.png)
-1. On the **InsideView Domain and URLs** section, perform the following steps:
+ In the **Reply URL** text box, type a URL using the following pattern:
+ `https://my.insideview.com/iv//login.iv`
- ![Configure Single Sign-On](./media/insideview-tutorial/tutorial_insideview_url.png)
-
- In the **Reply URL** textbox, type a URL using the following pattern: `https://my.insideview.com/iv//login.iv`
+ > [!NOTE]
+ > The value is not real. Update the value with the actual Reply URL. Contact [InsideView Client support team](mailto:support@insideview.com) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
- > [!NOTE]
- > This value is not real. Update this value with the actual Reply URL. Contact [InsideView support team](mailto:support@insideview.com) to get this value.
-
-1. On the **SAML Signing Certificate** section, click **Certificate (Raw)** and then save the certificate file on your computer.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Raw)** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On](./media/insideview-tutorial/tutorial_insideview_certificate.png)
+ ![The Certificate download link](common/certificateraw.png)
-1. Click **Save** button.
+6. On the **Set up InsideView** section, copy the appropriate URL(s) as per your requirement.
- ![Configure Single Sign-On](./media/insideview-tutorial/tutorial_general_400.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-1. On the **InsideView Configuration** section, click **Configure InsideView** to open **Configure sign-on** window. Copy the **SAML Single Sign-On Service URL** from the **Quick Reference section.**
+ a. Login URL
- ![Configure Single Sign-On](./media/insideview-tutorial/tutorial_insideview_configure.png)
+ b. Azure AD Identifier
-1. In a different web browser window, log in to your InsideView company site as an administrator.
+ c. Logout URL
+
+### Configure InsideView Single Sign-On
+
+1. In a different web browser window, sign in to your InsideView company site as an administrator.
1. In the toolbar on the top, click **Admin**, **SingleSignOn Settings**, and then click **Add SAML**.
@@ -136,118 +132,92 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
1. In the **Add a New SAML** section, perform the following steps:
![Add a New SAML](./media/insideview-tutorial/ic794136.png "Add a New SAML")
-
+
a. In the **STS Name** textbox, type a name for your configuration.
- b. In **SamlP/WS-Fed Unsolicited EndPoint** textbox, paste the value of **SAML Single Sign-On Service URL**, which you have copied from Azure portal.
-
+ b. In **SamlP/WS-Fed Unsolicited EndPoint** textbox, paste the value of **Login URL**, which you have copied from Azure portal.
+
c. Open your base-64 encoded certificate, which you have downloaded from Azure portal, copy the content of it into your clipboard, and then paste it to the **STS Certificate** textbox.
d. In the **Crm User Id Mapping** textbox, type `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`.
-
+
e. In the **Crm Email Mapping** textbox, type `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress`.
f. In the **Crm First Name Mapping** textbox, type `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname`.
-
+
g. In the **Crm lastName Mapping** textbox, type `http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname`.
h. Click **Save**.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
-
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
-
-![Create Azure AD User][100]
+### Create an Azure AD test user
-**To create a test user in Azure AD, perform the following steps:**
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![Creating an Azure AD test user](./media/insideview-tutorial/create_aaduser_01.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/insideview-tutorial/create_aaduser_02.png)
+2. Select **New user** at the top of the screen.
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/insideview-tutorial/create_aaduser_03.png)
+ ![New user Button](common/new-user.png)
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/insideview-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** textbox, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
- c. Select **Show Password** and write down the value of the **Password**.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-
-### Creating an InsideView test user
-To enable Azure AD users to log in to InsideView, they must be provisioned in to InsideView. In the case of InsideView, provisioning is a manual task.
+### Assign the Azure AD test user
-To get users or contacts created in InsideView, Contact [InsideView support team](mailto:support@insideview.com).
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to InsideView.
->[!NOTE]
->You can use any other InsideView user account creation tools or APIs provided by InsideView to provision Azure AD user accounts.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **InsideView**.
-### Assigning the Azure AD test user
+ ![Enterprise applications blade](common/enterprise-applications.png)
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to InsideView.
+2. In the applications list, select **InsideView**.
-![Assign User][200]
+ ![The InsideView link in the Applications list](common/all-applications.png)
-**To assign Britta Simon to InsideView, perform the following steps:**
+3. In the menu on the left, select **Users and groups**.
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+ ![The "Users and groups" link](common/users-groups-blade.png)
- ![Assign User][201]
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. In the applications list, select **InsideView**.
+ ![The Add Assignment pane](common/add-assign-user.png)
- ![Configure Single Sign-On](./media/insideview-tutorial/tutorial_insideview_app.png)
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-1. In the menu on the left, click **Users and groups**.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
- ![Assign User][202]
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+### Create InsideView test user
- ![Assign User][203]
+To enable Azure AD users to sign in to InsideView, they must be provisioned in to InsideView. In the case of InsideView, provisioning is a manual task.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+To get users or contacts created in InsideView, Contact [InsideView support team](mailto:support@insideview.com).
-1. Click **Select** button on **Users and groups** dialog.
+> [!NOTE]
+> You can use any other InsideView user account creation tools or APIs provided by InsideView to provision Azure AD user accounts.
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the InsideView tile in the Access Panel, you should get automatically signed-on to your InsideView application.
+When you click the InsideView tile in the Access Panel, you should be automatically signed in to the InsideView for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
## Additional resources
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
-
-
-[1]: ./media/insideview-tutorial/tutorial_general_01.png
-[2]: ./media/insideview-tutorial/tutorial_general_02.png
-[3]: ./media/insideview-tutorial/tutorial_general_03.png
-[4]: ./media/insideview-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/insideview-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/insideview-tutorial/tutorial_general_200.png
-[201]: ./media/insideview-tutorial/tutorial_general_201.png
-[202]: ./media/insideview-tutorial/tutorial_general_202.png
-[203]: ./media/insideview-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/insight4grc-tutorial.md b/articles/active-directory/saas-apps/insight4grc-tutorial.md
index 625ac02e6a026..d0842d3a05ba0 100644
--- a/articles/active-directory/saas-apps/insight4grc-tutorial.md
+++ b/articles/active-directory/saas-apps/insight4grc-tutorial.md
@@ -192,9 +192,9 @@ When you click the Insight4GRC tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/insperityexpensable-tutorial.md b/articles/active-directory/saas-apps/insperityexpensable-tutorial.md
index 19feeb0c291df..98d5d88998551 100644
--- a/articles/active-directory/saas-apps/insperityexpensable-tutorial.md
+++ b/articles/active-directory/saas-apps/insperityexpensable-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: c579c453-580e-417d-8a5e-9b6b352795c0
ms.service: active-directory
@@ -12,213 +13,183 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/13/2017
+ms.topic: tutorial
+ms.date: 03/25/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Insperity ExpensAble
In this tutorial, you learn how to integrate Insperity ExpensAble with Azure Active Directory (Azure AD).
-
Integrating Insperity ExpensAble with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Insperity ExpensAble
-- You can enable your users to automatically get signed-on to Insperity ExpensAble (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to Insperity ExpensAble.
+* You can enable your users to be automatically signed-in to Insperity ExpensAble (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Insperity ExpensAble, you need the following items:
-- An Azure AD subscription
-- An Insperity ExpensAble single-sign on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Insperity ExpensAble single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Insperity ExpensAble from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Insperity ExpensAble supports **SP** initiated SSO
## Adding Insperity ExpensAble from the gallery
+
To configure the integration of Insperity ExpensAble into Azure AD, you need to add Insperity ExpensAble from the gallery to your list of managed SaaS apps.
**To add Insperity ExpensAble from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add a new application, click the **New application** button on the top of the dialog.
-1. In the search box, type **Insperity ExpensAble**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/insperityexpensable-tutorial/tutorial_insperityexpensable_search.png)
+4. In the search box, type **Insperity ExpensAble**, select **Insperity ExpensAble** from the result panel then click the **Add** button to add the application.
-1. In the results panel, select **Insperity ExpensAble**, and then click **Add** button to add the application.
+ ![Insperity ExpensAble in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/insperityexpensable-tutorial/tutorial_insperityexpensable_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Insperity ExpensAble based on a test user called "Britta Simon".
+In this section, you configure and test Azure AD single sign-on with Insperity ExpensAble based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Insperity ExpensAble needs to be established.
-For single sign-on to work, Azure AD needs to know what the counterpart user in Insperity ExpensAble is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Insperity ExpensAble needs to be established.
+To configure and test Azure AD single sign-on with Insperity ExpensAble, you need to complete the following building blocks:
-In Insperity ExpensAble, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Insperity ExpensAble Single Sign-On](#configure-insperity-expensable-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Insperity ExpensAble test user](#create-insperity-expensable-test-user)** - to have a counterpart of Britta Simon in Insperity ExpensAble that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-To configure and test Azure AD single sign-on with Insperity ExpensAble, you need to complete the following building blocks:
+### Configure Azure AD single sign-on
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating an Insperity ExpensAble test user](#creating-an-insperity-expensable-test-user)** - to have a counterpart of Britta Simon in Insperity ExpensAble that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-### Configuring Azure AD single sign-on
+To configure Azure AD single sign-on with Insperity ExpensAble, perform the following steps:
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Insperity ExpensAble application.
+1. In the [Azure portal](https://portal.azure.com/), on the **Insperity ExpensAble** application integration page, select **Single sign-on**.
-**To configure Azure AD single sign-on with Insperity ExpensAble, perform the following steps:**
+ ![Configure single sign-on link](common/select-sso.png)
-1. In the Azure portal, on the **Insperity ExpensAble** application integration page, click **Single sign-on**.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On][4]
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/insperityexpensable-tutorial/tutorial_insperityexpensable_samlbase.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **Insperity ExpensAble Domain and URLs** section, perform the following steps:
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Configure Single Sign-On](./media/insperityexpensable-tutorial/tutorial_insperityexpensable_url.png)
+4. On the **Basic SAML Configuration** section, perform the following steps:
- a. In the **Sign-on URL** textbox, type a URL using the following pattern: `https://server.expensable.com/esapp/Authenticate?companyId=`
+ ![Insperity ExpensAble Domain and URLs single sign-on information](common/sp-signonurl.png)
- > [!NOTE]
- > This value is not real. Update this value with the actual Sign-On URL. Contact [Insperity ExpensAble Client support team](http://expensable.com/support/support-overview) to get this value.
-
-1. On the **SAML Signing Certificate** section, click **Certificate(Base64)** and then save the certificate file on your computer.
+ In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://server.expensable.com/esapp/Authenticate?companyId=`
- ![Configure Single Sign-On](./media/insperityexpensable-tutorial/tutorial_insperityexpensable_certificate.png)
+ > [!NOTE]
+ > The value is not real. Update the value with the actual Sign-On URL. Contact [Insperity ExpensAble Client support team](http://expensable.com/support/support-overview) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. Click **Save** button.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On](./media/insperityexpensable-tutorial/tutorial_general_400.png)
+ ![The Certificate download link](common/certificatebase64.png)
-1. On the **Insperity ExpensAble Configuration** section, click **Configure Insperity ExpensAble** to open **Configure sign-on** window. Copy the **SAML Entity ID, and SAML Single Sign-On Service URL** from the **Quick Reference section.**
+6. On the **Set up Insperity ExpensAble** section, copy the appropriate URL(s) as per your requirement.
- ![Configure Single Sign-On](./media/insperityexpensable-tutorial/tutorial_insperityexpensable_configure.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-1. To configure single sign-on on **Insperity ExpensAble** side, you need to send the downloaded **Metadata XML**, **SAML Single Sign-On Service URL** and **SAML Entity ID** to [Insperity ExpensAble support team](http://expensable.com/support/support-overview). They set this setting to have the SAML SSO connection set properly on both sides.
+ a. Login URL
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+ b. Azure AD Identifier
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ c. Logout URL
-![Create Azure AD User][100]
+### Configure Insperity ExpensAble Single Sign-On
-**To create a test user in Azure AD, perform the following steps:**
+To configure single sign-on on **Insperity ExpensAble** side, you need to send the downloaded **Certificate (Base64)** and appropriate copied URLs from Azure portal to [Insperity ExpensAble support team](http://expensable.com/support/support-overview). They set this setting to have the SAML SSO connection set properly on both sides.
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+### Create an Azure AD test user
- ![Creating an Azure AD test user](./media/insperityexpensable-tutorial/create_aaduser_01.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/insperityexpensable-tutorial/create_aaduser_02.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/insperityexpensable-tutorial/create_aaduser_03.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/insperityexpensable-tutorial/create_aaduser_04.png)
+2. Select **New user** at the top of the screen.
- a. In the **Name** textbox, type **BrittaSimon**.
+ ![New user Button](common/new-user.png)
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+3. In the User properties, perform the following steps.
- c. Select **Show Password** and write down the value of the **Password**.
+ ![The User dialog box](common/user-properties.png)
- d. Click **Create**.
-
-### Creating an Insperity ExpensAble test user
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`
+ For example, BrittaSimon@contoso.com
-The objective of this section is to create a user called Britta Simon in Insperity ExpensAble. Please work with [Insperity ExpensAble support team](http://expensable.com/support/support-overview) to add the users in the Insperity ExpensAble account.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-### Assigning the Azure AD test user
+ d. Click **Create**.
+
+### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Insperity ExpensAble.
-![Assign User][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Insperity ExpensAble**.
-**To assign Britta Simon to Insperity ExpensAble, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **Insperity ExpensAble**.
- ![Assign User][201]
+ ![The Insperity ExpensAble link in the Applications list](common/all-applications.png)
-1. In the applications list, select **Insperity ExpensAble**.
+3. In the menu on the left, select **Users and groups**.
- ![Configure Single Sign-On](./media/insperityexpensable-tutorial/tutorial_insperityexpensable_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![Assign User][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![Assign User][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Select** button on **Users and groups** dialog.
+### Create Insperity ExpensAble test user
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+In this section, you create a user called Britta Simon in Insperity ExpensAble. Work with [Insperity ExpensAble support team](http://expensable.com/support/support-overview) to add the users in the Insperity ExpensAble platform. Users must be created and activated before you use single sign-on.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+### Test single sign-on
-When you click the Insperity ExpensAble tile in the Access Panel, you should get automatically signed-on to your Insperity ExpensAble application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-## Additional resources
+When you click the Insperity ExpensAble tile in the Access Panel, you should be automatically signed in to the Insperity ExpensAble for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+## Additional Resources
-
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[1]: ./media/insperityexpensable-tutorial/tutorial_general_01.png
-[2]: ./media/insperityexpensable-tutorial/tutorial_general_02.png
-[3]: ./media/insperityexpensable-tutorial/tutorial_general_03.png
-[4]: ./media/insperityexpensable-tutorial/tutorial_general_04.png
-[100]: ./media/insperityexpensable-tutorial/tutorial_general_100.png
-[200]: ./media/insperityexpensable-tutorial/tutorial_general_200.png
-[201]: ./media/insperityexpensable-tutorial/tutorial_general_201.png
-[202]: ./media/insperityexpensable-tutorial/tutorial_general_202.png
-[203]: ./media/insperityexpensable-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/intacct-tutorial.md b/articles/active-directory/saas-apps/intacct-tutorial.md
index 49581150c27e9..b30d4a2a06cbd 100644
--- a/articles/active-directory/saas-apps/intacct-tutorial.md
+++ b/articles/active-directory/saas-apps/intacct-tutorial.md
@@ -240,9 +240,9 @@ When you click the Intacct tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/intime-tutorial.md b/articles/active-directory/saas-apps/intime-tutorial.md
index a50d15ca278d9..c72637bba7342 100644
--- a/articles/active-directory/saas-apps/intime-tutorial.md
+++ b/articles/active-directory/saas-apps/intime-tutorial.md
@@ -192,8 +192,8 @@ When you click the InTime tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/intralinks-tutorial.md b/articles/active-directory/saas-apps/intralinks-tutorial.md
index 0dffc3641d679..3a46229b6ab74 100644
--- a/articles/active-directory/saas-apps/intralinks-tutorial.md
+++ b/articles/active-directory/saas-apps/intralinks-tutorial.md
@@ -188,8 +188,8 @@ When you click the Intralinks tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/ipasssmartconnect-tutorial.md b/articles/active-directory/saas-apps/ipasssmartconnect-tutorial.md
index 671fd688cf21a..20228d84082c2 100644
--- a/articles/active-directory/saas-apps/ipasssmartconnect-tutorial.md
+++ b/articles/active-directory/saas-apps/ipasssmartconnect-tutorial.md
@@ -254,8 +254,8 @@ f. Client will get activated.
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/iqnavigatorvms-tutorial.md b/articles/active-directory/saas-apps/iqnavigatorvms-tutorial.md
index 444f6ee43d051..ed39596c1c57f 100644
--- a/articles/active-directory/saas-apps/iqnavigatorvms-tutorial.md
+++ b/articles/active-directory/saas-apps/iqnavigatorvms-tutorial.md
@@ -190,8 +190,8 @@ When you click the IQNavigator VMS tile in the Access Panel, you should be autom
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/iqualify-tutorial.md b/articles/active-directory/saas-apps/iqualify-tutorial.md
index 3e0ddbb9f026a..e321f3d78e38a 100644
--- a/articles/active-directory/saas-apps/iqualify-tutorial.md
+++ b/articles/active-directory/saas-apps/iqualify-tutorial.md
@@ -276,8 +276,8 @@ For more information about the Access Panel, see [Introduction to the Access
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/iris-intranet-tutorial.md b/articles/active-directory/saas-apps/iris-intranet-tutorial.md
index f439dd8defff3..078a87fc7745e 100644
--- a/articles/active-directory/saas-apps/iris-intranet-tutorial.md
+++ b/articles/active-directory/saas-apps/iris-intranet-tutorial.md
@@ -182,9 +182,9 @@ When you click the Iris Intranet tile in the Access Panel, you should be automat
## Additional resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/itrp-tutorial.md b/articles/active-directory/saas-apps/itrp-tutorial.md
index f7341ae21acb0..3234fb32406a9 100644
--- a/articles/active-directory/saas-apps/itrp-tutorial.md
+++ b/articles/active-directory/saas-apps/itrp-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: e09716a3-4200-4853-9414-2390e6c10d98
ms.service: active-directory
@@ -12,272 +13,240 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/29/2017
+ms.topic: tutorial
+ms.date: 03/25/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with ITRP
In this tutorial, you learn how to integrate ITRP with Azure Active Directory (Azure AD).
-
Integrating ITRP with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to ITRP
-- You can enable your users to automatically get signed-on to ITRP (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to ITRP.
+* You can enable your users to be automatically signed-in to ITRP (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with ITRP, you need the following items:
-- An Azure AD subscription
-- An ITRP single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* ITRP single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding ITRP from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* ITRP supports **SP** initiated SSO
## Adding ITRP from the gallery
-To configure the integration of ITRP in to Azure AD, you need to add ITRP from the gallery to your list of managed SaaS apps.
+
+To configure the integration of ITRP into Azure AD, you need to add ITRP from the gallery to your list of managed SaaS apps.
**To add ITRP from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **ITRP**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/itrp-tutorial/tutorial_itrp_search.png)
+4. In the search box, type **ITRP**, select **ITRP** from result panel then click **Add** button to add the application.
-1. In the results panel, select **ITRP**, and then click **Add** button to add the application.
+ ![ITRP in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/itrp-tutorial/tutorial_itrp_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
+In this section, you configure and test Azure AD single sign-on with ITRP based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in ITRP needs to be established.
-In this section, you configure and test Azure AD single sign-on with ITRP based on a test user called "Britta Simon."
+To configure and test Azure AD single sign-on with ITRP, you need to complete the following building blocks:
-For single sign-on to work, Azure AD needs to know what the counterpart user in ITRP is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in ITRP needs to be established.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure ITRP Single Sign-On](#configure-itrp-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create ITRP test user](#create-itrp-test-user)** - to have a counterpart of Britta Simon in ITRP that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-In ITRP, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+### Configure Azure AD single sign-on
-To configure and test Azure AD single sign-on with ITRP, you need to complete the following building blocks:
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with ITRP, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **ITRP** application integration page, select **Single sign-on**.
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating an ITRP test user](#creating-an-itrp-test-user)** - to have a counterpart of Britta Simon in ITRP that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+ ![Configure single sign-on link](common/select-sso.png)
-### Configuring Azure AD single sign-on
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your ITRP application.
+ ![Single sign-on select mode](common/select-saml-option.png)
-**To configure Azure AD single sign-on with ITRP, perform the following steps:**
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. In the Azure portal, on the **ITRP** application integration page, click **Single sign-on**.
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Configure Single Sign-On][4]
+4. On the **Basic SAML Configuration** section, perform the following steps:
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/itrp-tutorial/tutorial_itrp_samlbase.png)
+ ![ITRP Domain and URLs single sign-on information](common/sp-identifier.png)
-1. On the **ITRP Domain and URLs** section, perform the following steps:
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://.itrp.com`
- ![Configure Single Sign-On](./media/itrp-tutorial/tutorial_itrp_url.png)
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+ `https://.itrp.com`
- a. In the **Sign-on URL** textbox, type a URL using the following pattern: `https://.itrp.com`
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign on URL and Identifier. Contact [ITRP Client support team](https://www.itrp.com/support) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
- b. In the **Identifier** textbox, type a URL using the following pattern: `https://.itrp.com`
+5. In the **SAML Signing Certificate** section, click **Edit** button to open **SAML Signing Certificate** dialog.
- > [!NOTE]
- > These values are not real. Update these values with the actual Sign-On URL and Identifier. Contact [ITRP Client support team](https://www.itrp.com/support) to get these values.
-
-1. On the **SAML Signing Certificate** section, copy the **THUMBPRINT** value of certificate.
+ ![Edit SAML Signing Certificate](common/edit-certificate.png)
- ![Configure Single Sign-On](./media/itrp-tutorial/tutorial_itrp_certificate.png)
+6. In the **SAML Signing Certificate** section, copy the **Thumbprint** and save it on your computer.
-1. Click **Save** button.
+ ![Copy Thumbprint value](common/copy-thumbprint.png)
- ![Configure Single Sign-On](./media/itrp-tutorial/tutorial_general_400.png)
+7. On the **Set up ITRP** section, copy the appropriate URL(s) as per your requirement.
-1. On the **ITRP Configuration** section, click **Configure ITRP** to open **Configure sign-on** window. Copy the **SAML Single Sign-On Service URL and Sign-Out URL** from the **Quick Reference section.**
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
- ![Configure Single Sign-On](./media/itrp-tutorial/tutorial_itrp_configure.png)
+ a. Login URL
-1. In a different web browser window, log in to your ITRP company site as an administrator.
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure ITRP Single Sign-On
+
+1. In a different web browser window, sign in to your ITRP company site as an administrator.
1. In the toolbar on the top, click **Settings**.
-
+
![ITRP](./media/itrp-tutorial/ic775570.png "ITRP")
1. In the left navigation pane, select **Single Sign-On**.
-
+
![Single Sign-On](./media/itrp-tutorial/ic775571.png "Single Sign-On")
1. In the Single Sign-On configuration section, perform the following steps:
-
+
![Single Sign-On](./media/itrp-tutorial/ic775572.png "Single Sign-On")
-
- ![Single Sign-On](./media/itrp-tutorial/ic775573.png "Single Sign-On")
- a. Click **Enable**.
+ ![Single Sign-On](./media/itrp-tutorial/ic775573.png "Single Sign-On")
- b. In **Remote Log Out URL** textbox, paste the value of **Sign-Out URL**, which you have copied from Azure portal.
+ a. Click **Enabled**.
- c. In **SAML SSO URL** textbox, paste the value of **SAML Single Sign-On Service URL**, which you have copied from Azure portal.
+ b. In **Remote Log Out URL** textbox, paste the value of **Logout URL**, which you have copied from Azure portal.
- d.In **Certificate Fingerprint** textbox, paste the **Thumbprint** value of certificate, which you have copied from Azure portal.
-
-1. Click **Save**.
+ c. In **SAML SSO URL** textbox, paste the value of **Login URL**, which you have copied from Azure portal.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+ d.In **Certificate Fingerprint** textbox, paste the **Thumbprint** value of certificate, which you have copied from Azure portal.
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ e. Click **Save**.
-![Create Azure AD User][100]
+### Create an Azure AD test user
-**To create a test user in Azure AD, perform the following steps:**
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![Creating an Azure AD test user](./media/itrp-tutorial/create_aaduser_01.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/itrp-tutorial/create_aaduser_02.png)
+2. Select **New user** at the top of the screen.
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/itrp-tutorial/create_aaduser_03.png)
+ ![New user Button](common/new-user.png)
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/itrp-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** textbox, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
- c. Select **Show Password** and write down the value of the **Password**.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-
-### Creating an ITRP test user
-To enable Azure AD users to log in to ITRP, they must be provisioned in to ITRP.
+### Assign the Azure AD test user
-In the case of ITRP, provisioning is a manual task.
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to ITRP.
-**To provision a user account, perform the following steps:**
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **ITRP**.
-1. Log in to your **ITRP** tenant.
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the toolbar on the top, click **Records**.
-
- ![Admin](./media/itrp-tutorial/ic775575.png "Admin")
+2. In the applications list, select **ITRP**.
-1. From the popup menu, select **People**.
-
- ![People](./media/itrp-tutorial/ic775587.png "People")
+ ![The ITRP link in the Applications list](common/all-applications.png)
-1. Click **Add New Person** (“+”).
-
- ![Admin](./media/itrp-tutorial/ic775576.png "Admin")
+3. In the menu on the left, select **Users and groups**.
-1. On the Add New Person dialog, perform the following steps:
-
- ![User](./media/itrp-tutorial/ic775577.png "User")
-
- a. Type the **Name**, **Email** of a valid AAD account you want to provision.
+ ![The "Users and groups" link](common/users-groups-blade.png)
- b. Click **Save**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
->[!NOTE]
->You can use any other ITRP user account creation tools or APIs provided by ITRP to provision AAD user accounts.
->
+ ![The Add Assignment pane](common/add-assign-user.png)
-### Assigning the Azure AD test user
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to ITRP.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-![Assign User][200]
+7. In the **Add Assignment** dialog click the **Assign** button.
-**To assign Britta Simon to ITRP, perform the following steps:**
+### Create ITRP test user
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+To enable Azure AD users to sign in to ITRP, they must be provisioned in to ITRP. In the case of ITRP, provisioning is a manual task.
+
+**To provision a user account, perform the following steps:**
- ![Assign User][201]
+1. Sign in to your **ITRP** tenant.
-1. In the applications list, select **ITRP**.
+1. In the toolbar on the top, click **Records**.
- ![Configure Single Sign-On](./media/itrp-tutorial/tutorial_itrp_app.png)
+ ![Admin](./media/itrp-tutorial/ic775575.png "Admin")
-1. In the menu on the left, click **Users and groups**.
+1. From the popup menu, select **People**.
- ![Assign User][202]
+ ![People](./media/itrp-tutorial/ic775587.png "People")
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+1. Click **Add New Person** (“+”).
- ![Assign User][203]
+ ![Admin](./media/itrp-tutorial/ic775576.png "Admin")
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+1. On the Add New Person dialog, perform the following steps:
-1. Click **Select** button on **Users and groups** dialog.
+ ![User](./media/itrp-tutorial/ic775577.png "User")
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+ a. Type the **Name**, **Email** of a valid AAD account you want to provision.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+ b. Click **Save**.
-When you click the ITRP tile in the Access Panel, you should get automatically signed-on to your ITRP application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+> [!NOTE]
+> You can use any other ITRP user account creation tools or APIs provided by ITRP to provision AAD user accounts.
-## Additional resources
+### Test single sign-on
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-
+When you click the ITRP tile in the Access Panel, you should be automatically signed in to the ITRP for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-[1]: ./media/itrp-tutorial/tutorial_general_01.png
-[2]: ./media/itrp-tutorial/tutorial_general_02.png
-[3]: ./media/itrp-tutorial/tutorial_general_03.png
-[4]: ./media/itrp-tutorial/tutorial_general_04.png
+## Additional Resources
-[100]: ./media/itrp-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/itrp-tutorial/tutorial_general_200.png
-[201]: ./media/itrp-tutorial/tutorial_general_201.png
-[202]: ./media/itrp-tutorial/tutorial_general_202.png
-[203]: ./media/itrp-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/ivanti-service-manager-tutorial.md b/articles/active-directory/saas-apps/ivanti-service-manager-tutorial.md
index 4070d16e4b45d..2596fc104259c 100644
--- a/articles/active-directory/saas-apps/ivanti-service-manager-tutorial.md
+++ b/articles/active-directory/saas-apps/ivanti-service-manager-tutorial.md
@@ -207,9 +207,9 @@ When you click the Ivanti Service Manager (ISM) tile in the Access Panel, you sh
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/jira52microsoft-tutorial.md b/articles/active-directory/saas-apps/jira52microsoft-tutorial.md
index 48c67e39f92b6..262fe22e9ebf8 100644
--- a/articles/active-directory/saas-apps/jira52microsoft-tutorial.md
+++ b/articles/active-directory/saas-apps/jira52microsoft-tutorial.md
@@ -9,11 +9,12 @@ ms.reviewer: barbkess
ms.assetid: d0c00408-f9b8-4a79-bccc-c346a7331845
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: tutorial
-ms.date: 01/16/2019
+ms.date: 04/10/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -32,7 +33,7 @@ If you don't have an Azure subscription, [create a free account](https://azure.m
## Description
-Use your Microsoft Azure Active Directory account with Atlassian JIRA server to enable single sign-on. This way all your organization users can use the Azure AD credentials to login into the JIRA application. This plugin uses SAML 2.0 for federation.
+Use your Microsoft Azure Active Directory account with Atlassian JIRA server to enable single sign-on. This way all your organization users can use the Azure AD credentials to signin into the JIRA application. This plugin uses SAML 2.0 for federation.
## Prerequisites
@@ -60,6 +61,9 @@ To test the steps in this tutorial, you should follow these recommendations:
* JIRA Core and Software: 5.2
* JIRA also supports 6.0 to 7.12. For more details, click [JIRA SAML SSO by Microsoft](jiramicrosoft-tutorial.md)
+> [!NOTE]
+> Please note that JIRA also supports Linux Ubuntu version 16.04
+
## Scenario description
In this tutorial, you configure and test Azure AD single sign-on in a test environment.
@@ -86,7 +90,7 @@ To configure the integration of JIRA SAML SSO by Microsoft (V5.2) into Azure AD,
4. In the search box, type **JIRA SAML SSO by Microsoft (V5.2)**, select **JIRA SAML SSO by Microsoft (V5.2)** from result panel then click **Add** button to add the application.
- ![JIRA SAML SSO by Microsoft (V5.2) in the results list](common/search-new-app.png)
+ ![JIRA SAML SSO by Microsoft (V5.2) in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
@@ -142,7 +146,7 @@ To configure Azure AD single sign-on with JIRA SAML SSO by Microsoft (V5.2), per
### Configure JIRA SAML SSO by Microsoft (V5.2) Single Sign-On
-1. In a different web browser window, log in to your JIRA instance as an administrator.
+1. In a different web browser window, sign in to your JIRA instance as an administrator.
2. Hover on cog and click the **Add-ons**.
@@ -173,18 +177,18 @@ To configure Azure AD single sign-on with JIRA SAML SSO by Microsoft (V5.2), per
c. In **Login Button Name** type the name of button your organization wants the users to see on login screen.
- d. In **SAML User ID Locations** select either **User ID is in the NameIdentifier element of the Subject statement** or **User ID is in an Attribute element**. This ID has to be the JIRA user id. If the user id is not matched, then system will not allow users to log in.
+ d. In **SAML User ID Locations** select either **User ID is in the NameIdentifier element of the Subject statement** or **User ID is in an Attribute element**. This ID has to be the JIRA user ID. If the user ID is not matched, then system will not allow users to sign in.
> [!Note]
> Default SAML User ID location is Name Identifier. You can change this to an attribute option and enter the appropriate attribute name.
- e. If you select **User ID is in an Attribute element** option, then in **Attribute name** textbox type the name of the attribute where User Id is expected.
+ e. If you select **User ID is in an Attribute element** option, then in **Attribute name** textbox type the name of the attribute where User ID is expected.
f. If you are using the federated domain (like ADFS etc.) with Azure AD, then click on the **Enable Home Realm Discovery** option and configure the **Domain Name**.
g. In **Domain Name** type the domain name here in case of the ADFS-based login.
- h. Check **Enable Single Sign out** if you wish to log out from Azure AD when a user logs out from JIRA.
+ h. Check **Enable Single Sign out** if you wish to sign out from Azure AD when a user signs out from JIRA.
i. Click **Save** button to save the settings.
@@ -209,8 +213,7 @@ The objective of this section is to create a test user in the Azure portal calle
a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field type `brittasimon\@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
@@ -244,11 +247,11 @@ In this section, you enable Britta Simon to use Azure single sign-on by granting
### Create JIRA SAML SSO by Microsoft (V5.2) test user
-To enable Azure AD users to log in to JIRA on-premises server, they must be provisioned into JIRA on-premises server.
+To enable Azure AD users to sign in to JIRA on-premises server, they must be provisioned into JIRA on-premises server.
**To provision a user account, perform the following steps:**
-1. Log in to your JIRA on-premises server as an administrator.
+1. Sign in to your JIRA on-premises server as an administrator.
2. Hover on cog and click the **User management**.
diff --git a/articles/active-directory/saas-apps/jiramicrosoft-tutorial.md b/articles/active-directory/saas-apps/jiramicrosoft-tutorial.md
index a7c9adced7e86..c5822817d0368 100644
--- a/articles/active-directory/saas-apps/jiramicrosoft-tutorial.md
+++ b/articles/active-directory/saas-apps/jiramicrosoft-tutorial.md
@@ -9,11 +9,12 @@ ms.reviewer: barbkess
ms.assetid: 4b663047-7f88-443b-97bd-54224b232815
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: tutorial
-ms.date: 12/19/2018
+ms.date: 04/10/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -32,7 +33,7 @@ If you don't have an Azure subscription, [create a free account](https://azure.m
## Description
-Use your Microsoft Azure Active Directory account with Atlassian JIRA server to enable single sign-on. This way all your organization users can use the Azure AD credentials to login into the JIRA application. This plugin uses SAML 2.0 for federation.
+Use your Microsoft Azure Active Directory account with Atlassian JIRA server to enable single sign-on. This way all your organization users can use the Azure AD credentials to signin into the JIRA application. This plugin uses SAML 2.0 for federation.
## Prerequisites
@@ -61,6 +62,9 @@ To test the steps in this tutorial, you should follow these recommendations:
* JIRA Service Desk 3.0.0 to 3.5.0
* JIRA also supports 5.2. For more details, click [Microsoft Azure Active Directory single sign-on for JIRA 5.2](jira52microsoft-tutorial.md)
+> [!NOTE]
+> Please note that JIRA also supports Linux Ubuntu version 16.04
+
## Scenario description
In this tutorial, you configure and test Azure AD single sign-on in a test environment.
@@ -143,7 +147,7 @@ To configure Azure AD single sign-on with JIRA SAML SSO by Microsoft, perform th
### Configure JIRA SAML SSO by Microsoft Single Sign-On
-1. In a different web browser window, log in to your JIRA instance as an administrator.
+1. In a different web browser window, sign in to your JIRA instance as an administrator.
2. Hover on cog and click the **Add-ons**.
@@ -185,18 +189,18 @@ To configure Azure AD single sign-on with JIRA SAML SSO by Microsoft, perform th
c. In **Login Button Name** type the name of button your organization wants the users to see on login screen.
- d. In **SAML User ID Locations** select either **User ID is in the NameIdentifier element of the Subject statement** or **User ID is in an Attribute element**. This ID has to be the JIRA user id. If the user id is not matched, then system will not allow users to log in.
+ d. In **SAML User ID Locations** select either **User ID is in the NameIdentifier element of the Subject statement** or **User ID is in an Attribute element**. This ID has to be the JIRA user ID. If the user ID is not matched, then system will not allow users to sign in.
> [!Note]
> Default SAML User ID location is Name Identifier. You can change this to an attribute option and enter the appropriate attribute name.
- e. If you select **User ID is in an Attribute element** option, then in **Attribute name** textbox type the name of the attribute where User Id is expected.
+ e. If you select **User ID is in an Attribute element** option, then in **Attribute name** textbox type the name of the attribute where User ID is expected.
f. If you are using the federated domain (like ADFS etc.) with Azure AD, then click on the **Enable Home Realm Discovery** option and configure the **Domain Name**.
g. In **Domain Name** type the domain name here in case of the ADFS-based login.
- h. Check **Enable Single Sign out** if you wish to log out from Azure AD when a user logs out from JIRA.
+ h. Check **Enable Single Sign out** if you wish to sign out from Azure AD when a user sign out from JIRA.
i. Click **Save** button to save the settings.
@@ -221,8 +225,7 @@ The objective of this section is to create a test user in the Azure portal calle
a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field type `brittasimon\@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
@@ -256,11 +259,11 @@ In this section, you enable Britta Simon to use Azure single sign-on by granting
### Create JIRA SAML SSO by Microsoft test user
-To enable Azure AD users to log in to JIRA on-premises server, they must be provisioned into JIRA SAML SSO by Microsoft. For JIRA SAML SSO by Microsoft, provisioning is a manual task.
+To enable Azure AD users to sign in to JIRA on-premises server, they must be provisioned into JIRA SAML SSO by Microsoft. For JIRA SAML SSO by Microsoft, provisioning is a manual task.
**To provision a user account, perform the following steps:**
-1. Log in to your JIRA on-premises server as an administrator.
+1. Sign in to your JIRA on-premises server as an administrator.
2. Hover on cog and click the **User management**.
diff --git a/articles/active-directory/saas-apps/jitbit-helpdesk-tutorial.md b/articles/active-directory/saas-apps/jitbit-helpdesk-tutorial.md
index 901bdc10b35bd..6ae9066deff9e 100644
--- a/articles/active-directory/saas-apps/jitbit-helpdesk-tutorial.md
+++ b/articles/active-directory/saas-apps/jitbit-helpdesk-tutorial.md
@@ -248,8 +248,8 @@ When you click the Jitbit Helpdesk tile in the Access Panel, you should be autom
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/jive-tutorial.md b/articles/active-directory/saas-apps/jive-tutorial.md
index f565158ef2878..d54becd127597 100644
--- a/articles/active-directory/saas-apps/jive-tutorial.md
+++ b/articles/active-directory/saas-apps/jive-tutorial.md
@@ -220,9 +220,9 @@ When you click the Jive tile in the Access Panel, you should be automatically si
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/jobbadmin-tutorial.md b/articles/active-directory/saas-apps/jobbadmin-tutorial.md
index 7195297f0460a..f57a8cb311059 100644
--- a/articles/active-directory/saas-apps/jobbadmin-tutorial.md
+++ b/articles/active-directory/saas-apps/jobbadmin-tutorial.md
@@ -193,8 +193,8 @@ When you click the Jobbadmin tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/jobscore-tutorial.md b/articles/active-directory/saas-apps/jobscore-tutorial.md
index c2d123a7c46c1..2f74fc609b3c3 100644
--- a/articles/active-directory/saas-apps/jobscore-tutorial.md
+++ b/articles/active-directory/saas-apps/jobscore-tutorial.md
@@ -188,8 +188,8 @@ When you click the JobScore tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/joinme-tutorial.md b/articles/active-directory/saas-apps/joinme-tutorial.md
index e55e31e28a7a5..0ff6fe7ed4621 100644
--- a/articles/active-directory/saas-apps/joinme-tutorial.md
+++ b/articles/active-directory/saas-apps/joinme-tutorial.md
@@ -172,9 +172,9 @@ When you click the join.me tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/jostle-tutorial.md b/articles/active-directory/saas-apps/jostle-tutorial.md
index 22e8dc8bb5ec5..428f7fd51f16a 100644
--- a/articles/active-directory/saas-apps/jostle-tutorial.md
+++ b/articles/active-directory/saas-apps/jostle-tutorial.md
@@ -194,8 +194,8 @@ When you click the Jostle tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/kenexasurvey-tutorial.md b/articles/active-directory/saas-apps/kenexasurvey-tutorial.md
index e3af6ac9764b0..d8189f01d376b 100644
--- a/articles/active-directory/saas-apps/kenexasurvey-tutorial.md
+++ b/articles/active-directory/saas-apps/kenexasurvey-tutorial.md
@@ -199,9 +199,9 @@ When you click the IBM Kenexa Survey Enterprise tile in the Access Panel, you sh
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/kindling-tutorial.md b/articles/active-directory/saas-apps/kindling-tutorial.md
index cbca368451cf7..8a457ac5f9434 100644
--- a/articles/active-directory/saas-apps/kindling-tutorial.md
+++ b/articles/active-directory/saas-apps/kindling-tutorial.md
@@ -192,8 +192,8 @@ When you click the Kindling tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/kintone-tutorial.md b/articles/active-directory/saas-apps/kintone-tutorial.md
index da7353ed8a6c5..45e474e9735ff 100644
--- a/articles/active-directory/saas-apps/kintone-tutorial.md
+++ b/articles/active-directory/saas-apps/kintone-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: c2b947dc-e1a8-4f5f-b40e-2c5180648e4f
ms.service: active-directory
@@ -12,283 +13,249 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/20/2017
+ms.topic: tutorial
+ms.date: 03/26/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Kintone
In this tutorial, you learn how to integrate Kintone with Azure Active Directory (Azure AD).
-
Integrating Kintone with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Kintone
-- You can enable your users to automatically get signed-on to Kintone (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to Kintone.
+* You can enable your users to be automatically signed-in to Kintone (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Kintone, you need the following items:
-- An Azure AD subscription
-- A Kintone single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Kintone single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Kintone from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Kintone supports **SP** initiated SSO
## Adding Kintone from the gallery
+
To configure the integration of Kintone into Azure AD, you need to add Kintone from the gallery to your list of managed SaaS apps.
**To add Kintone from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
+
+3. To add new application, click **New application** button on the top of dialog.
- ![Applications][3]
+ ![The New application button](common/add-new-app.png)
-1. In the search box, type **Kintone**.
+4. In the search box, type **Kintone**, select **Kintone** from result panel then click **Add** button to add the application.
- ![Creating an Azure AD test user](./media/kintone-tutorial/tutorial_kintone_search.png)
+ ![Kintone in the results list](common/search-new-app.png)
-1. In the results panel, select **Kintone**, and then click **Add** button to add the application.
+## Configure and test Azure AD single sign-on
- ![Creating an Azure AD test user](./media/kintone-tutorial/tutorial_kintone_addfromgallery.png)
+In this section, you configure and test Azure AD single sign-on with Kintone based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Kintone needs to be established.
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Kintone based on a test user called "Britta Simon".
+To configure and test Azure AD single sign-on with Kintone, you need to complete the following building blocks:
-For single sign-on to work, Azure AD needs to know what the counterpart user in Kintone is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Kintone needs to be established.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Kintone Single Sign-On](#configure-kintone-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Kintone test user](#create-kintone-test-user)** - to have a counterpart of Britta Simon in Kintone that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-In Kintone, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+### Configure Azure AD single sign-on
-To configure and test Azure AD single sign-on with Kintone, you need to complete the following building blocks:
+In this section, you enable Azure AD single sign-on in the Azure portal.
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a Kintone test user](#creating-a-kintone-test-user)** - to have a counterpart of Britta Simon in Kintone that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+To configure Azure AD single sign-on with Kintone, perform the following steps:
-### Configuring Azure AD single sign-on
+1. In the [Azure portal](https://portal.azure.com/), on the **Kintone** application integration page, select **Single sign-on**.
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Kintone application.
+ ![Configure single sign-on link](common/select-sso.png)
-**To configure Azure AD single sign-on with Kintone, perform the following steps:**
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. In the Azure portal, on the **Kintone** application integration page, click **Single sign-on**.
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Configure Single Sign-On][4]
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/kintone-tutorial/tutorial_kintone_samlbase.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
-1. On the **Kintone Domain and URLs** section, perform the following steps:
+4. On the **Basic SAML Configuration** section, perform the following steps:
- ![Configure Single Sign-On](./media/kintone-tutorial/tutorial_kintone_url.png)
+ ![Kintone Domain and URLs single sign-on information](common/sp-identifier.png)
- a. In the **Sign-on URL** textbox, type a URL using the following pattern: `https://.kintone.com`
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://.kintone.com`
- b. In the **Identifier** textbox, type a URL using the following pattern:
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
| |
|--|
- | `https://.cybozu.com`|
- | `https://.kintone.com`|
+ | `https://.cybozu.com` |
+ | `https://.kintone.com` |
+
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign on URL and Identifier. Contact [Kintone Client support team](https://www.kintone.com/contact/) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/certificatebase64.png)
- > [!NOTE]
- > These values are not real. Update these values with the actual Sign-On URL and Identifier. Contact [Kintone Client support team](https://www.kintone.com/contact/) to get these values.
-
-1. On the **SAML Signing Certificate** section, click **Certificate (Base64)** and then save the certificate file on your computer.
+6. On the **Set up Kintone** section, copy the appropriate URL(s) as per your requirement.
- ![Configure Single Sign-On](./media/kintone-tutorial/tutorial_kintone_certificate.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-1. Click **Save** button.
+ a. Login URL
- ![Configure Single Sign-On](./media/kintone-tutorial/tutorial_general_400.png)
+ b. Azure AD Identifier
-1. On the **Kintone Configuration** section, click **Configure Kintone** to open **Configure sign-on** window. Copy the **Sign-Out URL, and SAML Single Sign-On Service URL** from the **Quick Reference section.**
+ c. Logout URL
- ![Configure Single Sign-On](./media/kintone-tutorial/tutorial_kintone_configure.png)
+### Configure Kintone Single Sign-On
-1. In a different web browser window, log into your **Kintone** company site as an administrator.
+1. In a different web browser window, sign into your **Kintone** company site as an administrator.
+
+1. Click **Settings icon**.
-1. Click **Settings**.
-
![Settings](./media/kintone-tutorial/ic785879.png "Settings")
1. Click **Users & System Administration**.
-
+
![Users & System Administration](./media/kintone-tutorial/ic785880.png "Users & System Administration")
1. Under **System Administration \> Security** click **Login**.
-
+
![Login](./media/kintone-tutorial/ic785881.png "Login")
1. Click **Enable SAML authentication**.
-
+
![SAML Authentication](./media/kintone-tutorial/ic785882.png "SAML Authentication")
1. In the SAML Authentication section, perform the following steps:
-
+
![SAML Authentication](./media/kintone-tutorial/ic785883.png "SAML Authentication")
-
- a. In the **Login URL** textbox, paste the value of **SAML Single Sign-On Service URL** which you have copied from Azure portal.
-
- b. In the **Logout URL** textbox, paste the value of **Sign-Out URL** which you have copied from Azure portal.
-
- c. Click **Browse** to upload your downloaded certificate.
-
+
+ a. In the **Login URL** textbox, paste the value of **Login URL** which you have copied from Azure portal.
+
+ b. In the **Logout URL** textbox, paste the value of **Logout URL** which you have copied from Azure portal.
+
+ c. Click **Browse** to upload your downloaded certificate file from Azure portal.
+
d. Click **Save**.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+### Create an Azure AD test user
-### Creating an Azure AD test user
The objective of this section is to create a test user in the Azure portal called Britta Simon.
-![Create Azure AD User][100]
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-**To create a test user in Azure AD, perform the following steps:**
+ ![The "Users and groups" and "All users" links](common/users.png)
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+2. Select **New user** at the top of the screen.
- ![Creating an Azure AD test user](./media/kintone-tutorial/create_aaduser_01.png)
+ ![New user Button](common/new-user.png)
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/kintone-tutorial/create_aaduser_02.png)
+3. In the User properties, perform the following steps.
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/kintone-tutorial/create_aaduser_03.png)
+ ![The User dialog box](common/user-properties.png)
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/kintone-tutorial/create_aaduser_04.png)
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`
+ For example, BrittaSimon@contoso.com
- a. In the **Name** textbox, type **BrittaSimon**.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+ d. Click **Create**.
- c. Select **Show Password** and write down the value of the **Password**.
+### Assign the Azure AD test user
- d. Click **Create**.
-
-### Creating a Kintone test user
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to Kintone.
-To enable Azure AD users to log in to Kintone, they must be provisioned into Kintone.
-In the case of Kintone, provisioning is a manual task.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Kintone**.
-### To provision a user account, perform the following steps:
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. Log in to your **Kintone** company site as an administrator.
+2. In the applications list, select **Kintone**.
-1. Click **Setting**.
-
- ![Settings](./media/kintone-tutorial/ic785879.png "Settings")
+ ![The Kintone link in the Applications list](common/all-applications.png)
-1. Click **Users & System Administration**.
-
- ![User & System Administration](./media/kintone-tutorial/ic785880.png "User & System Administration")
+3. In the menu on the left, select **Users and groups**.
-1. Under **User Administration**, click **Departments & Users**.
-
- ![Department & Users](./media/kintone-tutorial/ic785888.png "Department & Users")
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. Click **New User**.
-
- ![New Users](./media/kintone-tutorial/ic785889.png "New Users")
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. In the **New User** section, perform the following steps:
-
- ![New Users](./media/kintone-tutorial/ic785890.png "New Users")
-
- a. Type a **Display Name**, **Login Name**, **New Password**, **Confirm Password**, **E-mail Address**, and other details of a valid AAD account you want to provision into the related textboxes.
-
- b. Click **Save**.
+ ![The Add Assignment pane](common/add-assign-user.png)
-> [!NOTE]
-> You can use any other Kintone user account creation tools or APIs provided by Kintone to provision AAD user accounts.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-### Assigning the Azure AD test user
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to Kintone.
+7. In the **Add Assignment** dialog click the **Assign** button.
-![Assign User][200]
+### Create Kintone test user
-**To assign Britta Simon to Kintone, perform the following steps:**
+To enable Azure AD users to sign in to Kintone, they must be provisioned into Kintone. In the case of Kintone, provisioning is a manual task.
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+### To provision a user account, perform the following steps:
- ![Assign User][201]
+1. Sign in to your **Kintone** company site as an administrator.
-1. In the applications list, select **Kintone**.
+1. Click **Settings icon**.
- ![Configure Single Sign-On](./media/kintone-tutorial/tutorial_kintone_app.png)
+ ![Settings](./media/kintone-tutorial/ic785879.png "Settings")
-1. In the menu on the left, click **Users and groups**.
+1. Click **Users & System Administration**.
- ![Assign User][202]
+ ![User & System Administration](./media/kintone-tutorial/ic785880.png "User & System Administration")
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+1. Under **User Administration**, click **Departments & Users**.
- ![Assign User][203]
+ ![Department & Users](./media/kintone-tutorial/ic785888.png "Department & Users")
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+1. Click **New User**.
-1. Click **Select** button on **Users and groups** dialog.
+ ![New Users](./media/kintone-tutorial/ic785889.png "New Users")
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+1. In the **New User** section, perform the following steps:
-The objective of this section is to test your Azure AD single sign-on configuration using the Access Panel.
+ ![New Users](./media/kintone-tutorial/ic785890.png "New Users")
-When you click the Kintone tile in the Access Panel, you should get automatically signed-on to your Kintone application.
+ a. Type a **Display Name**, **Login Name**, **New Password**, **Confirm Password**, **E-mail Address**, and other details of a valid Azure AD account you want to provision into the related textboxes.
-## Additional resources
+ b. Click **Save**.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+> [!NOTE]
+> You can use any other Kintone user account creation tools or APIs provided by Kintone to provision AAD user accounts.
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-
+When you click the Kintone tile in the Access Panel, you should be automatically signed in to the Kintone for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-[1]: ./media/kintone-tutorial/tutorial_general_01.png
-[2]: ./media/kintone-tutorial/tutorial_general_02.png
-[3]: ./media/kintone-tutorial/tutorial_general_03.png
-[4]: ./media/kintone-tutorial/tutorial_general_04.png
+## Additional Resources
-[100]: ./media/kintone-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/kintone-tutorial/tutorial_general_200.png
-[201]: ./media/kintone-tutorial/tutorial_general_201.png
-[202]: ./media/kintone-tutorial/tutorial_general_202.png
-[203]: ./media/kintone-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/klue-tutorial.md b/articles/active-directory/saas-apps/klue-tutorial.md
index 81d589909cc42..b9db2bd6f7e9e 100644
--- a/articles/active-directory/saas-apps/klue-tutorial.md
+++ b/articles/active-directory/saas-apps/klue-tutorial.md
@@ -229,9 +229,9 @@ When you click the Klue tile in the Access Panel, you should be automatically si
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/lcvista-tutorial.md b/articles/active-directory/saas-apps/lcvista-tutorial.md
index 81457ac1541d6..e5022d810d47c 100644
--- a/articles/active-directory/saas-apps/lcvista-tutorial.md
+++ b/articles/active-directory/saas-apps/lcvista-tutorial.md
@@ -211,8 +211,8 @@ When you click the LCVista tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/lean-tutorial.md b/articles/active-directory/saas-apps/lean-tutorial.md
index 5a2091e32afc7..7331c68178e44 100644
--- a/articles/active-directory/saas-apps/lean-tutorial.md
+++ b/articles/active-directory/saas-apps/lean-tutorial.md
@@ -192,9 +192,9 @@ When you click the Lean tile in the Access Panel, you should be automatically si
## Additional resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/learning-at-work-tutorial.md b/articles/active-directory/saas-apps/learning-at-work-tutorial.md
index e49fa5af65492..91db19c66274d 100644
--- a/articles/active-directory/saas-apps/learning-at-work-tutorial.md
+++ b/articles/active-directory/saas-apps/learning-at-work-tutorial.md
@@ -191,8 +191,8 @@ When you click the Learning at Work tile in the Access Panel, you should be auto
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/learningpool-tutorial.md b/articles/active-directory/saas-apps/learningpool-tutorial.md
index bb4b7464efb74..45436c8e576e2 100644
--- a/articles/active-directory/saas-apps/learningpool-tutorial.md
+++ b/articles/active-directory/saas-apps/learningpool-tutorial.md
@@ -234,9 +234,9 @@ When you click the Learningpool Act tile in the Access Panel, you should be auto
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/learningseatlms-tutorial.md b/articles/active-directory/saas-apps/learningseatlms-tutorial.md
index 5df8ccd76dcc3..4837e9502df5f 100644
--- a/articles/active-directory/saas-apps/learningseatlms-tutorial.md
+++ b/articles/active-directory/saas-apps/learningseatlms-tutorial.md
@@ -198,8 +198,8 @@ When you click the Learning Seat LMS tile in the Access Panel, you should be aut
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/lecorpio-tutorial.md b/articles/active-directory/saas-apps/lecorpio-tutorial.md
index a47f4960183d4..934dcb179da03 100644
--- a/articles/active-directory/saas-apps/lecorpio-tutorial.md
+++ b/articles/active-directory/saas-apps/lecorpio-tutorial.md
@@ -191,8 +191,8 @@ When you click the Lecorpio tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/lessonly-tutorial.md b/articles/active-directory/saas-apps/lessonly-tutorial.md
index bbf13d2412d20..caa58abcfd4d2 100644
--- a/articles/active-directory/saas-apps/lessonly-tutorial.md
+++ b/articles/active-directory/saas-apps/lessonly-tutorial.md
@@ -231,9 +231,9 @@ When you click the Lessonly.com tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/linkedinelevate-provisioning-tutorial.md b/articles/active-directory/saas-apps/linkedinelevate-provisioning-tutorial.md
index d3e03305e4a81..9ed09034541cd 100644
--- a/articles/active-directory/saas-apps/linkedinelevate-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/linkedinelevate-provisioning-tutorial.md
@@ -14,30 +14,29 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 01/28/2018
+ms.date: 03/28/2019
ms.author: asmalser-msft
ms.collection: M365-identity-device-management
---
# Tutorial: Configure LinkedIn Elevate for automatic user provisioning
-
-The objective of this tutorial is to show you the steps you need to perform in LinkedIn Elevate and Azure AD to automatically provision and de-provision user accounts from Azure AD to LinkedIn Elevate.
+The objective of this tutorial is to show you the steps you need to perform in LinkedIn Elevate and Azure AD to automatically provision and de-provision user accounts from Azure AD to LinkedIn Elevate.
## Prerequisites
The scenario outlined in this tutorial assumes that you already have the following items:
-* An Azure Active Directory tenant
-* A LinkedIn Elevate tenant
-* An administrator account in LinkedIn Elevate with access to the LinkedIn Account Center
+* An Azure Active Directory tenant
+* A LinkedIn Elevate tenant
+* An administrator account in LinkedIn Elevate with access to the LinkedIn Account Center
> [!NOTE]
> Azure Active Directory integrates with LinkedIn Elevate using the [SCIM](http://www.simplecloud.info/) protocol.
## Assigning users to LinkedIn Elevate
-Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user account provisioning, only the users and groups that have been "assigned" to an application in Azure AD will be synchronized.
+Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user account provisioning, only the users and groups that have been "assigned" to an application in Azure AD will be synchronized.
Before configuring and enabling the provisioning service, you will need to decide what users and/or groups in Azure AD represent the users who need access to LinkedIn Elevate. Once decided, you can assign these users to LinkedIn Elevate by following the instructions here:
@@ -45,10 +44,9 @@ Before configuring and enabling the provisioning service, you will need to decid
### Important tips for assigning users to LinkedIn Elevate
-* It is recommended that a single Azure AD user be assigned to LinkedIn Elevate to test the provisioning configuration. Additional users and/or groups may be assigned later.
-
-* When assigning a user to LinkedIn Elevate, you must select the **User** role in the assignment dialog. The "Default Access" role does not work for provisioning.
+* It is recommended that a single Azure AD user be assigned to LinkedIn Elevate to test the provisioning configuration. Additional users and/or groups may be assigned later.
+* When assigning a user to LinkedIn Elevate, you must select the **User** role in the assignment dialog. The "Default Access" role does not work for provisioning.
## Configuring user provisioning to LinkedIn Elevate
@@ -56,79 +54,73 @@ This section guides you through connecting your Azure AD to LinkedIn Elevate's S
**Tip:** You may also choose to enabled SAML-based Single Sign-On for LinkedIn Elevate, following the instructions provided in [Azure portal](https://portal.azure.com). Single sign-on can be configured independently of automatic provisioning, though these two features complement each other.
-
### To configure automatic user account provisioning to LinkedIn Elevate in Azure AD:
-
The first step is to retrieve your LinkedIn access token. If you are an Enterprise administrator, you can self-provision an
access token. In your account center, go to **Settings > Global Settings** and open the **SCIM Setup** panel.
> [!NOTE]
> If you are accessing the account center directly rather than through a link, you can reach it using the following steps.
-1) Sign in to Account Center.
+1. Sign in to Account Center.
-2) Select **Admin > Admin Settings** .
+2. Select **Admin > Admin Settings** .
-3) Click **Advanced Integrations** on the left sidebar. You are
- directed to the account center.
+3. Click **Advanced Integrations** on the left sidebar. You are directed to the account center.
-4) Click **+ Add new SCIM configuration** and follow the procedure by
- filling in each field.
+4. Click **+ Add new SCIM configuration** and follow the procedure by filling in each field.
-> When autoassign licenses is not enabled, it means that only user
-> data is synced.
+ > [!NOTE]
+ > When autoassign licenses is not enabled, it means that only user data is synced.
-![LinkedIn Elevate Provisioning](./media/linkedinelevate-provisioning-tutorial/linkedin_elevate1.PNG)
+ ![LinkedIn Elevate Provisioning](./media/linkedinelevate-provisioning-tutorial/linkedin_elevate1.PNG)
-> When autolicense assignment is enabled, you need to note the
-> application instance and license type. Licenses are assigned on a
-> first come, first serve basis until all the licenses are taken.
+ > [!NOTE]
+ > When autolicense assignment is enabled, you need to note the application instance and license type. Licenses are assigned on a first come, first serve basis until all the licenses are taken.
-![LinkedIn Elevate Provisioning](./media/linkedinelevate-provisioning-tutorial/linkedin_elevate2.PNG)
+ ![LinkedIn Elevate Provisioning](./media/linkedinelevate-provisioning-tutorial/linkedin_elevate2.PNG)
-5) Click **Generate token**. You should see your access token display
+5. Click **Generate token**. You should see your access token display
under the **Access token** field.
-6) Save your access token to your clipboard or computer before leaving
+6. Save your access token to your clipboard or computer before leaving
the page.
-7) Next, sign in to the [Azure portal](https://portal.azure.com), and browse to the **Azure Active Directory > Enterprise Apps > All applications** section.
+7. Next, sign in to the [Azure portal](https://portal.azure.com), and browse to the **Azure Active Directory > Enterprise Apps > All applications** section.
-8) If you have already configured LinkedIn Elevate for single sign-on, search for your instance of LinkedIn Elevate using the search field. Otherwise, select **Add** and search for **LinkedIn Elevate** in the application gallery. Select LinkedIn Elevate from the search results, and add it to your list of applications.
+8. If you have already configured LinkedIn Elevate for single sign-on, search for your instance of LinkedIn Elevate using the search field. Otherwise, select **Add** and search for **LinkedIn Elevate** in the application gallery. Select LinkedIn Elevate from the search results, and add it to your list of applications.
-9) Select your instance of LinkedIn Elevate, then select the **Provisioning** tab.
+9. Select your instance of LinkedIn Elevate, then select the **Provisioning** tab.
-10) Set the **Provisioning Mode** to **Automatic**.
+10. Set the **Provisioning Mode** to **Automatic**.
-![LinkedIn Elevate Provisioning](./media/linkedinelevate-provisioning-tutorial/linkedin_elevate3.PNG)
+ ![LinkedIn Elevate Provisioning](./media/linkedinelevate-provisioning-tutorial/linkedin_elevate3.PNG)
-11) Fill in the following fields under **Admin Credentials** :
+11. Fill in the following fields under **Admin Credentials** :
-* In the **Tenant URL** field, enter https://api.linkedin.com.
+ * In the **Tenant URL** field, enter `https://api.linkedin.com`.
-* In the **Secret Token** field, enter the access token you generated in step 1 and click **Test Connection** .
+ * In the **Secret Token** field, enter the access token you generated in step 1 and click **Test Connection** .
-* You should see a success notification on the upperright side of
+ * You should see a success notification on the upperright side of
your portal.
-12) Enter the email address of a person or group who should receive provisioning error notifications in the **Notification Email** field, and check the checkbox below.
+12. Enter the email address of a person or group who should receive provisioning error notifications in the **Notification Email** field, and check the checkbox below.
-13) Click **Save**.
+13. Click **Save**.
-14) In the **Attribute Mappings** section, review the user and group attributes that will be synchronized from Azure AD to LinkedIn Elevate. Note that the attributes selected as **Matching** properties will be used to match the user accounts and groups in LinkedIn Elevate for update operations. Select the Save button to commit any changes.
+14. In the **Attribute Mappings** section, review the user and group attributes that will be synchronized from Azure AD to LinkedIn Elevate. Note that the attributes selected as **Matching** properties will be used to match the user accounts and groups in LinkedIn Elevate for update operations. Select the Save button to commit any changes.
-![LinkedIn Elevate Provisioning](./media/linkedinelevate-provisioning-tutorial/linkedin_elevate4.PNG)
+ ![LinkedIn Elevate Provisioning](./media/linkedinelevate-provisioning-tutorial/linkedin_elevate4.PNG)
-15) To enable the Azure AD provisioning service for LinkedIn Elevate, change the **Provisioning Status** to **On** in the **Settings** section
+15. To enable the Azure AD provisioning service for LinkedIn Elevate, change the **Provisioning Status** to **On** in the **Settings** section
-16) Click **Save**.
+16. Click **Save**.
This will start the initial synchronization of any users and/or groups assigned to LinkedIn Elevate in the Users and Groups section. Note that the initial sync will take longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity logs, which describe all actions performed by the provisioning service on your LinkedIn Elevate app.
For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](../manage-apps/check-status-user-account-provisioning.md).
-
## Additional Resources
* [Managing user account provisioning for Enterprise Apps](../manage-apps/configure-automatic-user-provisioning-portal.md)
diff --git a/articles/active-directory/saas-apps/linkedinsalesnavigator-provisioning-tutorial.md b/articles/active-directory/saas-apps/linkedinsalesnavigator-provisioning-tutorial.md
index c74bf3db38b8a..5e0e84c23032f 100644
--- a/articles/active-directory/saas-apps/linkedinsalesnavigator-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/linkedinsalesnavigator-provisioning-tutorial.md
@@ -14,30 +14,29 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 01/26/2018
+ms.date: 03/28/2019
ms.author: asmalser-msft
ms.collection: M365-identity-device-management
---
# Tutorial: Configure LinkedIn Sales Navigator for automatic user provisioning
-
-The objective of this tutorial is to show you the steps you need to perform in LinkedIn Sales Navigator and Azure AD to automatically provision and de-provision user accounts from Azure AD to LinkedIn Sales Navigator.
+The objective of this tutorial is to show you the steps you need to perform in LinkedIn Sales Navigator and Azure AD to automatically provision and de-provision user accounts from Azure AD to LinkedIn Sales Navigator.
## Prerequisites
The scenario outlined in this tutorial assumes that you already have the following items:
-* An Azure Active Directory tenant
-* A LinkedIn Sales Navigator tenant
-* An administrator account in LinkedIn Sales Navigator with access to the LinkedIn Account Center
+* An Azure Active Directory tenant
+* A LinkedIn Sales Navigator tenant
+* An administrator account in LinkedIn Sales Navigator with access to the LinkedIn Account Center
> [!NOTE]
> Azure Active Directory integrates with LinkedIn Sales Navigator using the [SCIM](http://www.simplecloud.info/) protocol.
## Assigning users to LinkedIn Sales Navigator
-Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user account provisioning, only the users and groups that have been "assigned" to an application in Azure AD will be synchronized.
+Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user account provisioning, only the users and groups that have been "assigned" to an application in Azure AD will be synchronized.
Before configuring and enabling the provisioning service, you will need to decide what users and/or groups in Azure AD represent the users who need access to LinkedIn Sales Navigator. Once decided, you can assign these users to LinkedIn Sales Navigator by following the instructions here:
@@ -45,10 +44,9 @@ Before configuring and enabling the provisioning service, you will need to decid
### Important tips for assigning users to LinkedIn Sales Navigator
-* It is recommended that a single Azure AD user be assigned to LinkedIn Sales Navigator to test the provisioning configuration. Additional users and/or groups may be assigned later.
-
-* When assigning a user to LinkedIn Sales Navigator, you must select the **User** role in the assignment dialog. The "Default Access" role does not work for provisioning.
+* It is recommended that a single Azure AD user be assigned to LinkedIn Sales Navigator to test the provisioning configuration. Additional users and/or groups may be assigned later.
+* When assigning a user to LinkedIn Sales Navigator, you must select the **User** role in the assignment dialog. The "Default Access" role does not work for provisioning.
## Configuring user provisioning to LinkedIn Sales Navigator
@@ -57,79 +55,71 @@ This section guides you through connecting your Azure AD to LinkedIn Sales Navig
> [!TIP]
> You may also choose to enabled SAML-based Single Sign-On for LinkedIn Sales Navigator, following the instructions provided in [Azure portal](https://portal.azure.com). Single sign-on can be configured independently of automatic provisioning, though these two features complement each other.
-
### To configure automatic user account provisioning to LinkedIn Sales Navigator in Azure AD:
-
The first step is to retrieve your LinkedIn access token. If you are an Enterprise administrator, you can self-provision an
access token. In your account center, go to **Settings > Global Settings** and open the **SCIM Setup** panel.
> [!NOTE]
> If you are accessing the account center directly rather than through a link, you can reach it using the following steps.
-1) Sign in to Account Center.
+1. Sign in to Account Center.
-2) Select **Admin > Admin Settings** .
+2. Select **Admin > Admin Settings** .
-3) Click **Advanced Integrations** on the left sidebar. You are
- directed to the account center.
+3. Click **Advanced Integrations** on the left sidebar. You are directed to the account center.
-4) Click **+ Add new SCIM configuration** and follow the procedure by
- filling in each field.
+4. Click **+ Add new SCIM configuration** and follow the procedure by filling in each field.
-> When autoassign licenses is not enabled, it means that only user
-> data is synced.
+ > [!NOTE]
+ > When autoassign licenses is not enabled, it means that only user data is synced.
-![LinkedIn Sales Navigator Provisioning](./media/linkedinsalesnavigator-provisioning-tutorial/linkedin_1.PNG)
+ ![LinkedIn Sales Navigator Provisioning](./media/linkedinsalesnavigator-provisioning-tutorial/linkedin_1.PNG)
-> When autolicense assignment is enabled, you need to note the
-> application instance and license type. Licenses are assigned on a
-> first come, first serve basis until all the licenses are taken.
+ > [!NOTE]
+ > When autolicense assignment is enabled, you need to note the application instance and license type. Licenses are assigned on a first come, first serve basis until all the licenses are taken.
-![LinkedIn Sales Navigator Provisioning](./media/linkedinsalesnavigator-provisioning-tutorial/linkedin_2.PNG)
+ ![LinkedIn Sales Navigator Provisioning](./media/linkedinsalesnavigator-provisioning-tutorial/linkedin_2.PNG)
-5) Click **Generate token**. You should see your access token display
- under the **Access token** field.
+5. Click **Generate token**. You should see your access token display under the **Access token** field.
-6) Save your access token to your clipboard or computer before leaving
- the page.
+6. Save your access token to your clipboard or computer before leaving the page.
-7) Next, sign in to the [Azure portal](https://portal.azure.com), and browse to the **Azure Active Directory > Enterprise Apps > All applications** section.
+7. Next, sign in to the [Azure portal](https://portal.azure.com), and browse to the **Azure Active Directory > Enterprise Apps > All applications** section.
-8) If you have already configured LinkedIn Sales Navigator for single sign-on, search for your instance of LinkedIn Sales Navigator using the search field. Otherwise, select **Add** and search for **LinkedIn Sales Navigator** in the application gallery. Select LinkedIn Sales Navigator from the search results, and add it to your list of applications.
+8. If you have already configured LinkedIn Sales Navigator for single sign-on, search for your instance of LinkedIn Sales Navigator using the search field. Otherwise, select **Add** and search for **LinkedIn Sales Navigator** in the application gallery. Select LinkedIn Sales Navigator from the search results, and add it to your list of applications.
-9) Select your instance of LinkedIn Sales Navigator, then select the **Provisioning** tab.
+9. Select your instance of LinkedIn Sales Navigator, then select the **Provisioning** tab.
-10) Set the **Provisioning Mode** to **Automatic**.
+10. Set the **Provisioning Mode** to **Automatic**.
-![LinkedIn Sales Navigator Provisioning](./media/linkedinsalesnavigator-provisioning-tutorial/linkedin_3.PNG)
+ ![LinkedIn Sales Navigator Provisioning](./media/linkedinsalesnavigator-provisioning-tutorial/linkedin_3.PNG)
-11) Fill in the following fields under **Admin Credentials** :
+11. Fill in the following fields under **Admin Credentials** :
-* In the **Tenant URL** field, enter https://api.linkedin.com.
+ * In the **Tenant URL** field, enter https://api.linkedin.com.
-* In the **Secret Token** field, enter the access token you generated in step 1 and click **Test Connection** .
+ * In the **Secret Token** field, enter the access token you generated in step 1 and click **Test Connection** .
-* You should see a success notification on the upperright side of
+ * You should see a success notification on the upperright side of
your portal.
-12) Enter the email address of a person or group who should receive provisioning error notifications in the **Notification Email** field, and check the checkbox below.
+12. Enter the email address of a person or group who should receive provisioning error notifications in the **Notification Email** field, and check the checkbox below.
-13) Click **Save**.
+13. Click **Save**.
-14) In the **Attribute Mappings** section, review the user and group attributes that will be synchronized from Azure AD to LinkedIn Sales Navigator. Note that the attributes selected as **Matching** properties will be used to match the user accounts and groups in LinkedIn Sales Navigator for update operations. Select the Save button to commit any changes.
+14. In the **Attribute Mappings** section, review the user and group attributes that will be synchronized from Azure AD to LinkedIn Sales Navigator. Note that the attributes selected as **Matching** properties will be used to match the user accounts and groups in LinkedIn Sales Navigator for update operations. Select the Save button to commit any changes.
-![LinkedIn Sales Navigator Provisioning](./media/linkedinsalesnavigator-provisioning-tutorial/linkedin_4.PNG)
+ ![LinkedIn Sales Navigator Provisioning](./media/linkedinsalesnavigator-provisioning-tutorial/linkedin_4.PNG)
-15) To enable the Azure AD provisioning service for LinkedIn Sales Navigator, change the **Provisioning Status** to **On** in the **Settings** section
+15. To enable the Azure AD provisioning service for LinkedIn Sales Navigator, change the **Provisioning Status** to **On** in the **Settings** section
-16) Click **Save**.
+16. Click **Save**.
This will start the initial synchronization of any users and/or groups assigned to LinkedIn Sales Navigator in the Users and Groups section. Note that the initial sync will take longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity logs, which describe all actions performed by the provisioning service on your LinkedIn Sales Navigator app.
For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](../manage-apps/check-status-user-account-provisioning.md).
-
## Additional Resources
* [Managing user account provisioning for Enterprise Apps](../manage-apps/configure-automatic-user-provisioning-portal.md)
diff --git a/articles/active-directory/saas-apps/logicmonitor-tutorial.md b/articles/active-directory/saas-apps/logicmonitor-tutorial.md
index 1cc6eb81a43be..ae8c9bf83cb4c 100644
--- a/articles/active-directory/saas-apps/logicmonitor-tutorial.md
+++ b/articles/active-directory/saas-apps/logicmonitor-tutorial.md
@@ -234,9 +234,9 @@ When you click the LogicMonitor tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/lucidchart-provisioning-tutorial.md b/articles/active-directory/saas-apps/lucidchart-provisioning-tutorial.md
index 188e4862e7030..cb06464bf1d7f 100644
--- a/articles/active-directory/saas-apps/lucidchart-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/lucidchart-provisioning-tutorial.md
@@ -14,27 +14,26 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 01/26/2018
+ms.date: 03/27/2019
ms.author: asmalser-msft
ms.collection: M365-identity-device-management
---
# Tutorial: Configure LucidChart for automatic user provisioning
-
The objective of this tutorial is to show you the steps you need to perform in LucidChart and Azure AD to automatically provision and de-provision user accounts from Azure AD to LucidChart.
## Prerequisites
The scenario outlined in this tutorial assumes that you already have the following items:
-* An Azure Active directory tenant
-* A LucidChart tenant with the [Enterprise plan](https://www.lucidchart.com/user/117598685#/subscriptionLevel) or better enabled
-* A user account in LucidChart with Admin permissions
+* An Azure Active directory tenant
+* A LucidChart tenant with the [Enterprise plan](https://www.lucidchart.com/user/117598685#/subscriptionLevel) or better enabled
+* A user account in LucidChart with Admin permissions
## Assigning users to LucidChart
-Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user account provisioning, only the users and groups that have been "assigned" to an application in Azure AD is synchronized.
+Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user account provisioning, only the users and groups that have been "assigned" to an application in Azure AD is synchronized.
Before configuring and enabling the provisioning service, you need to decide what users and/or groups in Azure AD represent the users who need access to your LucidChart app. Once decided, you can assign these users to your LucidChart app by following the instructions here:
@@ -42,22 +41,19 @@ Before configuring and enabling the provisioning service, you need to decide wha
### Important tips for assigning users to LucidChart
-* It is recommended that a single Azure AD user is assigned to LucidChart to test the provisioning configuration. Additional users and/or groups may be assigned later.
-
-* When assigning a user to LucidChart, you must select either the **User** role, or another valid application-specific role (if available) in the assignment dialog. The **Default Access** role does not work for provisioning, and these users are skipped.
+* It is recommended that a single Azure AD user is assigned to LucidChart to test the provisioning configuration. Additional users and/or groups may be assigned later.
+* When assigning a user to LucidChart, you must select either the **User** role, or another valid application-specific role (if available) in the assignment dialog. The **Default Access** role does not work for provisioning, and these users are skipped.
-## Configuring user provisioning to LucidChart
+## Configuring user provisioning to LucidChart
This section guides you through connecting your Azure AD to LucidChart's user account provisioning API, and configuring the provisioning service to create, update, and disable assigned user accounts in LucidChart based on user and group assignment in Azure AD.
> [!TIP]
> You may also choose to enabled SAML-based Single Sign-On for LucidChart, following the instructions provided in [Azure portal](https://portal.azure.com). Single sign-on can be configured independently of automatic provisioning, though these two features compliment each other.
-
### Configure automatic user account provisioning to LucidChart in Azure AD
-
1. In the [Azure portal](https://portal.azure.com), browse to the **Azure Active Directory > Enterprise Apps > All applications** section.
2. If you have already configured LucidChart for single sign-on, search for your instance of LucidChart using the search field. Otherwise, select **Add** and search for **LucidChart** in the application gallery. Select LucidChart from the search results, and add it to your list of applications.
@@ -68,7 +64,7 @@ This section guides you through connecting your Azure AD to LucidChart's user ac
![LucidChart Provisioning](./media/lucidchart-provisioning-tutorial/LucidChart1.png)
-5. Under the **Admin Credentials** section, input the **Secret Token** generated by your LucidChart's account (you can find the token under your account: **Team** > **App Integration** > **SCIM**).
+5. Under the **Admin Credentials** section, input the **Secret Token** generated by your LucidChart's account (you can find the token under your account: **Team** > **App Integration** > **SCIM**).
![LucidChart Provisioning](./media/lucidchart-provisioning-tutorial/LucidChart2.png)
@@ -76,7 +72,7 @@ This section guides you through connecting your Azure AD to LucidChart's user ac
7. Enter the email address of a person or group who should receive provisioning error notifications in the **Notification Email** field, and check the checkbox "Send an email notification when a failure occurs."
-8. Click **Save**.
+8. Click **Save**.
9. Under the Mappings section, select **Synchronize Azure Active Directory Users to LucidChart**.
@@ -84,13 +80,12 @@ This section guides you through connecting your Azure AD to LucidChart's user ac
11. To enable the Azure AD provisioning service for LucidChart, change the **Provisioning Status** to **On** in the **Settings** section
-12. Click **Save**.
+12. Click **Save**.
This operation starts the initial synchronization of any users and/or groups assigned to LucidChart in the Users and Groups section. The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity logs, which describe all actions performed by the provisioning service.
For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](../manage-apps/check-status-user-account-provisioning.md).
-
## Additional resources
* [Managing user account provisioning for Enterprise Apps](../manage-apps/configure-automatic-user-provisioning-portal.md)
diff --git a/articles/active-directory/saas-apps/lucidchart-tutorial.md b/articles/active-directory/saas-apps/lucidchart-tutorial.md
index b01204661c447..c19aa381ffc7a 100644
--- a/articles/active-directory/saas-apps/lucidchart-tutorial.md
+++ b/articles/active-directory/saas-apps/lucidchart-tutorial.md
@@ -214,8 +214,8 @@ When you click the Lucidchart tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/lynda-tutorial.md b/articles/active-directory/saas-apps/lynda-tutorial.md
index 3740d3c289bae..6263ce220867d 100644
--- a/articles/active-directory/saas-apps/lynda-tutorial.md
+++ b/articles/active-directory/saas-apps/lynda-tutorial.md
@@ -195,9 +195,9 @@ When you click the Lynda.com tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/manabipocket-tutorial.md b/articles/active-directory/saas-apps/manabipocket-tutorial.md
index 286de9ac30e5d..a9e98566ffed7 100644
--- a/articles/active-directory/saas-apps/manabipocket-tutorial.md
+++ b/articles/active-directory/saas-apps/manabipocket-tutorial.md
@@ -4,212 +4,195 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 8e521099-bf7d-43ab-a0e0-86aa1c9e577e
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/20/2018
+ms.topic: tutorial
+ms.date: 04/02/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Manabi Pocket
In this tutorial, you learn how to integrate Manabi Pocket with Azure Active Directory (Azure AD).
-
Integrating Manabi Pocket with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Manabi Pocket.
-- You can enable your users to automatically get signed-on to Manabi Pocket (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Manabi Pocket.
+* You can enable your users to be automatically signed-in to Manabi Pocket (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Manabi Pocket, you need the following items:
-- An Azure AD subscription
-- A Manabi Pocket single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Manabi Pocket single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Manabi Pocket from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Manabi Pocket supports **SP** initiated SSO
## Adding Manabi Pocket from the gallery
+
To configure the integration of Manabi Pocket into Azure AD, you need to add Manabi Pocket from the gallery to your list of managed SaaS apps.
**To add Manabi Pocket from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![The New application button][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **Manabi Pocket**, select **Manabi Pocket** from result panel then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![Manabi Pocket in the results list](./media/manabipocket-tutorial/tutorial_manabipocket_addfromgallery.png)
+4. In the search box, type **Manabi Pocket**, select **Manabi Pocket** from result panel then click **Add** button to add the application.
-## Configure and test Azure AD single sign-on
+ ![Manabi Pocket in the results list](common/search-new-app.png)
-In this section, you configure and test Azure AD single sign-on with Manabi Pocket based on a test user called "Britta Simon".
+## Configure and test Azure AD single sign-on
-For single sign-on to work, Azure AD needs to know what the counterpart user in Manabi Pocket is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Manabi Pocket needs to be established.
+In this section, you configure and test Azure AD single sign-on with Manabi Pocket based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Manabi Pocket needs to be established.
To configure and test Azure AD single sign-on with Manabi Pocket, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a Manabi Pocket test user](#create-a-manabi-pocket-test-user)** - to have a counterpart of Britta Simon in Manabi Pocket that is linked to the Azure AD representation of user.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure Manabi Pocket Single Sign-On](#configure-manabi-pocket-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Manabi Pocket test user](#create-manabi-pocket-test-user)** - to have a counterpart of Britta Simon in Manabi Pocket that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Manabi Pocket application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with Manabi Pocket, perform the following steps:**
+To configure Azure AD single sign-on with Manabi Pocket, perform the following steps:
-1. In the Azure portal, on the **Manabi Pocket** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **Manabi Pocket** application integration page, select **Single sign-on**.
- ![Configure single sign-on link][4]
+ ![Configure single sign-on link](common/select-sso.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Single sign-on dialog box](./media/manabipocket-tutorial/tutorial_manabipocket_samlbase.png)
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Manabi Pocket Domain and URLs** section, perform the following steps:
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Manabi Pocket Domain and URLs single sign-on information](./media/manabipocket-tutorial/tutorial_manabipocket_url.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- a. In the **Sign-on URL** textbox, type the URL: `https://ed-cl.com/`
+4. On the **Basic SAML Configuration** section, perform the following steps:
- b. In the **Identifier** textbox, type a URL using the following pattern: `https://.ed-cl.com//idp/provider`
+ ![Manabi Pocket Domain and URLs single sign-on information](common/sp-identifier.png)
- > [!NOTE]
- > The Identifier value is not real. Update this value with the actual Identifier . Contact [Manabi Pocket Client support team](mailto:info-ed-cl@ntt.com) to get this value.
+ a. In the **Sign on URL** text box, type a URL:
+ `https://ed-cl.com/`
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+ `https://.ed-cl.com//idp/provider`
- ![The Certificate download link](./media/manabipocket-tutorial/tutorial_manabipocket_certificate.png)
+ > [!NOTE]
+ > The Identifier value is not real. Update this value with the actual Identifier. Contact [Manabi Pocket Client support team](mailto:info-ed-cl@ntt.com) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. Click **Save** button.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On Save button](./media/manabipocket-tutorial/tutorial_general_400.png)
+ ![The Certificate download link](common/metadataxml.png)
-1. To configure single sign-on on **Manabi Pocket** side, you need to send the downloaded **Metadata XML** to [Manabi Pocket support team](mailto:info-ed-cl@ntt.com). They set this setting to have the SAML SSO connection set properly on both sides.
+6. On the **Set up Manabi Pocket** section, copy the appropriate URL(s) as per your requirement.
-### Create an Azure AD test user
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ a. Login URL
- ![Create an Azure AD test user][100]
+ b. Azure AD Identifier
-**To create a test user in Azure AD, perform the following steps:**
+ c. Logout URL
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+### Configure Manabi Pocket Single Sign-On
- ![The Azure Active Directory button](./media/manabipocket-tutorial/create_aaduser_01.png)
+To configure single sign-on on **Manabi Pocket** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [Manabi Pocket support team](mailto:info-ed-cl@ntt.com). They set this setting to have the SAML SSO connection set properly on both sides.
-1. To display the list of users, go to **Users and groups**, and then click **All users**.
+### Create an Azure AD test user
- ![The "Users and groups" and "All users" links](./media/manabipocket-tutorial/create_aaduser_02.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![The Add button](./media/manabipocket-tutorial/create_aaduser_03.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
-1. In the **User** dialog box, perform the following steps:
+2. Select **New user** at the top of the screen.
- ![The User dialog box](./media/manabipocket-tutorial/create_aaduser_04.png)
+ ![New user Button](common/new-user.png)
- a. In the **Name** box, type **BrittaSimon**.
+3. In the User properties, perform the following steps.
- b. In the **User name** box, type the email address of user Britta Simon.
+ ![The User dialog box](common/user-properties.png)
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
- d. Click **Create**.
-
-### Create a Manabi Pocket test user
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-In this section, you create a user called Britta Simon in Manabi Pocket. Work with [Manabi Pocket support team](mailto:info-ed-cl@ntt.com) to add the users in the Manabi Pocket platform. Users must be created and activated before you use single sign-on.
+ d. Click **Create**.
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Manabi Pocket.
-![Assign the user role][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Manabi Pocket**.
-**To assign Britta Simon to Manabi Pocket, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **Manabi Pocket**.
- ![Assign User][201]
+ ![The Manabi Pocket link in the Applications list](common/all-applications.png)
-1. In the applications list, select **Manabi Pocket**.
+3. In the menu on the left, select **Users and groups**.
- ![The Manabi Pocket link in the Applications list](./media/manabipocket-tutorial/tutorial_manabipocket_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![The "Users and groups" link][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![The Add Assignment pane][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Select** button on **Users and groups** dialog.
+### Create Manabi Pocket test user
-1. Click **Assign** button on **Add Assignment** dialog.
+In this section, you create a user called Britta Simon in Manabi Pocket. Work with [Manabi Pocket support team](mailto:info-ed-cl@ntt.com) to add the users in the Manabi Pocket platform. Users must be created and activated before you use single sign-on.
-### Test single sign-on
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the Manabi Pocket tile in the Access Panel, you should get automatically signed-on to your Manabi Pocket application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
-
-## Additional resources
+When you click the Manabi Pocket tile in the Access Panel, you should be automatically signed in to the Manabi Pocket for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+## Additional Resources
-
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[1]: ./media/manabipocket-tutorial/tutorial_general_01.png
-[2]: ./media/manabipocket-tutorial/tutorial_general_02.png
-[3]: ./media/manabipocket-tutorial/tutorial_general_03.png
-[4]: ./media/manabipocket-tutorial/tutorial_general_04.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[100]: ./media/manabipocket-tutorial/tutorial_general_100.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
-[200]: ./media/manabipocket-tutorial/tutorial_general_200.png
-[201]: ./media/manabipocket-tutorial/tutorial_general_201.png
-[202]: ./media/manabipocket-tutorial/tutorial_general_202.png
-[203]: ./media/manabipocket-tutorial/tutorial_general_203.png
diff --git a/articles/active-directory/saas-apps/marketo-tutorial.md b/articles/active-directory/saas-apps/marketo-tutorial.md
index c14cc42386c9c..c587ee465c0f4 100644
--- a/articles/active-directory/saas-apps/marketo-tutorial.md
+++ b/articles/active-directory/saas-apps/marketo-tutorial.md
@@ -296,9 +296,9 @@ When you click the Marketo tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/maxxpoint-tutorial.md b/articles/active-directory/saas-apps/maxxpoint-tutorial.md
index ec2a40b848a5c..f323d195624da 100644
--- a/articles/active-directory/saas-apps/maxxpoint-tutorial.md
+++ b/articles/active-directory/saas-apps/maxxpoint-tutorial.md
@@ -191,9 +191,9 @@ When you click the MaxxPoint tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/mcm-tutorial.md b/articles/active-directory/saas-apps/mcm-tutorial.md
index 9550f91991efb..221919b38ea2a 100644
--- a/articles/active-directory/saas-apps/mcm-tutorial.md
+++ b/articles/active-directory/saas-apps/mcm-tutorial.md
@@ -193,9 +193,9 @@ When you click the MCM tile in the Access Panel, you should be automatically sig
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_addfromgallery.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_addfromgallery.png
deleted file mode 100644
index 4d1f9456fba02..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_app.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_app.png
deleted file mode 100644
index 2ca2dd632bff4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_certificate.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_certificate.png
deleted file mode 100644
index 985cfcd71722d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_configure.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_configure.png
deleted file mode 100644
index 1bac1afa1d6af..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_samlbase.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_samlbase.png
deleted file mode 100644
index 2331d719e7838..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_search.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_search.png
deleted file mode 100644
index 70f04e3cedafe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_url.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_url.png
deleted file mode 100644
index a096ad0c5f1bc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_10,000ftplans_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/10000ftplans-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/asana-provisioning-tutorial/asanaazureprovisioning.png b/articles/active-directory/saas-apps/media/asana-provisioning-tutorial/asanaazureprovisioning.png
index 779bb64d45f55..49a38b1078698 100644
Binary files a/articles/active-directory/saas-apps/media/asana-provisioning-tutorial/asanaazureprovisioning.png and b/articles/active-directory/saas-apps/media/asana-provisioning-tutorial/asanaazureprovisioning.png differ
diff --git a/articles/active-directory/saas-apps/media/atlassian-cloud-provisioning-tutorial/tutorial-general-03.png b/articles/active-directory/saas-apps/media/atlassian-cloud-provisioning-tutorial/tutorial-general-03.png
index d56f6b9d57f2b..cac732f7ddc91 100644
Binary files a/articles/active-directory/saas-apps/media/atlassian-cloud-provisioning-tutorial/tutorial-general-03.png and b/articles/active-directory/saas-apps/media/atlassian-cloud-provisioning-tutorial/tutorial-general-03.png differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_addfromgallery.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_addfromgallery.png
deleted file mode 100644
index a6db822344a18..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_app.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_app.png
deleted file mode 100644
index fb42b50d145a4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_attribute.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_attribute.png
deleted file mode 100644
index c1198efcec9e7..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_certificate.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_certificate.png
deleted file mode 100644
index eeb6606f57a2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_samlbase.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_search.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_search.png
deleted file mode 100644
index 602abecffb9d0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_url.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_url.png
deleted file mode 100644
index fd036dda6aa6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_url1.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_url1.png
deleted file mode 100644
index d916750cc6c11..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_betterworks_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/betterworks-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppCreation.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppCreation.png
index 28f58e36c3c7c..8e3802ba083ce 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppCreation.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppCreation.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppInstanceSearch.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppInstanceSearch.png
index a07562349f786..7bbd1b19d53ad 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppInstanceSearch.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppInstanceSearch.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppSearch.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppSearch.png
index 43161924b3a00..f51e85015278b 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppSearch.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppSearch.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppSearchResults.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppSearchResults.png
index 79ac78131a0cd..2826e042054f2 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppSearchResults.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/AppSearchResults.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/BonsulyRestApi.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/BonsulyRestApi.png
index f5116a06ab3cd..225715e04dda2 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/BonsulyRestApi.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/BonsulyRestApi.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/BonuslyIntegrations.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/BonuslyIntegrations.png
index 99f6a43cf83c5..c67a377fda244 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/BonuslyIntegrations.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/BonuslyIntegrations.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/CreateToken.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/CreateToken.png
index ab2e30b45683d..1adf39dee319e 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/CreateToken.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/CreateToken.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/EmailNotification.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/EmailNotification.png
index ab1771b16eaa6..c30218412add5 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/EmailNotification.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/EmailNotification.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningCredentials.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningCredentials.png
index f8263a04eeb39..1fc76bc1f17c1 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningCredentials.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningCredentials.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningStatus.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningStatus.png
index 64863f7c95fbb..6b127261a9abc 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningStatus.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningStatus.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningTab.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningTab.png
index 445d215a3c669..71727edcd35e2 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningTab.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ProvisioningTab.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/SaveProvisioning.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/SaveProvisioning.png
index 67db9eecce2f7..2dae2253d2ff3 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/SaveProvisioning.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/SaveProvisioning.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ScopeSync.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ScopeSync.png
index e698e807c1ea3..ed624f0c1e4b4 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ScopeSync.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/ScopeSync.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/TestConnection.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/TestConnection.png
index 9eccc657a8dbf..24f762834e652 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/TestConnection.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/TestConnection.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/Token01.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/Token01.png
index 5a0e09055835c..ec8de0d15a6c0 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/Token01.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/Token01.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/Token02.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/Token02.png
index 753ef31194dde..7b74c976557d4 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/Token02.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/Token02.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/UserAttributeMapping.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/UserAttributeMapping.png
index e49cb58d7199a..df8a2a103ef18 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/UserAttributeMapping.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/UserAttributeMapping.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/UserMappings.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/UserMappings.png
index 9dc5b6c7da4a1..84a187fb5df26 100644
Binary files a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/UserMappings.png and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/UserMappings.png differ
diff --git a/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/secrettoken.png b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/secrettoken.png
new file mode 100644
index 0000000000000..1b76d685b612e
Binary files /dev/null and b/articles/active-directory/saas-apps/media/bonusly-provisioning-tutorial/secrettoken.png differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_addfromgallery.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_addfromgallery.png
deleted file mode 100644
index d580f4209b8b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_app.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_app.png
deleted file mode 100644
index d4fa569c53a60..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_appid.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_appid.png
deleted file mode 100644
index 716f21483401e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_appid.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_appregistrations.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_appregistrations.png
deleted file mode 100644
index 812837b4098b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_appregistrations.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_endpoint.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_endpoint.png
deleted file mode 100644
index 0059f7a0f7ebe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_endpoint.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_endpointicon.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_endpointicon.png
deleted file mode 100644
index 76fb18b8e649c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_endpointicon.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_samlbase.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_url.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_url.png
deleted file mode 100644
index f2618f1dbedf8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_url1.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_url1.png
deleted file mode 100644
index 6cc57a9c6529c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_bpmonline_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_metadataurl.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_metadataurl.png
deleted file mode 100644
index cde4610937f8c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_metadataurl.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/bpmonline-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/cernercentral-provisioning-tutorial/cerner.png b/articles/active-directory/saas-apps/media/cernercentral-provisioning-tutorial/cerner.png
index 0f9dc911539ae..2669f7adedb51 100644
Binary files a/articles/active-directory/saas-apps/media/cernercentral-provisioning-tutorial/cerner.png and b/articles/active-directory/saas-apps/media/cernercentral-provisioning-tutorial/cerner.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppCreation.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppCreation.png
index ba52556b992a6..e6464145235a6 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppCreation.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppCreation.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppSearch.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppSearch.png
index 900e279189ed0..5b7a162f12388 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppSearch.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppSearch.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppSearchResults.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppSearchResults.png
index eb784a53d3674..bdc8391ccabcd 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppSearchResults.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/AppSearchResults.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/EmailNotification.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/EmailNotification.png
index 8ca56ffc08ffc..6859c1fdd8ad4 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/EmailNotification.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/EmailNotification.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/GetMyDetails.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/GetMyDetails.png
index be1af36818b9e..23156be549e48 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/GetMyDetails.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/GetMyDetails.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningCredentials.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningCredentials.png
index b5fa7a54d0102..1fc76bc1f17c1 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningCredentials.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningCredentials.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningStatus.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningStatus.png
index 013aea0f1bf61..3e33584bb58f1 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningStatus.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningStatus.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningTab.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningTab.png
index a8161b4632083..800b306706098 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningTab.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/ProvisioningTab.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/Save.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/Save.png
index 27503e5c2dd56..7f6d7439ff2a3 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/Save.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/Save.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/SecretToken.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/SecretToken.png
index 2d872749f004b..cba47c71e9247 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/SecretToken.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/SecretToken.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/Successcenter2.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/Successcenter2.png
index 61843e8735ec8..52484845e4bc3 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/Successcenter2.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/Successcenter2.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/SyncScope.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/SyncScope.png
index ef05eb075958c..a710d4a67d325 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/SyncScope.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/SyncScope.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/TestConnection.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/TestConnection.png
index aa8b705352206..45e0150b357f2 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/TestConnection.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/TestConnection.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/UserMapping.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/UserMapping.png
index cae2e09160146..aa2d11f1e7947 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/UserMapping.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/UserMapping.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/UserMappingAttributes.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/UserMappingAttributes.png
index 81e14ed16a770..e5d39e0dd7821 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/UserMappingAttributes.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/UserMappingAttributes.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/secrettoken1.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/secrettoken1.png
new file mode 100644
index 0000000000000..af382d310c519
Binary files /dev/null and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/secrettoken1.png differ
diff --git a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/tutorial_ciscospark_addfromgallery.png b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/tutorial_ciscospark_addfromgallery.png
index 50460cf8c99b7..e92a9930c7818 100644
Binary files a/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/tutorial_ciscospark_addfromgallery.png and b/articles/active-directory/saas-apps/media/cisco-spark-provisioning-tutorial/tutorial_ciscospark_addfromgallery.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/AppInstanceSearch.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/AppInstanceSearch.png
index fc95dc5a6fa1f..ccb3bdf60be37 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/AppInstanceSearch.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/AppInstanceSearch.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/Successcenter1.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/Successcenter1.png
index ff255653439e1..c582ca4839a77 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/Successcenter1.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/Successcenter1.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appcreation.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appcreation.png
index 033a65bdf263f..c7f008eb5786f 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appcreation.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appcreation.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appsearch.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appsearch.png
index 879b4e34c4080..c106bbcf8f3cb 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appsearch.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appsearch.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appsearchresults.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appsearchresults.png
index fed43fc39c0c6..60d424ab0c59a 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appsearchresults.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/appsearchresults.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/emailnotification.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/emailnotification.png
index b33905b99ee02..06db7783eb345 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/emailnotification.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/emailnotification.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/postionid.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/postionid.png
index 270d92e970e76..65e0ac83aa667 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/postionid.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/postionid.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningcredentials.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningcredentials.png
index d87c2edb3bb66..2df1b14d9bf04 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningcredentials.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningcredentials.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningstatus.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningstatus.png
index 31a4461a251d6..96fdbece1c786 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningstatus.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningstatus.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningtab.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningtab.png
index 95e19219f26e3..49f2f7020bc19 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningtab.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/provisioningtab.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/save.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/save.png
index e431ceed946d1..fee6170e67c16 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/save.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/save.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/successcenter2.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/successcenter2.png
index 347ec9a922063..16808aed2574e 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/successcenter2.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/successcenter2.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/syncscope.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/syncscope.png
index 4922f604ef73c..04bfdd76643bd 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/syncscope.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/syncscope.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/testconnection.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/testconnection.png
index 02fadb4aeafd4..77158329e96f9 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/testconnection.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/testconnection.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/useredit.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/useredit.png
index db7ec835f74a0..cf7fc396de84a 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/useredit.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/useredit.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/usermapping.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/usermapping.png
index 1fbd68d6a69c1..f9810d71596c5 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/usermapping.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/usermapping.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/usermappingattributes.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/usermappingattributes.png
index 884ed93f210bb..c1015ec3a9eed 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/usermappingattributes.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/usermappingattributes.png differ
diff --git a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/userposition.png b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/userposition.png
index deac43cf7391c..b44911ead9ae0 100644
Binary files a/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/userposition.png and b/articles/active-directory/saas-apps/media/cornerstone-ondemand-provisioning-tutorial/userposition.png differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_addfromgallery.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_addfromgallery.png
deleted file mode 100644
index 7566cae318717..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_app.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_app.png
deleted file mode 100644
index 3c59f29ca2c37..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_certificate.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_certificate.png
deleted file mode 100644
index bc0fba3decbd0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_configure.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_configure.png
deleted file mode 100644
index 42cd3060ea234..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_samlbase.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_samlbase.png
deleted file mode 100644
index e6d6f36019182..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_search.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_search.png
deleted file mode 100644
index 2c4459e2817ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_url.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_url.png
deleted file mode 100644
index 7e8871ddd690a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_url1.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_url1.png
deleted file mode 100644
index 15c4aa77b32d7..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_direct_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/direct-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_001.png b/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_001.png
deleted file mode 100644
index 6ce33063b403b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_002.png b/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_002.png
deleted file mode 100644
index d9f9eb8a13257..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_002.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_003.png b/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_003.png
deleted file mode 100644
index 2ea4aab1800e0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_003.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_04.png
deleted file mode 100644
index 781205fba8219..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_00.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_00.png
deleted file mode 100644
index 334ba2110095a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_00.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_01.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_01.png
deleted file mode 100644
index f5353f3ed2b38..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_02.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_02.png
deleted file mode 100644
index 96aa0aaa350f3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_03.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_03.png
deleted file mode 100644
index 20383988c0e13..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_04.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_04.png
deleted file mode 100644
index 4b5a06b4469b4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_05.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_05.png
deleted file mode 100644
index f3f1b8b2a2754..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_06.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_06.png
deleted file mode 100644
index 90e8e663f8540..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_10.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_10.png
deleted file mode 100644
index b42484dfb6387..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_10.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_11.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_11.png
deleted file mode 100644
index 297c379b020be..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_11.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_12.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_12.png
deleted file mode 100644
index cb244d76e63d9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_12.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_13.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_13.png
deleted file mode 100644
index d0c41b5610ab1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_13.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_14.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_14.png
deleted file mode 100644
index 5a697a59ed118..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_14.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_15.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_15.png
deleted file mode 100644
index 58e77c589143a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_15.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_16.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_16.png
deleted file mode 100644
index 0ae42448c8b8c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_16.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_17.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_17.png
deleted file mode 100644
index 7cdf4b1d798cc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_17.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_addfromgallery.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_addfromgallery.png
deleted file mode 100644
index 4da0d2f674105..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_app.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_app.png
deleted file mode 100644
index 216ff8ede0ea0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_certificate.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_certificate.png
deleted file mode 100644
index 466fe88cb2ac0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_configure.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_configure.png
deleted file mode 100644
index 8cd66fb0479a5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_configuresignon.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_configuresignon.png
deleted file mode 100644
index 3de848ec2f520..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_configuresignon.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_samlbase.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_search.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_search.png
deleted file mode 100644
index d149d178507dc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_url.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_url.png
deleted file mode 100644
index 85df8b5f311cb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_url1.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_url1.png
deleted file mode 100644
index fee51be325a1c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_docusign_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ccf27fd4cba3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_03.png
deleted file mode 100644
index d56f6b9d57f2b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_203.png
deleted file mode 100644
index 2f3911fc297e2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_300.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_300.png
deleted file mode 100644
index 5a9f929f06020..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_300.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/docusign-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_addfromgallery.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_addfromgallery.png
deleted file mode 100644
index 43352ea33735f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_app.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_app.png
deleted file mode 100644
index bd7acb1a74271..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_certificate.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_certificate.png
deleted file mode 100644
index 392ed605c94f8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_configure.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_configure.png
deleted file mode 100644
index 91418fe0c8c9c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_samlbase.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_samlbase.png
deleted file mode 100644
index 26de6ebb04065..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_url1.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_url1.png
deleted file mode 100644
index ad651dbfb3a34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_url2.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_url2.png
deleted file mode 100644
index 61d8a7185c661..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_dossier_url2.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/dossier-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_addfromgallery.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_addfromgallery.png
deleted file mode 100644
index ca2fa8209e74c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_app.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_app.png
deleted file mode 100644
index 53e750a085a72..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_attribute.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_attribute.png
deleted file mode 100644
index 47060a15aeafe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_certificate.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_certificate.png
deleted file mode 100644
index bf1c86caf98b3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_configure.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_configure.png
deleted file mode 100644
index 71355a0a0df36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_samlbase.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_url.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_url.png
deleted file mode 100644
index ea54fe70d5f0d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_url1.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_url1.png
deleted file mode 100644
index a3696b9893706..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_userclaims.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_userclaims.png
deleted file mode 100644
index 22916707add16..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_ebsco_userclaims.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/ebsco-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/evernote-tutorial/samlassertion.png b/articles/active-directory/saas-apps/media/evernote-tutorial/samlassertion.png
new file mode 100644
index 0000000000000..a9cf9fad219e4
Binary files /dev/null and b/articles/active-directory/saas-apps/media/evernote-tutorial/samlassertion.png differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_04.png
deleted file mode 100644
index bbe13b96cb032..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_0001.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_0001.png
deleted file mode 100644
index 2f245dbdcebbd..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_0001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_001.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_001.png
deleted file mode 100644
index 9b26dad1bb65d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_01.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_01.png
deleted file mode 100644
index 64941fea59f05..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_02.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_02.png
deleted file mode 100644
index 650aff06a79ba..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_03.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_03.png
deleted file mode 100644
index 5ad82f093af33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_04.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_04.png
deleted file mode 100644
index 9a3d99c6354ab..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_05.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_05.png
deleted file mode 100644
index 00cd53e108208..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_06.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_06.png
deleted file mode 100644
index 3c1e0995eb86b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_07.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_07.png
deleted file mode 100644
index 5f77597e9361d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_50.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_50.png
deleted file mode 100644
index 8dc7ac15148fc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_firmplay_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_02.png
deleted file mode 100644
index 719c2277e9d95..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_03.png
deleted file mode 100644
index 1f3d381fc718b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_100.png
deleted file mode 100644
index 6284443d7f7df..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_203.png
deleted file mode 100644
index afc9c1d33207e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_300.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_300.png
deleted file mode 100644
index 5a9f929f06020..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_300.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_400.png
deleted file mode 100644
index e4fc4a2fb2d42..0000000000000
Binary files a/articles/active-directory/saas-apps/media/firmplay-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_04.png
deleted file mode 100644
index 781205fba8219..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 626684f2721e5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_addfromgallery.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_addfromgallery.png
deleted file mode 100644
index 6a9c2c44f81e7..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_app.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_app.png
deleted file mode 100644
index 943feba27401a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_certificate.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_certificate.png
deleted file mode 100644
index edeb8fcf1e403..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_configure.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_configure.png
deleted file mode 100644
index 64db13a160302..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_samlbase.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_samlbase.png
deleted file mode 100644
index 2331d719e7838..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_search.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_search.png
deleted file mode 100644
index 83645680f0b2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_url.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_url.png
deleted file mode 100644
index a674760ebdeda..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_five9_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ccf27fd4cba3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_203.png
deleted file mode 100644
index 2f3911fc297e2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/five9-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_addfromgallery.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_addfromgallery.png
deleted file mode 100644
index 26604fe43919a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_app.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_app.png
deleted file mode 100644
index 324e693c3828b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_certificate.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_certificate.png
deleted file mode 100644
index dbfe5a3164158..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_configure.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_configure.png
deleted file mode 100644
index cf986c14eceeb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_samlbase.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_samlbase.png
deleted file mode 100644
index 4a656fbdd0a34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_url.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_url.png
deleted file mode 100644
index 966aa5135d005..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_fluxxlabs_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fluxxlabs-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC700993.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC700993.png
deleted file mode 100644
index 3a303b64c0a0e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC700993.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC700994.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC700994.png
deleted file mode 100644
index a193ab9aa932e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC700994.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC749321.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC749321.png
deleted file mode 100644
index 9f523d7bf9342..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC749321.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC749322.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC749322.png
deleted file mode 100644
index a45b53803d99f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC749322.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC767830.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC767830.png
deleted file mode 100644
index 56a8200c0f604..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC767830.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC790810.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC790810.png
deleted file mode 100644
index d022f10954981..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC790810.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795899.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795899.png
deleted file mode 100644
index 09f4794de0d99..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795899.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795900.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795900.png
deleted file mode 100644
index e5dcfc4f7cf98..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795900.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795901.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795901.png
deleted file mode 100644
index 7adc80092ee5a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795901.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795902.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795902.png
deleted file mode 100644
index 5da913984cca5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795902.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795903.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795903.png
deleted file mode 100644
index c569891eaee77..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795903.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795904.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795904.png
deleted file mode 100644
index 468a050e1b62f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795904.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795908.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795908.png
deleted file mode 100644
index f9b756c4a6842..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC795908.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC800213.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC800213.png
deleted file mode 100644
index fbeff3eced019..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/IC800213.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_addfromgallery.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_addfromgallery.png
deleted file mode 100644
index badc82f201087..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_app.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_app.png
deleted file mode 100644
index 161cef09a0e87..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_certificate.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_certificate.png
deleted file mode 100644
index 615621246fa39..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_configure.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_configure.png
deleted file mode 100644
index 89d9823d2c5b7..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_samlbase.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_search.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_search.png
deleted file mode 100644
index f9a9fbc866779..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_url.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_url.png
deleted file mode 100644
index 6bd2bdbf42c1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_fmsystems_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/fm-systems-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_addfromgallery.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_addfromgallery.png
deleted file mode 100644
index fd5dbc806df9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_app.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_app.png
deleted file mode 100644
index 6e29b112ea375..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_certificate.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_certificate.png
deleted file mode 100644
index 5d31805a6a017..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_configure.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_configure.png
deleted file mode 100644
index 1dadc31e96bce..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_samlbase.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_samlbase.png
deleted file mode 100644
index 27b8a56d48d35..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_url.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_url.png
deleted file mode 100644
index d95fe9909280a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseecxsuite_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseen_uploadconfig.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseen_uploadconfig.png
deleted file mode 100644
index 96075ff29bd28..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_foreseen_uploadconfig.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/upload.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/upload.png
deleted file mode 100644
index b6d899d59f903..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/upload.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/urlupload.png b/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/urlupload.png
deleted file mode 100644
index 83b83807e0d48..0000000000000
Binary files a/articles/active-directory/saas-apps/media/foreseecxsuite-tutorial/urlupload.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/github-provisioning-tutorial/github1.png b/articles/active-directory/saas-apps/media/github-provisioning-tutorial/github1.png
index 849a744b41be9..aed1859cb7d76 100644
Binary files a/articles/active-directory/saas-apps/media/github-provisioning-tutorial/github1.png and b/articles/active-directory/saas-apps/media/github-provisioning-tutorial/github1.png differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/a_new_app.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/a_new_app.png
deleted file mode 100644
index 91b82d91754f9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/a_new_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/a_select_app.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/a_select_app.png
deleted file mode 100644
index 303e5d5cec13b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/a_select_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1-domains_and_urlsedit.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1-domains_and_urlsedit.png
deleted file mode 100644
index 8d5923b677728..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1-domains_and_urlsedit.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1_b2_saml_sso.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1_b2_saml_sso.png
deleted file mode 100644
index 69a2132bcd402..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1_b2_saml_sso.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1_b2_saml_ssso.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1_b2_saml_ssso.png
deleted file mode 100644
index 320d593226975..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1_b2_saml_ssso.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1_b2_select_sso.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1_b2_select_sso.png
deleted file mode 100644
index 0faa78258e79b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b1_b2_select_sso.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b9(1)_saml.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/b9(1)_saml.png
deleted file mode 100644
index 5e0f1d81c58e6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b9(1)_saml.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b9_saml.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/b9_saml.png
deleted file mode 100644
index fc9302a934687..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/b9_saml.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/certificatebase64.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/certificatebase64.png
deleted file mode 100644
index 0ba3c8f9188a4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/certificatebase64.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d1_samlsonfigure.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/d1_samlsonfigure.png
deleted file mode 100644
index 8d524172bfff7..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d1_samlsonfigure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_adduser.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_adduser.png
deleted file mode 100644
index 3cd3495767a28..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_adduser.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_all_applications.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_all_applications.png
deleted file mode 100644
index dd91cce5e0c9e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_all_applications.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_assign_user.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_assign_user.png
deleted file mode 100644
index b5d160e0613e9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_assign_user.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_leftpaneusers.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_leftpaneusers.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_leftpaneusers.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_userproperties.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_userproperties.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_userproperties.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_users_and_groups.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_users_and_groups.png
deleted file mode 100644
index 71803b1d712d2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/d_users_and_groups.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/i2-attribute.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/i2-attribute.png
deleted file mode 100644
index 7be8251b91b92..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/i2-attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/i3-attribute.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/i3-attribute.png
deleted file mode 100644
index e737926a52989..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/i3-attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/i4-attribute.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/i4-attribute.png
deleted file mode 100644
index 37b696a42a72b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/i4-attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/selectazuread.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/selectazuread.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/selectazuread.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_applicationname_certificateedit.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_applicationname_certificateedit.png
deleted file mode 100644
index 02f38971ccfca..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_applicationname_certificateedit.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_addfromgallery.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_addfromgallery.png
deleted file mode 100644
index 0c24f8b4b7a65..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_app.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_app.png
deleted file mode 100644
index 7c8c3e21a7807..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_certificate.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_certificate.png
deleted file mode 100644
index d402ba86a9282..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_url.png b/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_url.png
deleted file mode 100644
index 909bcf2bb0c70..0000000000000
Binary files a/articles/active-directory/saas-apps/media/glassfrog-tutorial/tutorial_glassfrog_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC700993.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC700993.png
deleted file mode 100644
index 3a303b64c0a0e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC700993.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC700994.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC700994.png
deleted file mode 100644
index a193ab9aa932e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC700994.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC749321.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC749321.png
deleted file mode 100644
index 9f523d7bf9342..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC749321.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC749322.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC749322.png
deleted file mode 100644
index a45b53803d99f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC749322.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC767830.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC767830.png
deleted file mode 100644
index 56a8200c0f604..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC767830.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794128.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC794128.png
deleted file mode 100644
index a8c7826a5eeee..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794128.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794129.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC794129.png
deleted file mode 100644
index f020d9d754752..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794129.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794130.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC794130.png
deleted file mode 100644
index 5c13526eb1a14..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794130.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794131.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC794131.png
deleted file mode 100644
index de6b3e20ed1dd..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794131.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794132.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC794132.png
deleted file mode 100644
index ed3288cb64762..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794132.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794133.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC794133.png
deleted file mode 100644
index 716d63d5109c0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794133.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794134.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC794134.png
deleted file mode 100644
index 391bdb80d9705..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794134.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794137.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC794137.png
deleted file mode 100644
index d16f5057d4683..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794137.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794138.png b/articles/active-directory/saas-apps/media/insideview-tutorial/IC794138.png
deleted file mode 100644
index 4d80c3f707c09..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/IC794138.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_addfromgallery.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_addfromgallery.png
deleted file mode 100644
index 94fc42d340b67..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_app.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_app.png
deleted file mode 100644
index 7a4261236a92c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_certificate.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_certificate.png
deleted file mode 100644
index 2bec36afd30fc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_configure.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_configure.png
deleted file mode 100644
index b8d469ca1f9f4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_samlbase.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_search.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_search.png
deleted file mode 100644
index fb97184768493..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_url.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_url.png
deleted file mode 100644
index 64b7514332710..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_insideview_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insideview-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_06.png
deleted file mode 100644
index 2384e9f3e4830..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_01.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_01.png
deleted file mode 100644
index 04cf34c73db27..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_02.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_02.png
deleted file mode 100644
index f60efa1809a05..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_03.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_03.png
deleted file mode 100644
index f6030f31cc889..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_04.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_04.png
deleted file mode 100644
index e67b8db623a9e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_05.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_05.png
deleted file mode 100644
index b2b1cc09ee85e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_50.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_50.png
deleted file mode 100644
index 42725e5160eeb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_addfromgallery.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_addfromgallery.png
deleted file mode 100644
index fd4f716bd59f2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_app.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_app.png
deleted file mode 100644
index 64e2723f98c8e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_certificate.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_certificate.png
deleted file mode 100644
index 5c229db09babb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_configure.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_configure.png
deleted file mode 100644
index 1737b35d66ee3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_samlbase.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_search.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_search.png
deleted file mode 100644
index f2271188cd013..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_url.png b/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_url.png
deleted file mode 100644
index c1c80ae3f76fe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/insperityexpensable-tutorial/tutorial_insperityexpensable_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC700993.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC700993.png
deleted file mode 100644
index 3a303b64c0a0e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC700993.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC700994.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC700994.png
deleted file mode 100644
index a193ab9aa932e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC700994.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC749321.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC749321.png
deleted file mode 100644
index 9f523d7bf9342..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC749321.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC749322.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC749322.png
deleted file mode 100644
index a45b53803d99f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC749322.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC767830.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC767830.png
deleted file mode 100644
index 0ae42448c8b8c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC767830.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC771709.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC771709.png
deleted file mode 100644
index fe94fdb5f87c1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC771709.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775551.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC775551.png
deleted file mode 100644
index 771995fb5ceec..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775551.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775565.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC775565.png
deleted file mode 100644
index b13ed30245ca1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775565.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775566.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC775566.png
deleted file mode 100644
index 80ee26db86434..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775566.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775567.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC775567.png
deleted file mode 100644
index c907ee4cff81f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775567.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775568.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC775568.png
deleted file mode 100644
index c113b88130f53..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775568.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775569.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC775569.png
deleted file mode 100644
index c13c93cb4ca67..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775569.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775574.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC775574.png
deleted file mode 100644
index 453c350c12421..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775574.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775588.png b/articles/active-directory/saas-apps/media/itrp-tutorial/IC775588.png
deleted file mode 100644
index 9b2b2e6ce1d5d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/IC775588.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_addfromgallery.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_addfromgallery.png
deleted file mode 100644
index b79399f7ca708..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_app.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_app.png
deleted file mode 100644
index 0ebe88eb34478..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_certificate.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_certificate.png
deleted file mode 100644
index acc774f6fe97f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_configure.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_configure.png
deleted file mode 100644
index 792f63057fcc5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_samlbase.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_search.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_search.png
deleted file mode 100644
index 7171d53fd772d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_url.png b/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_url.png
deleted file mode 100644
index ce316f41290c8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/itrp-tutorial/tutorial_itrp_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC700993.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC700993.png
deleted file mode 100644
index 3a303b64c0a0e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC700993.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC700994.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC700994.png
deleted file mode 100644
index a193ab9aa932e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC700994.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC749321.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC749321.png
deleted file mode 100644
index 9f523d7bf9342..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC749321.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC749322.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC749322.png
deleted file mode 100644
index a45b53803d99f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC749322.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC767830.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC767830.png
deleted file mode 100644
index 56a8200c0f604..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC767830.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785859.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC785859.png
deleted file mode 100644
index 5000a04fb0dad..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785859.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785867.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC785867.png
deleted file mode 100644
index 3681157dbacdc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785867.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785871.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC785871.png
deleted file mode 100644
index a1600f7d86c0c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785871.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785872.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC785872.png
deleted file mode 100644
index dec33e243a2d6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785872.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785873.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC785873.png
deleted file mode 100644
index 4306cd503ef77..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785873.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785875.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC785875.png
deleted file mode 100644
index 165c0d5fd1e6d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785875.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785878.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC785878.png
deleted file mode 100644
index cd612c1c7e6bb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785878.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785884.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC785884.png
deleted file mode 100644
index 7a07c6013b5d1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785884.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785891.png b/articles/active-directory/saas-apps/media/kintone-tutorial/IC785891.png
deleted file mode 100644
index 313cf76263c83..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/IC785891.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/SaaSApp_Kintone.png b/articles/active-directory/saas-apps/media/kintone-tutorial/SaaSApp_Kintone.png
deleted file mode 100644
index 5c8f23b5a77a2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/SaaSApp_Kintone.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_addfromgallery.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_addfromgallery.png
deleted file mode 100644
index 6d5a8418b93ba..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_app.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_app.png
deleted file mode 100644
index a5f3e44c5ed53..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_certificate.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_certificate.png
deleted file mode 100644
index fdc4bed5d9da9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_configure.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_configure.png
deleted file mode 100644
index 491ea85174aa1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_samlbase.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_search.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_search.png
deleted file mode 100644
index 54dc201483a0e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_url.png b/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_url.png
deleted file mode 100644
index 85e6f77143d0e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/kintone-tutorial/tutorial_kintone_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate1.png b/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate1.png
index a171762b2848d..6f3c5058b5a7d 100644
Binary files a/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate1.png and b/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate1.png differ
diff --git a/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate2.png b/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate2.png
index 2f1fc422597a5..c09b49c656266 100644
Binary files a/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate2.png and b/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate2.png differ
diff --git a/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate3.png b/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate3.png
index 911e5c3cb6fb1..342ba43ba9be0 100644
Binary files a/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate3.png and b/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate3.png differ
diff --git a/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate4.png b/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate4.png
index 44a930cc7b256..abc39f3a0da3e 100644
Binary files a/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate4.png and b/articles/active-directory/saas-apps/media/linkedinelevate-provisioning-tutorial/linkedin_elevate4.png differ
diff --git a/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_1.png b/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_1.png
index a171762b2848d..6f3c5058b5a7d 100644
Binary files a/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_1.png and b/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_1.png differ
diff --git a/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_2.png b/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_2.png
index 2f1fc422597a5..c09b49c656266 100644
Binary files a/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_2.png and b/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_2.png differ
diff --git a/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_3.png b/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_3.png
index bf92429d86a57..5157a6abdc41d 100644
Binary files a/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_3.png and b/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_3.png differ
diff --git a/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_4.png b/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_4.png
index 44a930cc7b256..abc39f3a0da3e 100644
Binary files a/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_4.png and b/articles/active-directory/saas-apps/media/linkedinsalesnavigator-provisioning-tutorial/linkedin_4.png differ
diff --git a/articles/active-directory/saas-apps/media/lucidchart-provisioning-tutorial/lucidchart1.png b/articles/active-directory/saas-apps/media/lucidchart-provisioning-tutorial/lucidchart1.png
index 059a27270bf96..ba41c477a0791 100644
Binary files a/articles/active-directory/saas-apps/media/lucidchart-provisioning-tutorial/lucidchart1.png and b/articles/active-directory/saas-apps/media/lucidchart-provisioning-tutorial/lucidchart1.png differ
diff --git a/articles/active-directory/saas-apps/media/lucidchart-provisioning-tutorial/lucidchart2.png b/articles/active-directory/saas-apps/media/lucidchart-provisioning-tutorial/lucidchart2.png
index 11112615082a0..7def6cdc9328f 100644
Binary files a/articles/active-directory/saas-apps/media/lucidchart-provisioning-tutorial/lucidchart2.png and b/articles/active-directory/saas-apps/media/lucidchart-provisioning-tutorial/lucidchart2.png differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_addfromgallery.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_addfromgallery.png
deleted file mode 100644
index 225692facdcf2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_app.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_app.png
deleted file mode 100644
index 20a129a284056..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_certificate.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_certificate.png
deleted file mode 100644
index 057308c74f7ad..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_configure.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_configure.png
deleted file mode 100644
index ccfb89bcb0945..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_samlbase.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_samlbase.png
deleted file mode 100644
index d6d9e49b22775..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_url.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_url.png
deleted file mode 100644
index e70281be5f94b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_url1.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_url1.png
deleted file mode 100644
index bd767604a4da3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_manabipocket_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/manabipocket-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/merchlogix-provisioning-tutorial/Merchlogix1.png b/articles/active-directory/saas-apps/media/merchlogix-provisioning-tutorial/Merchlogix1.png
index 1c56eba29101b..51a1af31212d5 100644
Binary files a/articles/active-directory/saas-apps/media/merchlogix-provisioning-tutorial/Merchlogix1.png and b/articles/active-directory/saas-apps/media/merchlogix-provisioning-tutorial/Merchlogix1.png differ
diff --git a/articles/active-directory/saas-apps/media/pingboard-provisioning-tutorial/pingboardazureprovisioning.png b/articles/active-directory/saas-apps/media/pingboard-provisioning-tutorial/pingboardazureprovisioning.png
index 0ff5663d812af..db79babee81d0 100644
Binary files a/articles/active-directory/saas-apps/media/pingboard-provisioning-tutorial/pingboardazureprovisioning.png and b/articles/active-directory/saas-apps/media/pingboard-provisioning-tutorial/pingboardazureprovisioning.png differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_03.png
deleted file mode 100644
index 1f3d381fc718b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_addfromgallery.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_addfromgallery.png
deleted file mode 100644
index 1202d68d79a5a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_app.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_app.png
deleted file mode 100644
index ddc1c8d3100c0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_certificate.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_certificate.png
deleted file mode 100644
index d402ba86a9282..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_configure.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_configure.png
deleted file mode 100644
index c45b70e2a2d6d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_samlbase.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_samlbase.png
deleted file mode 100644
index 10738b32fce9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_search.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_search.png
deleted file mode 100644
index a6f3b86b16ab9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_url.png b/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_url.png
deleted file mode 100644
index 478b66b8fb7c8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/procoresso-tutorial/tutorial_procoresso_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/attribute.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/attribute.png
deleted file mode 100644
index 26ce13a23991e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_addfromgallery.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_addfromgallery.png
deleted file mode 100644
index 3b658231f0d05..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_app.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_app.png
deleted file mode 100644
index f21875c0fe872..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_certificate.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_certificate.png
deleted file mode 100644
index d6fd3d21672df..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_configure.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_configure.png
deleted file mode 100644
index 41e302cfb9db5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_samlbase.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_samlbase.png
deleted file mode 100644
index 85ed744135e14..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_url.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_url.png
deleted file mode 100644
index 9732c343760e4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_url1.png b/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_url1.png
deleted file mode 100644
index c07cb5fd19f94..0000000000000
Binary files a/articles/active-directory/saas-apps/media/qumucloud-tutorial/tutorial_qumucloud_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/logo.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/logo.png
deleted file mode 100644
index 5f4c8d1c27df6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/logo.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_06.png
deleted file mode 100644
index 2384e9f3e4830..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_01.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_01.png
deleted file mode 100644
index cc562d1c6b25c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_02.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_02.png
deleted file mode 100644
index 24bcb8b1d8563..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_03.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_03.png
deleted file mode 100644
index 1e57ad992ec90..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_04.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_04.png
deleted file mode 100644
index 16a8ae96cb7f5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_05.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_05.png
deleted file mode 100644
index 8e0f86416c1de..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_50.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_50.png
deleted file mode 100644
index 4e5cf84c44054..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_addfromgallery.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_addfromgallery.png
deleted file mode 100644
index 4ea3c95e48990..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_app.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_app.png
deleted file mode 100644
index d86a6f331c72a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_certificate.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_certificate.png
deleted file mode 100644
index 0c5af0089ce7f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_configure.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_configure.png
deleted file mode 100644
index 00ddbaec1ab25..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_samlbase.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_search.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_search.png
deleted file mode 100644
index 46c335a4e7195..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_url.png b/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_url.png
deleted file mode 100644
index 8a4676311f741..0000000000000
Binary files a/articles/active-directory/saas-apps/media/reward-gateway-tutorial/tutorial_rewardgateway_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_001.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_001.png
deleted file mode 100644
index 6ce33063b403b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_002.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_002.png
deleted file mode 100644
index d9f9eb8a13257..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_002.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_003.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_003.png
deleted file mode 100644
index 2ea4aab1800e0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_003.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_06.png
deleted file mode 100644
index a19bca7802f19..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_300.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_300.png
deleted file mode 100644
index 5a9f929f06020..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_300.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_0001.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_0001.png
deleted file mode 100644
index e4f4ce7f8ff80..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_0001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_001.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_001.png
deleted file mode 100644
index 92a78d38bd26f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_01.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_01.png
deleted file mode 100644
index 7a3b61122b716..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_02.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_02.png
deleted file mode 100644
index 208239a26a3ee..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_03.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_03.png
deleted file mode 100644
index 96a3bf7d035e3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_04.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_04.png
deleted file mode 100644
index 14734dece3da4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_05.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_05.png
deleted file mode 100644
index 999ff92991508..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_06.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_06.png
deleted file mode 100644
index 7ec480a809c3e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_07.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_07.png
deleted file mode 100644
index c3df42774be74..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_50.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_50.png
deleted file mode 100644
index 6dfeba7766a1d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_addfromgallery.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_addfromgallery.png
deleted file mode 100644
index 956830888e538..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_app.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_app.png
deleted file mode 100644
index c0d19399a9263..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_attribute.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_attribute.png
deleted file mode 100644
index 7468b6fbeeecb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_certificate.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_certificate.png
deleted file mode 100644
index a14b3e28f54b7..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_configure.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_configure.png
deleted file mode 100644
index 49b08c776bda9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_samlbase.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_search.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_search.png
deleted file mode 100644
index fc7930d18386f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_url.png b/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_url.png
deleted file mode 100644
index 0446a9ce3e9c0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/rolepoint-tutorial/tutorial_rolepoint_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/salesforcexml.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/salesforcexml.png
index d8a2dde763714..9ca2d9f1cc789 100644
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/salesforcexml.png and b/articles/active-directory/saas-apps/media/salesforce-tutorial/salesforcexml.png differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_02.png
deleted file mode 100644
index ef5c35e21cbd0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_03.png
deleted file mode 100644
index 91b82d91754f9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_04.png
deleted file mode 100644
index f3b1e9e9b1833..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_100.png
deleted file mode 100644
index 71803b1d712d2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_201.png
deleted file mode 100644
index ef5c35e21cbd0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_203.png
deleted file mode 100644
index 650ebfeea6d6a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_300.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_300.png
deleted file mode 100644
index 320d593226975..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_300.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_301.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_301.png
deleted file mode 100644
index 27854b6850610..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_301.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_302.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_302.png
deleted file mode 100644
index be099046360f6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_302.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_addfromgallery.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_addfromgallery.png
deleted file mode 100644
index fe6a559f4f52b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_app.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_app.png
deleted file mode 100644
index ed30537dea696..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_certificate.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_certificate.png
deleted file mode 100644
index 145ca55976f8a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_configure.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_configure.png
deleted file mode 100644
index 71fc3567657ec..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_configuresignon.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_configuresignon.png
deleted file mode 100644
index 22e7dd80cf6f6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_configuresignon.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_samlbase.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_samlbase.png
deleted file mode 100644
index e40abfe40c3bc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_search.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_search.png
deleted file mode 100644
index 074b7bfbc28c1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_url.png b/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_url.png
deleted file mode 100644
index 0cd61e96c29a6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/salesforce-tutorial/tutorial_salesforce_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/claimsaad1.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/claimsaad1.png
new file mode 100644
index 0000000000000..7fb93e825071a
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/claimsaad1.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/claimsaad2.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/claimsaad2.png
new file mode 100644
index 0000000000000..25db91356b70b
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/claimsaad2.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/configuration1.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/configuration1.png
new file mode 100644
index 0000000000000..905cd53c2819e
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/configuration1.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/configuration2.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/configuration2.png
new file mode 100644
index 0000000000000..9208a89f208d2
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/configuration2.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/edit-attribute.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/edit-attribute.png
new file mode 100644
index 0000000000000..b30356a68f626
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/edit-attribute.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/edit_attribute.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/edit_attribute.png
new file mode 100644
index 0000000000000..b30356a68f626
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/edit_attribute.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/nameidattribute.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/nameidattribute.png
new file mode 100644
index 0000000000000..43edb1d0a085f
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/nameidattribute.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/nameidattribute1.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/nameidattribute1.png
new file mode 100644
index 0000000000000..9f33c76437563
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/nameidattribute1.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/nameiddetails.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/nameiddetails.png
new file mode 100644
index 0000000000000..86db4c3b77602
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/nameiddetails.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/testingsso.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/testingsso.png
new file mode 100644
index 0000000000000..d87df40ab46ac
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/testingsso.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-addfromgallery.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-addfromgallery.png
new file mode 100644
index 0000000000000..3790aab9b797c
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-addfromgallery.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-addidentityprovider.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-addidentityprovider.png
new file mode 100644
index 0000000000000..e44b301e1e513
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-addidentityprovider.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-aliasname.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-aliasname.png
new file mode 100644
index 0000000000000..fad5c912935cd
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-aliasname.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-app.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-app.png
new file mode 100644
index 0000000000000..8c52be12600d2
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-app.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-artifactendpoint.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-artifactendpoint.png
new file mode 100644
index 0000000000000..c03f9ff7be21f
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-artifactendpoint.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-authentication.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-authentication.png
new file mode 100644
index 0000000000000..d6afba115301a
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-authentication.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-generatesp.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-generatesp.png
new file mode 100644
index 0000000000000..57606c1fff32c
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-generatesp.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-httpredirect.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-httpredirect.png
new file mode 100644
index 0000000000000..693e132498f0b
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-httpredirect.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-httpredirect1.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-httpredirect1.png
new file mode 100644
index 0000000000000..015b5768de19c
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-httpredirect1.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-identityprovider.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-identityprovider.png
new file mode 100644
index 0000000000000..9ebd8bfc3e600
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-identityprovider.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-metadatafile.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-metadatafile.png
new file mode 100644
index 0000000000000..5aefeedc8cd81
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-metadatafile.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-nameid.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-nameid.png
new file mode 100644
index 0000000000000..54531e854d9ff
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-nameid.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-nameiddetails.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-nameiddetails.png
new file mode 100644
index 0000000000000..86db4c3b77602
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-nameiddetails.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-nameiddetails1.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-nameiddetails1.png
new file mode 100644
index 0000000000000..dda73abd8375a
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-nameiddetails1.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-profileparameter.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-profileparameter.png
new file mode 100644
index 0000000000000..55636f487bc55
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-profileparameter.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-providername.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-providername.png
new file mode 100644
index 0000000000000..b1a954c39a48f
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-providername.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-samlconfig.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-samlconfig.png
new file mode 100644
index 0000000000000..2eddf978ba248
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-samlconfig.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-sapbusinessclient.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-sapbusinessclient.png
new file mode 100644
index 0000000000000..48dfb4b1433f7
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-sapbusinessclient.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-trustedprovider.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-trustedprovider.png
new file mode 100644
index 0000000000000..a4cfbd702d455
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-trustedprovider.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-uploadmetadata.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-uploadmetadata.png
new file mode 100644
index 0000000000000..71ed6bc7b40d8
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-uploadmetadata.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-url.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-url.png
new file mode 100644
index 0000000000000..502adb29e718c
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-url.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-userpwd.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-userpwd.png
new file mode 100644
index 0000000000000..29f0b23fc8435
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweaver-userpwd.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweavercertificate.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweavercertificate.png
new file mode 100644
index 0000000000000..07774a28bad2f
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-sapnetweavercertificate.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-usermailedit.jpg b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-usermailedit.jpg
new file mode 100644
index 0000000000000..a766b9d9fb6d6
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-usermailedit.jpg differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-usermailedit.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-usermailedit.png
new file mode 100644
index 0000000000000..a1c906d595929
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial-usermailedit.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_addfromgallery.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_addfromgallery.png
new file mode 100644
index 0000000000000..3790aab9b797c
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_addfromgallery.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_addidentityprovider.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_addidentityprovider.png
new file mode 100644
index 0000000000000..e44b301e1e513
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_addidentityprovider.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_aliasname.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_aliasname.png
new file mode 100644
index 0000000000000..fad5c912935cd
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_aliasname.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_app.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_app.png
new file mode 100644
index 0000000000000..8c52be12600d2
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_app.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_artifactendpoint.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_artifactendpoint.png
new file mode 100644
index 0000000000000..c03f9ff7be21f
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_artifactendpoint.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_authentication.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_authentication.png
new file mode 100644
index 0000000000000..d6afba115301a
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_authentication.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_certificate.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_certificate.png
new file mode 100644
index 0000000000000..07774a28bad2f
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_certificate.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_generatesp.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_generatesp.png
new file mode 100644
index 0000000000000..57606c1fff32c
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_generatesp.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_httpredirect.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_httpredirect.png
new file mode 100644
index 0000000000000..693e132498f0b
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_httpredirect.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_httpredirect1.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_httpredirect1.png
new file mode 100644
index 0000000000000..015b5768de19c
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_httpredirect1.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_identityprovider.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_identityprovider.png
new file mode 100644
index 0000000000000..9ebd8bfc3e600
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_identityprovider.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_metadatafile.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_metadatafile.png
new file mode 100644
index 0000000000000..5aefeedc8cd81
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_metadatafile.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_nameid.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_nameid.png
new file mode 100644
index 0000000000000..54531e854d9ff
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_nameid.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_nameiddetails.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_nameiddetails.png
new file mode 100644
index 0000000000000..86db4c3b77602
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_nameiddetails.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_nameiddetails1.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_nameiddetails1.png
new file mode 100644
index 0000000000000..dda73abd8375a
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_nameiddetails1.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_profileparameter.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_profileparameter.png
new file mode 100644
index 0000000000000..55636f487bc55
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_profileparameter.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_providername.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_providername.png
new file mode 100644
index 0000000000000..b1a954c39a48f
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_providername.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_samlconfig.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_samlconfig.png
new file mode 100644
index 0000000000000..2eddf978ba248
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_samlconfig.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_sapbusinessclient.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_sapbusinessclient.png
new file mode 100644
index 0000000000000..48dfb4b1433f7
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_sapbusinessclient.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_trustedprovider.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_trustedprovider.png
new file mode 100644
index 0000000000000..a4cfbd702d455
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_trustedprovider.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_uploadmetadata.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_uploadmetadata.png
new file mode 100644
index 0000000000000..71ed6bc7b40d8
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_uploadmetadata.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_url.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_url.png
new file mode 100644
index 0000000000000..502adb29e718c
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_url.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_userpwd.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_userpwd.png
new file mode 100644
index 0000000000000..29f0b23fc8435
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_sapnetweaver_userpwd.png differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_usermailedit.jpg b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_usermailedit.jpg
new file mode 100644
index 0000000000000..a766b9d9fb6d6
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_usermailedit.jpg differ
diff --git a/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_usermailedit.png b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_usermailedit.png
new file mode 100644
index 0000000000000..a1c906d595929
Binary files /dev/null and b/articles/active-directory/saas-apps/media/sapfiori-tutorial/tutorial_usermailedit.png differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_04.png
deleted file mode 100644
index 781205fba8219..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 626684f2721e5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ccf27fd4cba3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_203.png
deleted file mode 100644
index 2f3911fc297e2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_addfromgallery.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_addfromgallery.png
deleted file mode 100644
index 97e157cbc071a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_app.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_app.png
deleted file mode 100644
index 4d11c9dc02104..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_certificate.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_certificate.png
deleted file mode 100644
index 180b0f7df1dfd..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_configure.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_configure.png
deleted file mode 100644
index 509603a0ff20c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_samlbase.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_search.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_search.png
deleted file mode 100644
index 9bdfd7ea30788..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_url.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_url.png
deleted file mode 100644
index 06737433b0ca5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_url1.png b/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_url1.png
deleted file mode 100644
index 4f5477c94944a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/scclifecycle-tutorial/tutorial_scclifecycle_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_addfromgallery.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_addfromgallery.png
deleted file mode 100644
index 22d64124447b4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_app.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_app.png
deleted file mode 100644
index 1695b7b40b29c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_appid.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_appid.png
deleted file mode 100644
index a26bd53fffc9c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_appid.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_appregistrations.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_appregistrations.png
deleted file mode 100644
index 812837b4098b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_appregistrations.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_attribute.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_attribute.png
deleted file mode 100644
index 19b13c5a93f91..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_attribute1.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_attribute1.png
deleted file mode 100644
index b65d64a031ec8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_attribute1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_certificate.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_certificate.png
deleted file mode 100644
index 56525b0bf6073..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_configure.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_configure.png
deleted file mode 100644
index 631a1a50b44af..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_endpoint.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_endpoint.png
deleted file mode 100644
index 3f3907c258931..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_endpoint.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_endpointicon.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_endpointicon.png
deleted file mode 100644
index 76fb18b8e649c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_endpointicon.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_intgpage.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_intgpage.png
deleted file mode 100644
index 130ae22d64567..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_intgpage.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_newintg.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_newintg.png
deleted file mode 100644
index 892b3dcc7c2c5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_newintg.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_samlbase.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_samlbase.png
deleted file mode 100644
index 0822d7e353fab..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_url.png b/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_url.png
deleted file mode 100644
index fe77d991fd9e8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/signalfx-tutorial/tutorial_signalfx_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_addfromgallery.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_addfromgallery.png
deleted file mode 100644
index aab7f8c496815..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_app.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_app.png
deleted file mode 100644
index cc681aef0e9d3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_certificate.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_certificate.png
deleted file mode 100644
index 872a6d09cf0cc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_configure.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_configure.png
deleted file mode 100644
index 71355a0a0df36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_samlbase.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_samlbase.png
deleted file mode 100644
index 0822d7e353fab..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_url.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_url.png
deleted file mode 100644
index 51e23de49b543..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_url1.png b/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_url1.png
deleted file mode 100644
index ab7053aa5b168..0000000000000
Binary files a/articles/active-directory/saas-apps/media/skytap-tutorial/tutorial_skytap_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/slack-provisioning-tutorial/slack1.png b/articles/active-directory/saas-apps/media/slack-provisioning-tutorial/slack1.png
index 840dfb76c0ccc..35381d59c73c9 100644
Binary files a/articles/active-directory/saas-apps/media/slack-provisioning-tutorial/slack1.png and b/articles/active-directory/saas-apps/media/slack-provisioning-tutorial/slack1.png differ
diff --git a/articles/active-directory/saas-apps/media/slack-provisioning-tutorial/slack3.png b/articles/active-directory/saas-apps/media/slack-provisioning-tutorial/slack3.png
index 13b0d3d264822..d3b18293bce6e 100644
Binary files a/articles/active-directory/saas-apps/media/slack-provisioning-tutorial/slack3.png and b/articles/active-directory/saas-apps/media/slack-provisioning-tutorial/slack3.png differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/logo.png b/articles/active-directory/saas-apps/media/soonr-tutorial/logo.png
deleted file mode 100644
index a95f42242414a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/logo.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1169c44b3f0da..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_06.png
deleted file mode 100644
index 2384e9f3e4830..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_203.png
deleted file mode 100644
index 0b25f47c92ad6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index fc4a3792022a5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_01.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_01.png
deleted file mode 100644
index c3abec493a478..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_02.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_02.png
deleted file mode 100644
index f21ab13e87714..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_03.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_03.png
deleted file mode 100644
index fd337c52411c1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_04.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_04.png
deleted file mode 100644
index 290a2ceb59b31..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_05.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_05.png
deleted file mode 100644
index 1fc8196804b70..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_50.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_50.png
deleted file mode 100644
index 0bab2385c96e4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_addfromgallery.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_addfromgallery.png
deleted file mode 100644
index 9d622006b0bea..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_app.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_app.png
deleted file mode 100644
index 20b849d6c8893..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_certificate.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_certificate.png
deleted file mode 100644
index 52cdbc9a17215..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_configure.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_configure.png
deleted file mode 100644
index 686cab6eb1ede..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_samlbase.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_search.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_search.png
deleted file mode 100644
index 713c054e06d30..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_url.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_url.png
deleted file mode 100644
index e5351f3a6e7ec..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_url1.png b/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_url1.png
deleted file mode 100644
index 98b26db7409e1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/soonr-tutorial/tutorial_soonr_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC700993.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC700993.png
deleted file mode 100644
index 3a303b64c0a0e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC700993.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC700994.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC700994.png
deleted file mode 100644
index a193ab9aa932e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC700994.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC749321.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC749321.png
deleted file mode 100644
index 9f523d7bf9342..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC749321.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC749322.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC749322.png
deleted file mode 100644
index a45b53803d99f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC749322.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC767830.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC767830.png
deleted file mode 100644
index 56a8200c0f604..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC767830.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797044.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797044.png
deleted file mode 100644
index 2a5152ba3c6fe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797044.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797045.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797045.png
deleted file mode 100644
index fd72f6f8d0c63..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797045.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797046.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797046.png
deleted file mode 100644
index 5ced3889c3c33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797046.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797047.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797047.png
deleted file mode 100644
index 78eee864986a7..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797047.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797048.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797048.png
deleted file mode 100644
index 64550e33229cc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797048.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797049.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797049.png
deleted file mode 100644
index bbd3817da08ae..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797049.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797050.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797050.png
deleted file mode 100644
index 4a2a487cc3119..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797050.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797053.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797053.png
deleted file mode 100644
index 9c47e15ace783..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797053.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797055.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797055.png
deleted file mode 100644
index f1c649a578e88..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/IC797055.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_addfromgallery.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_addfromgallery.png
deleted file mode 100644
index 856d903338db2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_app.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_app.png
deleted file mode 100644
index 702263ee0a2f5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_certificate.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_certificate.png
deleted file mode 100644
index 52da78eea83e1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_configure.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_configure.png
deleted file mode 100644
index 71bc54a9f5d4c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_samlbase.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_samlbase.png
deleted file mode 100644
index 693251f78c65d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_search.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_search.png
deleted file mode 100644
index 77d7802141340..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_url.png b/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_url.png
deleted file mode 100644
index cd68937a3c06a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/spring-cm-tutorial/tutorial_springcm_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_05.png
deleted file mode 100644
index 2823aabb51d5e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_09.png
deleted file mode 100644
index 00d737e82fa81..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/logo.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/logo.png
deleted file mode 100644
index fa65f003a1ef3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/logo.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1169c44b3f0da..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_06.png
deleted file mode 100644
index 6a2812dfc6d0e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_203.png
deleted file mode 100644
index 0b25f47c92ad6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index fc4a3792022a5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_01.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_01.png
deleted file mode 100644
index 4ae18354b8ad0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_02.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_02.png
deleted file mode 100644
index 87c1f07c2de9d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_03.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_03.png
deleted file mode 100644
index 1098079ad4036..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_04.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_04.png
deleted file mode 100644
index f8ab853ae4030..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_05.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_05.png
deleted file mode 100644
index 97a10d5e5c328..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_50.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_50.png
deleted file mode 100644
index d66ae31e06a0c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_addfromgallery.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_addfromgallery.png
deleted file mode 100644
index 36e16ba1f65b0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_app.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_app.png
deleted file mode 100644
index f208b98c2eac3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_certificate.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_certificate.png
deleted file mode 100644
index 849f5782c16c9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_configure.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_configure.png
deleted file mode 100644
index cc791d1ca16eb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_samlbase.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_search.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_search.png
deleted file mode 100644
index 0b7062338f0a7..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_url.png b/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_url.png
deleted file mode 100644
index 2c3740ec0f821..0000000000000
Binary files a/articles/active-directory/saas-apps/media/statuspage-tutorial/tutorial_statuspage_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC700993.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC700993.png
deleted file mode 100644
index 4804fd82c80f4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC700993.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC700994.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC700994.png
deleted file mode 100644
index ea35c2884d6f2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC700994.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC749321.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC749321.png
deleted file mode 100644
index 252a1f8e16ca4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC749321.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC749322.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC749322.png
deleted file mode 100644
index a45b53803d99f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC749322.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC767830.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC767830.png
deleted file mode 100644
index 56a8200c0f604..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC767830.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795881.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795881.png
deleted file mode 100644
index e818a2a16e296..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795881.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795882.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795882.png
deleted file mode 100644
index eb545836b1ef5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795882.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795883.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795883.png
deleted file mode 100644
index 1ba2dfb9ad71b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795883.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795884.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795884.png
deleted file mode 100644
index 92f5d6b5925fc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795884.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795885.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795885.png
deleted file mode 100644
index cd824990fd393..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795885.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795886.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795886.png
deleted file mode 100644
index ba973af92dc84..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795886.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795897.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795897.png
deleted file mode 100644
index 541c9a1c7d24b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC795897.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC796918.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC796918.png
deleted file mode 100644
index d76918375a623..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC796918.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC796919.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC796919.png
deleted file mode 100644
index 66b0f6fa80177..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/IC796919.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/logo.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/logo.png
deleted file mode 100644
index 9563cee27212b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/logo.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1169c44b3f0da..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_203.png
deleted file mode 100644
index 0b25f47c92ad6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index fc4a3792022a5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_addfromgallery.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_addfromgallery.png
deleted file mode 100644
index 294cf7d5daf45..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_app.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_app.png
deleted file mode 100644
index c8e2488cef60b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_certificate.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_certificate.png
deleted file mode 100644
index c9adc9bd57ec9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_configure.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_configure.png
deleted file mode 100644
index d25e07af419da..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_samlbase.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_search.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_search.png
deleted file mode 100644
index e800f5d12fe1d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_url.png b/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_url.png
deleted file mode 100644
index 47a64a0f06829..0000000000000
Binary files a/articles/active-directory/saas-apps/media/sugarcrm-tutorial/tutorial_sugarcrm_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/3.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/3.png
deleted file mode 100644
index da12c29486c8f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/3.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-001.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-001.png
deleted file mode 100644
index 81368b3eb5f1b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-add-attribute.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-add-attribute.png
deleted file mode 100644
index 7be8251b91b92..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-add-attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-addfromgallery.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-addfromgallery.png
deleted file mode 100644
index 3c29e78b6786b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-app.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-app.png
deleted file mode 100644
index 65ff7b1a4ce70..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-attribute.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-attribute.png
deleted file mode 100644
index 15b06b9c30ba9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-certificate.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-certificate.png
deleted file mode 100644
index d402ba86a9282..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-manage-attribute.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-manage-attribute.png
deleted file mode 100644
index 17236ea03b661..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-manage-attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-url.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-url.png
deleted file mode 100644
index d8f9c0f15c179..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial-tableauserver-url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_06.png
deleted file mode 100644
index 2384e9f3e4830..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_81.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_81.png
deleted file mode 100644
index b1ddf3b26bf16..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_81.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_82.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_82.png
deleted file mode 100644
index 646af82d3df09..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_82.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_83.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_83.png
deleted file mode 100644
index 23dc278784569..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_general_83.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_001.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_001.png
deleted file mode 100644
index 9dae59e0d612a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_01.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_01.png
deleted file mode 100644
index 07397e9dbee04..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_02.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_02.png
deleted file mode 100644
index 564cc65c96827..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_03.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_03.png
deleted file mode 100644
index d184c321eb7d8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_04.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_04.png
deleted file mode 100644
index 365cc3de7c3c8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_05.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_05.png
deleted file mode 100644
index 525e89ec77f79..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_50.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_50.png
deleted file mode 100644
index 98f82cf627144..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_51.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_51.png
deleted file mode 100644
index dff7b4d65d11f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_51.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_addfromgallery.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_addfromgallery.png
deleted file mode 100644
index 50437805e48a0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_app.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_app.png
deleted file mode 100644
index d3aeb88dd5822..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_certificate.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_certificate.png
deleted file mode 100644
index 138ffd52f05c8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_configure.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_configure.png
deleted file mode 100644
index 5818fc9814198..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_samlbase.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_search.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_search.png
deleted file mode 100644
index ba75422b31b4d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_url.png b/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_url.png
deleted file mode 100644
index 3b0f04a9a08ea..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tableauserver-tutorial/tutorial_tableauserver_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_300.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_300.png
deleted file mode 100644
index 5a9f929f06020..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_300.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_0001.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_0001.png
deleted file mode 100644
index 3f89d84fdb6c9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_0001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_001.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_001.png
deleted file mode 100644
index 3191dee28b694..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_01.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_01.png
deleted file mode 100644
index 38199b7fc07b3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_02.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_02.png
deleted file mode 100644
index 11225df9cf458..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_03.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_03.png
deleted file mode 100644
index 5ad82f093af33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_04.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_04.png
deleted file mode 100644
index 16f800d9c7cc0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_05.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_05.png
deleted file mode 100644
index 3cb87bb29f88f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_50.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_50.png
deleted file mode 100644
index 0d267b282770e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_addfromgallery.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_addfromgallery.png
deleted file mode 100644
index 43422263c1f7f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_app.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_app.png
deleted file mode 100644
index b2b7641d76410..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_certificate.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_certificate.png
deleted file mode 100644
index c6fc02697e86a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_configure.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_configure.png
deleted file mode 100644
index f2442d5971242..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_samlbase.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_samlbase.png
deleted file mode 100644
index 4a656fbdd0a34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_url.png b/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_url.png
deleted file mode 100644
index 99bd98e7a1ee1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/teamwork-tutorial/tutorial_teamwork_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC700993.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC700993.png
deleted file mode 100644
index eeaf5329b9f23..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC700993.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC700994.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC700994.png
deleted file mode 100644
index 573b1873b4ad0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC700994.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC749321.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC749321.png
deleted file mode 100644
index 63e61973930ce..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC749321.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC749322.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC749322.png
deleted file mode 100644
index a45b53803d99f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC749322.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC767830.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC767830.png
deleted file mode 100644
index 56a8200c0f604..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC767830.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805836.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805836.png
deleted file mode 100644
index 8e4cecc787a6f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805836.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805837.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805837.png
deleted file mode 100644
index b0069af0136a3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805837.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805838.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805838.png
deleted file mode 100644
index 140dcc0e5b33e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805838.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805839.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805839.png
deleted file mode 100644
index 52e93eb2d9f1b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805839.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805840.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805840.png
deleted file mode 100644
index bc65b2f74043b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805840.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805841.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805841.png
deleted file mode 100644
index 0c627225d7ef6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805841.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805842.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805842.png
deleted file mode 100644
index 0c500e192cf37..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805842.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805845.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805845.png
deleted file mode 100644
index edca6172dd0a8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805845.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805846.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805846.png
deleted file mode 100644
index 6101fbe1c5bbe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/IC805846.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_001.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_001.png
deleted file mode 100644
index 6ce33063b403b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_002.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_002.png
deleted file mode 100644
index d9f9eb8a13257..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_002.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_003.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_003.png
deleted file mode 100644
index 2ea4aab1800e0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_003.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_300.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_300.png
deleted file mode 100644
index 5a9f929f06020..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_300.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_addfromgallery.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_addfromgallery.png
deleted file mode 100644
index ca708f8def854..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_app.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_app.png
deleted file mode 100644
index 1b01342377f06..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_certificate.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_certificate.png
deleted file mode 100644
index ff7373a694054..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_configure.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_configure.png
deleted file mode 100644
index 354cf1abf575c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_samlbase.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_samlbase.png
deleted file mode 100644
index 56783ed76d246..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_search.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_search.png
deleted file mode 100644
index 71c8b23b677bb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_url.png b/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_url.png
deleted file mode 100644
index f18efb8f2f7f8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/thirdlight-tutorial/tutorial_thirdlight_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/thousandeyes-provisioning-tutorial/thousandeyes1.png b/articles/active-directory/saas-apps/media/thousandeyes-provisioning-tutorial/thousandeyes1.png
index 7d9f58db39492..fdd849304d38c 100644
Binary files a/articles/active-directory/saas-apps/media/thousandeyes-provisioning-tutorial/thousandeyes1.png and b/articles/active-directory/saas-apps/media/thousandeyes-provisioning-tutorial/thousandeyes1.png differ
diff --git a/articles/active-directory/saas-apps/media/thousandeyes-provisioning-tutorial/thousandeyes2.png b/articles/active-directory/saas-apps/media/thousandeyes-provisioning-tutorial/thousandeyes2.png
index 6e862c64af94a..d3262ea875ebc 100644
Binary files a/articles/active-directory/saas-apps/media/thousandeyes-provisioning-tutorial/thousandeyes2.png and b/articles/active-directory/saas-apps/media/thousandeyes-provisioning-tutorial/thousandeyes2.png differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_04.png
deleted file mode 100644
index 763d732635c97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_02.png
deleted file mode 100644
index 5b5c001a9496a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_06.png
deleted file mode 100644
index 2384e9f3e4830..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_203.png
deleted file mode 100644
index 7c1ca86c0fe11..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_01.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_01.png
deleted file mode 100644
index 07fe3d59bcc27..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_03.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_03.png
deleted file mode 100644
index ea1f6744b3ecd..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_04.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_04.png
deleted file mode 100644
index 79a849536d114..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_05.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_05.png
deleted file mode 100644
index 5f1b3ac49efdc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_50.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_50.png
deleted file mode 100644
index ef1291e4d6875..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_addfromgallery.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_addfromgallery.png
deleted file mode 100644
index 645c4ec725cbe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_app.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_app.png
deleted file mode 100644
index 41985fae7dfb5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_certificate.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_certificate.png
deleted file mode 100644
index 9625ceb1c439e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_configure.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_configure.png
deleted file mode 100644
index 5e17a29278163..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_samlbase.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_samlbase.png
deleted file mode 100644
index a90b33a5af4cb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_search.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_search.png
deleted file mode 100644
index 6d6d98f7d5d60..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_url.png b/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_url.png
deleted file mode 100644
index 05600a7cda06f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/tigertext-tutorial/tutorial_tigertext_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_06.png
deleted file mode 100644
index 2384e9f3e4830..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_01.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_01.png
deleted file mode 100644
index 4c452bd92fa84..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_02.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_02.png
deleted file mode 100644
index 4f4b721cddb44..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_03.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_03.png
deleted file mode 100644
index 116cd5c0fd23f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_04.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_04.png
deleted file mode 100644
index 8edf2bf3f8862..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_05.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_05.png
deleted file mode 100644
index ab14109303527..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_50.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_50.png
deleted file mode 100644
index bdd44c86396d9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_addfromgallery.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_addfromgallery.png
deleted file mode 100644
index bacf39328ba92..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_app.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_app.png
deleted file mode 100644
index 65f583b38a582..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_certificate.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_certificate.png
deleted file mode 100644
index 3f53e57694d33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_configure.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_configure.png
deleted file mode 100644
index 7a2ea075a531f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_samlbase.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_search.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_search.png
deleted file mode 100644
index cae1d5578c346..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_url.png b/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_url.png
deleted file mode 100644
index cf8fcb703ba65..0000000000000
Binary files a/articles/active-directory/saas-apps/media/trakstar-tutorial/tutorial_trakstar_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/logo.png b/articles/active-directory/saas-apps/media/turborater-tutorial/logo.png
deleted file mode 100644
index 2598980f67fbe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/logo.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_addfromgallery.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_addfromgallery.png
deleted file mode 100644
index 712d9b5af19ed..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_app.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_app.png
deleted file mode 100644
index 1b293d16fcdb8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_certificate.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_certificate.png
deleted file mode 100644
index 03d3916847d73..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_configure.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_configure.png
deleted file mode 100644
index f618fa00d7528..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_samlbase.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_url.png b/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_url.png
deleted file mode 100644
index 973867610e548..0000000000000
Binary files a/articles/active-directory/saas-apps/media/turborater-tutorial/tutorial_turborater_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_addfromgallery.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_addfromgallery.png
deleted file mode 100644
index 5a3b7335300b1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_app.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_app.png
deleted file mode 100644
index 16c674e1bffe9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_certificate.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_certificate.png
deleted file mode 100644
index c9c23e104f3be..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_configure.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_configure.png
deleted file mode 100644
index 3f0b8c8463747..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_samlbase.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_samlbase.png
deleted file mode 100644
index ddf4f895d5ff8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_url1.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_url1.png
deleted file mode 100644
index c6bea9a5f532a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_url2.png b/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_url2.png
deleted file mode 100644
index 3e78bbd9f408f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uberflip-tutorial/tutorial_uberflip_url2.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_01.png
deleted file mode 100644
index 3cd3495767a28..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_02.png
deleted file mode 100644
index b8696cbe66987..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/new_attribute_details.png b/articles/active-directory/saas-apps/media/useall-tutorial/new_attribute_details.png
deleted file mode 100644
index e737926a52989..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/new_attribute_details.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/new_save_attribute.png b/articles/active-directory/saas-apps/media/useall-tutorial/new_save_attribute.png
deleted file mode 100644
index 7be8251b91b92..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/new_save_attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_attribute.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_attribute.png
deleted file mode 100644
index 95cfb529cf744..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_02.png
deleted file mode 100644
index ef5c35e21cbd0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_03.png
deleted file mode 100644
index 91b82d91754f9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_100.png
deleted file mode 100644
index 71803b1d712d2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_201.png
deleted file mode 100644
index ef5c35e21cbd0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_203.png
deleted file mode 100644
index 650ebfeea6d6a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_300.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_300.png
deleted file mode 100644
index 320d593226975..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_300.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_301.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_301.png
deleted file mode 100644
index 27854b6850610..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_301.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_addfromgallery.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_addfromgallery.png
deleted file mode 100644
index d9b91e182801c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_app.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_app.png
deleted file mode 100644
index 9a2eaa6a375d8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_certificate.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_certificate.png
deleted file mode 100644
index 0b1d3faf84b32..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_configure.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_configure.png
deleted file mode 100644
index 4eeab84910d3c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_editurl.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_editurl.png
deleted file mode 100644
index 35c8462157eca..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_editurl.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_samlbase.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_samlbase.png
deleted file mode 100644
index ddf4f895d5ff8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_url.png b/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_url.png
deleted file mode 100644
index 4e5b1c986c4bb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/useall-tutorial/tutorial_useall_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_05.png
deleted file mode 100644
index 2823aabb51d5e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_09.png
deleted file mode 100644
index 00d737e82fa81..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_06.png
deleted file mode 100644
index 6a2812dfc6d0e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_01.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_01.png
deleted file mode 100644
index 3f816fc4569fa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_02.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_02.png
deleted file mode 100644
index a8b71250a427d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_03.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_03.png
deleted file mode 100644
index 72a5f82f83451..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_04.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_04.png
deleted file mode 100644
index e0b28299bd302..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_05.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_05.png
deleted file mode 100644
index 931a6a844397a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_50.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_50.png
deleted file mode 100644
index ddf1c5f19a681..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_addfromgallery.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_addfromgallery.png
deleted file mode 100644
index 5fefc4b6f8ecd..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_app.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_app.png
deleted file mode 100644
index 5a34ebf23a658..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_certificate.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_certificate.png
deleted file mode 100644
index 11b19999345f4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_configure.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_configure.png
deleted file mode 100644
index a378ed331e002..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_samlbase.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_samlbase.png
deleted file mode 100644
index 4a656fbdd0a34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_search.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_search.png
deleted file mode 100644
index f06968401165d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_url.png b/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_url.png
deleted file mode 100644
index 3802f149a78d8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/userecho-tutorial/tutorial_userecho_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_addfromgallery.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_addfromgallery.png
deleted file mode 100644
index fa0e62ba99c15..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_app.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_app.png
deleted file mode 100644
index 28282d26eb759..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_certificate.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_certificate.png
deleted file mode 100644
index ebb92ff97680a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_configure.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_configure.png
deleted file mode 100644
index e835329866285..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_samlbase.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_samlbase.png
deleted file mode 100644
index 2331d719e7838..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_search.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_search.png
deleted file mode 100644
index 539bbd4a42a1d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_url.png b/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_url.png
deleted file mode 100644
index ba34ba4323794..0000000000000
Binary files a/articles/active-directory/saas-apps/media/uservoice-tutorial/tutorial_uservoice_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpic-provisioning-tutorial/Velpic1.png b/articles/active-directory/saas-apps/media/velpic-provisioning-tutorial/Velpic1.png
index 10c72a5475bea..4bf7f81c71e21 100644
Binary files a/articles/active-directory/saas-apps/media/velpic-provisioning-tutorial/Velpic1.png and b/articles/active-directory/saas-apps/media/velpic-provisioning-tutorial/Velpic1.png differ
diff --git a/articles/active-directory/saas-apps/media/velpic-provisioning-tutorial/Velpic2.png b/articles/active-directory/saas-apps/media/velpic-provisioning-tutorial/Velpic2.png
index 1e2f76b60f74b..62c7793e7d289 100644
Binary files a/articles/active-directory/saas-apps/media/velpic-provisioning-tutorial/Velpic2.png and b/articles/active-directory/saas-apps/media/velpic-provisioning-tutorial/Velpic2.png differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_03.png
deleted file mode 100644
index 1f3d381fc718b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_addfromgallery.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_addfromgallery.png
deleted file mode 100644
index 066e83baa7cd0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_app.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_app.png
deleted file mode 100644
index 2156c3cca4c8e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_certificate.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_certificate.png
deleted file mode 100644
index 12f4ea29b12f3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_samlbase.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_search.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_search.png
deleted file mode 100644
index 693c235b8d5ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_url.png b/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_url.png
deleted file mode 100644
index ecbda2b5d5819..0000000000000
Binary files a/articles/active-directory/saas-apps/media/velpicsaml-tutorial/tutorial_velpicsaml_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_addfromgallery.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_addfromgallery.png
deleted file mode 100644
index 866034fdf7ea9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_app.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_app.png
deleted file mode 100644
index 79006661bcf42..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_certificate.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_certificate.png
deleted file mode 100644
index 5de32f5b9df81..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_configure.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_configure.png
deleted file mode 100644
index 653cca749c320..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_samlbase.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_samlbase.png
deleted file mode 100644
index 4a656fbdd0a34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_search.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_search.png
deleted file mode 100644
index a0a10408504bc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_url.png b/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_url.png
deleted file mode 100644
index 8fb89ba4493af..0000000000000
Binary files a/articles/active-directory/saas-apps/media/veritas-tutorial/tutorial_veritas_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_addfromgallery.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_addfromgallery.png
deleted file mode 100644
index d9b26763edb26..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_app.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_app.png
deleted file mode 100644
index 6ad0d4d862f9e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_attribute.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_attribute.png
deleted file mode 100644
index c427d65d94d8c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_certificate.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_certificate.png
deleted file mode 100644
index 947a5f9ffa958..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_configure.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_configure.png
deleted file mode 100644
index 30ad473032927..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_samlbase.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_samlbase.png
deleted file mode 100644
index 2331d719e7838..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_url.png b/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_url.png
deleted file mode 100644
index 122d799961344..0000000000000
Binary files a/articles/active-directory/saas-apps/media/versal-tutorial/tutorial_versal_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_addfromgallery.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_addfromgallery.png
deleted file mode 100644
index 2562e8fe21de2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_app.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_app.png
deleted file mode 100644
index aca430503efad..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_certificate.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_certificate.png
deleted file mode 100644
index decbed37f14da..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_configure.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_configure.png
deleted file mode 100644
index 8d71db4a66a45..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_samlbase.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_samlbase.png
deleted file mode 100644
index 0822d7e353fab..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_url.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_url.png
deleted file mode 100644
index 6426081e9139e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_url1.png b/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_url1.png
deleted file mode 100644
index c7955216af454..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vibehcm-tutorial/tutorial_vibehcm_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_addfromgallery.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_addfromgallery.png
deleted file mode 100644
index 90c0d24c59336..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_app.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_app.png
deleted file mode 100644
index 469667618cc60..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_certificate.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_certificate.png
deleted file mode 100644
index d1a9b789c70e6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_configure.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_configure.png
deleted file mode 100644
index e1b604dcdae2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_samlbase.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_samlbase.png
deleted file mode 100644
index bca43fa509d51..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_url1.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_url1.png
deleted file mode 100644
index 3a916bac0732c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_url2.png b/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_url2.png
deleted file mode 100644
index e8cf2a9b6743b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vidyard-tutorial/tutorial_vidyard_url2.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_04.png
deleted file mode 100644
index 781205fba8219..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 626684f2721e5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ccf27fd4cba3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_203.png
deleted file mode 100644
index 2f3911fc297e2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_addfromgallery.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_addfromgallery.png
deleted file mode 100644
index a9d5495ce7405..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_app.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_app.png
deleted file mode 100644
index 74b1be0d7ea7d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_certificate.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_certificate.png
deleted file mode 100644
index 6235482820f83..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_configure.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_configure.png
deleted file mode 100644
index e3d24af64c042..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_samlbase.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_samlbase.png
deleted file mode 100644
index 2331d719e7838..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_url.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_url.png
deleted file mode 100644
index b2fdb003fdd77..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_url1.png b/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_url1.png
deleted file mode 100644
index a3e2401baf498..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vodeclic-tutorial/tutorial_vodeclic_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_06.png
deleted file mode 100644
index 2384e9f3e4830..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_01.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_01.png
deleted file mode 100644
index bb4b228171774..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_03.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_03.png
deleted file mode 100644
index 8f6b86ab6391f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_04.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_04.png
deleted file mode 100644
index 122a43dfab11d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_05.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_05.png
deleted file mode 100644
index 7f27c520f5b89..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_50.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_50.png
deleted file mode 100644
index 9ea5fd2c1f080..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_addfromgallery.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_addfromgallery.png
deleted file mode 100644
index 65a80a2a37138..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_app.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_app.png
deleted file mode 100644
index 00c74bc4785c6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_certificate.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_certificate.png
deleted file mode 100644
index a89494c3ac3cb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_configure.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_configure.png
deleted file mode 100644
index 4ae38d951d571..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_samlbase.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_samlbase.png
deleted file mode 100644
index 2b1d8e020d8a1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_search.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_search.png
deleted file mode 100644
index cbfd2792a10e7..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_url.png b/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_url.png
deleted file mode 100644
index 461d1ea27aa08..0000000000000
Binary files a/articles/active-directory/saas-apps/media/vxmaintain-tutorial/tutorial_vxmaintain_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_addfromgallery.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_addfromgallery.png
deleted file mode 100644
index 91300fd578f2d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_app.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_app.png
deleted file mode 100644
index 767beb10bddcd..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_certificate.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_certificate.png
deleted file mode 100644
index f72adc6724b7d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_configure.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_configure.png
deleted file mode 100644
index 1d354567f3624..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_samlbase.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_samlbase.png
deleted file mode 100644
index 0822d7e353fab..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_url.png b/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_url.png
deleted file mode 100644
index 355f0dedfa393..0000000000000
Binary files a/articles/active-directory/saas-apps/media/waywedo-tutorial/tutorial_waywedo_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_001.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_001.png
deleted file mode 100644
index 6ce33063b403b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_002.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_002.png
deleted file mode 100644
index d9f9eb8a13257..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_002.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_003.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_003.png
deleted file mode 100644
index 2ea4aab1800e0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_003.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/ssoconfig1.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/ssoconfig1.png
deleted file mode 100644
index 8c506854b1c21..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/ssoconfig1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/ssoconfig2.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/ssoconfig2.png
deleted file mode 100644
index 4bbe88438287c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/ssoconfig2.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_300.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_300.png
deleted file mode 100644
index 5a9f929f06020..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_300.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_addfromgallery.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_addfromgallery.png
deleted file mode 100644
index a04512ff1d2c3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_app.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_app.png
deleted file mode 100644
index 2b2f0cc5db308..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_certificate.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_certificate.png
deleted file mode 100644
index c80ecdee4d808..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_configure.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_configure.png
deleted file mode 100644
index a5616717ea7af..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_samlbase.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_search.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_search.png
deleted file mode 100644
index 0279ca2bc612e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_ssoconfig6.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_ssoconfig6.png
deleted file mode 100644
index 4399034071f08..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_ssoconfig6.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_ssoconfig7.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_ssoconfig7.png
deleted file mode 100644
index 9f56dcdb5caa3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_ssoconfig7.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_url.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_url.png
deleted file mode 100644
index 25aed8acdc946..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_url1.png b/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_url1.png
deleted file mode 100644
index 18fde09adbcec..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wdesk-tutorial/tutorial_wdesk_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_06.png
deleted file mode 100644
index 2384e9f3e4830..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_01.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_01.png
deleted file mode 100644
index d68c61073733f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_02.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_02.png
deleted file mode 100644
index 650f1d08b0a51..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_03.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_03.png
deleted file mode 100644
index 935186f6cd924..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_04.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_04.png
deleted file mode 100644
index 5ba9dda0e476a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_05.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_05.png
deleted file mode 100644
index efee5c93f49b9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_06.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_06.png
deleted file mode 100644
index 8d47e801d15db..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_50.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_50.png
deleted file mode 100644
index 9f1d1df06744d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_addfromgallery.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_addfromgallery.png
deleted file mode 100644
index ee529446f7b8f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_app.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_app.png
deleted file mode 100644
index 9f150ceb182d4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_certificate.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_certificate.png
deleted file mode 100644
index 8d1c0ea208c91..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_configure.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_configure.png
deleted file mode 100644
index 7147011e266ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_samlbase.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_samlbase.png
deleted file mode 100644
index 2331d719e7838..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_search.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_search.png
deleted file mode 100644
index 8ee9124fd78af..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_url1.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_url1.png
deleted file mode 100644
index d61695b8a51f1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_url2.png b/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_url2.png
deleted file mode 100644
index 61b6ba03c695a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/weekdone-tutorial/tutorial_weekdone_url2.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC700993.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC700993.png
deleted file mode 100644
index eeaf5329b9f23..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC700993.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC700994.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC700994.png
deleted file mode 100644
index ea35c2884d6f2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC700994.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC749321.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC749321.png
deleted file mode 100644
index 63e61973930ce..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC749321.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC749322.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC749322.png
deleted file mode 100644
index a45b53803d99f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC749322.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC767830.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC767830.png
deleted file mode 100644
index 56a8200c0f604..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC767830.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787182.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787182.png
deleted file mode 100644
index bfb40aead8194..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787182.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787186.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787186.png
deleted file mode 100644
index 2101ca9263f1a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787186.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787187.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787187.png
deleted file mode 100644
index 3fc076cf2c8bf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787187.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787188.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787188.png
deleted file mode 100644
index 915eb474f9104..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787188.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787189.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787189.png
deleted file mode 100644
index 960b46ea33f38..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787189.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787190.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787190.png
deleted file mode 100644
index 777ff45218901..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787190.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787191.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787191.png
deleted file mode 100644
index d7e4bbe9db449..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787191.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787192.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787192.png
deleted file mode 100644
index adc95c664ca55..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787192.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787195.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787195.png
deleted file mode 100644
index d279d66d69449..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/IC787195.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_addfromgallery.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_addfromgallery.png
deleted file mode 100644
index 590fa6960f853..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_app.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_app.png
deleted file mode 100644
index 09eb52c18cce0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_certificate.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_certificate.png
deleted file mode 100644
index c56d886912efc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_configure.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_configure.png
deleted file mode 100644
index cf31589ca4b2e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_samlbase.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_samlbase.png
deleted file mode 100644
index ddaae1150b100..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_search.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_search.png
deleted file mode 100644
index dc948ffd58135..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_url.png b/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_url.png
deleted file mode 100644
index da94b4826f6ff..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wikispaces-tutorial/tutorial_wikispaces_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_001.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_001.png
deleted file mode 100644
index 6ce33063b403b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_002.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_002.png
deleted file mode 100644
index d9f9eb8a13257..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_002.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_003.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_003.png
deleted file mode 100644
index 2ea4aab1800e0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_003.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_300.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_300.png
deleted file mode 100644
index 5a9f929f06020..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_300.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_officespace_05.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_officespace_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_officespace_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_addfromgallery.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_addfromgallery.png
deleted file mode 100644
index 9233c15f8c383..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_app.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_app.png
deleted file mode 100644
index ca2cbcb6491d6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_certificate.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_certificate.png
deleted file mode 100644
index 5b02fe71b6400..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_samlbase.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_samlbase.png
deleted file mode 100644
index 014a10508ea99..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_search.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_search.png
deleted file mode 100644
index 4a00fc5be7714..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_url.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_url.png
deleted file mode 100644
index 28278feae3dc0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_url1.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_url1.png
deleted file mode 100644
index afaafff439585..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_url11.png b/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_url11.png
deleted file mode 100644
index 9c7263b7d8dbb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wingspanetmf-tutorial/tutorial_wingspanetmf_url11.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_06.png
deleted file mode 100644
index a19bca7802f19..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_001.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_001.png
deleted file mode 100644
index 201adf65bc123..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_001.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_01.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_01.png
deleted file mode 100644
index 84c91f72d1a53..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_03.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_03.png
deleted file mode 100644
index 903454433864c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_04.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_04.png
deleted file mode 100644
index 3308d6ecc2497..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_05.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_05.png
deleted file mode 100644
index 7650aea56d9e0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_50.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_50.png
deleted file mode 100644
index 4394e699549e6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_addfromgallery.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_addfromgallery.png
deleted file mode 100644
index 601d5f099b9b2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_app.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_app.png
deleted file mode 100644
index 3f2d9a7774722..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_certificate.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_certificate.png
deleted file mode 100644
index 4172d26038c58..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_configure.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_configure.png
deleted file mode 100644
index 331bb7c118bda..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_samlbase.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_samlbase.png
deleted file mode 100644
index 10fd8a7b36d8c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_url.png b/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_url.png
deleted file mode 100644
index d4e85b3f96c5b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wizergosproductivitysoftware-tutorial/tutorial_wizergosproductivitysoftware_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC700993.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC700993.png
deleted file mode 100644
index c301e5f5b0d37..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC700993.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC700994.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC700994.png
deleted file mode 100644
index ea35c2884d6f2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC700994.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC749321.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC749321.png
deleted file mode 100644
index 63e61973930ce..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC749321.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC749322.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC749322.png
deleted file mode 100644
index a45b53803d99f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC749322.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC767830.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC767830.png
deleted file mode 100644
index 56a8200c0f604..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC767830.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794105.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC794105.png
deleted file mode 100644
index e1ade1b3771d3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794105.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794106.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC794106.png
deleted file mode 100644
index e191fd75f1935..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794106.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794107.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC794107.png
deleted file mode 100644
index 786a70ce30640..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794107.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794109.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC794109.png
deleted file mode 100644
index 4e19fe72732cc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794109.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794110.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC794110.png
deleted file mode 100644
index 8eebcc4fd0264..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794110.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794111.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC794111.png
deleted file mode 100644
index 3e760dc27cefb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794111.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794112.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC794112.png
deleted file mode 100644
index 0eec0d275dd53..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794112.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794119.png b/articles/active-directory/saas-apps/media/work-com-tutorial/IC794119.png
deleted file mode 100644
index 55fc916b0e07b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/IC794119.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_addfromgallery.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_addfromgallery.png
deleted file mode 100644
index 4f705670ce77b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_app.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_app.png
deleted file mode 100644
index 9676974018281..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_certificate.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_certificate.png
deleted file mode 100644
index 3bada9cf2c94f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_configure.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_configure.png
deleted file mode 100644
index 36dd5c7d50896..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_samlbase.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_samlbase.png
deleted file mode 100644
index 057aa48065e37..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_search.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_search.png
deleted file mode 100644
index 663430b65ad1b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_url.png b/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_url.png
deleted file mode 100644
index 1ec3a936442b3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/work-com-tutorial/tutorial_work-com_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_addfromgallery.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_addfromgallery.png
deleted file mode 100644
index 08f12e92eb45d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_app.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_app.png
deleted file mode 100644
index f1e4f8b25c6cf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_certificate.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_certificate.png
deleted file mode 100644
index 84c5146246b1a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_configure.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_configure.png
deleted file mode 100644
index 150292fb75fa4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_samlbase.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_samlbase.png
deleted file mode 100644
index 1e8b30611de20..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_search.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_search.png
deleted file mode 100644
index cb6b5af54b07f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_url.png b/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_url.png
deleted file mode 100644
index 30c2c01302a0e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/workfront-tutorial/tutorial_workfront_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_addfromgallery.png b/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_addfromgallery.png
deleted file mode 100644
index ef28a54cf7c93..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_app.png b/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_app.png
deleted file mode 100644
index e36a834014d43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_certificate.png b/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_certificate.png
deleted file mode 100644
index d402ba86a9282..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_url.png b/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_url.png
deleted file mode 100644
index 62df9febeea14..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_url1.png b/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_url1.png
deleted file mode 100644
index 2787eef8a6ecb..0000000000000
Binary files a/articles/active-directory/saas-apps/media/wrike-tutorial/tutorial_wrike_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_05.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_05.png
deleted file mode 100644
index 5f140fd4ace96..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_06.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_06.png
deleted file mode 100644
index 1bd23ba3d1ecc..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_07.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_07.png
deleted file mode 100644
index afd9773ef8abe..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_08.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_08.png
deleted file mode 100644
index 5848bd737d9ef..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_08.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_09.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_09.png
deleted file mode 100644
index 44711b75f9600..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/create_aaduser_09.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 6df23a91aba59..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_01.png
deleted file mode 100644
index 19cb268bb31b8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_02.png
deleted file mode 100644
index 1ff3f25482e34..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_05.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_05.png
deleted file mode 100644
index 1c6123495dc33..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_06.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_06.png
deleted file mode 100644
index 2384e9f3e4830..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_06.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_07.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_07.png
deleted file mode 100644
index 45c1f3640a356..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_07.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_203.png
deleted file mode 100644
index 9a5e9e7eea18e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_205.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_205.png
deleted file mode 100644
index f2fd98d2920aa..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_205.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_01.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_01.png
deleted file mode 100644
index 1d03566f63d23..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_02.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_02.png
deleted file mode 100644
index 922c47d5b17ee..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_03.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_03.png
deleted file mode 100644
index 99ae0ac4fcbe5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_04.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_04.png
deleted file mode 100644
index 28cfc77aa4c8f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_05.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_05.png
deleted file mode 100644
index d0acaab6e67de..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_50.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_50.png
deleted file mode 100644
index 9b406788ecd9a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_50.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_addfromgallery.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_addfromgallery.png
deleted file mode 100644
index a7cc766ae9769..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_app.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_app.png
deleted file mode 100644
index 2183b32e5bdd0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_certificate.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_certificate.png
deleted file mode 100644
index dcf05fc984cdf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_configure.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_configure.png
deleted file mode 100644
index 60eaa24e13294..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_samlbase.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_search.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_search.png
deleted file mode 100644
index a9d54c9297c3b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_url.png b/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_url.png
deleted file mode 100644
index efc35b9ad1d64..0000000000000
Binary files a/articles/active-directory/saas-apps/media/yardielearning-tutorial/tutorial_yardielearning_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_01.png
deleted file mode 100644
index 3cd3495767a28..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_02.png
deleted file mode 100644
index b8696cbe66987..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_04.png
deleted file mode 100644
index fdea60786b792..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic700993.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic700993.png
deleted file mode 100644
index 3f5f326881fd3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic700993.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic700994.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic700994.png
deleted file mode 100644
index a0ebd34608586..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic700994.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic749321.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic749321.png
deleted file mode 100644
index ff400197962cd..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic749321.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic749322.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic749322.png
deleted file mode 100644
index 5b1b025378c4f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic749322.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic767830.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic767830.png
deleted file mode 100644
index 0ae42448c8b8c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic767830.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781035.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781035.png
deleted file mode 100644
index 3b84821f867f3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781035.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781036.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781036.png
deleted file mode 100644
index b6777e412f7f8..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781036.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781037.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781037.png
deleted file mode 100644
index a26cd2e7f9743..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781037.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781038.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781038.png
deleted file mode 100644
index a8afbe83db4db..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic781038.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800209.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800209.png
deleted file mode 100644
index ebb6f0c57e96f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800209.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800210.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800210.png
deleted file mode 100644
index 5153b67fa2e5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800210.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800214.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800214.png
deleted file mode 100644
index d2b0790e59f09..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800214.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800215.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800215.png
deleted file mode 100644
index 0e3dc5c6e5b32..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800215.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800216.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800216.png
deleted file mode 100644
index aa854845545f4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800216.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800217.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800217.png
deleted file mode 100644
index aa2f9f57d9043..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800217.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800218.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800218.png
deleted file mode 100644
index 6000ff0d22f3e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800218.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800219.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800219.png
deleted file mode 100644
index 09541a803731c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800219.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800220.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800220.png
deleted file mode 100644
index 852e50155c132..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800220.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800221.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800221.png
deleted file mode 100644
index 02664b0112b77..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800221.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800222.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800222.png
deleted file mode 100644
index 0f908cc9e7be4..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/ic800222.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_attribute_03.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_attribute_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_attribute_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_attribute_04.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_attribute_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_attribute_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index e8b4a3bd51636..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_02.png
deleted file mode 100644
index ef5c35e21cbd0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_03.png
deleted file mode 100644
index 91b82d91754f9..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_04.png
deleted file mode 100644
index f3b1e9e9b1833..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_100.png
deleted file mode 100644
index 71803b1d712d2..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_201.png
deleted file mode 100644
index ef5c35e21cbd0..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_203.png
deleted file mode 100644
index 650ebfeea6d6a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_300.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_300.png
deleted file mode 100644
index 320d593226975..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_300.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_301.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_301.png
deleted file mode 100644
index 464552aece75e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_301.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_302.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_302.png
deleted file mode 100644
index 25aa94876ccc6..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_302.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_addfromgallery.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_addfromgallery.png
deleted file mode 100644
index 3c29e78b6786b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_app.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_app.png
deleted file mode 100644
index 65ff7b1a4ce70..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_attribute.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_attribute.png
deleted file mode 100644
index cd125990c7329..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_attribute.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_certificate.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_certificate.png
deleted file mode 100644
index 861686d413350..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_configure.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_configure.png
deleted file mode 100644
index cd74c107ab856..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_samlbase.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_samlbase.png
deleted file mode 100644
index 132144e668d1b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_search.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_search.png
deleted file mode 100644
index 734ba2965afb5..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_search.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_url.png b/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_url.png
deleted file mode 100644
index fa83f5bf4469d..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscaler-three-tutorial/tutorial_zscalerthree_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_01.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_02.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_02.png
deleted file mode 100644
index 5a52c44d9b21a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_03.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_03.png
deleted file mode 100644
index 21ce52515ad1e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_04.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_04.png
deleted file mode 100644
index f0f43fff2dcd1..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/create_aaduser_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_attribute_05.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_attribute_05.png
deleted file mode 100644
index 832f8580c4b6e..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_attribute_05.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_01.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_01.png
deleted file mode 100644
index 210e0ec9e5e9b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_01.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_02.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_02.png
deleted file mode 100644
index e61077146deac..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_02.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_03.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_03.png
deleted file mode 100644
index 974ef922ee80b..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_04.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_04.png
deleted file mode 100644
index 014502ab06379..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_100.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_100.png
deleted file mode 100644
index 4fe5408cdbfaf..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_100.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_200.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_200.png
deleted file mode 100644
index 84a3a8cb56791..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_200.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_201.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_201.png
deleted file mode 100644
index 39bc0e0407d5c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_201.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_202.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_202.png
deleted file mode 100644
index f873c028bcb36..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_202.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_203.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_203.png
deleted file mode 100644
index 45bebd18fce2f..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_203.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_400.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_400.png
deleted file mode 100644
index bf1f9ced09e43..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_general_400.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_officespace_03.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_officespace_03.png
deleted file mode 100644
index 5ee2505b75f97..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_officespace_03.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_officespace_04.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_officespace_04.png
deleted file mode 100644
index 368f89c787428..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_officespace_04.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_addfromgallery.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_addfromgallery.png
deleted file mode 100644
index f12550b9ee681..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_addfromgallery.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_app.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_app.png
deleted file mode 100644
index 6b2ecfaad0b0a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_app.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_certificate.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_certificate.png
deleted file mode 100644
index 5891e0c193a38..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_certificate.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_configure.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_configure.png
deleted file mode 100644
index 777907b494f88..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_configure.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_samlbase.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_samlbase.png
deleted file mode 100644
index ec9a394b6c54c..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_samlbase.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_url.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_url.png
deleted file mode 100644
index 1ae7cd84dd6a3..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_url.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_url1.png b/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_url1.png
deleted file mode 100644
index b9b79b06ca32a..0000000000000
Binary files a/articles/active-directory/saas-apps/media/zscalerprivateaccessadministrator-tutorial/tutorial_zscalerprivateaccessadministrator_url1.png and /dev/null differ
diff --git a/articles/active-directory/saas-apps/mercell-tutorial.md b/articles/active-directory/saas-apps/mercell-tutorial.md
index ba7a4e9a3953e..56442c4d2166c 100644
--- a/articles/active-directory/saas-apps/mercell-tutorial.md
+++ b/articles/active-directory/saas-apps/mercell-tutorial.md
@@ -179,9 +179,9 @@ When you click the Mercell tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/mercerhrs-tutorial.md b/articles/active-directory/saas-apps/mercerhrs-tutorial.md
index 5357ed270eec0..150633ff3b825 100644
--- a/articles/active-directory/saas-apps/mercerhrs-tutorial.md
+++ b/articles/active-directory/saas-apps/mercerhrs-tutorial.md
@@ -190,9 +190,9 @@ When you click the Mercer BenefitsCentral (MBC) tile in the Access Panel, you sh
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/merchlogix-provisioning-tutorial.md b/articles/active-directory/saas-apps/merchlogix-provisioning-tutorial.md
index 8228ec8a449fc..c026298520a81 100644
--- a/articles/active-directory/saas-apps/merchlogix-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/merchlogix-provisioning-tutorial.md
@@ -7,21 +7,21 @@ author: zhchia
writer: zhchia
manager: beatrizd-msft
-ms.assetid: na
+ms.assetid: 9df4c7c5-9a58-478e-93b7-2f77aae12807
ms.service: active-directory
ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 03/01/2019
+ms.date: 03/27/2019
ms.author: zhchia
ms.collection: M365-identity-device-management
---
# Tutorial: Configure MerchLogix for automatic user provisioning
-The objective of this tutorial is to demonstrate the steps to be performed in MerchLogix and Azure Active Directory (Azure AD) to configure Azure AD to automatically provision and de-provision users and/or groups to MerchLogix.
+The objective of this tutorial is to demonstrate the steps to be performed in MerchLogix and Azure Active Directory (Azure AD) to configure Azure AD to automatically provision and de-provision users and/or groups to MerchLogix.
> [!NOTE]
> This tutorial describes a connector built on top of the Azure AD User Provisioning Service. For important details on what this service does, how it works, and frequently asked questions, see [Automate user provisioning and deprovisioning to SaaS applications with Azure Active Directory](../manage-apps/user-provisioning.md).
@@ -30,11 +30,12 @@ The objective of this tutorial is to demonstrate the steps to be performed in Me
The scenario outlined in this tutorial assumes that you already have the following prerequisites:
-* An Azure AD tenant
-* A MerchLogix tenant
-* A technical contact at MerchLogix who can provide the SCIM endpoint URL and secret token required for user provisioning
+* An Azure AD tenant
+* A MerchLogix tenant
+* A technical contact at MerchLogix who can provide the SCIM endpoint URL and secret token required for user provisioning
## Adding MerchLogix from the gallery
+
Before configuring MerchLogix for automatic user provisioning with Azure AD, you need to add MerchLogix from the Azure AD application gallery to your list of managed SaaS applications.
**To add MerchLogix from the Azure AD application gallery, perform the following steps:**
@@ -46,7 +47,7 @@ Before configuring MerchLogix for automatic user provisioning with Azure AD, you
2. Navigate to **Enterprise applications** > **All applications**.
![The Enterprise applications Section][2]
-
+
3. To add MerchLogix, click the **New application** button on the top of the dialog.
![The New application button][3]
@@ -63,13 +64,13 @@ Azure Active Directory uses a concept called "assignments" to determine which us
Before configuring and enabling automatic user provisioning, you should decide which users and/or groups in Azure AD need access to MerchLogix. Once decided, you can assign these users and/or groups to MerchLogix by following the instructions here:
-* [Assign a user or group to an enterprise app](../manage-apps/assign-user-or-group-access-portal.md)
+* [Assign a user or group to an enterprise app](../manage-apps/assign-user-or-group-access-portal.md)
### Important tips for assigning users to MerchLogix
-* It is recommended that a single Azure AD user is assigned to MerchLogix to test your initial automatic user provisioning configuration. Additional users and/or groups may be assigned later once the tests are successful.
+* It is recommended that a single Azure AD user is assigned to MerchLogix to test your initial automatic user provisioning configuration. Additional users and/or groups may be assigned later once the tests are successful.
-* When assigning a user to MerchLogix, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
+* When assigning a user to MerchLogix, you must select any valid application-specific role (if available) in the assignment dialog. Users with the **Default Access** role are excluded from provisioning.
## Configuring automatic user provisioning to MerchLogix
@@ -92,13 +93,12 @@ This section guides you through the steps to configure the Azure AD provisioning
5. Under the **Admin Credentials** section:
- * In the **Tenant URL** field, enter the SCIM endpoint URL provided by your MerchLogix technical contact.
+ * In the **Tenant URL** field, enter the SCIM endpoint URL provided by your MerchLogix technical contact.
- * In the **Secret Token** field, enter secret token provided by your MerchLogix technical contact.
+ * In the **Secret Token** field, enter secret token provided by your MerchLogix technical contact.
6. Upon populating the fields shown in Step 5, click **Test Connection** to ensure Azure AD can connect to MerchLogix. If the connection fails, ensure your MerchLogix account has Admin permissions and try again.
-
7. In the **Notification Email** field, enter the email address of a person or group who should receive the provisioning error notifications and check the checkbox - **Send an email notification when a failure occurs**.
8. Click **Save**.
@@ -115,7 +115,6 @@ This section guides you through the steps to configure the Azure AD provisioning
14. When you are ready to provision, click **Save**.
-
This operation starts the initial synchronization of all users and/or groups defined in **Scope** in the **Settings** section. The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the Azure AD provisioning service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity report, which describes all actions performed by the Azure AD provisioning service on MerchLogix.
For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](../manage-apps/check-status-user-account-provisioning.md).
diff --git a/articles/active-directory/saas-apps/merchlogix-tutorial.md b/articles/active-directory/saas-apps/merchlogix-tutorial.md
index 3489a9e9209a6..2ba759c374f0e 100644
--- a/articles/active-directory/saas-apps/merchlogix-tutorial.md
+++ b/articles/active-directory/saas-apps/merchlogix-tutorial.md
@@ -190,9 +190,9 @@ When you click the Merchlogix tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/metanetworksconnector-tutorial.md b/articles/active-directory/saas-apps/metanetworksconnector-tutorial.md
index 82da871d09330..6d31180d127f3 100644
--- a/articles/active-directory/saas-apps/metanetworksconnector-tutorial.md
+++ b/articles/active-directory/saas-apps/metanetworksconnector-tutorial.md
@@ -275,9 +275,9 @@ When you click the Meta Networks Connector tile in the Access Panel, you should
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/mindflash-tutorial.md b/articles/active-directory/saas-apps/mindflash-tutorial.md
index 38de2dbeda40f..fffafafd78aca 100644
--- a/articles/active-directory/saas-apps/mindflash-tutorial.md
+++ b/articles/active-directory/saas-apps/mindflash-tutorial.md
@@ -216,9 +216,9 @@ When you click the Mindflash tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/mindwireless-tutorial.md b/articles/active-directory/saas-apps/mindwireless-tutorial.md
index b03b0bb1b0cd4..93a1623af9b3f 100644
--- a/articles/active-directory/saas-apps/mindwireless-tutorial.md
+++ b/articles/active-directory/saas-apps/mindwireless-tutorial.md
@@ -218,9 +218,9 @@ When you click the mindWireless tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/mitel-connect-tutorial.md b/articles/active-directory/saas-apps/mitel-connect-tutorial.md
new file mode 100644
index 0000000000000..159a32aff5669
--- /dev/null
+++ b/articles/active-directory/saas-apps/mitel-connect-tutorial.md
@@ -0,0 +1,197 @@
+---
+title: 'Tutorial: Azure Active Directory integration with Mitel Connect | Microsoft Docs'
+description: Learn how to configure single sign-on between Azure Active Directory and Mitel Connect.
+services: active-directory
+documentationCenter: na
+author: jeevansd
+manager: mtillman
+ms.reviewer: barbkess
+
+ms.assetid: 204f540b-09f1-452b-a52f-78143710ef76
+ms.service: Azure-Active-Directory
+ms.workload: identity
+ms.tgt_pltfrm: na
+ms.devlang: na
+ms.topic: tutorial
+ms.date: 04/02/2019
+ms.author: jeedes
+
+---
+# Tutorial: Azure Active Directory integration with Mitel Connect
+
+In this tutorial, you learn how to integrate Mitel Connect with Azure Active Directory (Azure AD).
+Integrating Mitel Connect with Azure AD provides you with the following benefits:
+
+* You can control in Azure AD who has access to Mitel Connect.
+* You can enable your users to be automatically signed-in to Mitel Connect (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
+
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+
+## Prerequisites
+
+To configure Azure AD integration with Mitel Connect, you need the following items:
+
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Mitel Connect single sign-on enabled subscription
+
+## Scenario description
+
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Mitel Connect supports **SP** initiated SSO
+
+## Adding Mitel Connect from the gallery
+
+To configure the integration of Mitel Connect into Azure AD, you need to add Mitel Connect from the gallery to your list of managed SaaS apps.
+
+**To add Mitel Connect from the gallery, perform the following steps:**
+
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+
+ ![The Azure Active Directory button](common/select-azuread.png)
+
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
+
+3. To add new application, click **New application** button on the top of dialog.
+
+ ![The New application button](common/add-new-app.png)
+
+4. In the search box, type **Mitel Connect**, select **Mitel Connect** from result panel then click **Add** button to add the application.
+
+ ![Mitel Connect in the results list](common/search-new-app.png)
+
+## Configure and test Azure AD single sign-on
+
+In this section, you configure and test Azure AD single sign-on with Mitel Connect based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Mitel Connect needs to be established.
+
+To configure and test Azure AD single sign-on with Mitel Connect, you need to complete the following building blocks:
+
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Mitel Connect Single Sign-On](#configure-mitel-connect-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Mitel Connect test user](#create-mitel-connect-test-user)** - to have a counterpart of Britta Simon in Mitel Connect that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with Mitel Connect, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **Mitel Connect** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+
+ ![Single sign-on select mode](common/select-saml-option.png)
+
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+4. On the **Basic SAML Configuration** section, perform the following steps:
+
+ ![Mitel Connect Domain and URLs single sign-on information](common/sp-identifier.png)
+
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://auth.mitel.io/authorize?client_id=`
+
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+ `https://authentication.api.mitel.io/2017-09-01/saml2/`
+
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign on URL and Identifier. Contact [Mitel Connect Client support team](https://www.mitel.com/support/mitel-technical-support) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/metadataxml.png)
+
+6. On the **Set up Mitel Connect** section, copy the appropriate URL(s) as per your requirement.
+
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
+
+ a. Login URL
+
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure Mitel Connect Single Sign-On
+
+To configure single sign-on on **Mitel Connect** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [Mitel Connect support team](https://www.mitel.com/support/mitel-technical-support). They set this setting to have the SAML SSO connection set properly on both sides.
+
+### Create an Azure AD test user
+
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
+
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
+
+ ![The "Users and groups" and "All users" links](common/users.png)
+
+2. Select **New user** at the top of the screen.
+
+ ![New user Button](common/new-user.png)
+
+3. In the User properties, perform the following steps.
+
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field, enter **BrittaSimon**.
+
+ b. In the **User name** field, type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
+
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
+
+### Assign the Azure AD test user
+
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to Mitel Connect.
+
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Mitel Connect**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **Mitel Connect**.
+
+ ![The Mitel Connect link in the Applications list](common/all-applications.png)
+
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
+
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+
+ ![The Add Assignment pane](common/add-assign-user.png)
+
+5. In the **Users and groups** dialog, select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog, click the **Assign** button.
+
+### Create Mitel Connect test user
+
+In this section, you create a user called Britta Simon in Mitel Connect. Work with [Mitel Connect support team](https://www.mitel.com/support/mitel-technical-support) to add the users in the Mitel Connect platform. Users must be created and activated before you use single sign-on.
+
+### Test single sign-on
+
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+
+When you click the Mitel Connect tile in the Access Panel, you should be automatically signed in to the Mitel Connect for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+
+## Additional Resources
+
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
+
diff --git a/articles/active-directory/saas-apps/mixpanel-tutorial.md b/articles/active-directory/saas-apps/mixpanel-tutorial.md
index 1bc09cddc48ee..4624a2f868e3d 100644
--- a/articles/active-directory/saas-apps/mixpanel-tutorial.md
+++ b/articles/active-directory/saas-apps/mixpanel-tutorial.md
@@ -220,9 +220,9 @@ When you click the Mixpanel tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/mobi-tutorial.md b/articles/active-directory/saas-apps/mobi-tutorial.md
index 29abbf8a901d4..857c7fd060e52 100644
--- a/articles/active-directory/saas-apps/mobi-tutorial.md
+++ b/articles/active-directory/saas-apps/mobi-tutorial.md
@@ -197,9 +197,9 @@ When you click the MOBI tile in the Access Panel, you should be automatically si
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/mobicontrol-tutorial.md b/articles/active-directory/saas-apps/mobicontrol-tutorial.md
index 409cf0cdc45bb..0cd84d31d4bba 100644
--- a/articles/active-directory/saas-apps/mobicontrol-tutorial.md
+++ b/articles/active-directory/saas-apps/mobicontrol-tutorial.md
@@ -180,9 +180,9 @@ When you click the MobiControl tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/mobileiron-tutorial.md b/articles/active-directory/saas-apps/mobileiron-tutorial.md
index 7db9f0f17c445..1b10e5da2a1bf 100644
--- a/articles/active-directory/saas-apps/mobileiron-tutorial.md
+++ b/articles/active-directory/saas-apps/mobileiron-tutorial.md
@@ -97,7 +97,7 @@ To configure Azure AD single sign-on with MobileIron, perform the following step
![Edit Basic SAML Configuration](common/edit-urls.png)
-4. On the **Basic SAML Configuration** section, perform the following steps if you wish to configure the application in **IDP** initiated mode:
+4. On the **Basic SAML Configuration** section, perform the following steps if you wish to configure the application in **IDP** initiated mode:
![MobileIron Domain and URLs single sign-on information](common/idp-intiated.png)
diff --git a/articles/active-directory/saas-apps/mobilexpense-tutorial.md b/articles/active-directory/saas-apps/mobilexpense-tutorial.md
index 4f75900f59ef4..53bb5458cfc66 100644
--- a/articles/active-directory/saas-apps/mobilexpense-tutorial.md
+++ b/articles/active-directory/saas-apps/mobilexpense-tutorial.md
@@ -197,9 +197,9 @@ When you click the Mobile Xpense tile in the Access Panel, you should be automat
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/moconavi-tutorial.md b/articles/active-directory/saas-apps/moconavi-tutorial.md
index ee7116c66819b..cd815a4630780 100644
--- a/articles/active-directory/saas-apps/moconavi-tutorial.md
+++ b/articles/active-directory/saas-apps/moconavi-tutorial.md
@@ -219,9 +219,9 @@ In this section, you create a user called Britta Simon in moconavi. Work with [
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/montageonline-tutorial.md b/articles/active-directory/saas-apps/montageonline-tutorial.md
index 87cadc493012d..6e50cf764a142 100644
--- a/articles/active-directory/saas-apps/montageonline-tutorial.md
+++ b/articles/active-directory/saas-apps/montageonline-tutorial.md
@@ -196,9 +196,9 @@ When you click the Montage Online tile in the Access Panel, you should be automa
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/moveittransfer-tutorial.md b/articles/active-directory/saas-apps/moveittransfer-tutorial.md
index 91f88a74e7b12..e5d817b90eb98 100644
--- a/articles/active-directory/saas-apps/moveittransfer-tutorial.md
+++ b/articles/active-directory/saas-apps/moveittransfer-tutorial.md
@@ -243,9 +243,9 @@ When you click the MOVEit Transfer - Azure AD integration tile in the Access Pan
## Additional resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/moxiengage-tutorial.md b/articles/active-directory/saas-apps/moxiengage-tutorial.md
index e6e056a7a6a0f..687c06f280260 100644
--- a/articles/active-directory/saas-apps/moxiengage-tutorial.md
+++ b/articles/active-directory/saas-apps/moxiengage-tutorial.md
@@ -187,9 +187,9 @@ When you click the Moxi Engage tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/moxtra-tutorial.md b/articles/active-directory/saas-apps/moxtra-tutorial.md
index 5d28a3d4ba0c3..db17bf4467345 100644
--- a/articles/active-directory/saas-apps/moxtra-tutorial.md
+++ b/articles/active-directory/saas-apps/moxtra-tutorial.md
@@ -268,9 +268,9 @@ When you click the Moxtra tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/mozy-enterprise-tutorial.md b/articles/active-directory/saas-apps/mozy-enterprise-tutorial.md
index f66afdc93af31..8f2597ff371f1 100644
--- a/articles/active-directory/saas-apps/mozy-enterprise-tutorial.md
+++ b/articles/active-directory/saas-apps/mozy-enterprise-tutorial.md
@@ -244,9 +244,9 @@ When you click the Mozy Enterprise tile in the Access Panel, you should be autom
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/myawardpoints-tutorial.md b/articles/active-directory/saas-apps/myawardpoints-tutorial.md
index ab4e229d4a171..38861bd9c59f7 100644
--- a/articles/active-directory/saas-apps/myawardpoints-tutorial.md
+++ b/articles/active-directory/saas-apps/myawardpoints-tutorial.md
@@ -190,8 +190,8 @@ When you click the My Award Points Top Sub/Top Team tile in the Access Panel, yo
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/mypolicies-tutorial.md b/articles/active-directory/saas-apps/mypolicies-tutorial.md
index 26c5f27a89ccf..d1c90bbeebe4d 100644
--- a/articles/active-directory/saas-apps/mypolicies-tutorial.md
+++ b/articles/active-directory/saas-apps/mypolicies-tutorial.md
@@ -190,9 +190,9 @@ When you click the myPolicies tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/myworkdrive-tutorial.md b/articles/active-directory/saas-apps/myworkdrive-tutorial.md
index 653397246c077..ae98da36de174 100644
--- a/articles/active-directory/saas-apps/myworkdrive-tutorial.md
+++ b/articles/active-directory/saas-apps/myworkdrive-tutorial.md
@@ -205,9 +205,9 @@ When you click the MyWorkDrive tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/n2f-expensereports-tutorial.md b/articles/active-directory/saas-apps/n2f-expensereports-tutorial.md
index 68cf461d04944..14bef61189787 100644
--- a/articles/active-directory/saas-apps/n2f-expensereports-tutorial.md
+++ b/articles/active-directory/saas-apps/n2f-expensereports-tutorial.md
@@ -247,9 +247,9 @@ When you click the N2F - Expense reports tile in the Access Panel, you should be
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/namely-tutorial.md b/articles/active-directory/saas-apps/namely-tutorial.md
index 85d349048a62b..9b8e46f809e87 100644
--- a/articles/active-directory/saas-apps/namely-tutorial.md
+++ b/articles/active-directory/saas-apps/namely-tutorial.md
@@ -240,9 +240,9 @@ When you click the Namely tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/neotalogicstudio-tutorial.md b/articles/active-directory/saas-apps/neotalogicstudio-tutorial.md
index 9184b47cc61fe..c52b696b924ec 100644
--- a/articles/active-directory/saas-apps/neotalogicstudio-tutorial.md
+++ b/articles/active-directory/saas-apps/neotalogicstudio-tutorial.md
@@ -190,9 +190,9 @@ When you click the Neota Logic Studio tile in the Access Panel, you should be au
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/netdocuments-tutorial.md b/articles/active-directory/saas-apps/netdocuments-tutorial.md
index 67392e20127a0..2881f8b981a8e 100644
--- a/articles/active-directory/saas-apps/netdocuments-tutorial.md
+++ b/articles/active-directory/saas-apps/netdocuments-tutorial.md
@@ -231,9 +231,9 @@ When you click the NetDocuments tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/netop-portal-tutorial.md b/articles/active-directory/saas-apps/netop-portal-tutorial.md
index 6e8316a502227..724d925ddf2f0 100644
--- a/articles/active-directory/saas-apps/netop-portal-tutorial.md
+++ b/articles/active-directory/saas-apps/netop-portal-tutorial.md
@@ -215,8 +215,8 @@ When you click the Netop Portal tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/netsuite-tutorial.md b/articles/active-directory/saas-apps/netsuite-tutorial.md
index 13a7816f26772..45752a9b7edb2 100644
--- a/articles/active-directory/saas-apps/netsuite-tutorial.md
+++ b/articles/active-directory/saas-apps/netsuite-tutorial.md
@@ -169,19 +169,19 @@ To configure Azure AD single sign-on with NetSuite, perform the following steps:
1. Open a new tab in your browser, and sign into your NetSuite company site as an administrator.
-2. In the toolbar at the top of the page, click **Setup**, then navigate to **Company** and click **Enable Features**.
+2. In the toolbar at the top of the page, click **Setup**, then navigate to **Company** and click **Enable Features**.
![Configure Single Sign-On](./media/NetSuite-tutorial/ns-setupsaml.png)
-3. In the toolbar at the middle of the page, click **SuiteCloud**.
+3. In the toolbar at the middle of the page, click **SuiteCloud**.
![Configure Single Sign-On](./media/NetSuite-tutorial/ns-suitecloud.png)
-4. Under **Manage Authentication** section, select **SAML SINGLE SIGN-ON** to enable the SAML SINGLE SIGN-ON option in NetSuite.
+4. Under **Manage Authentication** section, select **SAML SINGLE SIGN-ON** to enable the SAML SINGLE SIGN-ON option in NetSuite.
![Configure Single Sign-On](./media/NetSuite-tutorial/ns-ticksaml.png)
-5. In the toolbar at the top of the page, click **Setup**.
+5. In the toolbar at the top of the page, click **Setup**.
![Configure Single Sign-On](./media/NetSuite-tutorial/ns-setup.png)
diff --git a/articles/active-directory/saas-apps/new-relic-tutorial.md b/articles/active-directory/saas-apps/new-relic-tutorial.md
index 8a457ec14ceb7..e03e3f2d86b99 100644
--- a/articles/active-directory/saas-apps/new-relic-tutorial.md
+++ b/articles/active-directory/saas-apps/new-relic-tutorial.md
@@ -233,9 +233,9 @@ When you click the New Relic tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/nexonia-tutorial.md b/articles/active-directory/saas-apps/nexonia-tutorial.md
index 5116ab78fc0f0..808ac4a29e501 100644
--- a/articles/active-directory/saas-apps/nexonia-tutorial.md
+++ b/articles/active-directory/saas-apps/nexonia-tutorial.md
@@ -190,9 +190,9 @@ When you click the Nexonia tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/nimblex-tutorial.md b/articles/active-directory/saas-apps/nimblex-tutorial.md
index c82403d1ffe8a..38694608d1445 100644
--- a/articles/active-directory/saas-apps/nimblex-tutorial.md
+++ b/articles/active-directory/saas-apps/nimblex-tutorial.md
@@ -223,9 +223,9 @@ When you click the Nimblex tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/nomadesk-tutorial.md b/articles/active-directory/saas-apps/nomadesk-tutorial.md
index 0cf296db88a4f..07c6d75679a66 100644
--- a/articles/active-directory/saas-apps/nomadesk-tutorial.md
+++ b/articles/active-directory/saas-apps/nomadesk-tutorial.md
@@ -195,9 +195,9 @@ When you click the Nomadesk tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/nomadic-tutorial.md b/articles/active-directory/saas-apps/nomadic-tutorial.md
index 6d6ad4062a03d..02c913c99a7c8 100644
--- a/articles/active-directory/saas-apps/nomadic-tutorial.md
+++ b/articles/active-directory/saas-apps/nomadic-tutorial.md
@@ -194,9 +194,9 @@ When you click the Nomadic tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/novatus-tutorial.md b/articles/active-directory/saas-apps/novatus-tutorial.md
index c94d5e0d1cbaa..fb136ed498c89 100644
--- a/articles/active-directory/saas-apps/novatus-tutorial.md
+++ b/articles/active-directory/saas-apps/novatus-tutorial.md
@@ -193,9 +193,9 @@ When you click the Novatus tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/nuclino-tutorial.md b/articles/active-directory/saas-apps/nuclino-tutorial.md
index 65f8c32fada5e..159ff177ec299 100644
--- a/articles/active-directory/saas-apps/nuclino-tutorial.md
+++ b/articles/active-directory/saas-apps/nuclino-tutorial.md
@@ -264,9 +264,9 @@ When you click the Nuclino tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/oc-tanner-tutorial.md b/articles/active-directory/saas-apps/oc-tanner-tutorial.md
index 8dfe2d8353dc4..8cfa150bfdb2a 100644
--- a/articles/active-directory/saas-apps/oc-tanner-tutorial.md
+++ b/articles/active-directory/saas-apps/oc-tanner-tutorial.md
@@ -201,8 +201,8 @@ When you click the O.C. Tanner - AppreciateHub tile in the Access Panel, you sho
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/officespace-tutorial.md b/articles/active-directory/saas-apps/officespace-tutorial.md
index c4bf29f9dea59..bca762983ca2b 100644
--- a/articles/active-directory/saas-apps/officespace-tutorial.md
+++ b/articles/active-directory/saas-apps/officespace-tutorial.md
@@ -251,9 +251,9 @@ When you click the OfficeSpace Software tile in the Access Panel, you should be
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/on24-tutorial.md b/articles/active-directory/saas-apps/on24-tutorial.md
index 021ab624a4cb9..f49e2aee79e49 100644
--- a/articles/active-directory/saas-apps/on24-tutorial.md
+++ b/articles/active-directory/saas-apps/on24-tutorial.md
@@ -236,9 +236,9 @@ When you click the ON24 Virtual Environment SAML Connection tile in the Access P
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/oneteam-tutorial.md b/articles/active-directory/saas-apps/oneteam-tutorial.md
index 7ca3a9e1b515c..76c5deae3524f 100644
--- a/articles/active-directory/saas-apps/oneteam-tutorial.md
+++ b/articles/active-directory/saas-apps/oneteam-tutorial.md
@@ -203,9 +203,9 @@ When you click the Oneteam tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/onetrust-tutorial.md b/articles/active-directory/saas-apps/onetrust-tutorial.md
index cf787985a6c4f..32c1daa2ac95b 100644
--- a/articles/active-directory/saas-apps/onetrust-tutorial.md
+++ b/articles/active-directory/saas-apps/onetrust-tutorial.md
@@ -203,9 +203,9 @@ When you click the OneTrust Privacy Management Software tile in the Access Panel
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/onit-tutorial.md b/articles/active-directory/saas-apps/onit-tutorial.md
index 0580af6117d0d..c819cbe72c2b5 100644
--- a/articles/active-directory/saas-apps/onit-tutorial.md
+++ b/articles/active-directory/saas-apps/onit-tutorial.md
@@ -266,9 +266,9 @@ When you click the Onit tile in the Access Panel, you should be automatically si
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/ontrack-tutorial.md b/articles/active-directory/saas-apps/ontrack-tutorial.md
index c23fccb3e892b..33774ac0132c3 100644
--- a/articles/active-directory/saas-apps/ontrack-tutorial.md
+++ b/articles/active-directory/saas-apps/ontrack-tutorial.md
@@ -229,9 +229,9 @@ When you click the OnTrack tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/opal-tutorial.md b/articles/active-directory/saas-apps/opal-tutorial.md
index 65a8d6454f7f0..b356b6b0d286f 100644
--- a/articles/active-directory/saas-apps/opal-tutorial.md
+++ b/articles/active-directory/saas-apps/opal-tutorial.md
@@ -220,9 +220,9 @@ When you click the Opal tile in the Access Panel, you should be automatically si
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/opsgenie-tutorial.md b/articles/active-directory/saas-apps/opsgenie-tutorial.md
index 33d396a400413..2ffe0fdfa3e1d 100644
--- a/articles/active-directory/saas-apps/opsgenie-tutorial.md
+++ b/articles/active-directory/saas-apps/opsgenie-tutorial.md
@@ -228,9 +228,9 @@ When you click the OpsGenie tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/optimizely-tutorial.md b/articles/active-directory/saas-apps/optimizely-tutorial.md
index 46f30d7290684..6e043daca59f7 100644
--- a/articles/active-directory/saas-apps/optimizely-tutorial.md
+++ b/articles/active-directory/saas-apps/optimizely-tutorial.md
@@ -249,9 +249,9 @@ When you click the Optimizely tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/orgchartnow-tutorial.md b/articles/active-directory/saas-apps/orgchartnow-tutorial.md
index 936433eaca0fa..4bd4468c42490 100644
--- a/articles/active-directory/saas-apps/orgchartnow-tutorial.md
+++ b/articles/active-directory/saas-apps/orgchartnow-tutorial.md
@@ -231,9 +231,9 @@ When you click the OrgChart Now tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/origami-tutorial.md b/articles/active-directory/saas-apps/origami-tutorial.md
index 8f4f0d1dc819e..a51845b988c6a 100644
--- a/articles/active-directory/saas-apps/origami-tutorial.md
+++ b/articles/active-directory/saas-apps/origami-tutorial.md
@@ -242,9 +242,9 @@ When you click the Origami tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/overdrive-books-tutorial.md b/articles/active-directory/saas-apps/overdrive-books-tutorial.md
index 1a5fe2f8b20b2..230627770b58a 100644
--- a/articles/active-directory/saas-apps/overdrive-books-tutorial.md
+++ b/articles/active-directory/saas-apps/overdrive-books-tutorial.md
@@ -194,9 +194,9 @@ When you click the Overdrive tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/pacific-timesheet-tutorial.md b/articles/active-directory/saas-apps/pacific-timesheet-tutorial.md
index 6db409aa32a04..b679b7530ad82 100644
--- a/articles/active-directory/saas-apps/pacific-timesheet-tutorial.md
+++ b/articles/active-directory/saas-apps/pacific-timesheet-tutorial.md
@@ -191,9 +191,9 @@ When you click the Pacific Timesheet tile in the Access Panel, you should be aut
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/pagedna-tutorial.md b/articles/active-directory/saas-apps/pagedna-tutorial.md
new file mode 100644
index 0000000000000..4014572d0d5f9
--- /dev/null
+++ b/articles/active-directory/saas-apps/pagedna-tutorial.md
@@ -0,0 +1,213 @@
+---
+title: 'Tutorial: Azure Active Directory integration with PageDNA | Microsoft Docs'
+description: Learn how to configure single sign-on between Azure Active Directory and PageDNA.
+services: active-directory
+documentationCenter: na
+author: jeevansd
+manager: mtillman
+ms.reviewer: barbkess
+
+ms.assetid: c8765864-45f4-48c2-9d86-986a4aa431e4
+ms.service: active-directory
+ms.subservice: saas-app-tutorial
+ms.workload: identity
+ms.tgt_pltfrm: na
+ms.devlang: na
+ms.topic: tutorial
+ms.date: 04/03/2019
+ms.author: jeedes
+
+ms.collection: M365-identity-device-management
+---
+# Tutorial: Azure Active Directory integration with PageDNA
+
+In this tutorial, you learn how to integrate PageDNA with Azure Active Directory (Azure AD).
+Integrating PageDNA with Azure AD provides you with the following benefits:
+
+* You can control in Azure AD who has access to PageDNA.
+* You can enable your users to be automatically signed-in to PageDNA (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
+
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+
+## Prerequisites
+
+To configure Azure AD integration with PageDNA, you need the following items:
+
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* PageDNA single sign-on enabled subscription
+
+## Scenario description
+
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* PageDNA supports **SP** initiated SSO
+
+* PageDNA supports **Just In Time** user provisioning
+
+## Adding PageDNA from the gallery
+
+To configure the integration of PageDNA into Azure AD, you need to add PageDNA from the gallery to your list of managed SaaS apps.
+
+**To add PageDNA from the gallery, perform the following steps:**
+
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+
+ ![The Azure Active Directory button](common/select-azuread.png)
+
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
+
+3. To add new application, click **New application** button on the top of dialog.
+
+ ![The New application button](common/add-new-app.png)
+
+4. In the search box, type **PageDNA**, select **PageDNA** from result panel then click **Add** button to add the application.
+
+ ![PageDNA in the results list](common/search-new-app.png)
+
+## Configure and test Azure AD single sign-on
+
+In this section, you configure and test Azure AD single sign-on with PageDNA based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in PageDNA needs to be established.
+
+To configure and test Azure AD single sign-on with PageDNA, you need to complete the following building blocks:
+
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure PageDNA Single Sign-On](#configure-pagedna-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create PageDNA test user](#create-pagedna-test-user)** - to have a counterpart of Britta Simon in PageDNA that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with PageDNA, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **PageDNA** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+
+ ![Single sign-on select mode](common/select-saml-option.png)
+
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+4. On the **Basic SAML Configuration** section, perform the following steps:
+
+ ![PageDNA Domain and URLs single sign-on information](common/sp-identifier.png)
+
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+
+ ||
+ |--|
+ | `https://stores.pagedna.com/` |
+ | `https://` |
+ | `https:///` |
+ | `https://www.nationsprint.com/` |
+ | |
+
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+
+ ||
+ |--|
+ | `https://stores.pagedna.com//saml2ep.cgi` |
+ | `https://www.nationsprint.com//saml2ep.cgi` |
+ | |
+
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign on URL and Identifier. Contact [PageDNA Client support team](mailto:success@pagedna.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Raw)** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/certificateraw.png)
+
+6. On the **Set up PageDNA** section, copy the appropriate URL(s) as per your requirement.
+
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
+
+ a. Login URL
+
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure PageDNA Single Sign-On
+
+To configure single sign-on on **PageDNA** side, you need to send the downloaded **Certificate (Raw)** and appropriate copied URLs from Azure portal to [PageDNA support team](mailto:success@pagedna.com). They set this setting to have the SAML SSO connection set properly on both sides.
+
+### Create an Azure AD test user
+
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
+
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
+
+ ![The "Users and groups" and "All users" links](common/users.png)
+
+2. Select **New user** at the top of the screen.
+
+ ![New user Button](common/new-user.png)
+
+3. In the User properties, perform the following steps.
+
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
+
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
+
+### Assign the Azure AD test user
+
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to PageDNA.
+
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **PageDNA**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **PageDNA**.
+
+ ![The PageDNA link in the Applications list](common/all-applications.png)
+
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
+
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+
+ ![The Add Assignment pane](common/add-assign-user.png)
+
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create PageDNA test user
+
+In this section, a user called Britta Simon is created in PageDNA. PageDNA supports just-in-time user provisioning, which is enabled by default. There is no action item for you in this section. If a user doesn't already exist in PageDNA, a new one is created after authentication.
+
+### Test single sign-on
+
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+
+When you click the PageDNA tile in the Access Panel, you should be automatically signed in to the PageDNA for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+
+## Additional Resources
+
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
+
diff --git a/articles/active-directory/saas-apps/pagerduty-tutorial.md b/articles/active-directory/saas-apps/pagerduty-tutorial.md
index 648e4e867c071..50368af25494e 100644
--- a/articles/active-directory/saas-apps/pagerduty-tutorial.md
+++ b/articles/active-directory/saas-apps/pagerduty-tutorial.md
@@ -242,9 +242,9 @@ When you click the PagerDuty tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/paloaltonetworks-aperture-tutorial.md b/articles/active-directory/saas-apps/paloaltonetworks-aperture-tutorial.md
index 8242bc8b5573b..5f4c6e60cb857 100644
--- a/articles/active-directory/saas-apps/paloaltonetworks-aperture-tutorial.md
+++ b/articles/active-directory/saas-apps/paloaltonetworks-aperture-tutorial.md
@@ -222,9 +222,9 @@ When you click the Palo Alto Networks - Aperture tile in the Access Panel, you s
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/panopto-tutorial.md b/articles/active-directory/saas-apps/panopto-tutorial.md
index 03edf860e3309..23884e18ede64 100644
--- a/articles/active-directory/saas-apps/panopto-tutorial.md
+++ b/articles/active-directory/saas-apps/panopto-tutorial.md
@@ -220,9 +220,9 @@ When you click the Panopto tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/panorama9-tutorial.md b/articles/active-directory/saas-apps/panorama9-tutorial.md
index 77012368ce56d..82df5c80cd517 100644
--- a/articles/active-directory/saas-apps/panorama9-tutorial.md
+++ b/articles/active-directory/saas-apps/panorama9-tutorial.md
@@ -233,9 +233,9 @@ When you click the Panorama9 tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/pantheon-tutorial.md b/articles/active-directory/saas-apps/pantheon-tutorial.md
index e51d8ae249116..1577bfbc478a5 100644
--- a/articles/active-directory/saas-apps/pantheon-tutorial.md
+++ b/articles/active-directory/saas-apps/pantheon-tutorial.md
@@ -215,9 +215,9 @@ When you click the Pantheon tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/patentsquare-tutorial.md b/articles/active-directory/saas-apps/patentsquare-tutorial.md
index 364fbb746ce78..953cb0de8dd9c 100644
--- a/articles/active-directory/saas-apps/patentsquare-tutorial.md
+++ b/articles/active-directory/saas-apps/patentsquare-tutorial.md
@@ -191,9 +191,9 @@ When you click the PatentSQUARE tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/peakon-tutorial.md b/articles/active-directory/saas-apps/peakon-tutorial.md
index a8c233a4f3514..9d7e001b96fce 100644
--- a/articles/active-directory/saas-apps/peakon-tutorial.md
+++ b/articles/active-directory/saas-apps/peakon-tutorial.md
@@ -249,9 +249,9 @@ When you click the Peakon tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/pegasystems-tutorial.md b/articles/active-directory/saas-apps/pegasystems-tutorial.md
index 6672b4b6c723d..3f9ffc44bd7d2 100644
--- a/articles/active-directory/saas-apps/pegasystems-tutorial.md
+++ b/articles/active-directory/saas-apps/pegasystems-tutorial.md
@@ -274,8 +274,8 @@ When you click the Pega Systems tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/people-tutorial.md b/articles/active-directory/saas-apps/people-tutorial.md
index a21e8aa8cd0c6..d02728494a528 100644
--- a/articles/active-directory/saas-apps/people-tutorial.md
+++ b/articles/active-directory/saas-apps/people-tutorial.md
@@ -206,9 +206,9 @@ When you click the People tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/peoplecart-tutorial.md b/articles/active-directory/saas-apps/peoplecart-tutorial.md
index a73f092ec601e..0d9015ba3aaaf 100644
--- a/articles/active-directory/saas-apps/peoplecart-tutorial.md
+++ b/articles/active-directory/saas-apps/peoplecart-tutorial.md
@@ -191,9 +191,9 @@ When you click the Peoplecart tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/perceptionunitedstates-tutorial.md b/articles/active-directory/saas-apps/perceptionunitedstates-tutorial.md
index c7003ce697f83..3d42547081fc5 100644
--- a/articles/active-directory/saas-apps/perceptionunitedstates-tutorial.md
+++ b/articles/active-directory/saas-apps/perceptionunitedstates-tutorial.md
@@ -227,9 +227,9 @@ When you click the Perception United States (Non-UltiPro) tile in the Access Pan
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/percolate-tutorial.md b/articles/active-directory/saas-apps/percolate-tutorial.md
index 90d6e436816a7..10eaeba798528 100644
--- a/articles/active-directory/saas-apps/percolate-tutorial.md
+++ b/articles/active-directory/saas-apps/percolate-tutorial.md
@@ -230,9 +230,9 @@ When you click the Percolate tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/performancecentre-tutorial.md b/articles/active-directory/saas-apps/performancecentre-tutorial.md
index a8fe648b07740..44f4c3708ebac 100644
--- a/articles/active-directory/saas-apps/performancecentre-tutorial.md
+++ b/articles/active-directory/saas-apps/performancecentre-tutorial.md
@@ -232,9 +232,9 @@ When you click the PerformanceCentre tile in the Access Panel, you should be aut
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/periscope-data-tutorial.md b/articles/active-directory/saas-apps/periscope-data-tutorial.md
index 298db843b717d..07cf7df0a34c0 100644
--- a/articles/active-directory/saas-apps/periscope-data-tutorial.md
+++ b/articles/active-directory/saas-apps/periscope-data-tutorial.md
@@ -228,9 +228,9 @@ When you click the Periscope Data tile in the Access Panel, you should be automa
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/phraseanet-tutorial.md b/articles/active-directory/saas-apps/phraseanet-tutorial.md
index ebd6a9a70fe24..4f9e052d38552 100644
--- a/articles/active-directory/saas-apps/phraseanet-tutorial.md
+++ b/articles/active-directory/saas-apps/phraseanet-tutorial.md
@@ -188,9 +188,9 @@ When you click the Phraseanet tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/pingboard-provisioning-tutorial.md b/articles/active-directory/saas-apps/pingboard-provisioning-tutorial.md
index 97715ecd552a1..d91f23a12f70a 100644
--- a/articles/active-directory/saas-apps/pingboard-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/pingboard-provisioning-tutorial.md
@@ -15,7 +15,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 10/19/2017
+ms.date: 03/27/2019
ms.author: asmalser
ms.reviewer: asmalser
@@ -30,11 +30,11 @@ The purpose of this tutorial is to show you the steps you need to follow to enab
The scenario outlined in this tutorial assumes that you already have the following items:
-* An Azure AD tenant
-* A Pingboard tenant [Pro account](https://pingboard.com/pricing)
-* A user account in Pingboard with admin permissions
+* An Azure AD tenant
+* A Pingboard tenant [Pro account](https://pingboard.com/pricing)
+* A user account in Pingboard with admin permissions
-> [!NOTE]
+> [!NOTE]
> Azure AD provisioning integration relies on the [Pingboard API](https://pingboard.docs.apiary.io/#), which is available to your account.
## Assign users to Pingboard
@@ -67,7 +67,7 @@ This section guides you through connecting your Azure AD to the Pingboard user a
1. Set **Provisioning Mode** to **Automatic**.
![Pingboard Provisioning](./media/pingboard-provisioning-tutorial/pingboardazureprovisioning.png)
-
+
1. Under the **Admin Credentials** section, use the following steps:
a. In **Tenant URL**, enter `https://your_domain.pingboard.com/scim/v2`, and replace "your_domain" with your real domain.
@@ -84,7 +84,7 @@ This section guides you through connecting your Azure AD to the Pingboard user a
1. Enter the email address of a person or group that you want to receive provisioning error notifications in **Notification Email**. Select the check box underneath.
-1. Select **Save**.
+1. Select **Save**.
1. Under the **Mappings** section, select **Synchronize Azure Active Directory Users to Pingboard**.
diff --git a/articles/active-directory/saas-apps/pingboard-tutorial.md b/articles/active-directory/saas-apps/pingboard-tutorial.md
index ef0baa3fd5059..0ee6b53b3facd 100644
--- a/articles/active-directory/saas-apps/pingboard-tutorial.md
+++ b/articles/active-directory/saas-apps/pingboard-tutorial.md
@@ -246,9 +246,9 @@ When you click the Pingboard tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/plangrid-tutorial.md b/articles/active-directory/saas-apps/plangrid-tutorial.md
index 1fe8f322c0dff..0e78740577596 100644
--- a/articles/active-directory/saas-apps/plangrid-tutorial.md
+++ b/articles/active-directory/saas-apps/plangrid-tutorial.md
@@ -192,9 +192,9 @@ When you click the PlanGrid tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/planmyleave-tutorial.md b/articles/active-directory/saas-apps/planmyleave-tutorial.md
index 69933770661ce..a33a0ce011b22 100644
--- a/articles/active-directory/saas-apps/planmyleave-tutorial.md
+++ b/articles/active-directory/saas-apps/planmyleave-tutorial.md
@@ -216,9 +216,9 @@ When you click the PlanMyLeave tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/pluralsight-tutorial.md b/articles/active-directory/saas-apps/pluralsight-tutorial.md
index c941063e0454f..f6c2865e4ac2f 100644
--- a/articles/active-directory/saas-apps/pluralsight-tutorial.md
+++ b/articles/active-directory/saas-apps/pluralsight-tutorial.md
@@ -217,7 +217,7 @@ When you click the Pluralsight tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
diff --git a/articles/active-directory/saas-apps/policystat-tutorial.md b/articles/active-directory/saas-apps/policystat-tutorial.md
index de4521a123d89..1110039b16410 100644
--- a/articles/active-directory/saas-apps/policystat-tutorial.md
+++ b/articles/active-directory/saas-apps/policystat-tutorial.md
@@ -253,9 +253,9 @@ When you click the PolicyStat tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/postbeyond-tutorial.md b/articles/active-directory/saas-apps/postbeyond-tutorial.md
index f39bc5998d14f..ec13394957f82 100644
--- a/articles/active-directory/saas-apps/postbeyond-tutorial.md
+++ b/articles/active-directory/saas-apps/postbeyond-tutorial.md
@@ -190,9 +190,9 @@ When you click the PostBeyond tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/powerschool-performance-matters-tutorial.md b/articles/active-directory/saas-apps/powerschool-performance-matters-tutorial.md
index 996206811c382..12697d3cdb453 100644
--- a/articles/active-directory/saas-apps/powerschool-performance-matters-tutorial.md
+++ b/articles/active-directory/saas-apps/powerschool-performance-matters-tutorial.md
@@ -193,8 +193,8 @@ When you click the Powerschool Performance Matters tile in the Access Panel, you
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/predictix-assortment-planning-tutorial.md b/articles/active-directory/saas-apps/predictix-assortment-planning-tutorial.md
index 4a4091fdcd788..19088faf4e10f 100644
--- a/articles/active-directory/saas-apps/predictix-assortment-planning-tutorial.md
+++ b/articles/active-directory/saas-apps/predictix-assortment-planning-tutorial.md
@@ -203,9 +203,9 @@ When you click the Predictix Assortment Planning tile in the Access Panel, you s
## Additional resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/predictixordering-tutorial.md b/articles/active-directory/saas-apps/predictixordering-tutorial.md
index 33d7e92e47611..b85785aaabcd2 100644
--- a/articles/active-directory/saas-apps/predictixordering-tutorial.md
+++ b/articles/active-directory/saas-apps/predictixordering-tutorial.md
@@ -195,9 +195,9 @@ When you click the Predictix Ordering tile in the Access Panel, you should be au
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/predictixpricereporting-tutorial.md b/articles/active-directory/saas-apps/predictixpricereporting-tutorial.md
index 563571beb769e..55b4c889becfb 100644
--- a/articles/active-directory/saas-apps/predictixpricereporting-tutorial.md
+++ b/articles/active-directory/saas-apps/predictixpricereporting-tutorial.md
@@ -195,9 +195,9 @@ When you click the Predictix Price Reporting tile in the Access Panel, you shoul
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/procoresso-tutorial.md b/articles/active-directory/saas-apps/procoresso-tutorial.md
index b476bfb1ee23e..9dfb856244e76 100644
--- a/articles/active-directory/saas-apps/procoresso-tutorial.md
+++ b/articles/active-directory/saas-apps/procoresso-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 9818edd3-48c0-411d-b05a-3ec805eafb2e
ms.service: active-directory
@@ -13,8 +13,8 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 11/13/2018
+ms.topic: tutorial
+ms.date: 04/03/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -22,37 +22,27 @@ ms.collection: M365-identity-device-management
# Tutorial: Azure Active Directory integration with Procore SSO
In this tutorial, you learn how to integrate Procore SSO with Azure Active Directory (Azure AD).
-
Integrating Procore SSO with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Procore SSO.
-- You can enable your users to automatically get signed-on to Procore SSO (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Procore SSO.
+* You can enable your users to be automatically signed-in to Procore SSO (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md)
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Procore SSO, you need the following items:
-- An Azure AD subscription
-- A Procore SSO single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Procore SSO single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-1. Adding Procore SSO from the gallery
-2. Configuring and testing Azure AD single sign-on
+* Procore SSO supports **IDP** initiated SSO
## Adding Procore SSO from the gallery
@@ -60,63 +50,65 @@ To configure the integration of Procore SSO into Azure AD, you need to add Proco
**To add Procore SSO from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
3. To add new application, click **New application** button on the top of dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
4. In the search box, type **Procore SSO**, select **Procore SSO** from result panel then click **Add** button to add the application.
- ![Procore SSO in the results list](./media/procoresso-tutorial/tutorial_procoresso_addfromgallery.png)
+ ![Procore SSO in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Procore SSO based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in Procore SSO is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Procore SSO needs to be established.
+In this section, you configure and test Azure AD single sign-on with Procore SSO based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Procore SSO needs to be established.
To configure and test Azure AD single sign-on with Procore SSO, you need to complete the following building blocks:
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-3. **[Creating a Procore SSO test user](#creating-a-procore-sso-test-user)** - to have a counterpart of Britta Simon in Procore SSO that is linked to the Azure AD representation of user.
-4. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Testing single sign-on](#testing-single-sign-on)** - to verify whether the configuration works.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Procore SSO Single Sign-On](#configure-procore-sso-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Procore SSO test user](#create-procore-sso-test-user)** - to have a counterpart of Britta Simon in Procore SSO that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-### Configuring Azure AD single sign-on
+### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Procore SSO application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with Procore SSO, perform the following steps:**
+To configure Azure AD single sign-on with Procore SSO, perform the following steps:
-1. In the Azure portal, on the **Procore SSO** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **Procore SSO** application integration page, select **Single sign-on**.
- ![Configure single sign-on link][4]
+ ![Configure single sign-on link](common/select-sso.png)
-2. On the **Select a Single sign-on method** dialog, Click **Select** for **SAML** mode to enable single sign-on.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On](common/tutorial_general_301.png)
+ ![Single sign-on select mode](common/select-saml-option.png)
3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Configure Single Sign-On](common/editconfigure.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+4. On the **Basic SAML Configuration** section, the user does not have to perform any step as the app is already pre-integrated with Azure.
-4. On the **Basic SAML Configuration** section, the user does not have to perform any steps as the app is already pre-integrated with Azure.
+ ![Procore SSO Domain and URLs single sign-on information](common/preintegrated.png)
- ![Procore SSO Domain and URLs single sign-on information](./media/procoresso-tutorial/tutorial_procoresso_url.png)
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-5. On the **SAML Signing Certificate** page, in the **SAML Signing Certificate** section, click **Download** to download **Federation Metadata XML** and then save Metadata file on your computer.
+ ![The Certificate download link](common/metadataxml.png)
- ![The Certificate download link](./media/procoresso-tutorial/tutorial_procoresso_certificate.png)
+6. On the **Set up Procore SSO** section, copy the appropriate URL(s) as per your requirement.
-6. On the **Set up Procore SSO** section, copy the appropriate URL as per your requirement.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
a. Login URL
@@ -124,15 +116,15 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
c. Logout URL
- ![Procore SSO Configuration](common/configuresection.png)
+### Configure Procore SSO Single Sign-On
-7. To configure single sign-on on **Procore SSO** side, login to your procore company site as an administrator.
+1. To configure single sign-on on **Procore SSO** side, sign in to your procore company site as an administrator.
-8. From the toolbox drop down, click on **Admin** to open the SSO settings page.
+2. From the toolbox drop down, click on **Admin** to open the SSO settings page.
![Configure Single Sign-On](./media/procoresso-tutorial/procore_tool_admin.png)
-9. Paste the values in the boxes as described below-
+3. Paste the values in the boxes as described below-
![Configure Single Sign-On](./media/procoresso-tutorial/procore_setting_admin.png)
@@ -142,52 +134,65 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
c. Now open the **Federation Metadata XML** downloaded above from the Azure portal and copy the certificate in the tag named **X509Certificate**. Paste the copied value into the **Single Sign On x509 Certificate** box.
-10. Click on **Save Changes**.
+4. Click on **Save Changes**.
-11. After these settings, you needs to send the **domain name** (e.g **contoso.com**) through which you are logging into Procore to the [Procore Support team](https://support.procore.com/) and they will activate federated SSO for that domain.
+5. After these settings, you needs to send the **domain name** (e.g **contoso.com**) through which you are logging into Procore to the [Procore Support team](https://support.procore.com/) and they will activate federated SSO for that domain.
-
-
-### Creating an Azure AD test user
+### Create an Azure AD test user
The objective of this section is to create a test user in the Azure portal called Britta Simon.
1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![Create Azure AD User][100]
+ ![The "Users and groups" and "All users" links](common/users.png)
2. Select **New user** at the top of the screen.
- ![Creating an Azure AD test user](common/create_aaduser_01.png)
+ ![New user Button](common/new-user.png)
3. In the User properties, perform the following steps.
- ![Creating an Azure AD test user](common/create_aaduser_02.png)
+ ![The User dialog box](common/user-properties.png)
- a. In the **Name** field, enter **BrittaSimon**.
+ a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field, type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
- c. Select **Properties**, select the **Show password** check box, and then write down the value that's displayed in the Password box.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
- d. Select **Create**.
+ d. Click **Create**.
-### Creating a Procore SSO test user
+### Assign the Azure AD test user
+
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to Procore SSO.
-Please follow the below steps to create a Procore test user on Procore SSOc side.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Procore SSO**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **Procore SSO**.
+
+ ![The Procore SSO link in the Applications list](common/all-applications.png)
+
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
+
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+
+ ![The Add Assignment pane](common/add-assign-user.png)
+
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-1. Login to your procore company site as an administrator.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create Procore SSO test user
+
+Please follow the below steps to create a Procore test user on Procore SSO side.
+
+1. Sign in to your procore company site as an administrator.
2. From the toolbox drop down, click on **Directory** to open the company directory page.
@@ -201,7 +206,7 @@ Please follow the below steps to create a Procore test user on Procore SSOc side
b. In the **Last name** textbox, type user's last name like **Simon**.
- c. In the **Email Address** textbox, type user's email address like **BrittaSimon\@contoso.com**.
+ c. In the **Email Address** textbox, type user's email address like BrittaSimon@contoso.com.
d. Select **Permission Template** as **Apply Permission Template Later**.
@@ -215,51 +220,17 @@ Please follow the below steps to create a Procore test user on Procore SSOc side
![Configure Single Sign-On](./media/procoresso-tutorial/Procore_user_save.png)
-### Assigning the Azure AD test user
-
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to Procore SSO.
-
-1. In the Azure portal, select **Enterprise Applications**, select **All applications**.
-
- ![Assign User][201]
-
-2. In the applications list, select **Procore SSO**.
-
- ![Configure Single Sign-On](./media/procoresso-tutorial/tutorial_procoresso_app.png)
-
-3. In the menu on the left, click **Users and groups**.
-
- ![Assign User][202]
-
-4. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
-
- ![Assign User][203]
-
-5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-
-6. In the **Add Assignment** dialog select the **Assign** button.
-
-### Testing single sign-on
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the Procore SSO tile in the Access Panel, you should get automatically signed-on to your Procore SSO application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
-
-## Additional resources
+When you click the Procore SSO tile in the Access Panel, you should be automatically signed in to the Procore SSO for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+## Additional Resources
-
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[1]: common/tutorial_general_01.png
-[2]: common/tutorial_general_02.png
-[3]: common/tutorial_general_03.png
-[4]: common/tutorial_general_04.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[100]: common/tutorial_general_100.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
-[201]: common/tutorial_general_201.png
-[202]: common/tutorial_general_202.png
-[203]: common/tutorial_general_203.png
diff --git a/articles/active-directory/saas-apps/projectplace-tutorial.md b/articles/active-directory/saas-apps/projectplace-tutorial.md
index 5699dbb6bda44..29714b0125fc2 100644
--- a/articles/active-directory/saas-apps/projectplace-tutorial.md
+++ b/articles/active-directory/saas-apps/projectplace-tutorial.md
@@ -215,9 +215,9 @@ When you click the Projectplace tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/promapp-tutorial.md b/articles/active-directory/saas-apps/promapp-tutorial.md
index da02c93ddf84b..ac87195661e15 100644
--- a/articles/active-directory/saas-apps/promapp-tutorial.md
+++ b/articles/active-directory/saas-apps/promapp-tutorial.md
@@ -231,9 +231,9 @@ When you click the Promapp tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/promaster-tutorial.md b/articles/active-directory/saas-apps/promaster-tutorial.md
index 667e27a1d2194..5bdf977f11138 100644
--- a/articles/active-directory/saas-apps/promaster-tutorial.md
+++ b/articles/active-directory/saas-apps/promaster-tutorial.md
@@ -202,9 +202,9 @@ When you click the ProMaster (by Inlogik) tile in the Access Panel, you should b
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/proxyclick-tutorial.md b/articles/active-directory/saas-apps/proxyclick-tutorial.md
index 35b144cb6d734..55ce350777004 100644
--- a/articles/active-directory/saas-apps/proxyclick-tutorial.md
+++ b/articles/active-directory/saas-apps/proxyclick-tutorial.md
@@ -247,9 +247,9 @@ When you click the Proxyclick tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/purecloud-by-genesys-tutorial.md b/articles/active-directory/saas-apps/purecloud-by-genesys-tutorial.md
index b289e1a083eab..9a9dc018c1cf7 100644
--- a/articles/active-directory/saas-apps/purecloud-by-genesys-tutorial.md
+++ b/articles/active-directory/saas-apps/purecloud-by-genesys-tutorial.md
@@ -286,9 +286,9 @@ When you click the PureCloud by Genesys tile in the Access Panel, you should be
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/purelyhr-tutorial.md b/articles/active-directory/saas-apps/purelyhr-tutorial.md
index 9366a055516e9..12454ac6523b1 100644
--- a/articles/active-directory/saas-apps/purelyhr-tutorial.md
+++ b/articles/active-directory/saas-apps/purelyhr-tutorial.md
@@ -212,9 +212,9 @@ When you click the PurelyHR tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/qprism-tutorial.md b/articles/active-directory/saas-apps/qprism-tutorial.md
index cfc5f38d7fc72..3622b81abafb1 100644
--- a/articles/active-directory/saas-apps/qprism-tutorial.md
+++ b/articles/active-directory/saas-apps/qprism-tutorial.md
@@ -180,9 +180,9 @@ When you click the QPrism tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/qualtrics-tutorial.md b/articles/active-directory/saas-apps/qualtrics-tutorial.md
index 2928a123b2a5a..92e0bd29b042d 100644
--- a/articles/active-directory/saas-apps/qualtrics-tutorial.md
+++ b/articles/active-directory/saas-apps/qualtrics-tutorial.md
@@ -197,9 +197,9 @@ When you click the Qualtrics tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/questetra-bpm-suite-tutorial.md b/articles/active-directory/saas-apps/questetra-bpm-suite-tutorial.md
index bcd81225294ce..6709221862213 100644
--- a/articles/active-directory/saas-apps/questetra-bpm-suite-tutorial.md
+++ b/articles/active-directory/saas-apps/questetra-bpm-suite-tutorial.md
@@ -240,9 +240,9 @@ When you click the Questetra BPM Suite tile in the Access Panel, you should be a
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/quickhelp-tutorial.md b/articles/active-directory/saas-apps/quickhelp-tutorial.md
index 8980ae90fde1b..ff47305bc4abf 100644
--- a/articles/active-directory/saas-apps/quickhelp-tutorial.md
+++ b/articles/active-directory/saas-apps/quickhelp-tutorial.md
@@ -218,9 +218,9 @@ When you click the QuickHelp tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/qumucloud-tutorial.md b/articles/active-directory/saas-apps/qumucloud-tutorial.md
index 434af252780f8..0dcc0e2ee2027 100644
--- a/articles/active-directory/saas-apps/qumucloud-tutorial.md
+++ b/articles/active-directory/saas-apps/qumucloud-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: d8c4a97b-4de6-49d4-b64e-42222c2ec6c9
ms.service: active-directory
@@ -13,8 +13,8 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 03/13/2018
+ms.topic: tutorial
+ms.date: 04/03/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -22,234 +22,219 @@ ms.collection: M365-identity-device-management
# Tutorial: Azure Active Directory integration with Qumu Cloud
In this tutorial, you learn how to integrate Qumu Cloud with Azure Active Directory (Azure AD).
-
Integrating Qumu Cloud with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Qumu Cloud.
-- You can enable your users to automatically get signed-on to Qumu Cloud (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Qumu Cloud.
+* You can enable your users to be automatically signed-in to Qumu Cloud (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Qumu Cloud, you need the following items:
-- An Azure AD subscription
-- A Qumu Cloud single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Qumu Cloud single sign-on enabled subscription
-To test the steps in this tutorial, you should follow these recommendations:
+## Scenario description
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+* Qumu Cloud supports **SP** and **IDP** initiated SSO
-1. Adding Qumu Cloud from the gallery
-1. Configuring and testing Azure AD single sign-on
+* Qumu Cloud supports **Just In Time** user provisioning
## Adding Qumu Cloud from the gallery
+
To configure the integration of Qumu Cloud into Azure AD, you need to add Qumu Cloud from the gallery to your list of managed SaaS apps.
**To add Qumu Cloud from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![The New application button][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **Qumu Cloud**, select **Qumu Cloud** from result panel then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![Qumu Cloud in the results list](./media/qumucloud-tutorial/tutorial_qumucloud_addfromgallery.png)
+4. In the search box, type **Qumu Cloud**, select **Qumu Cloud** from result panel then click **Add** button to add the application.
-## Configure and test Azure AD single sign-on
+ ![Qumu Cloud in the results list](common/search-new-app.png)
-In this section, you configure and test Azure AD single sign-on with Qumu Cloud based on a test user called "Britta Simon".
+## Configure and test Azure AD single sign-on
-For single sign-on to work, Azure AD needs to know what the counterpart user in Qumu Cloud is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Qumu Cloud needs to be established.
+In this section, you configure and test Azure AD single sign-on with Qumu Cloud based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Qumu Cloud needs to be established.
To configure and test Azure AD single sign-on with Qumu Cloud, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a Qumu Cloud test user](#create-a-qumu-cloud-test-user)** - to have a counterpart of Britta Simon in Qumu Cloud that is linked to the Azure AD representation of user.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure Qumu Cloud Single Sign-On](#configure-qumu-cloud-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Qumu Cloud test user](#create-qumu-cloud-test-user)** - to have a counterpart of Britta Simon in Qumu Cloud that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Qumu Cloud application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with Qumu Cloud, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **Qumu Cloud** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-**To configure Azure AD single sign-on with Qumu Cloud, perform the following steps:**
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. In the Azure portal, on the **Qumu Cloud** application integration page, click **Single sign-on**.
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Configure single sign-on link][4]
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Single sign-on dialog box](./media/qumucloud-tutorial/tutorial_qumucloud_samlbase.png)
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following steps:
-1. On the **Qumu Cloud Domain and URLs** section, perform the following steps if you wish to configure the application in **IDP** initiated mode:
+ ![Qumu Cloud Domain and URLs single sign-on information](common/idp-intiated.png)
- ![Qumu Cloud Domain and URLs single sign-on information](./media/qumucloud-tutorial/tutorial_qumucloud_url.png)
+ a. In the **Identifier** text box, type a URL using the following pattern:
+ `https://.qumucloud.com/saml/SSO`
- a. In the **Identifier** textbox, type a URL using the following pattern: `https://.qumucloud.com/saml/SSO`
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://.qumucloud.com/saml/SSO`
- b. In the **Reply URL** textbox, type a URL using the following pattern: `https://.qumucloud.com/saml/SSO`
+5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
-1. Check **Show advanced URL settings** and perform the following step if you wish to configure the application in **SP** initiated mode:
+ ![Qumu Cloud Domain and URLs single sign-on information](common/metadata-upload-additional-signon.png)
- ![Qumu Cloud Domain and URLs single sign-on information](./media/qumucloud-tutorial/tutorial_qumucloud_url1.png)
+ In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://.qumucloud.com`
- In the **Sign-on URL** textbox, type a URL using the following pattern: `https://.qumucloud.com`
-
- > [!NOTE]
- > These values are not real. Update these values with the actual Identifier, Reply URL, and Sign-On URL. Contact [Qumu Cloud Client support team](mailto:support@qumu.com) to get these values.
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Identifier, Reply URL and Sign-on URL. Contact [Qumu Cloud Client support team](mailto:support@qumu.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. Qumu Cloud application expects the SAML assertions in a specific format. Please configure the following claims for this application. You can manage the values of these attributes from the "**User Attributes**" section on application integration page. The following screenshot shows an example for this.
-
- ![Configure Single Sign-On](./media/qumucloud-tutorial/attribute.png)
-
-1. Click **View and edit all other user attributes** checkbox in the **User Attributes** section to expand the attributes. Perform the following steps on each of the displayed attributes-
+6. Qumu Cloud application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes. Click **Edit** icon to open **User Attributes** dialog.
- | Attribute Name | Attribute Value |
+ ![image](common/edit-attribute.png)
+
+7. In addition to above, Qumu Cloud application expects few more attributes to be passed back in SAML response. In the **User Claims** section on the **User Attributes** dialog, perform the following steps to add SAML token attribute as shown in the below table:
+
+ | Name | Source Attribute|
| ---------------| --------------- |
| urn:oid:2.5.4.42 | user.givenname |
| urn:oid:2.5.4.4 | user.surname |
| urn:oid:0.9.2342.19200300.100.1.3 | user.mail |
| urn:oid:0.9.2342.19200300.100.1.1 | user.userprincipalname |
- a. Click the attribute to open the **Edit Attribute** window.
+ a. Click **Add new claim** to open the **Manage user claims** dialog.
+
+ ![image](common/new-save-attribute.png)
- ![Configure Single Sign-On](./media/qumucloud-tutorial/tutorial_attribute_04.png)
+ ![image](common/new-attribute-details.png)
b. In the **Name** textbox, type the attribute name shown for that row.
- ![Configure Single Sign-On](./media/qumucloud-tutorial/tutorial_attribute_05.png)
+ c. Leave the **Namespace** blank.
- c. From the **Value** list, type the attribute value shown for that row.
+ d. Select Source as **Attribute**.
- d. Keep the **Namespace** textbox blank.
-
- e. Click **Ok**.
+ e. From the **Source attribute** list, type the attribute value shown for that row.
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+ f. Click **Save**.
- ![The Certificate download link](./media/qumucloud-tutorial/tutorial_qumucloud_certificate.png)
+8. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-1. Click **Save** button.
+ ![The Certificate download link](common/metadataxml.png)
- ![Configure Single Sign-On Save button](./media/qumucloud-tutorial/tutorial_general_400.png)
-
-1. To configure single sign-on on **Qumu Cloud** side, you need to send the downloaded **Metadata XML** to [Qumu Cloud support team](mailto:support@qumu.com). They set this setting to have the SAML SSO connection set properly on both sides.
+9. On the **Set up Qumu Cloud** section, copy the appropriate URL(s) as per your requirement.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-### Create an Azure AD test user
+ a. Login URL
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ b. Azure AD Identifier
- ![Create an Azure AD test user][100]
+ c. Logout URL
-**To create a test user in Azure AD, perform the following steps:**
+### Configure Qumu Cloud Single Sign-On
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+To configure single sign-on on **Qumu Cloud** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [Qumu Cloud support team](mailto:support@qumu.com). They set this setting to have the SAML SSO connection set properly on both sides.
- ![The Azure Active Directory button](./media/qumucloud-tutorial/create_aaduser_01.png)
+### Create an Azure AD test user
-1. To display the list of users, go to **Users and groups**, and then click **All users**.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- ![The "Users and groups" and "All users" links](./media/qumucloud-tutorial/create_aaduser_02.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-1. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+ ![The "Users and groups" and "All users" links](common/users.png)
- ![The Add button](./media/qumucloud-tutorial/create_aaduser_03.png)
+2. Select **New user** at the top of the screen.
-1. In the **User** dialog box, perform the following steps:
+ ![New user Button](common/new-user.png)
- ![The User dialog box](./media/qumucloud-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** box, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** box, type the email address of user Britta Simon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-
-### Create a Qumu Cloud test user
-
-The objective of this section is to create a user called Britta Simon in Qumu Cloud. Qumu Cloud supports just-in-time provisioning, which is by default enabled. There is no action item for you in this section. A new user is created during an attempt to access Qumu Cloud if it doesn't exist yet.
->[!Note]
->If you need to create a user manually, contact [Qumu Cloud Client support team](mailto:support@qumu.com).
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Qumu Cloud.
-![Assign the user role][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Qumu Cloud**.
-**To assign Britta Simon to Qumu Cloud, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **Qumu Cloud**.
- ![Assign User][201]
+ ![The Qumu Cloud link in the Applications list](common/all-applications.png)
-1. In the applications list, select **Qumu Cloud**.
+3. In the menu on the left, select **Users and groups**.
- ![The Qumu Cloud link in the Applications list](./media/qumucloud-tutorial/tutorial_qumucloud_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![The "Users and groups" link][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![The Add Assignment pane][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Select** button on **Users and groups** dialog.
+### Create Qumu Cloud test user
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Test single sign-on
+In this section, a user called Britta Simon is created in Qumu Cloud. Qumu Cloud supports just-in-time user provisioning, which is enabled by default. There is no action item for you in this section. If a user doesn't already exist in Qumu Cloud, a new one is created after authentication.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+>[!Note]
+>If you need to create a user manually, contact [Qumu Cloud Client support team](mailto:support@qumu.com).
-When you click the Qumu Cloud tile in the Access Panel, you should get automatically signed-on to your Qumu Cloud application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+### Test single sign-on
-## Additional resources
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+When you click the Qumu Cloud tile in the Access Panel, you should be automatically signed in to the Qumu Cloud for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional Resources
-[1]: ./media/qumucloud-tutorial/tutorial_general_01.png
-[2]: ./media/qumucloud-tutorial/tutorial_general_02.png
-[3]: ./media/qumucloud-tutorial/tutorial_general_03.png
-[4]: ./media/qumucloud-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/qumucloud-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/qumucloud-tutorial/tutorial_general_200.png
-[201]: ./media/qumucloud-tutorial/tutorial_general_201.png
-[202]: ./media/qumucloud-tutorial/tutorial_general_202.png
-[203]: ./media/qumucloud-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/rackspacesso-tutorial.md b/articles/active-directory/saas-apps/rackspacesso-tutorial.md
index 6a3c24b913e66..c53ebf09f066c 100644
--- a/articles/active-directory/saas-apps/rackspacesso-tutorial.md
+++ b/articles/active-directory/saas-apps/rackspacesso-tutorial.md
@@ -184,9 +184,9 @@ When you click the Rackspace SSO tile in the Access Panel, you should be automat
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/rally-software-tutorial.md b/articles/active-directory/saas-apps/rally-software-tutorial.md
index 251d889ad6635..9f5f6c5739fa1 100644
--- a/articles/active-directory/saas-apps/rally-software-tutorial.md
+++ b/articles/active-directory/saas-apps/rally-software-tutorial.md
@@ -233,9 +233,9 @@ When you click the Rally Software tile in the Access Panel, you should be automa
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/realtimeboard-tutorial.md b/articles/active-directory/saas-apps/realtimeboard-tutorial.md
index 36227f24abfcd..c8979925a112f 100644
--- a/articles/active-directory/saas-apps/realtimeboard-tutorial.md
+++ b/articles/active-directory/saas-apps/realtimeboard-tutorial.md
@@ -193,9 +193,9 @@ When you click the RealtimeBoard tile in the Access Panel, you should be automat
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/recognize-tutorial.md b/articles/active-directory/saas-apps/recognize-tutorial.md
index 86c4c34cfba07..471281027dab4 100644
--- a/articles/active-directory/saas-apps/recognize-tutorial.md
+++ b/articles/active-directory/saas-apps/recognize-tutorial.md
@@ -252,9 +252,9 @@ When you click the Recognize tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/redvector-tutorial.md b/articles/active-directory/saas-apps/redvector-tutorial.md
index 62b5f96ac6510..a8e4f2cb13e50 100644
--- a/articles/active-directory/saas-apps/redvector-tutorial.md
+++ b/articles/active-directory/saas-apps/redvector-tutorial.md
@@ -190,9 +190,9 @@ When you click the RedVector tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/reflektive-tutorial.md b/articles/active-directory/saas-apps/reflektive-tutorial.md
index 3886c37e5d284..fe03552394f3d 100644
--- a/articles/active-directory/saas-apps/reflektive-tutorial.md
+++ b/articles/active-directory/saas-apps/reflektive-tutorial.md
@@ -199,9 +199,9 @@ When you click the Reflektive tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/reward-gateway-tutorial.md b/articles/active-directory/saas-apps/reward-gateway-tutorial.md
index 361277ef0e8ed..306b15baea218 100644
--- a/articles/active-directory/saas-apps/reward-gateway-tutorial.md
+++ b/articles/active-directory/saas-apps/reward-gateway-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 34336386-998a-4d47-ab55-721d97708e5e
ms.service: active-directory
@@ -12,228 +13,198 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/30/2017
+ms.topic: tutorial
+ms.date: 03/26/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Reward Gateway
In this tutorial, you learn how to integrate Reward Gateway with Azure Active Directory (Azure AD).
-
Integrating Reward Gateway with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Reward Gateway
-- You can enable your users to automatically get signed-on to Reward Gateway (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to Reward Gateway.
+* You can enable your users to be automatically signed-in to Reward Gateway (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Reward Gateway, you need the following items:
-- An Azure AD subscription
-- A Reward Gateway single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Reward Gateway single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Reward Gateway from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Reward Gateway supports **IDP** initiated SSO
## Adding Reward Gateway from the gallery
+
To configure the integration of Reward Gateway into Azure AD, you need to add Reward Gateway from the gallery to your list of managed SaaS apps.
**To add Reward Gateway from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **Reward Gateway**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/reward-gateway-tutorial/tutorial_rewardgateway_search.png)
+4. In the search box, type **Reward Gateway**, select **Reward Gateway** from result panel then click **Add** button to add the application.
-1. In the results panel, select **Reward Gateway**, and then click **Add** button to add the application.
+ ![Reward Gateway in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/reward-gateway-tutorial/tutorial_rewardgateway_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Reward Gateway based on a test user called "Britta Simon".
+In this section, you configure and test Azure AD single sign-on with Reward Gateway based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Reward Gateway needs to be established.
-For single sign-on to work, Azure AD needs to know what the counterpart user in Reward Gateway is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Reward Gateway needs to be established.
+To configure and test Azure AD single sign-on with Reward Gateway, you need to complete the following building blocks:
-In Reward Gateway, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Reward Gateway Single Sign-On](#configure-reward-gateway-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Reward Gateway test user](#create-reward-gateway-test-user)** - to have a counterpart of Britta Simon in Reward Gateway that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-To configure and test Azure AD single sign-on with Reward Gateway, you need to complete the following building blocks:
+### Configure Azure AD single sign-on
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a Reward Gateway test user](#creating-a-reward-gateway-test-user)** - to have a counterpart of Britta Simon in Reward Gateway that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-### Configuring Azure AD single sign-on
+To configure Azure AD single sign-on with Reward Gateway, perform the following steps:
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Reward Gateway application.
+1. In the [Azure portal](https://portal.azure.com/), on the **Reward Gateway** application integration page, select **Single sign-on**.
-**To configure Azure AD single sign-on with Reward Gateway, perform the following steps:**
+ ![Configure single sign-on link](common/select-sso.png)
-1. In the Azure portal, on the **Reward Gateway** application integration page, click **Single sign-on**.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On][4]
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/reward-gateway-tutorial/tutorial_rewardgateway_samlbase.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **Reward Gateway Domain and URLs** section, perform the following steps:
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Configure Single Sign-On](./media/reward-gateway-tutorial/tutorial_rewardgateway_url.png)
+4. On the **Set up Single Sign-On with SAML** page, perform the following steps:
- a. In the **Identifier** textbox, type a URL using the following pattern:
+ ![Reward Gateway Domain and URLs single sign-on information](common/idp-intiated.png)
+ a. In the **Identifier** text box, type a URL using the following pattern:
+
| |
|--|
- | `https://.rewardgateway.com` |
- | `https://.rewardgateway.co.uk/` |
- | `https://.rewardgateway.co.nz/` |
- | `https://.rewardgateway.com.au/` |
+ | `https://.rewardgateway.com`|
+ | `https://.rewardgateway.co.uk/`|
+ | `https://.rewardgateway.co.nz/`|
+ | `https://.rewardgateway.com.au/`|
- b. In the **Reply URL** textbox, type a URL using the following pattern:
+ b. In the **Reply URL** text box, type a URL using the following pattern:
| |
|--|
- | `https://.rewardgateway.com/Authentication/EndLogin?idp=` |
- | `https://.rewardgateway.co.uk/Authentication/EndLogin?idp=` |
- | `https://.rewardgateway.co.nz/Authentication/EndLogin?idp=` |
- | `https://.rewardgateway.com.au/Authentication/EndLogin?idp=` |
+ | `https://.rewardgateway.com/Authentication/EndLogin?idp=`|
+ | `https://.rewardgateway.co.uk/Authentication/EndLogin?idp=`|
+ | `https://.rewardgateway.co.nz/Authentication/EndLogin?idp=`|
+ | `https://.rewardgateway.com.au/Authentication/EndLogin?idp=`|
- > [!NOTE]
+ > [!NOTE]
> These values are not real. Update these values with the actual Identifier and Reply URL. To get these values start setting up an Integration on the Reward Manager Portal. Details can be found on https://success.rewardgateway.com/authentication-integrations/microsoft-azure-for-authentication
-
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
-
- ![Configure Single Sign-On](./media/reward-gateway-tutorial/tutorial_rewardgateway_certificate.png)
-1. Click **Save** button.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On](./media/reward-gateway-tutorial/tutorial_general_400.png)
+ ![The Certificate download link](common/metadataxml.png)
-1. To configure single sign-on on **Reward Gateway** side, start setting up an Integration on the Reward Manager Portal. Use the downloaded metadata to obtain your Signing Certificate and upload that during the configuration. Details can be found on https://success.rewardgateway.com/authentication-integrations/microsoft-azure-for-authentication
+6. On the **Set up Reward Gateway** section, copy the appropriate URL(s) as per your requirement.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
-
-![Create Azure AD User][100]
+ a. Login URL
-**To create a test user in Azure AD, perform the following steps:**
+ b. Azure Ad Identifier
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+ c. Logout URL
- ![Creating an Azure AD test user](./media/reward-gateway-tutorial/create_aaduser_01.png)
+### Configure Reward Gateway Single Sign-On
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/reward-gateway-tutorial/create_aaduser_02.png)
+To configure single sign-on on **Reward Gateway** side, start setting up an Integration on the Reward Manager Portal. Use the downloaded metadata to obtain your Signing Certificate and upload that during the configuration. Details can be found on https://success.rewardgateway.com/authentication-integrations/microsoft-azure-for-authentication
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/reward-gateway-tutorial/create_aaduser_03.png)
+### Create an Azure AD test user
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/reward-gateway-tutorial/create_aaduser_04.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- a. In the **Name** textbox, type **BrittaSimon**.
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+ ![The "Users and groups" and "All users" links](common/users.png)
- c. Select **Show Password** and write down the value of the **Password**.
+2. Select **New user** at the top of the screen.
- d. Click **Create**.
-
-### Creating a Reward Gateway test user
+ ![New user Button](common/new-user.png)
-In this section, you create a user called Britta Simon in Reward Gateway. Work with Reward Gateway [support team](mailto:clientsupport@rewardgateway.com) to add the users in the Reward Gateway platform.
+3. In the User properties, perform the following steps.
-### Assigning the Azure AD test user
+ ![The User dialog box](common/user-properties.png)
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to Reward Gateway.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`
+ For example, BrittaSimon@contoso.com
-![Assign User][200]
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-**To assign Britta Simon to Reward Gateway, perform the following steps:**
+ d. Click **Create**.
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+### Assign the Azure AD test user
- ![Assign User][201]
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to Reward Gateway.
-1. In the applications list, select **Reward Gateway**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Reward Gateway**.
- ![Configure Single Sign-On](./media/reward-gateway-tutorial/tutorial_rewardgateway_app.png)
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the menu on the left, click **Users and groups**.
+2. In the applications list, select **Reward Gateway**.
- ![Assign User][202]
+ ![The Reward Gateway link in the Applications list](common/all-applications.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+3. In the menu on the left, select **Users and groups**.
- ![Assign User][203]
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. Click **Select** button on **Users and groups** dialog.
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-When you click the Reward Gateway tile in the Access Panel, you should get automatically signed-on to your Reward Gateway application.
+7. In the **Add Assignment** dialog click the **Assign** button.
-## Additional resources
+### Create Reward Gateway test user
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+In this section, you create a user called Britta Simon in Reward Gateway. Work with [Reward Gateway support team](mailto:clientsupport@rewardgateway.com) to add the users in the Reward Gateway platform. Users must be created and activated before you use single sign-on.
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-
+When you click the Reward Gateway tile in the Access Panel, you should be automatically signed in to the Reward Gateway for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-[1]: ./media/reward-gateway-tutorial/tutorial_general_01.png
-[2]: ./media/reward-gateway-tutorial/tutorial_general_02.png
-[3]: ./media/reward-gateway-tutorial/tutorial_general_03.png
-[4]: ./media/reward-gateway-tutorial/tutorial_general_04.png
+## Additional Resources
-[100]: ./media/reward-gateway-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/reward-gateway-tutorial/tutorial_general_200.png
-[201]: ./media/reward-gateway-tutorial/tutorial_general_201.png
-[202]: ./media/reward-gateway-tutorial/tutorial_general_202.png
-[203]: ./media/reward-gateway-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/rightscale-tutorial.md b/articles/active-directory/saas-apps/rightscale-tutorial.md
index 2a2a32ac310cc..916604693e2da 100644
--- a/articles/active-directory/saas-apps/rightscale-tutorial.md
+++ b/articles/active-directory/saas-apps/rightscale-tutorial.md
@@ -129,7 +129,7 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
1. On the **Rightscale Configuration** section, click **Configure Rightscale** to open **Configure sign-on** window. Copy the **SAML Entity ID, and SAML Single Sign-On Service URL** from the **Quick Reference section.**
![Configure Single Sign-On](./media/rightscale-tutorial/tutorial_rightscale_configure.png)
-
+
1. To get SSO configured for your application, you need to sign-on to your RightScale tenant as an administrator.
a. In the menu on the top, click the **Settings** tab and select **Single Sign-On**.
@@ -161,7 +161,7 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
![Configure Single Sign-On](./media/rightscale-tutorial/tutorial_rightscale_009.png)
h. Click **Save**.
-
+
> [!TIP]
> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
>
diff --git a/articles/active-directory/saas-apps/rolepoint-tutorial.md b/articles/active-directory/saas-apps/rolepoint-tutorial.md
index 0708be67a317e..f9e45821ce054 100644
--- a/articles/active-directory/saas-apps/rolepoint-tutorial.md
+++ b/articles/active-directory/saas-apps/rolepoint-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 68d37f40-15da-45f5-a9e1-d53f78e786d1
ms.service: active-directory
@@ -12,216 +13,185 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 04/27/2017
+ms.topic: tutorial
+ms.date: 03/15/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with RolePoint
In this tutorial, you learn how to integrate RolePoint with Azure Active Directory (Azure AD).
-
Integrating RolePoint with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to RolePoint
-- You can enable your users to automatically get signed-on to RolePoint (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to RolePoint.
+* You can enable your users to be automatically signed-in to RolePoint (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with RolePoint, you need the following items:
-- An Azure AD subscription
-- A RolePoint single-sign on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* RolePoint single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding RolePoint from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* RolePoint supports **SP** initiated SSO
## Adding RolePoint from the gallery
+
To configure the integration of RolePoint into Azure AD, you need to add RolePoint from the gallery to your list of managed SaaS apps.
**To add RolePoint from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
-
- ![Active Directory][1]
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+ ![The Azure Active Directory button](common/select-azuread.png)
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][3]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
-1. In the search box, type **RolePoint**.
+3. To add new application, click **New application** button on the top of dialog.
- ![Creating an Azure AD test user](./media/rolepoint-tutorial/tutorial_rolepoint_search.png)
+ ![The New application button](common/add-new-app.png)
-1. In the results panel, select **RolePoint**, and then click **Add** button to add the application.
+4. In the search box, type **RolePoint**, select **RolePoint** from result panel then click **Add** button to add the application.
- ![Creating an Azure AD test user](./media/rolepoint-tutorial/tutorial_rolepoint_addfromgallery.png)
+ ![RolePoint in the results list](common/search-new-app.png)
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with RolePoint based on a test user called "Britta Simon."
+## Configure and test Azure AD single sign-on
-For single sign-on to work, Azure AD needs to know what the counterpart user in RolePoint is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in RolePoint needs to be established.
-
-This link relationship is established by assigning the value of the **user name** in Azure AD as the value of the **Username** in RolePoint.
+In this section, you configure and test Azure AD single sign-on with RolePoint based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in RolePoint needs to be established.
To configure and test Azure AD single sign-on with RolePoint, you need to complete the following building blocks:
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a RolePoint test user](#creating-a-rolepoint-test-user)** - to have a counterpart of Britta Simon in RolePoint that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure RolePoint Single Sign-On](#configure-rolepoint-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create RolePoint test user](#create-rolepoint-test-user)** - to have a counterpart of Britta Simon in RolePoint that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-### Configuring Azure AD single sign-on
+### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your RolePoint application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with RolePoint, perform the following steps:**
+To configure Azure AD single sign-on with RolePoint, perform the following steps:
-1. In the Azure portal, on the **RolePoint** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **RolePoint** application integration page, select **Single sign-on**.
- ![Configure Single Sign-On][4]
+ ![Configure single sign-on link](common/select-sso.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/rolepoint-tutorial/tutorial_rolepoint_samlbase.png)
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. On the **RolePoint Domain and URLs** section, perform the following steps:
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Configure Single Sign-On](./media/rolepoint-tutorial/tutorial_rolepoint_url.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- a. In the **Sign-on URL** textbox, type a URL using the following pattern: `https://.rolepoint.com/login`
-
- b. In the **Identifier** textbox, type a URL using the following pattern:
- `https://app.rolepoint.com/`
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- > [!NOTE]
- > These values are not the real. Update these values with the actual Sign-on URL and Identifier. Here we suggest you to use the unique value of string in the Identifier.Contact [RolePoint support team](mailto:info@rolepoint.com) to get the value.
-
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+4. On the **Basic SAML Configuration** section, perform the following steps:
- ![Configure Single Sign-On](./media/rolepoint-tutorial/tutorial_rolepoint_certificate.png)
+ ![RolePoint Domain and URLs single sign-on information](common/sp-identifier.png)
-1. Click **Save** button.
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://.rolepoint.com/login`
- ![Configure Single Sign-On](./media/rolepoint-tutorial/tutorial_general_400.png)
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+ `https://app.rolepoint.com/`
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign on URL and Identifier. Here we suggest you to use the unique value of string in the Identifier. Contact [RolePoint Client support team](mailto:info@rolepoint.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. To configure single sign-on on **RolePoint** side, you need to send the downloaded **Metadata XML** to [RolePoint support team](mailto:info@rolepoint.com).
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+ ![The Certificate download link](common/metadataxml.png)
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+6. On the **Set up RolePoint** section, copy the appropriate URL(s) as per your requirement.
-![Create Azure AD User][100]
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-**To create a test user in Azure AD, perform the following steps:**
+ a. Login URL
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+ b. Azure AD Identifier
- ![Creating an Azure AD test user](./media/rolepoint-tutorial/create_aaduser_01.png)
+ c. Logout URL
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/rolepoint-tutorial/create_aaduser_02.png)
+### Configure RolePoint Single Sign-On
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/rolepoint-tutorial/create_aaduser_03.png)
+To configure single sign-on on **RolePoint** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [RolePoint support team](mailto:info@rolepoint.com). They set this setting to have the SAML SSO connection set properly on both sides.
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/rolepoint-tutorial/create_aaduser_04.png)
+### Create an Azure AD test user
- a. In the **Name** textbox, type **BrittaSimon**.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- c. Select **Show Password** and write down the value of the **Password**.
+ ![The "Users and groups" and "All users" links](common/users.png)
- d. Click **Create**.
-
-### Creating a RolePoint test user
+2. Select **New user** at the top of the screen.
-In this section, you create a user called Britta Simon in RolePoint. Work with [RolePoint support team](mailto:info@rolepoint.com) to add the users in the RolePoint platform.
+ ![New user Button](common/new-user.png)
-### Assigning the Azure AD test user
+3. In the User properties, perform the following steps.
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to RolePoint.
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
-![Assign User][200]
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-**To assign Britta Simon to RolePoint, perform the following steps:**
+ d. Click **Create**.
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+### Assign the Azure AD test user
- ![Assign User][201]
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to RolePoint.
-1. In the applications list, select **RolePoint**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **RolePoint**.
- ![Configure Single Sign-On](./media/rolepoint-tutorial/tutorial_rolepoint_app.png)
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the menu on the left, click **Users and groups**.
+2. In the applications list, select **RolePoint**.
- ![Assign User][202]
+ ![The RolePoint link in the Applications list](common/all-applications.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+3. In the menu on the left, select **Users and groups**.
- ![Assign User][203]
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. Click **Select** button on **Users and groups** dialog.
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-When you click the RolePoint tile in the Access Panel, you should get automatically signed-on to your RolePoint application.
+7. In the **Add Assignment** dialog click the **Assign** button.
-## Additional resources
+### Create RolePoint test user
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+In this section, you create a user called Britta Simon in RolePoint. Work with [RolePoint support team](mailto:info@rolepoint.com) to add the users in the RolePoint platform. Users must be created and activated before you use single sign-on.
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-
+When you click the RolePoint tile in the Access Panel, you should be automatically signed in to the RolePoint for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-[1]: ./media/rolepoint-tutorial/tutorial_general_01.png
-[2]: ./media/rolepoint-tutorial/tutorial_general_02.png
-[3]: ./media/rolepoint-tutorial/tutorial_general_03.png
-[4]: ./media/rolepoint-tutorial/tutorial_general_04.png
+## Additional Resources
-[100]: ./media/rolepoint-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/rolepoint-tutorial/tutorial_general_200.png
-[201]: ./media/rolepoint-tutorial/tutorial_general_201.png
-[202]: ./media/rolepoint-tutorial/tutorial_general_202.png
-[203]: ./media/rolepoint-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/rstudio-connect-tutorial.md b/articles/active-directory/saas-apps/rstudio-connect-tutorial.md
new file mode 100644
index 0000000000000..b118e6d11af93
--- /dev/null
+++ b/articles/active-directory/saas-apps/rstudio-connect-tutorial.md
@@ -0,0 +1,202 @@
+---
+title: 'Tutorial: Azure Active Directory integration with RStudio Connect | Microsoft Docs'
+description: Learn how to configure single sign-on between Azure Active Directory and RStudio Connect.
+services: active-directory
+documentationCenter: na
+author: jeevansd
+manager: mtillman
+ms.reviewer: barbkess
+
+ms.assetid: 9bc78022-6d38-4476-8f03-e3ca2551e72e
+ms.service: active-directory
+ms.subservice: saas-app-tutorial
+ms.workload: identity
+ms.tgt_pltfrm: na
+ms.devlang: na
+ms.topic: tutorial
+ms.date: 04/04/2019
+ms.author: jeedes
+
+ms.collection: M365-identity-device-management
+---
+# Tutorial: Azure Active Directory integration with RStudio Connect
+
+In this tutorial, you learn how to integrate RStudio Connect with Azure Active Directory (Azure AD).
+Integrating RStudio Connect with Azure AD provides you with the following benefits:
+
+* You can control in Azure AD who has access to RStudio Connect.
+* You can enable your users to be automatically signed-in to RStudio Connect (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
+
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+
+## Prerequisites
+
+To configure Azure AD integration with RStudio Connect, you need the following items:
+
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* RStudio Connect single sign-on enabled subscription
+
+## Scenario description
+
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* RStudio Connect supports **SP and IDP** initiated SSO
+
+* RStudio Connect supports **Just In Time** user provisioning
+
+## Adding RStudio Connect from the gallery
+
+To configure the integration of RStudio Connect into Azure AD, you need to add RStudio Connect from the gallery to your list of managed SaaS apps.
+
+**To add RStudio Connect from the gallery, perform the following steps:**
+
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+
+ ![The Azure Active Directory button](common/select-azuread.png)
+
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
+
+3. To add new application, click **New application** button on the top of dialog.
+
+ ![The New application button](common/add-new-app.png)
+
+4. In the search box, type **RStudio Connect**, select **RStudio Connect** from result panel then click **Add** button to add the application.
+
+ ![RStudio Connect in the results list](common/search-new-app.png)
+
+## Configure and test Azure AD single sign-on
+
+In this section, you configure and test Azure AD single sign-on with RStudio Connect based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in RStudio Connect needs to be established.
+
+To configure and test Azure AD single sign-on with RStudio Connect, you need to complete the following building blocks:
+
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure RStudio Connect Single Sign-On](#configure-rstudio-connect-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create RStudio Connect test user](#create-rstudio-connect-test-user)** - to have a counterpart of Britta Simon in RStudio Connect that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with RStudio Connect, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **RStudio Connect** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+
+ ![Single sign-on select mode](common/select-saml-option.png)
+
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following steps:
+
+ ![RStudio Connect Domain and URLs single sign-on information](common/idp-intiated.png)
+
+ a. In the **Identifier** text box, type a URL using the following pattern:
+ `https://connect..com/__login__/saml`
+
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://connect..com/__login__/saml/acs`
+
+5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
+
+ ![RStudio Connect Domain and URLs single sign-on information](common/metadata-upload-additional-signon.png)
+
+ In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://connect..com/`
+
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Identifier, Reply URL and Sign-on URL. Contact [RStudio Connect Client support team](mailto:support@rstudio.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+
+6. Your RStudio Connect application expects the SAML assertions in a specific format, which requires you to add custom attribute mappings to your SAML token attributes configuration. The following screenshot shows the list of default attributes, where as **nameidentifier** is mapped with **user.userprincipalname**. RStudio Connect application expects **nameidentifier** to be mapped with **user.mail**, so you need to edit the attribute mapping by clicking on **Edit** icon and change the attribute mapping.
+
+ ![image](common/edit-attribute.png)
+
+7. On the **Set up Single Sign-On with SAML** page, In the **SAML Signing Certificate** section, click copy button to copy **App Federation Metadata Url** and save it on your computer.
+
+ ![The Certificate download link](common/copy-metadataurl.png)
+
+### Configure RStudio Connect Single Sign-On
+
+To configure single sign-on on **RStudio Connect** side, you need to send the **App Federation Metadata Url** to [RStudio Connect support team](mailto:support@rstudio.com). They set this setting to have the SAML SSO connection set properly on both sides.
+
+### Create an Azure AD test user
+
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
+
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
+
+ ![The "Users and groups" and "All users" links](common/users.png)
+
+2. Select **New user** at the top of the screen.
+
+ ![New user Button](common/new-user.png)
+
+3. In the User properties, perform the following steps.
+
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
+
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
+
+### Assign the Azure AD test user
+
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to RStudio Connect.
+
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **RStudio Connect**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **RStudio Connect**.
+
+ ![The RStudio Connect link in the Applications list](common/all-applications.png)
+
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
+
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+
+ ![The Add Assignment pane](common/add-assign-user.png)
+
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create RStudio Connect test user
+
+In this section, a user called Britta Simon is created in RStudio Connect. RStudio Connect supports just-in-time provisioning, which is enabled by default. There is no action item for you in this section. If a user doesn't already exist in RStudio Connect, a new one is created when you attempt to access RStudio Connect.
+
+### Test single sign-on
+
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+
+When you click the RStudio Connect tile in the Access Panel, you should be automatically signed in to the RStudio Connect for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+
+## Additional Resources
+
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
+
diff --git a/articles/active-directory/saas-apps/salesforce-tutorial.md b/articles/active-directory/saas-apps/salesforce-tutorial.md
index 35466f5a26b88..70edaa4a61aa8 100644
--- a/articles/active-directory/saas-apps/salesforce-tutorial.md
+++ b/articles/active-directory/saas-apps/salesforce-tutorial.md
@@ -9,11 +9,12 @@ ms.reviewer: barbkess
ms.assetid: d2d7d420-dc91-41b8-a6b3-59579e043b35
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: tutorial
-ms.date: 01/17/2019
+ms.date: 04/10/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -53,7 +54,7 @@ To configure the integration of Salesforce into Azure AD, you need to add Salesf
**To add Salesforce from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
![The Azure Active Directory button](common/select-azuread.png)
@@ -61,13 +62,13 @@ To configure the integration of Salesforce into Azure AD, you need to add Salesf
![The Enterprise applications blade](common/enterprise-applications.png)
-3. To add new application, click **New application** button on the top of dialog.
+3. To add a new application, click the **New application** button at the top of the dialog.
![The New application button](common/add-new-app.png)
-4. In the search box, type **Salesforce**, select **Salesforce** from result panel then click **Add** button to add the application.
+4. In the search box, type **Salesforce**, select **Salesforce** from the result panel then click the **Add** button to add the application.
- ![Salesforce in the results list](common/search-new-app.png)
+ ![Salesforce in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
@@ -97,7 +98,7 @@ To configure Azure AD single sign-on with Salesforce, perform the following step
![Single sign-on select mode](common/select-saml-option.png)
-3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+3. On the **Set up Single Sign-On with SAML** page, click the **Edit** icon to open the **Basic SAML Configuration** dialog.
![Edit Basic SAML Configuration](common/edit-urls.png)
@@ -130,13 +131,13 @@ To configure Azure AD single sign-on with Salesforce, perform the following step
a. Login URL
- b. Azure Ad Identifier
+ b. Azure AD Identifier
c. Logout URL
### Configure Salesforce Single Sign-On
-1. Open a new tab in your browser and log in to your Salesforce administrator account.
+1. Open a new tab in your browser and sign in to your Salesforce administrator account.
2. Click on the **Setup** under **settings icon** on the top right corner of the page.
@@ -202,8 +203,7 @@ The objective of this section is to create a test user in the Azure portal calle
a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field type `brittasimon\@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
@@ -245,7 +245,7 @@ In this section, you test your Azure AD single sign-on configuration using the A
When you click the Salesforce tile in the Access Panel, you should be automatically signed in to the Salesforce for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-## Additional Resources
+## Additional resources
- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
diff --git a/articles/active-directory/saas-apps/samanage-provisioning-tutorial.md b/articles/active-directory/saas-apps/samanage-provisioning-tutorial.md
index 8438de8e90df4..671ff7f5cbac7 100644
--- a/articles/active-directory/saas-apps/samanage-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/samanage-provisioning-tutorial.md
@@ -7,13 +7,14 @@ author: zchia
writer: zchia
manager: beatrizd-msft
-ms.assetid: na
+ms.assetid: 62d0392f-37d4-436e-9aff-22f4e5b83623
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 07/28/2018
+ms.date: 03/28/2019
ms.author: v-wingf-msft
ms.collection: M365-identity-device-management
---
@@ -29,39 +30,34 @@ The objective of this tutorial is to demonstrate the steps to be performed in Sa
The scenario outlined in this tutorial assumes that you already have the following:
-* An Azure AD tenant
-* A [Samanage tenant](https://www.samanage.com/pricing/) with the Professional package
-* A user account in Samanage with Admin permissions
+* An Azure AD tenant
+* A [Samanage tenant](https://www.samanage.com/pricing/) with the Professional package
+* A user account in Samanage with Admin permissions
> [!NOTE]
> The Azure AD provisioning integration relies on the [Samanage Rest API](https://www.samanage.com/api/), which is available to Samanage developers for accounts with the Professional package.
## Adding Samanage from the gallery
+
Before configuring Samanage for automatic user provisioning with Azure AD, you need to add Samanage from the Azure AD application gallery to your list of managed SaaS applications.
**To add Samanage from the Azure AD application gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click on the **Azure Active Directory** icon.
-
- ![The Azure Active Directory button][1]
-
-2. Navigate to **Enterprise applications** > **All applications**.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Enterprise applications Section][2]
+ ![The Azure Active Directory button](common/select-azuread.png)
-3. To add Samanage, click the **New application** button on the top of the dialog.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The New application button][3]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
-4. In the search box, type **Samanage**.
+3. To add new application, click **New application** button on the top of dialog.
- ![Samanage Provisioning](./media/samanage-provisioning-tutorial/AppSearch.png)
+ ![The New application button](common/add-new-app.png)
-5. In the results panel, select **Samanage**, and then click the **Add** button to add Samanage to your list of SaaS applications.
+4. In the search box, type **Samanage**, select **Samanage** from result panel then click **Add** button to add the application.
- ![Samanage Provisioning](./media/samanage-provisioning-tutorial/AppSearchResults.png)
-
- ![Samanage Provisioning](./media/samanage-provisioning-tutorial/AppCreation.png)
+ ![Samanage in the results list](common/search-new-app.png)
## Assigning users to Samanage
@@ -88,11 +84,13 @@ This section guides you through the steps to configure the Azure AD provisioning
### To configure automatic user provisioning for Samanage in Azure AD:
-1. Sign in to the [Azure portal](https://portal.azure.com) and browse to **Azure Active Directory > Enterprise applications > All applications**.
+1. Sign in to the [Azure portal](https://portal.azure.com) and select **Enterprise Applications**, select **All applications**, then select **Samanage**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
-2. Select Samanage from your list of SaaS applications.
+2. In the applications list, select **Samanage**.
- ![Samanage Provisioning](./media/samanage-provisioning-tutorial/AppInstanceSearch.png)
+ ![The Samanage link in the Applications list](common/all-applications.png)
3. Select the **Provisioning** tab.
diff --git a/articles/active-directory/saas-apps/sansan-tutorial.md b/articles/active-directory/saas-apps/sansan-tutorial.md
index 28ec7363224df..e77237a7585bc 100644
--- a/articles/active-directory/saas-apps/sansan-tutorial.md
+++ b/articles/active-directory/saas-apps/sansan-tutorial.md
@@ -254,8 +254,8 @@ When you click the Sansan tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/sap-fiori-tutorial.md b/articles/active-directory/saas-apps/sap-fiori-tutorial.md
new file mode 100644
index 0000000000000..05a5b4d4737be
--- /dev/null
+++ b/articles/active-directory/saas-apps/sap-fiori-tutorial.md
@@ -0,0 +1,379 @@
+---
+title: 'Tutorial: Azure Active Directory integration with SAP Fiori | Microsoft Docs'
+description: Learn how to configure single sign-on between Azure Active Directory and SAP Fiori.
+services: active-directory
+documentationCenter: na
+author: jeevansd
+manager: daveba
+ms.reviewer: barbkess
+
+ms.assetid: 77ad13bf-e56b-4063-97d0-c82a19da9d56
+ms.service: active-directory
+ms.subservice: saas-app-tutorial
+ms.workload: identity
+ms.tgt_pltfrm: na
+ms.devlang: na
+ms.topic: tutorial
+ms.date: 03/11/2019
+ms.author: jeedes
+
+---
+# Tutorial: Azure Active Directory integration with SAP Fiori
+
+In this tutorial, you learn how to integrate SAP Fiori with Azure Active Directory (Azure AD).
+Integrating SAP Fiori with Azure AD provides you with the following benefits:
+
+* You can control in Azure AD who has access to SAP Fiori.
+* You can enable your users to be automatically signed-in to SAP Fiori (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
+
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+
+## Prerequisites
+
+To configure Azure AD integration with SAP Fiori, you need the following items:
+
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* SAP Fiori single sign-on enabled subscription
+* SAP Fiori V7.20 required atleast
+
+## Scenario description
+
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* SAP Fiori supports **SP** initiated SSO
+
+## Adding SAP Fiori from the gallery
+
+To configure the integration of SAP Fiori into Azure AD, you need to add SAP Fiori from the gallery to your list of managed SaaS apps.
+
+**To add SAP Fiori from the gallery, perform the following steps:**
+
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+
+ ![The Azure Active Directory button](common/select-azuread.png)
+
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
+
+3. To add new application, click **New application** button on the top of dialog.
+
+ ![The New application button](common/add-new-app.png)
+
+4. In the search box, type **SAP Fiori**, select **SAP Fiori** from result panel then click **Add** button to add the application.
+
+ ![SAP Fiori in the results list](common/search-new-app.png)
+
+## Configure and test Azure AD single sign-on
+
+In this section, you configure and test Azure AD single sign-on with SAP Fiori based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in SAP Fiori needs to be established.
+
+To configure and test Azure AD single sign-on with SAP Fiori, you need to complete the following building blocks:
+
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure SAP Fiori Single Sign-On](#configure-sap-fiori-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create SAP Fiori test user](#create-sap-fiori-test-user)** - to have a counterpart of Britta Simon in SAP Fiori that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with SAP Fiori, perform the following steps:
+
+1. Open a new web browser window and sign in to your SAP Fiori company site as an administrator
+
+2. Make sure that **http** and **https** services are active and appropriate ports are assigned in **SMICM** T-Code.
+
+3. Sign in to business client of SAP System (T01), where SSO is required and activate HTTP Security session Management.
+
+ a. Go to Transaction code **SICF_SESSIONS**. It displays all relevant profile parameters with current values. They look like below:-
+ ```
+ login/create_sso2_ticket = 2
+ login/accept_sso2_ticket = 1
+ login/ticketcache_entries_max = 1000
+ login/ticketcache_off = 0 login/ticket_only_by_https = 0
+ icf/set_HTTPonly_flag_on_cookies = 3
+ icf/user_recheck = 0 http/security_session_timeout = 1800
+ http/security_context_cache_size = 2500
+ rdisp/plugin_auto_logout = 1800
+ rdisp/autothtime = 60
+ ```
+ >[!NOTE]
+ > Adjust above parameters as per your organization requirements, Above parameters are given here as indication only.
+
+ b. If required adjust parameters, in the instance/default profile of SAP system and restart SAP system.
+
+ c. Double click on relevant client to enable HTTP security session.
+
+ ![The Certificate download link](./media/sapfiori-tutorial/tutorial-sapnetweaver-profileparameter.png)
+
+ d. Activate below SICF services:
+ ```
+ /sap/public/bc/sec/saml2
+ /sap/public/bc/sec/cdc_ext_service
+ /sap/bc/webdynpro/sap/saml2
+ /sap/bc/webdynpro/sap/sec_diag_tool (This is only to enable / disable trace)
+ ```
+4. Go to Transaction code **SAML2** in business client of SAP system [T01/122]. It will open a user interface in a browser. In this example, we assumed 122 as SAP business client.
+
+ ![The Certificate download link](./media/sapfiori-tutorial/tutorial-sapnetweaver-sapbusinessclient.png)
+
+5. Provide your username and password to enter in user interface and click **Edit**.
+
+ ![The Certificate download link](./media/sapfiori-tutorial/tutorial-sapnetweaver-userpwd.png)
+
+6. Replace **Provider Name** from T01122 to `http://T01122` and click on **Save**.
+
+ > [!NOTE]
+ > By default provider name come as format but Azure AD expects name in the format of ://, recommending to maintain provider name as https:// to allow multiple SAP Fiori ABAP engines to configure in Azure AD.
+
+ ![The Certificate download link](./media/sapfiori-tutorial/tutorial-sapnetweaver-providername.png)
+
+7. **Generating Service Provider Metadata**:- Once we are done with configuring the **Local Provider** and **Trusted Providers** settings on SAML 2.0 User Interface, the next step would be to generate the service provider’s metadata file (which would contain all the settings, authentication contexts and other configurations in SAP). Once this file is generated we need to upload this in Azure AD.
+
+ ![The Certificate download link](./media/sapfiori-tutorial/tutorial-sapnetweaver-generatesp.png)
+
+ a. Go to **Local Provider tab**.
+
+ b. Click on **Metadata**.
+
+ c. Save the generated **Metadata XML file** on your computer and upload it in **Basic SAML Configuration** section to auto populate the **Identifier** and **Reply URL** values in Azure portal.
+
+8. In the [Azure portal](https://portal.azure.com/), on the **SAP Fiori** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+9. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+
+ ![Single sign-on select mode](common/select-saml-option.png)
+
+10. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+11. On the **Basic SAML Configuration** section, perform the following steps:
+
+ a. Click **Upload metadata file** to upload the **Service Provider metadata file** which you have obtained earlier.
+
+ ![Upload metadata file](common/upload-metadata.png)
+
+ b. Click on **folder logo** to select the metadata file and click **Upload**.
+
+ ![choose metadata file](common/browse-upload-metadata.png)
+
+ c. After the metadata file is successfully uploaded, the **Identifier** and **Reply URL** values get auto populated in **Basic SAML Configuration** section textbox as shown below:
+
+ ![SAP Fiori Domain and URLs single sign-on information](common/sp-identifier-reply.png)
+
+ d. In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://`
+
+ > [!NOTE]
+ > We have seen few customers reporting an error of incorrect Reply URL configured for their instance. If you receive any such error, you can use following PowerShell script as a work around to set the correct Reply URL for your instance.:
+ ```
+ Set-AzureADServicePrincipal -ObjectId $ServicePrincipalObjectId -ReplyUrls ""
+ ```
+ > ServicePrincipal Object ID is to be set by yourself first or you can pass that also here.
+
+12. SAP Fiori application expects the SAML assertions in a specific format. Configure the following claims for this application. You can manage the values of these attributes from the **User Attributes** section on application integration page. On the **Set up Single Sign-On with SAML** page, click **Edit** button to open **User Attributes** dialog.
+
+ ![image](common/edit-attribute.png)
+
+13. In the **User Claims** section on the **User Attributes** dialog, configure SAML token attribute as shown in the image above and perform the following steps:
+
+ a. Click **Edit icon** to open the **Manage user claims** dialog.
+
+ ![image](./media/sapfiori-tutorial/nameidattribute.png)
+
+ ![image](./media/sapfiori-tutorial/nameidattribute1.png)
+
+ b. From the **Transformation** list, select **ExtractMailPrefix()**.
+
+ c. From the **Parameter 1** list, select **user.userprinicipalname**.
+
+ d. Click **Save**.
+
+14. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
+
+ ![The Certificate download link](common/metadataxml.png)
+
+15. On the **Set up SAP Fiori** section, copy the appropriate URL(s) as per your requirement.
+
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
+
+ a. Login URL
+
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure SAP Fiori Single Sign-On
+
+1. Sign in to SAP system and go to transaction code SAML2. It opens new browser window with SAML configuration screen.
+
+2. For configuring End points for trusted Identity provider (Azure AD) go to **Trusted Providers** tab.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-samlconfig.png)
+
+3. Press **Add** and select **Upload Metadata File** from the context menu.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-uploadmetadata.png)
+
+4. Upload metadata file, which you have downloaded from the Azure portal.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-metadatafile.png)
+
+5. In the next screen type the Alias name. For example aadsts and press **Next** to continue.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-aliasname.png)
+
+6. Make sure that your **Digest Algorithm** should be **SHA-256** and don’t require any changes and press **Next**.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-identityprovider.png)
+
+7. On **Single Sign-On Endpoints**, use **HTTP POST** and click **Next** to continue.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-httpredirect.png)
+
+8. On **Single Logout Endpoints** select **HTTPRedirect** and click **Next** to continue.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-httpredirect1.png)
+
+9. On **Artifact Endpoints**, press **Next** to continue.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-artifactendpoint.png)
+
+10. On **Authentication Requirements**, click **Finish**.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-authentication.png)
+
+11. Go to tab **Trusted Provider** > **Identity Federation** (from bottom of the screen). Click **Edit**.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-trustedprovider.png)
+
+12. Click **Add** under the **Identity Federation** tab (bottom window).
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-addidentityprovider.png)
+
+13. From the pop-up window select **Unspecified** from the **Supported NameID formats** and click OK.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-nameid.png)
+
+14. Note that **user ID Source** and **user ID mapping mode** values determine the link between SAP user and Azure AD claim.
+
+ #### Scenario: SAP User to Azure AD user mapping.
+
+ a. NameID details screenshot from SAP.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/nameiddetails.png)
+
+ b. Screenshot mentioning Required claims from Azure AD.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/claimsaad1.png)
+
+ #### Scenario: Select SAP user ID based on configured email address in SU01. In this case email ID should be configured in su01 for each user who requires SSO.
+
+ a. NameID details screenshot from SAP.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/tutorial-sapnetweaver-nameiddetails1.png)
+
+ b. screenshot mentioning Required claims from Azure AD.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/claimsaad2.png)
+
+15. Click **Save** and then click **Enable** to enable identity provider.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/configuration1.png)
+
+16. Click **OK** once prompted.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/configuration2.png)
+
+### Create an Azure AD test user
+
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
+
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
+
+ ![The "Users and groups" and "All users" links](common/users.png)
+
+2. Select **New user** at the top of the screen.
+
+ ![New user Button](common/new-user.png)
+
+3. In the User properties, perform the following steps.
+
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
+
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
+
+### Assign the Azure AD test user
+
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to SAP Fiori.
+
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **SAP Fiori**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
+
+2. In the applications list, select **SAP Fiori**.
+
+ ![The SAP Fiori link in the Applications list](common/all-applications.png)
+
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
+
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+
+ ![The Add Assignment pane](common/add-assign-user.png)
+
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create SAP Fiori test user
+
+In this section, you create a user called Britta Simon in SAP Fiori. Please work your in house SAP expert team or work with your organization SAP partner to add the users in the SAP Fiori platform.
+
+### Test single sign-on
+
+1. Once the identity provider Azure AD was activated, try accessing below URL to check SSO (there will no prompt for username & password)
+
+ `https:///sap/bc/bsp/sap/it00/default.htm`
+
+ (or) use the URL below
+
+ `https:///sap/bc/bsp/sap/it00/default.htm`
+
+ > [!NOTE]
+ > Replace sapurl with actual SAP hostname.
+
+2. The above URL should take you to below mentioned screen. If you are able to reach up to the below page, Azure AD SSO setup is successfully done.
+
+ ![Configure Single Sign-On](./media/sapfiori-tutorial/testingsso.png)
+
+3. If username & password prompt occurs, please diagnose the issue by enable the trace using below URL
+
+ `https:///sap/bc/webdynpro/sap/sec_diag_tool?sap-client=122&sap-language=EN#`
+
+## Additional Resources
+
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/sap-netweaver-tutorial.md b/articles/active-directory/saas-apps/sap-netweaver-tutorial.md
index 45a9fe26a7bcc..045ee1e464901 100644
--- a/articles/active-directory/saas-apps/sap-netweaver-tutorial.md
+++ b/articles/active-directory/saas-apps/sap-netweaver-tutorial.md
@@ -131,7 +131,7 @@ To configure Azure AD single sign-on with SAP NetWeaver, perform the following s
6. Replace **Provider Name** from T01122 to `http://T01122` and click on **Save**.
> [!NOTE]
- > By default provider name come as format but Azure AD expects name in the format of ://, recommending to maintain provider name as https:// to allow multiple SAP NetWeaver ABAP engines to configure in Azure AD.
+ > By default provider name come as `` format but Azure AD expects name in the format of `://`, recommending to maintain provider name as `https://` to allow multiple SAP NetWeaver ABAP engines to configure in Azure AD.
![The Certificate download link](./media/sapnetweaver-tutorial/tutorial_sapnetweaver_providername.png)
diff --git a/articles/active-directory/saas-apps/scclifecycle-tutorial.md b/articles/active-directory/saas-apps/scclifecycle-tutorial.md
index bd132ff061214..2ce203658e273 100644
--- a/articles/active-directory/saas-apps/scclifecycle-tutorial.md
+++ b/articles/active-directory/saas-apps/scclifecycle-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 9748bf38-ffc3-4d51-a1ae-207ce57104fa
ms.service: active-directory
@@ -12,228 +13,198 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 07/14/2017
+ms.topic: tutorial
+ms.date: 03/22/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with SCC LifeCycle
In this tutorial, you learn how to integrate SCC LifeCycle with Azure Active Directory (Azure AD).
-
Integrating SCC LifeCycle with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to SCC LifeCycle
-- You can enable your users to automatically get signed-on to SCC LifeCycle (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to SCC LifeCycle.
+* You can enable your users to be automatically signed-in to SCC LifeCycle (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with SCC LifeCycle, you need the following items:
-- An Azure AD subscription
-- An SCC LifeCycle single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial here: [Trial offer](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* SCC LifeCycle single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding SCC LifeCycle from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* SCC LifeCycle supports **SP** initiated SSO
## Adding SCC LifeCycle from the gallery
+
To configure the integration of SCC LifeCycle into Azure AD, you need to add SCC LifeCycle from the gallery to your list of managed SaaS apps.
**To add SCC LifeCycle from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **SCC LifeCycle**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/scclifecycle-tutorial/tutorial_scclifecycle_search.png)
+4. In the search box, type **SCC LifeCycle**, select **SCC LifeCycle** from result panel then click **Add** button to add the application.
-1. In the results panel, select **SCC LifeCycle**, and then click **Add** button to add the application.
+ ![SCC LifeCycle in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/scclifecycle-tutorial/tutorial_scclifecycle_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
+In this section, you configure and test Azure AD single sign-on with SCC LifeCycle based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in SCC LifeCycle needs to be established.
-In this section, you configure and test Azure AD single sign-on with SCC LifeCycle based on a test user called "Britta Simon."
+To configure and test Azure AD single sign-on with SCC LifeCycle, you need to complete the following building blocks:
-For single sign-on to work, Azure AD needs to know what the counterpart user in SCC LifeCycle is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in SCC LifeCycle needs to be established.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure SCC LifeCycle Single Sign-On](#configure-scc-lifecycle-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create SCC LifeCycle test user](#create-scc-lifecycle-test-user)** - to have a counterpart of Britta Simon in SCC LifeCycle that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-In SCC LifeCycle, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+### Configure Azure AD single sign-on
-To configure and test Azure AD single sign-on with SCC LifeCycle, you need to complete the following building blocks:
+In this section, you enable Azure AD single sign-on in the Azure portal.
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating an SCC LifeCycle test user](#creating-an-scc-lifecycle-test-user)** - to have a counterpart of Britta Simon in SCC LifeCycle that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+To configure Azure AD single sign-on with SCC LifeCycle, perform the following steps:
-### Configuring Azure AD single sign-on
+1. In the [Azure portal](https://portal.azure.com/), on the **SCC LifeCycle** application integration page, select **Single sign-on**.
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your SCC LifeCycle application.
+ ![Configure single sign-on link](common/select-sso.png)
-**To configure Azure AD single sign-on with SCC LifeCycle, perform the following steps:**
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. In the Azure portal, on the **SCC LifeCycle** application integration page, click **Single sign-on**.
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Configure Single Sign-On][4]
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/scclifecycle-tutorial/tutorial_scclifecycle_samlbase.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
-1. On the **SCC LifeCycle Domain and URLs** section, perform the following steps:
+4. On the **Basic SAML Configuration** section, perform the following steps:
- ![Configure Single Sign-On](./media/scclifecycle-tutorial/tutorial_scclifecycle_url.png)
+ ![SCC LifeCycle Domain and URLs single sign-on information](common/sp-identifier.png)
- a. In the **Sign-on URL** textbox, type a URL using the following pattern:
- `https://.scc.com/ic7/welcome/customer/PICTtest.aspx`
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://.scc.com/ic7/welcome/customer/PICTtest.aspx`
- b. In the **Identifier** textbox, type a URL using the following pattern:
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
| |
- |--|--|
+ |--|
| `https://bs1.scc.com/`|
| `https://lifecycle.scc.com/`|
-
- > [!NOTE]
- > These values are not real. Update these values with the actual Sign-On URL and Identifier. Contact [SCC LifeCycle Client support team](mailto:lifecycle.support@scc.com) to get these values.
-
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
- ![Configure Single Sign-On](./media/scclifecycle-tutorial/tutorial_scclifecycle_certificate.png)
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign on URL and Identifier. Contact [SCC LifeCycle Client support team](mailto:lifecycle.support@scc.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. Click **Save** button.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On](./media/scclifecycle-tutorial/tutorial_general_400.png)
+ ![The Certificate download link](common/metadataxml.png)
-1. To configure single sign-on on **SCC LifeCycle** side, you need to send the downloaded **Metadata XML** to [SCC LifeCycle support team](mailto:lifecycle.support@scc.com). They set this setting to have the SAML SSO connection set properly on both sides.
+6. On the **Set up SCC LifeCycle** section, copy the appropriate URL(s) as per your requirement.
- >[!NOTE]
- >Single sign-on has to be enabled by the SCC LifeCycle support team.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+ a. Login URL
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ b. Azure AD Identifier
-![Create Azure AD User][100]
+ c. Logout URL
-**To create a test user in Azure AD, perform the following steps:**
+### Configure SCC LifeCycle Single Sign-On
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+To configure single sign-on on **SCC LifeCycle** side, you need to send the downloaded **Metadata XML** and appropriate copied URLs from Azure portal to [SCC LifeCycle support team](mailto:lifecycle.support@scc.com). They set this setting to have the SAML SSO connection set properly on both sides.
- ![Creating an Azure AD test user](./media/scclifecycle-tutorial/create_aaduser_01.png)
+ > [!NOTE]
+ > Single sign-on has to be enabled by the [SCC LifeCycle support team](mailto:lifecycle.support@scc.com).
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/scclifecycle-tutorial/create_aaduser_02.png)
+### Create an Azure AD test user
+
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/scclifecycle-tutorial/create_aaduser_03.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/scclifecycle-tutorial/create_aaduser_04.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
- a. In the **Name** textbox, type **BrittaSimon**.
+2. Select **New user** at the top of the screen.
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+ ![New user Button](common/new-user.png)
- c. Select **Show Password** and write down the value of the **Password**.
+3. In the User properties, perform the following steps.
- d. Click **Create**.
-
-### Creating an SCC LifeCycle test user
+ ![The User dialog box](common/user-properties.png)
-In order to enable Azure AD users to log into SCC LifeCycle, they must be provisioned into SCC LifeCycle. There is no action item for you to configure user provisioning to SCC LifeCycle.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`
+ For example, BrittaSimon@contoso.com
-When an assigned user tries to log into SCC LifeCycle, an SCC LifeCycle account is automatically created if necessary.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-> [!NOTE]
-> The Azure Active Directory account holder receives an email and follows a link to confirm their account before it becomes active.
+ d. Click **Create**.
-### Assigning the Azure AD test user
+### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to SCC LifeCycle.
-![Assign User][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **SCC LifeCycle**.
-**To assign Britta Simon to SCC LifeCycle, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications.**
+2. In the applications list, select **SCC LifeCycle**.
- ![Assign User][201]
+ ![The SCC LifeCycle link in the Applications list](common/all-applications.png)
-1. In the applications list, select **SCC LifeCycle**.
+3. In the menu on the left, select **Users and groups**.
- ![Configure Single Sign-On](./media/scclifecycle-tutorial/tutorial_scclifecycle_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![Assign User][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![Assign User][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Select** button on **Users and groups** dialog.
+### Create SCC LifeCycle test user
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+In order to enable Azure AD users to log into SCC LifeCycle, they must be provisioned into SCC LifeCycle. There is no action item for you to configure user provisioning to SCC LifeCycle.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+When an assigned user tries to log into SCC LifeCycle, an SCC LifeCycle account is automatically created if necessary.
-When you click the SCC LifeCycle tile in the Access Panel, you should get automatically signed-on to SCC LifeCycle application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+> [!NOTE]
+> The Azure Active Directory account holder receives an email and follows a link to confirm their account before it becomes active.
-## Additional resources
+### Test single sign-on
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-
+When you click the SCC LifeCycle tile in the Access Panel, you should be automatically signed in to the SCC LifeCycle for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-[1]: ./media/scclifecycle-tutorial/tutorial_general_01.png
-[2]: ./media/scclifecycle-tutorial/tutorial_general_02.png
-[3]: ./media/scclifecycle-tutorial/tutorial_general_03.png
-[4]: ./media/scclifecycle-tutorial/tutorial_general_04.png
+## Additional Resources
-[100]: ./media/scclifecycle-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/scclifecycle-tutorial/tutorial_general_200.png
-[201]: ./media/scclifecycle-tutorial/tutorial_general_201.png
-[202]: ./media/scclifecycle-tutorial/tutorial_general_202.png
-[203]: ./media/scclifecycle-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/sciforma-tutorial.md b/articles/active-directory/saas-apps/sciforma-tutorial.md
index 26667f89a62f8..d9ea6b9e17962 100644
--- a/articles/active-directory/saas-apps/sciforma-tutorial.md
+++ b/articles/active-directory/saas-apps/sciforma-tutorial.md
@@ -192,9 +192,9 @@ When you click the Sciforma tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/sciquest-spend-director-tutorial.md b/articles/active-directory/saas-apps/sciquest-spend-director-tutorial.md
index acce52964b449..4695e51c18619 100644
--- a/articles/active-directory/saas-apps/sciquest-spend-director-tutorial.md
+++ b/articles/active-directory/saas-apps/sciquest-spend-director-tutorial.md
@@ -202,8 +202,8 @@ When you click the SciQuest Spend Director tile in the Access Panel, you should
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/screensteps-tutorial.md b/articles/active-directory/saas-apps/screensteps-tutorial.md
index 10767727fa337..8bf84438f0f69 100644
--- a/articles/active-directory/saas-apps/screensteps-tutorial.md
+++ b/articles/active-directory/saas-apps/screensteps-tutorial.md
@@ -234,8 +234,8 @@ When you click the ScreenSteps tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/sd-elements-tutorial.md b/articles/active-directory/saas-apps/sd-elements-tutorial.md
index ed233c86ec780..1715e00bde017 100644
--- a/articles/active-directory/saas-apps/sd-elements-tutorial.md
+++ b/articles/active-directory/saas-apps/sd-elements-tutorial.md
@@ -265,8 +265,8 @@ When you click the SD Elements tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/shibumi-tutorial.md b/articles/active-directory/saas-apps/shibumi-tutorial.md
index 772d18b7f1fbf..d32c20c2fdf10 100644
--- a/articles/active-directory/saas-apps/shibumi-tutorial.md
+++ b/articles/active-directory/saas-apps/shibumi-tutorial.md
@@ -199,9 +199,9 @@ When you click the Shibumi tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/shucchonavi-tutorial.md b/articles/active-directory/saas-apps/shucchonavi-tutorial.md
index 0ea8524744505..91de71fecb462 100644
--- a/articles/active-directory/saas-apps/shucchonavi-tutorial.md
+++ b/articles/active-directory/saas-apps/shucchonavi-tutorial.md
@@ -188,8 +188,8 @@ When you click the Shuccho Navi tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/signagelive-tutorial.md b/articles/active-directory/saas-apps/signagelive-tutorial.md
index d9441b8daa827..37edfa2e3b78f 100644
--- a/articles/active-directory/saas-apps/signagelive-tutorial.md
+++ b/articles/active-directory/saas-apps/signagelive-tutorial.md
@@ -24,106 +24,107 @@ In this tutorial, you learn how to integrate Signagelive with Azure Active Direc
Integrating Signagelive with Azure AD provides you with the following benefits:
* You can control in Azure AD who has access to Signagelive.
-* You can enable your users to be automatically signed-in to Signagelive (Single Sign-On) with their Azure AD accounts.
-* You can manage your accounts in one central location - the Azure portal.
+* You can enable your users to be automatically signed in to Signagelive (single sign-on) with their Azure AD accounts.
+* You can manage your accounts in one central location: the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
-If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
+For more information about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis). If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Signagelive, you need the following items:
-* An Azure AD subscription. If you don't have an Azure AD environment, you can get one-month trial [here](https://azure.microsoft.com/pricing/free-trial/)
-* Signagelive single sign-on enabled subscription
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* A Signagelive single-sign-on-enabled subscription.
## Scenario description
In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-* Signagelive supports **SP** initiated SSO
+* Signagelive supports SP-initiated SSO.
-## Adding Signagelive from the gallery
+## Add Signagelive from the gallery
-To configure the integration of Signagelive into Azure AD, you need to add Signagelive from the gallery to your list of managed SaaS apps.
+To configure the integration of Signagelive into Azure AD, first add Signagelive from the gallery to your list of managed SaaS apps.
-**To add Signagelive from the gallery, perform the following steps:**
+To add Signagelive from the gallery, take the following steps:
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the [Azure portal](https://portal.azure.com), in the left pane, select the **Azure Active Directory** icon.
![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+2. Go to **Enterprise Applications**, and then select the **All Applications** option.
![The Enterprise applications blade](common/enterprise-applications.png)
-3. To add new application, click **New application** button on the top of dialog.
+3. To add a new application, select the **New application** button at the top of the dialog box.
![The New application button](common/add-new-app.png)
-4. In the search box, type **Signagelive**, select **Signagelive** from result panel then click **Add** button to add the application.
+4. In the search box, enter **Signagelive**.
![Signagelive in the results list](common/search-new-app.png)
+5. Select **Signagelive** from the results pane, and then select the **Add** button to add the application.
+
## Configure and test Azure AD single sign-on
In this section, you configure and test Azure AD single sign-on with Signagelive based on a test user called **Britta Simon**.
-For single sign-on to work, a link relationship between an Azure AD user and the related user in Signagelive needs to be established.
+For single sign-on to work, you must establish a link between an Azure AD user and the related user in Signagelive.
-To configure and test Azure AD single sign-on with Signagelive, you need to complete the following building blocks:
+To configure and test Azure AD single sign-on with Signagelive, first complete the following building blocks:
-1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Configure Signagelive Single Sign-On](#configure-signagelive-single-sign-on)** - to configure the Single Sign-On settings on application side.
-3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Create Signagelive test user](#create-signagelive-test-user)** - to have a counterpart of Britta Simon in Signagelive that is linked to the Azure AD representation of user.
-6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+1. [Configure Azure AD single sign-on](#configure-azure-ad-single-sign-on) to enable your users to use this feature.
+2. [Configure Signagelive single sign-on](#configure-signagelive-single-sign-on) to configure the single sign-on settings on the application side.
+3. [Create an Azure AD test user](#create-an-azure-ad-test-user) to test Azure AD single sign-on with Britta Simon.
+4. [Assign the Azure AD test user](#assign-the-azure-ad-test-user) to enable Britta Simon to use Azure AD single sign-on.
+5. [Create a Signagelive test user](#create-a-signagelive-test-user) to have a counterpart of Britta Simon in Signagelive that is linked to the Azure AD representation of the user.
+6. [Test single sign-on](#test-single-sign-on) to verify that the configuration works.
### Configure Azure AD single sign-on
In this section, you enable Azure AD single sign-on in the Azure portal.
-To configure Azure AD single sign-on with Signagelive, perform the following steps:
+To configure Azure AD single sign-on with Signagelive, take the following steps:
1. In the [Azure portal](https://portal.azure.com/), on the **Signagelive** application integration page, select **Single sign-on**.
![Configure single sign-on link](common/select-sso.png)
-2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+2. In the **Select a single sign-on method** dialog box, select **SAML** to enable single sign-on.
![Single sign-on select mode](common/select-saml-option.png)
-3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+3. On the **Set up single sign-on with SAML** page, select **Edit** to open the **Basic SAML Configuration** dialog box.
![Edit Basic SAML Configuration](common/edit-urls.png)
-4. On the **Basic SAML Configuration** section, perform the following steps:
+4. In the **Basic SAML Configuration** section, take the following steps:
![Signagelive Domain and URLs single sign-on information](common/sp-signonurl.png)
- In the **Sign-on URL** text box, type a URL using the following pattern:
+ In the **Sign-on URL** box, enter a URL that uses the following pattern:
`https://login.signagelive.com/sso/`
> [!NOTE]
- > The value is not real. Update the value with the actual Sign-On URL. Contact [Signagelive Client support team](mailto:support@signagelive.com) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+ > The value is not real. Update the value with the actual sign-on URL. To get the value, contact the [Signagelive Client support team](mailto:support@signagelive.com) . You can also refer to the patterns that are shown in the **Basic SAML Configuration** section in the Azure portal.
-5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Raw)** from the given options as per your requirement and save it on your computer.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, select **Download** to download the **Certificate (Raw)** from the given options per your requirement. Then save it on your computer.
![The Certificate download link](common/certificateraw.png)
-6. On the **Set up Signagelive** section, copy the appropriate URL(s) as per your requirement.
+6. In the **Set up Signagelive** section, copy the URL(s) that you need.
![Copy configuration URLs](common/copy-configuration-urls.png)
a. Login URL
- b. Azure Ad Identifier
+ b. Azure AD Identifier
c. Logout URL
-### Configure Signagelive Single Sign-On
+### Configure Signagelive Single sign-on
-To configure single sign-on on **Signagelive** side, you need to send the downloaded **Certificate (Raw)** and appropriate copied URLs from Azure portal to [Signagelive support team](mailto:support@signagelive.com). They set this setting to have the SAML SSO connection set properly on both sides.
+To configure single sign-on on the Signagelive side, send the downloaded **Certificate (Raw)** and copied URLs from the Azure portal to the [Signagelive support team](mailto:support@signagelive.com). They ensure that the SAML SSO connection is set properly on both sides.
### Create an Azure AD test user
@@ -135,26 +136,25 @@ The objective of this section is to create a test user in the Azure portal calle
2. Select **New user** at the top of the screen.
- ![New user Button](common/new-user.png)
+ ![New user button](common/new-user.png)
-3. In the User properties, perform the following steps.
+3. In the **User** dialog box, take the following steps.
![The User dialog box](common/user-properties.png)
a. In the **Name** field, enter **BrittaSimon**.
- b. In the **User name** field type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field, enter "brittasimon@yourcompanydomain.extension". For example, in this case, you might enter "BrittaSimon@contoso.com".
- c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+ c. Select the **Show password** check box, and then note the value that's displayed in the Password box.
- d. Click **Create**.
+ d. Select **Create**.
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Signagelive.
-1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Signagelive**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, and then select **Signagelive**.
![Enterprise applications blade](common/enterprise-applications.png)
@@ -166,29 +166,29 @@ In this section, you enable Britta Simon to use Azure single sign-on by granting
![The "Users and groups" link](common/users-groups-blade.png)
-4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+4. Select the **Add user** button. Then, in the **Add Assignment** dialog box, select **Users and groups**.
![The Add Assignment pane](common/add-assign-user.png)
-5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+5. In the **Users and groups** dialog box, in the **Users** list, select **Britta Simon**. Then click the **Select** button at the bottom of the screen.
-6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+6. If you are expecting a role value in the SAML assertion, then, in the **Select Role** dialog box, select the appropriate role for the user from the list. Next, click the **Select** button at the bottom of the screen.
-7. In the **Add Assignment** dialog, click the **Assign** button.
+7. In the **Add Assignment** dialog box, select the **Assign** button.
-### Create Signagelive test user
+### Create a Signagelive test user
-In this section, you create a user called Britta Simon in Signagelive. Work with [Signagelive support team](mailto:support@signagelive.com) to add the users in the Signagelive platform. Users must be created and activated before you use single sign-on.
+In this section, you create a user called Britta Simon in Signagelive. Work with the [Signagelive support team](mailto:support@signagelive.com) to add the users in the Signagelive platform. You must create and activate users before you use single sign-on.
### Test single sign-on
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+In this section, you test your Azure AD single sign-on configuration by using the MyApps portal.
-When you click the Signagelive tile in the Access Panel, you should be automatically signed in to the Signagelive for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+When you select the **Signagelive** tile in the MyApps portal, you should be automatically signed in. For more information about the MyApps portal, see [What is the MyApps portal?](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-## Additional Resources
+## Additional resources
-- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [ List of tutorials on how to integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
diff --git a/articles/active-directory/saas-apps/signalfx-tutorial.md b/articles/active-directory/saas-apps/signalfx-tutorial.md
index 1b9f616462cf2..9b1fdf2f2f3d1 100644
--- a/articles/active-directory/saas-apps/signalfx-tutorial.md
+++ b/articles/active-directory/saas-apps/signalfx-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 6d5ab4b0-29bc-4b20-8536-d64db7530f32
ms.service: active-directory
@@ -13,172 +13,174 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 04/16/2018
+ms.topic: tutorial
+ms.date: 03/25/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with SignalFx
In this tutorial, you learn how to integrate SignalFx with Azure Active Directory (Azure AD).
-
Integrating SignalFx with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to SignalFx.
-- You can enable your users to automatically get signed-on to SignalFx (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to SignalFx.
+* You can enable your users to be automatically signed-in to SignalFx (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with SignalFx, you need the following items:
-- An Azure AD subscription
-- A SignalFx single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* SignalFx single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding SignalFx from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* SignalFx supports **IDP** initiated SSO
+* SignalFx supports **Just In Time** user provisioning
## Adding SignalFx from the gallery
+
To configure the integration of SignalFx into Azure AD, you need to add SignalFx from the gallery to your list of managed SaaS apps.
**To add SignalFx from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![The New application button][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **SignalFx**, select **SignalFx** from result panel then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![SignalFx in the results list](./media/signalfx-tutorial/tutorial_signalfx_addfromgallery.png)
+4. In the search box, type **SignalFx**, select **SignalFx** from result panel then click **Add** button to add the application.
-## Configure and test Azure AD single sign-on
+ ![SignalFx in the results list](common/search-new-app.png)
-In this section, you configure and test Azure AD single sign-on with SignalFx based on a test user called "Britta Simon".
+## Configure and test Azure AD single sign-on
-For single sign-on to work, Azure AD needs to know what the counterpart user in SignalFx is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in SignalFx needs to be established.
+In this section, you configure and test Azure AD single sign-on with SignalFx based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in SignalFx needs to be established.
To configure and test Azure AD single sign-on with SignalFx, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a SignalFx test user](#create-a-signalfx-test-user)** - to have a counterpart of Britta Simon in SignalFx that is linked to the Azure AD representation of user.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure SignalFx Single Sign-On](#configure-signalfx-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create SignalFx test user](#create-signalfx-test-user)** - to have a counterpart of Britta Simon in SignalFx that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your SignalFx application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with SignalFx, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **SignalFx** application integration page, select **Single sign-on**.
-**To configure Azure AD single sign-on with SignalFx, perform the following steps:**
+ ![Configure single sign-on link](common/select-sso.png)
-1. In the Azure portal, on the **SignalFx** application integration page, click **Single sign-on**.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure single sign-on link][4]
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Single sign-on dialog box](./media/signalfx-tutorial/tutorial_signalfx_samlbase.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **SignalFx Domain and URLs** section, perform the following steps:
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![SignalFx Domain and URLs single sign-on information](./media/signalfx-tutorial/tutorial_signalfx_url.png)
+4. On the **Set up Single Sign-On with SAML** page, perform the following steps:
- a. In the **Identifier** textbox, type a URL: `https://api.signalfx.com/v1/saml/metadata`
+ ![SignalFx Domain and URLs single sign-on information](common/idp-intiated.png)
- b. In the **Reply URL** textbox, type a URL using the following pattern: `https://api.signalfx.com/v1/saml/acs/`
+ a. In the **Identifier** text box, type a URL:
+ `https://api.signalfx.com/v1/saml/metadata`
- > [!NOTE]
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://api.signalfx.com/v1/saml/acs/`
+
+ > [!NOTE]
> The preceding value is not real value. You update the value with the actual Reply URL, which is explained later in the tutorial.
-1. SignalFx application expects the SAML assertions in a specific format. Configure the following claims for this application. You can manage the values of these attributes from the **User Attributes** section on application integration page. The following screenshot shows an example for this.
+5. SignalFx application expects the SAML assertions in a specific format. Configure the following claims for this application. You can manage the values of these attributes from the **User Attributes** section on application integration page. On the **Set up Single Sign-On with SAML** page, click **Edit** button to open **User Attributes** dialog.
+
+ ![image](common/edit-attribute.png)
- ![Configure Single Sign-On](./media/signalfx-tutorial/tutorial_signalfx_attribute.png)
+6. In the **User Claims** section on the **User Attributes** dialog, edit the claims by using **Edit icon** or add the claims by using **Add new claim** to configure SAML token attribute as shown in the image above and perform the following steps:
-1. In the **User Attributes** section on the **Single sign-on** dialog, configure SAML token attribute as shown in the image and perform the following steps:
-
- | Attribute Name | Attribute Value |
- | ------------------- | -------------------- |
- | User.FirstName | user.givenname |
+ | Name | Source Attribute|
+ | ------------------- | -------------------- |
+ | User.FirstName | user.givenname |
| User.email | user.mail |
| PersonImmutableID | user.userprincipalname |
| User.LastName | user.surname |
- a. Click **Add attribute** to open the **Add Attribute** dialog.
+ a. Click **Add new claim** to open the **Manage user claims** dialog.
- ![Configure Single Sign-On Add](./media/signalfx-tutorial/tutorial_attribute_04.png)
+ ![image](common/new-save-attribute.png)
- ![Configure Single Sign-On Addattb](./media/signalfx-tutorial/tutorial_attribute_05.png)
+ ![image](common/new-attribute-details.png)
b. In the **Name** textbox, type the attribute name shown for that row.
- c. From the **Value** list, type the attribute value shown for that row.
+ c. Leave the **Namespace** blank.
+
+ d. Select Source as **Attribute**.
+
+ e. From the **Source attribute** list, type the attribute value shown for that row.
+
+ f. Click **Ok**
- d. Leave the **Namespace** blank.
-
- e. Click **Ok**.
-
-1. On the **SAML Signing Certificate** section, perform the following steps:
+ g. Click **Save**.
- ![The Certificate download link](./media/signalfx-tutorial/tutorial_signalfx_certificate.png)
+7. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
- a. Click the copy button to copy **App Federation Metadata Url** and paste it into notepad.
+ ![The Certificate download link](common/certificatebase64.png)
- b. Click **Certificate(Base64)** and then save the certificate file on your computer.
+8. On the **Set up SignalFx** section, copy the appropriate URL(s) as per your requirement.
-1. Click **Save** button.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
- ![Configure Single Sign-On Save button](./media/signalfx-tutorial/tutorial_general_400.png)
+ a. Login URL
-1. On the **SignalFx Configuration** section, click **Configure SignalFx** to open **Configure sign-on** window. Copy the **SAML Entity ID** from the **Quick Reference section.**
+ b. Azure AD Identifier
- ![SignalFx Configuration](./media/signalfx-tutorial/tutorial_signalfx_configure.png)
+ c. Logout URL
-1. Sign-on to your SignalFx company site as administrator.
+### Configure SignalFx Single Sign-On
+
+1. Sign in to your SignalFx company site as administrator.
1. In SignalFx, on the top click **Integrations** to open the Integrations page.
![SignalFx Integration](./media/signalfx-tutorial/tutorial_signalfx_intg.png)
1. Click on **Azure Active Directory** tile under **Login Services** section.
-
+
![SignalFx saml](./media/signalfx-tutorial/tutorial_signalfx_saml.png)
1. Click on **NEW INTEGRATION** and under the **INSTALL** tab perform the following steps:
-
+
![SignalFx samlintgpage](./media/signalfx-tutorial/tutorial_signalfx_azure.png)
a. In the **Name** textbox type, a new integration name, like **OurOrgName SAML SSO**.
- b. Copy the **Integration ID** value and append with the **Reply URL** like `https://api.signalfx.com/v1/saml/acs/` in the **Reply URL** textbox of **SignalFx Domain and URLs** section in Azure portal.
+ b. Copy the **Integration ID** value and append to the **Reply URL** in the place of `` in the **Reply URL** textbox of **Basic SAML Configuration** section in Azure portal.
c. Click on **Upload File** to upload the **Base64 encoded certificate** downloaded from Azure portal in the **Certificate** textbox.
- d. In the **Issuer URL** textbox, paste the value of **SAML Entity ID**, which you have copied from the Azure portal.
+ d. In the **Issuer URL** textbox, paste the value of **Azure AD Identifier**, which you have copied from the Azure portal.
- e. In the **Metadata URL** textbox, paste the **App Federation Metadata Url** which you have copied from the Azure portal.
+ e. In the **Metadata URL** textbox, paste the **Login URL** which you have copied from the Azure portal.
f. Click **Save**.
@@ -186,98 +188,73 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
The objective of this section is to create a test user in the Azure portal called Britta Simon.
- ![Create an Azure AD test user][100]
-
-**To create a test user in Azure AD, perform the following steps:**
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+ ![The "Users and groups" and "All users" links](common/users.png)
- ![The Azure Active Directory button](./media/signalfx-tutorial/create_aaduser_01.png)
+2. Select **New user** at the top of the screen.
-1. To display the list of users, go to **Users and groups**, and then click **All users**.
+ ![New user Button](common/new-user.png)
- ![The "Users and groups" and "All users" links](./media/signalfx-tutorial/create_aaduser_02.png)
+3. In the User properties, perform the following steps.
-1. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+ ![The User dialog box](common/user-properties.png)
- ![The Add button](./media/signalfx-tutorial/create_aaduser_03.png)
-
-1. In the **User** dialog box, perform the following steps:
-
- ![The User dialog box](./media/signalfx-tutorial/create_aaduser_04.png)
-
- a. In the **Name** box, type **BrittaSimon**.
-
- b. In the **User name** box, type the email address of user Britta Simon.
-
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
-
- d. Click **Create**.
+ a. In the **Name** field enter **BrittaSimon**.
-### Create a SignalFx test user
-
-The objective of this section is to create a user called Britta Simon in SignalFx. SignalFx supports just-in-time provisioning, which is by default enabled. There is no action item for you in this section. A new user is created during an attempt to access SignalFx if it doesn't exist yet.
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`
+ For example, BrittaSimon@contoso.com
-When a user signs in to SignalFx from the SAML SSO for the first time, [SignalFx support team](mailto:kmazzola@signalfx.com) sends them an email containing a link that they must click through to authenticate. This will only happen the first time the user signs in; subsequent login attempts will not require email validation.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
->[!Note]
->If you need to create a user manually, contact [SignalFx support team](mailto:kmazzola@signalfx.com)
+ d. Click **Create**.
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to SignalFx.
-![Assign the user role][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **SignalFx**.
-**To assign Britta Simon to SignalFx, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **SignalFx**.
- ![Assign User][201]
+ ![The SignalFx link in the Applications list](common/all-applications.png)
-1. In the applications list, select **SignalFx**.
+3. In the menu on the left, select **Users and groups**.
- ![The SignalFx link in the Applications list](./media/signalfx-tutorial/tutorial_signalfx_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![The "Users and groups" link][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![The Add Assignment pane][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Select** button on **Users and groups** dialog.
+### Create SignalFx test user
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Test single sign-on
-
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+The objective of this section is to create a user called Britta Simon in SignalFx. SignalFx supports just-in-time provisioning, which is by default enabled. There is no action item for you in this section. A new user is created during an attempt to access SignalFx if it doesn't exist yet.
-When you click the SignalFx tile in the Access Panel, you should get automatically signed-on to your SignalFx application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+When a user signs in to SignalFx from the SAML SSO for the first time, [SignalFx support team](mailto:kmazzola@signalfx.com) sends them an email containing a link that they must click through to authenticate. This will only happen the first time the user signs in; subsequent login attempts will not require email validation.
-## Additional resources
+> [!Note]
+> If you need to create a user manually, contact [SignalFx support team](mailto:kmazzola@signalfx.com)
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+When you click the SignalFx tile in the Access Panel, you should be automatically signed in to the SignalFx for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional Resources
-[1]: ./media/signalfx-tutorial/tutorial_general_01.png
-[2]: ./media/signalfx-tutorial/tutorial_general_02.png
-[3]: ./media/signalfx-tutorial/tutorial_general_03.png
-[4]: ./media/signalfx-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/signalfx-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/signalfx-tutorial/tutorial_general_200.png
-[201]: ./media/signalfx-tutorial/tutorial_general_201.png
-[202]: ./media/signalfx-tutorial/tutorial_general_202.png
-[203]: ./media/signalfx-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/silverback-tutorial.md b/articles/active-directory/saas-apps/silverback-tutorial.md
index 1666440b27081..cf7672994503b 100644
--- a/articles/active-directory/saas-apps/silverback-tutorial.md
+++ b/articles/active-directory/saas-apps/silverback-tutorial.md
@@ -235,9 +235,9 @@ When you click the Silverback tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/simplenexus-tutorial.md b/articles/active-directory/saas-apps/simplenexus-tutorial.md
index 213f034bc0209..191d7d70e255c 100644
--- a/articles/active-directory/saas-apps/simplenexus-tutorial.md
+++ b/articles/active-directory/saas-apps/simplenexus-tutorial.md
@@ -194,8 +194,8 @@ When you click the SimpleNexus tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/skilljar-tutorial.md b/articles/active-directory/saas-apps/skilljar-tutorial.md
index 44f36f39fd6b7..db6280e414e1b 100644
--- a/articles/active-directory/saas-apps/skilljar-tutorial.md
+++ b/articles/active-directory/saas-apps/skilljar-tutorial.md
@@ -195,9 +195,9 @@ When you click the Skilljar tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/skillsbase-tutorial.md b/articles/active-directory/saas-apps/skillsbase-tutorial.md
index beb219c05ece0..8573196db034c 100644
--- a/articles/active-directory/saas-apps/skillsbase-tutorial.md
+++ b/articles/active-directory/saas-apps/skillsbase-tutorial.md
@@ -211,8 +211,8 @@ When you click the Skills Base tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/skillsmanager-tutorial.md b/articles/active-directory/saas-apps/skillsmanager-tutorial.md
index 353df69621697..23c056137faa8 100644
--- a/articles/active-directory/saas-apps/skillsmanager-tutorial.md
+++ b/articles/active-directory/saas-apps/skillsmanager-tutorial.md
@@ -191,8 +191,8 @@ When you click the Skills Manager tile in the Access Panel, you should be automa
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/skydeskemail-tutorial.md b/articles/active-directory/saas-apps/skydeskemail-tutorial.md
index 0be63e5e59782..c83696b085eb4 100644
--- a/articles/active-directory/saas-apps/skydeskemail-tutorial.md
+++ b/articles/active-directory/saas-apps/skydeskemail-tutorial.md
@@ -236,9 +236,9 @@ When you click the SkyDesk Email tile in the Access Panel, you should be automat
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/skyhighnetworks-tutorial.md b/articles/active-directory/saas-apps/skyhighnetworks-tutorial.md
index bc7e2c182ed67..671c7275abb7e 100644
--- a/articles/active-directory/saas-apps/skyhighnetworks-tutorial.md
+++ b/articles/active-directory/saas-apps/skyhighnetworks-tutorial.md
@@ -198,8 +198,8 @@ When you click the Skyhigh Networks tile in the Access Panel, you should be auto
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/skytap-tutorial.md b/articles/active-directory/saas-apps/skytap-tutorial.md
index 487247e7f8dc6..bcc1447a2888f 100644
--- a/articles/active-directory/saas-apps/skytap-tutorial.md
+++ b/articles/active-directory/saas-apps/skytap-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: d6cb7ab2-da1a-4015-8e6f-c0c47bb6210f
ms.service: active-directory
@@ -13,8 +13,8 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/07/2018
+ms.topic: tutorial
+ms.date: 04-08-2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -22,206 +22,188 @@ ms.collection: M365-identity-device-management
# Tutorial: Azure Active Directory integration with Skytap
In this tutorial, you learn how to integrate Skytap with Azure Active Directory (Azure AD).
-
Integrating Skytap with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Skytap.
-- You can enable your users to automatically get signed-on to Skytap (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Skytap.
+* You can enable your users to be automatically signed-in to Skytap (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Skytap, you need the following items:
-- An Azure AD subscription
-- A Skytap single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Skytap single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Skytap from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Skytap supports **SP and IDP** initiated SSO
## Adding Skytap from the gallery
+
To configure the integration of Skytap into Azure AD, you need to add Skytap from the gallery to your list of managed SaaS apps.
**To add Skytap from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![The New application button][3]
+3. To add a new application, click the **New application** button at the top of the dialog.
-1. In the search box, type **Skytap**, select **Skytap** from result panel then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![Skytap in the results list](./media/skytap-tutorial/tutorial_skytap_addfromgallery.png)
+4. In the search box, type **Skytap**, select **Skytap** from the result panel then click the **Add** button to add the application.
-## Configure and test Azure AD single sign-on
+ ![Skytap in the results list](common/search-new-app.png)
-In this section, you configure and test Azure AD single sign-on with Skytap based on a test user called "Britta Simon".
+## Configure and test Azure AD single sign-on
-For single sign-on to work, Azure AD needs to know what the counterpart user in Skytap is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Skytap needs to be established.
+In this section, you configure and test Azure AD single sign-on with Skytap based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Skytap needs to be established.
To configure and test Azure AD single sign-on with Skytap, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a Skytap test user](#create-a-skytap-test-user)** - to have a counterpart of Britta Simon in Skytap that is linked to the Azure AD representation of user.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure Skytap Single Sign-On](#configure-skytap-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Skytap test user](#create-skytap-test-user)** - to have a counterpart of Britta Simon in Skytap that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Skytap application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with Skytap, perform the following steps:**
+To configure Azure AD single sign-on with Skytap, perform the following steps:
-1. In the Azure portal, on the **Skytap** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **Skytap** application integration page, select **Single sign-on**.
- ![Configure single sign-on link][4]
+ ![Configure single sign-on link](common/select-sso.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Single sign-on dialog box](./media/skytap-tutorial/tutorial_skytap_samlbase.png)
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. On the **Skytap Domain and URLs** section, perform the following steps if you wish to configure the application in **IDP** initiated mode:
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Skytap Domain and URLs single sign-on information](./media/skytap-tutorial/tutorial_skytap_url.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- a. In the **Identifier** textbox, type a URL using the following pattern: `http://pingone.com/`
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- b. In the **Reply URL** textbox, type a URL: `https://sso.connect.pingidentity.com/sso/sp/ACS.saml2`
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following steps:
-1. Check **Show advanced URL settings** and perform the following step if you wish to configure the application in **SP** initiated mode:
+ ![Skytap Domain and URLs single sign-on information](common/idp-intiated.png)
- ![Skytap Domain and URLs single sign-on information](./media/skytap-tutorial/tutorial_skytap_url1.png)
+ a. In the **Identifier** text box, type a URL using the following pattern:
+ `http://pingone.com/`
- c. In the **Sign-on URL** textbox, type a URL using the following pattern: `https://sso.connect.pingidentity.com/sso/sp/initsso?saasid=&idpid=`
-
- d. In the **Relay State** textbox, type a URL using the following pattern: `https://pingone.com/1.0/`
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://sso.connect.pingidentity.com/sso/sp/ACS.saml2`
- > [!NOTE]
- > These values are not real. Update these values with the actual Identifier, Sign-On URL and Relay State. Contact [Skytap Client support team](mailto:support@skytap.com) to get these values.
+5. Click **Set additional URLs** and perform the following steps if you wish to configure the application in **SP** initiated mode:
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+ ![Skytap Domain and URLs single sign-on information](common/both-advanced-urls.png)
- ![The Certificate download link](./media/skytap-tutorial/tutorial_skytap_certificate.png)
+ d. In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://sso.connect.pingidentity.com/sso/sp/initsso?saasid=&idpid=`
-1. Click **Save** button.
+ e. In the **Relay State** text box, type a URL using the following pattern:
+ `https://pingone.com/1.0/`
- ![Configure Single Sign-On Save button](./media/skytap-tutorial/tutorial_general_400.png)
-
-1. To configure single sign-on on **Skytap** side, you need to send the downloaded **Metadata XML** to [Skytap support team](mailto:support@skytap.com). They set this setting to have the SAML SSO connection set properly on both sides.
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Identifier, Reply URL, Sign-on URL and Relay State. Contact [Skytap Client support team](mailto:support@skytap.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-### Create an Azure AD test user
+6. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ ![The Certificate download link](common/metadataxml.png)
+
+7. On the **Set up Skytap** section, copy the appropriate URL(s) as per your requirement.
- ![Create an Azure AD test user][100]
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-**To create a test user in Azure AD, perform the following steps:**
+ a. Login URL
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+ b. Azure AD Identifier
- ![The Azure Active Directory button](./media/skytap-tutorial/create_aaduser_01.png)
+ c. Logout URL
-1. To display the list of users, go to **Users and groups**, and then click **All users**.
+### Configure Skytap Single Sign-On
- ![The "Users and groups" and "All users" links](./media/skytap-tutorial/create_aaduser_02.png)
+To configure single sign-on on **Skytap** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [Skytap support team](mailto:support@skytap.com). They set this setting to have the SAML SSO connection set properly on both sides.
-1. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+### Create an Azure AD test user
- ![The Add button](./media/skytap-tutorial/create_aaduser_03.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. In the **User** dialog box, perform the following steps:
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![The User dialog box](./media/skytap-tutorial/create_aaduser_04.png)
+ ![The "Users and groups" and "All users" links](common/users.png)
- a. In the **Name** box, type **BrittaSimon**.
+2. Select **New user** at the top of the screen.
- b. In the **User name** box, type the email address of user Britta Simon.
+ ![New user Button](common/new-user.png)
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+3. In the User properties, perform the following steps.
- d. Click **Create**.
-
-### Create a Skytap test user
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
-In this section, you create a user called Britta Simon in Skytap. Work with [Skytap support team](mailto:support@skytap.com) to add the users in the Skytap platform. Users must be created and activated before you use single sign-on
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Skytap.
-![Assign the user role][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Skytap**.
-**To assign Britta Simon to Skytap, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **Skytap**.
- ![Assign User][201]
+ ![The Skytap link in the Applications list](common/all-applications.png)
-1. In the applications list, select **Skytap**.
+3. In the menu on the left, select **Users and groups**.
- ![The Skytap link in the Applications list](./media/skytap-tutorial/tutorial_skytap_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![The "Users and groups" link][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![The Add Assignment pane][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. Click **Select** button on **Users and groups** dialog.
+### Create Skytap test user
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Test single sign-on
+In this section, you create a user called Britta Simon in Skytap. Work with [Skytap support team](mailto:support@skytap.com) to add the users in the Skytap platform. Users must be created and activated before you use single sign-on.
+
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the Skytap tile in the Access Panel, you should get automatically signed-on to your Skytap application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+When you click the Skytap tile in the Access Panel, you should be automatically signed in to the Skytap for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
## Additional resources
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
-
-
-
-
-[1]: ./media/skytap-tutorial/tutorial_general_01.png
-[2]: ./media/skytap-tutorial/tutorial_general_02.png
-[3]: ./media/skytap-tutorial/tutorial_general_03.png
-[4]: ./media/skytap-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/skytap-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/skytap-tutorial/tutorial_general_200.png
-[201]: ./media/skytap-tutorial/tutorial_general_201.png
-[202]: ./media/skytap-tutorial/tutorial_general_202.png
-[203]: ./media/skytap-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/slack-provisioning-tutorial.md b/articles/active-directory/saas-apps/slack-provisioning-tutorial.md
index c054cd257908c..b2d7e2a779778 100644
--- a/articles/active-directory/saas-apps/slack-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/slack-provisioning-tutorial.md
@@ -14,7 +14,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 01/26/2018
+ms.date: 03/27/2019
ms.author: asmalser-msft
ms.reviewer: asmalser
@@ -23,22 +23,21 @@ ms.collection: M365-identity-device-management
# Tutorial: Configure Slack for automatic user provisioning
-
-The objective of this tutorial is to show you the steps you need to perform in Slack and Azure AD to automatically provision and de-provision user accounts from Azure AD to Slack.
+The objective of this tutorial is to show you the steps you need to perform in Slack and Azure AD to automatically provision and de-provision user accounts from Azure AD to Slack.
## Prerequisites
The scenario outlined in this tutorial assumes that you already have the following items:
-* An Azure Active Directory tenant
-* A Slack tenant with the [Plus plan](https://aadsyncfabric.slack.com/pricing) or better enabled
-* A user account in Slack with Team Admin permissions
+* An Azure Active Directory tenant
+* A Slack tenant with the [Plus plan](https://aadsyncfabric.slack.com/pricing) or better enabled
+* A user account in Slack with Team Admin permissions
Note: The Azure AD provisioning integration relies on the [Slack SCIM API](https://api.slack.com/scim), which is available to Slack teams on the Plus plan or better.
## Assigning users to Slack
-Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user account provisioning, only the users and groups that have been "assigned" to an application in Azure AD will be synchronized.
+Azure Active Directory uses a concept called "assignments" to determine which users should receive access to selected apps. In the context of automatic user account provisioning, only the users and groups that have been "assigned" to an application in Azure AD will be synchronized.
Before configuring and enabling the provisioning service, you will need to decide what users and/or groups in Azure AD represent the users who need access to your Slack app. Once decided, you can assign these users to your Slack app by following the instructions here:
@@ -46,10 +45,9 @@ Before configuring and enabling the provisioning service, you will need to decid
### Important tips for assigning users to Slack
-* It is recommended that a single Azure AD user is assigned to Slack to test the provisioning configuration. Additional users and/or groups may be assigned later.
-
-* When assigning a user to Slack, you must select the **User** or "Group" role in the assignment dialog. The "Default Access" role does not work for provisioning.
+* It is recommended that a single Azure AD user is assigned to Slack to test the provisioning configuration. Additional users and/or groups may be assigned later.
+* When assigning a user to Slack, you must select the **User** or "Group" role in the assignment dialog. The "Default Access" role does not work for provisioning.
## Configuring user provisioning to Slack
@@ -57,10 +55,8 @@ This section guides you through connecting your Azure AD to Slack's user account
**Tip:** You may also choose to enabled SAML-based Single Sign-On for Slack, following the instructions provided in [Azure portal](https://portal.azure.com). Single sign-on can be configured independently of automatic provisioning, though these two features compliment each other.
-
### To configure automatic user account provisioning to Slack in Azure AD:
-
1. In the [Azure portal](https://portal.azure.com), browse to the **Azure Active Directory > Enterprise Apps > All applications** section.
2. If you have already configured Slack for single sign-on, search for your instance of Slack using the search field. Otherwise, select **Add** and search for **Slack** in the application gallery. Select Slack from the search results, and add it to your list of applications.
@@ -71,17 +67,17 @@ This section guides you through connecting your Azure AD to Slack's user account
![Slack Provisioning](./media/slack-provisioning-tutorial/Slack1.PNG)
-5. Under the **Admin Credentials** section, click **Authorize**. This opens a Slack authorization dialog in a new browser window.
+5. Under the **Admin Credentials** section, click **Authorize**. This opens a Slack authorization dialog in a new browser window.
6. In the new window, sign into Slack using your Team Admin account. in the resulting authorization dialog, select the Slack team that you want to enable provisioning for, and then select **Authorize**. Once completed, return to the Azure portal to complete the provisioning configuration.
- ![Authorization Dialog](./media/slack-provisioning-tutorial/Slack3.PNG)
+ ![Authorization Dialog](./media/slack-provisioning-tutorial/Slack3.PNG)
7. In the Azure portal, click **Test Connection** to ensure Azure AD can connect to your Slack app. If the connection fails, ensure your Slack account has Team Admin permissions and try the "Authorize" step again.
8. Enter the email address of a person or group who should receive provisioning error notifications in the **Notification Email** field, and check the checkbox below.
-9. Click **Save**.
+9. Click **Save**.
10. Under the Mappings section, select **Synchronize Azure Active Directory Users to Slack**.
@@ -89,11 +85,11 @@ This section guides you through connecting your Azure AD to Slack's user account
12. To enable the Azure AD provisioning service for Slack, change the **Provisioning Status** to **On** in the **Settings** section
-13. Click **Save**.
+13. Click **Save**.
This will start the initial synchronization of any users and/or groups assigned to Slack in the Users and Groups section. Note that the initial sync will take longer to perform than subsequent syncs, which occur approximately every 10 minutes as long as the service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity reports, which describe all actions performed by the provisioning service on your Slack app.
-## [Optional] Configuring group object provisioning to Slack
+## [Optional] Configuring group object provisioning to Slack
Optionally, you can enable the provisioning of group objects from Azure AD to Slack. This is different from "assigning groups of users", in that the actual group object in addition to its members will be replicated from Azure AD to Slack. For example, if you have a group named "My Group" in Azure AD, an identical group named "My Group" will be created inside Slack.
@@ -113,12 +109,17 @@ For more information on how to read the Azure AD provisioning logs, see [Reporti
## Connector limitations
- * When configuring Slack's **displayName** attribute, be aware of the following behaviors:
+* When configuring Slack's **displayName** attribute, be aware of the following behaviors:
+
* Values are not entirely unique (e.g. 2 users can have the same display name)
+
* Supports non-English characters, spaces, capitalization.
+
* Allowed punctuation includes periods, underscores, hyphens, apostrophes, brackets (e.g. **( [ { } ] )**), and separators (e.g. **, / ;**).
+
* Only updates if these two settings are configured in Slack's workplace/organization - **Profile syncing is enabled** and **Users cannot change their display name**.
- * Slack's **userName** attribute has to be under 21 characters and have a unique value.
+
+ * Slack's **userName** attribute has to be under 21 characters and have a unique value.
## Additional Resources
diff --git a/articles/active-directory/saas-apps/smallimprovements-tutorial.md b/articles/active-directory/saas-apps/smallimprovements-tutorial.md
index 1de961fa6c278..613e7ba1ec6a0 100644
--- a/articles/active-directory/saas-apps/smallimprovements-tutorial.md
+++ b/articles/active-directory/saas-apps/smallimprovements-tutorial.md
@@ -241,8 +241,8 @@ When you click the Small Improvements tile in the Access Panel, you should be au
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/smartdraw-tutorial.md b/articles/active-directory/saas-apps/smartdraw-tutorial.md
index 50be6235f41ec..ec9e72a7ca73e 100644
--- a/articles/active-directory/saas-apps/smartdraw-tutorial.md
+++ b/articles/active-directory/saas-apps/smartdraw-tutorial.md
@@ -245,9 +245,9 @@ When you click the SmartDraw tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/smarteru-tutorial.md b/articles/active-directory/saas-apps/smarteru-tutorial.md
index 28ff451df4924..fca776077ae35 100644
--- a/articles/active-directory/saas-apps/smarteru-tutorial.md
+++ b/articles/active-directory/saas-apps/smarteru-tutorial.md
@@ -228,8 +228,8 @@ When you click the SmarterU tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/smartlpa-tutorial.md b/articles/active-directory/saas-apps/smartlpa-tutorial.md
index 63802cc0efbf4..9d2f0da9cddb4 100644
--- a/articles/active-directory/saas-apps/smartlpa-tutorial.md
+++ b/articles/active-directory/saas-apps/smartlpa-tutorial.md
@@ -191,8 +191,8 @@ When you click the SmartLPA tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/smartrecruiters-tutorial.md b/articles/active-directory/saas-apps/smartrecruiters-tutorial.md
index aee5d45437976..ba013aa16889c 100644
--- a/articles/active-directory/saas-apps/smartrecruiters-tutorial.md
+++ b/articles/active-directory/saas-apps/smartrecruiters-tutorial.md
@@ -220,9 +220,9 @@ When you click the SmartRecruiters tile in the Access Panel, you should be autom
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/smartvid.io-tutorial.md b/articles/active-directory/saas-apps/smartvid.io-tutorial.md
index ed68a7a0a77b6..43cb908943cb8 100644
--- a/articles/active-directory/saas-apps/smartvid.io-tutorial.md
+++ b/articles/active-directory/saas-apps/smartvid.io-tutorial.md
@@ -181,8 +181,8 @@ When you click the smartvid.io tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/soonr-tutorial.md b/articles/active-directory/saas-apps/soonr-tutorial.md
index b002a9dc2a1b6..a24f73ec6e5a7 100644
--- a/articles/active-directory/saas-apps/soonr-tutorial.md
+++ b/articles/active-directory/saas-apps/soonr-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: b75f5f00-ea8b-4850-ae2e-134e5d678d97
ms.service: active-directory
@@ -12,8 +13,8 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 08/11/2017
+ms.topic: tutorial
+ms.date: 08-04-2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -21,220 +22,188 @@ ms.collection: M365-identity-device-management
# Tutorial: Azure Active Directory integration with Soonr Workplace
In this tutorial, you learn how to integrate Soonr Workplace with Azure Active Directory (Azure AD).
-
Integrating Soonr Workplace with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Soonr Workplace
-- You can enable your users to automatically get signed-on to Soonr Workplace (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to Soonr Workplace.
+* You can enable your users to be automatically signed-in to Soonr Workplace (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Soonr Workplace, you need the following items:
-- An Azure AD subscription
-- A Soonr Workplace single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Soonr Workplace single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Soonr Workplace from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Soonr Workplace supports **SP and IDP** initiated SSO
## Adding Soonr Workplace from the gallery
+
To configure the integration of Soonr Workplace into Azure AD, you need to add Soonr Workplace from the gallery to your list of managed SaaS apps.
**To add Soonr Workplace from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
-
- ![Active Directory][1]
-
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Azure Active Directory button](common/select-azuread.png)
- ![Applications][3]
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
-1. In the search box, type **Soonr Workplace**.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Creating an Azure AD test user](./media/soonr-tutorial/tutorial_soonr_search.png)
+3. To add a new application, click the **New application** button at the top of the dialog.
-1. In the results panel, select **Soonr Workplace**, and then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/soonr-tutorial/tutorial_soonr_addfromgallery.png)
+4. In the search box, type **Soonr Workplace**, select **Soonr Workplace** from the result panel then click the **Add** button to add the application.
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Soonr Workplace based on a test user called "Britta Simon".
+ ![Soonr Workplace in the results list](common/search-new-app.png)
-For single sign-on to work, Azure AD needs to know what the counterpart user in Soonr Workplace is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Soonr Workplace needs to be established.
+## Configure and test Azure AD single sign-on
-In Soonr Workplace, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+In this section, you configure and test Azure AD single sign-on with Soonr Workplace based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Soonr Workplace needs to be established.
To configure and test Azure AD single sign-on with Soonr Workplace, you need to complete the following building blocks:
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a Soonr Workplace test user](#creating-a-soonr-workplace-test-user)** - to have a counterpart of Britta Simon in Soonr Workplace that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Soonr Workplace Single Sign-On](#configure-soonr-workplace-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Soonr Workplace test user](#create-soonr-workplace-test-user)** - to have a counterpart of Britta Simon in Soonr Workplace that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-### Configuring Azure AD single sign-on
+### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Soonr Workplace application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with Soonr Workplace, perform the following steps:**
+To configure Azure AD single sign-on with Soonr Workplace, perform the following steps:
-1. In the Azure portal, on the **Soonr Workplace** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **Soonr Workplace** application integration page, select **Single sign-on**.
- ![Configure Single Sign-On][4]
+ ![Configure single sign-on link](common/select-sso.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/soonr-tutorial/tutorial_soonr_samlbase.png)
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. On the **Soonr Workplace Domain and URLs** section, perform the following steps:
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Configure Single Sign-On](./media/soonr-tutorial/tutorial_soonr_url.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- a. In the **Identifier** textbox, type a URL using the following pattern: `https://.soonr.com/singlesignon/saml/metadata`
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- b. In the **Reply URL** textbox, type a URL using the following pattern: `https://.soonr.com/singlesignon/saml/SSO`
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following steps:
-1. On the **Soonr Workplace Domain and URLs** section, If you wish to configure the application in **SP initiated mode**, perform the following steps:
-
- ![Configure Single Sign-On](./media/soonr-tutorial/tutorial_soonr_url1.png)
+ ![Soonr Workplace Domain and URLs single sign-on information](common/idp-intiated.png)
- a. Click on the **Show advanced URL settings**.
+ a. In the **Identifier** text box, type a URL using the following pattern:
+ `https://.soonr.com/singlesignon/saml/metadata`
- b. In the **Sign On URL** textbox, type a URL using the following pattern: `https://.soonr.com/singlesignon/saml/SSO`
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://.soonr.com/singlesignon/saml/SSO`
- > [!NOTE]
- > These values are not real. Update these values with the actual Identifier, Sign on URL and Reply URL. Contact [Soonr Workplace support team](https://awp.autotask.net/help/) to get these values.
-
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
- ![Configure Single Sign-On](./media/soonr-tutorial/tutorial_soonr_certificate.png)
+ ![Soonr Workplace Domain and URLs single sign-on information](common/metadata-upload-additional-signon.png)
-1. Click **Save** button.
+ In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://.soonr.com/singlesignon/saml/SSO`
- ![Configure Single Sign-On](./media/soonr-tutorial/tutorial_general_400.png)
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Identifier, Reply URL and Sign-on URL. Contact [Soonr Workplace Client support team](https://awp.autotask.net/help/) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. On the **Soonr Workplace Configuration** section, click **Configure Soonr Workplace** to open **Configure sign-on** window. Copy the **Sign-Out URL, SAML Entity ID, and SAML Single Sign-On Service URL** from the **Quick Reference section.**
+6. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On](./media/soonr-tutorial/tutorial_soonr_configure.png)
+ ![The Certificate download link](common/metadataxml.png)
-1. To configure single sign-on on **Soonr Workplace** side, you need to send the downloaded **Metadata XML**, **Sign-Out URL, SAML Entity ID, and SAML Single Sign-On Service URL** to [Soonr Workplace support team](https://awp.autotask.net/help/). They set this setting to have the SAML SSO connection set properly on both sides.
+7. On the **Set up Soonr Workplace** section, copy the appropriate URL(s) as per your requirement.
- >[!Note]
- >If you require assistance with configuring Autotask Workplace, please see [this page](https://awp.autotask.net/help/Content/0_HOME/Support_for_End_Clients.htm) to get assistance with your Workplace account.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+ a. Login URL
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ b. Azure AD Identifier
-![Create Azure AD User][100]
+ c. Logout URL
-**To create a test user in Azure AD, perform the following steps:**
+### Configure Soonr Workplace Single Sign-On
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+To configure single sign-on on **Soonr Workplace** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [Soonr Workplace support team](https://awp.autotask.net/help/). They set this setting to have the SAML SSO connection set properly on both sides.
- ![Creating an Azure AD test user](./media/soonr-tutorial/create_aaduser_01.png)
+> [!Note]
+> If you require assistance with configuring Autotask Workplace, please see [this page](https://awp.autotask.net/help/Content/0_HOME/Support_for_End_Clients.htm) to get assistance with your Workplace account.
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/soonr-tutorial/create_aaduser_02.png)
+### Create an Azure AD test user
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/soonr-tutorial/create_aaduser_03.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/soonr-tutorial/create_aaduser_04.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- a. In the **Name** textbox, type **BrittaSimon**.
+ ![The "Users and groups" and "All users" links](common/users.png)
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+2. Select **New user** at the top of the screen.
- c. Select **Show Password** and write down the value of the **Password**.
+ ![New user Button](common/new-user.png)
- d. Click **Create**.
-
-### Creating a Soonr Workplace test user
+3. In the User properties, perform the following steps.
-The objective of this section is to create a user called Britta Simon in Soonr Workplace. Work with [Soonr Workplace support team](https://awp.autotask.net/help/) to create a user in the platform. You can raise the support ticket with Soonr from here .
+ ![The User dialog box](common/user-properties.png)
-### Assigning the Azure AD test user
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to Soonr Workplace.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-![Assign User][200]
+ d. Click **Create**.
-**To assign Britta Simon to Soonr Workplace, perform the following steps:**
+### Assign the Azure AD test user
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to Soonr Workplace.
- ![Assign User][201]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Soonr Workplace**.
-1. In the applications list, select **Soonr Workplace**.
+ ![Enterprise applications blade](common/enterprise-applications.png)
- ![Configure Single Sign-On](./media/soonr-tutorial/tutorial_soonr_app.png)
+2. In the applications list, select **Soonr Workplace**.
-1. In the menu on the left, click **Users and groups**.
+ ![The Soonr Workplace link in the Applications list](common/all-applications.png)
- ![Assign User][202]
+3. In the menu on the left, select **Users and groups**.
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+ ![The "Users and groups" link](common/users-groups-blade.png)
- ![Assign User][203]
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Select** button on **Users and groups** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-The objective of this section is to test your Azure AD single sign-on configuration using the Access Panel.
+7. In the **Add Assignment** dialog click the **Assign** button.
-When you click the Soonr Workplace tile in the Access Panel, you should get automatically signed-on to your Soonr Workplace application.
+### Create Soonr Workplace test user
-## Additional resources
+In this section, you create a user called Britta Simon in Soonr Workplace. Work with [Soonr Workplace support team](https://awp.autotask.net/help/) to add the users in the Soonr Workplace platform. Users must be created and activated before you use single sign-on.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+When you click the Soonr Workplace tile in the Access Panel, you should be automatically signed in to the Soonr Workplace for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional resources
-[1]: ./media/soonr-tutorial/tutorial_general_01.png
-[2]: ./media/soonr-tutorial/tutorial_general_02.png
-[3]: ./media/soonr-tutorial/tutorial_general_03.png
-[4]: ./media/soonr-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/soonr-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/soonr-tutorial/tutorial_general_200.png
-[201]: ./media/soonr-tutorial/tutorial_general_201.png
-[202]: ./media/soonr-tutorial/tutorial_general_202.png
-[203]: ./media/soonr-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/spacio-tutorial.md b/articles/active-directory/saas-apps/spacio-tutorial.md
index c7b0cec48eb24..910ddbe54a660 100644
--- a/articles/active-directory/saas-apps/spacio-tutorial.md
+++ b/articles/active-directory/saas-apps/spacio-tutorial.md
@@ -181,8 +181,8 @@ When you click the Spacio tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/spring-cm-tutorial.md b/articles/active-directory/saas-apps/spring-cm-tutorial.md
index 5190889477fa3..08a7cb5bec76c 100644
--- a/articles/active-directory/saas-apps/spring-cm-tutorial.md
+++ b/articles/active-directory/saas-apps/spring-cm-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 4a42f797-ac58-4aca-a8e6-53bfe5529083
ms.service: active-directory
@@ -12,8 +13,8 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/26/2017
+ms.topic: tutorial
+ms.date: 04-08-2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -21,111 +22,107 @@ ms.collection: M365-identity-device-management
# Tutorial: Azure Active Directory integration with SpringCM
In this tutorial, you learn how to integrate SpringCM with Azure Active Directory (Azure AD).
-
Integrating SpringCM with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to SpringCM
-- You can enable your users to automatically get signed-on to SpringCM (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to SpringCM.
+* You can enable your users to be automatically signed-in to SpringCM (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with SpringCM, you need the following items:
-- An Azure AD subscription
-- A SpringCM single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* SpringCM single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding SpringCM from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* SpringCM supports **SP** initiated SSO
## Adding SpringCM from the gallery
+
To configure the integration of SpringCM into Azure AD, you need to add SpringCM from the gallery to your list of managed SaaS apps.
**To add SpringCM from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add a new application, click the **New application** button at the top of the dialog.
-1. In the search box, type **SpringCM**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/spring-cm-tutorial/tutorial_springcm_search.png)
+4. In the search box, type **SpringCM**, select **SpringCM** from the result panel then click the **Add** button to add the application.
-1. In the results panel, select **SpringCM**, and then click **Add** button to add the application.
+ ![SpringCM in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/spring-cm-tutorial/tutorial_springcm_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with SpringCM based on a test user called "Britta Simon."
+In this section, you configure and test Azure AD single sign-on with SpringCM based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in SpringCM needs to be established.
-For single sign-on to work, Azure AD needs to know what the counterpart user in SpringCM is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in SpringCM needs to be established.
+To configure and test Azure AD single sign-on with SpringCM, you need to complete the following building blocks:
-In SpringCM, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure SpringCM Single Sign-On](#configure-springcm-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create SpringCM test user](#create-springcm-test-user)** - to have a counterpart of Britta Simon in SpringCM that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-To configure and test Azure AD single sign-on with SpringCM, you need to complete the following building blocks:
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a SpringCM test user](#creating-a-springcm-test-user)** - to have a counterpart of Britta Simon in SpringCM that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+To configure Azure AD single sign-on with SpringCM, perform the following steps:
-### Configuring Azure AD single sign-on
+1. In the [Azure portal](https://portal.azure.com/), on the **SpringCM** application integration page, select **Single sign-on**.
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your SpringCM application.
+ ![Configure single sign-on link](common/select-sso.png)
-**To configure Azure AD single sign-on with SpringCM, perform the following steps:**
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. In the Azure portal, on the **SpringCM** application integration page, click **Single sign-on**.
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Configure Single Sign-On][4]
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/spring-cm-tutorial/tutorial_springcm_samlbase.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
-1. On the **SpringCM Domain and URLs** section, perform the following steps:
+4. On the **Basic SAML Configuration** section, perform the following steps:
- ![Configure Single Sign-On](./media/spring-cm-tutorial/tutorial_springcm_url.png)
+ ![SpringCM Domain and URLs single sign-on information](common/sp-signonurl.png)
- In the **Sign-on URL** textbox, type a URL using the following pattern: `https://na11.springcm.com/atlas/SSO/SSOEndpoint.ashx?aid=`
+ In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://na11.springcm.com/atlas/SSO/SSOEndpoint.ashx?aid=`
- > [!NOTE]
- > This value is not real. Update this value with the actual Sign-On URL. Contact [SpringCM Client support team](https://knowledge.springcm.com/support) to get this value.
-
-1. On the **SAML Signing Certificate** section, click **Certificate(Raw)** and then save the certificate file on your computer.
+ > [!NOTE]
+ > The value is not real. Update the value with the actual Sign-On URL. Contact [SpringCM Client support team](https://knowledge.springcm.com/support) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
- ![Configure Single Sign-On](./media/spring-cm-tutorial/tutorial_springcm_certificate.png)
+4. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Raw)** from the given options as per your requirement and save it on your computer.
-1. Click **Save** button.
+ ![The Certificate download link](common/certificateraw.png)
- ![Configure Single Sign-On](./media/spring-cm-tutorial/tutorial_general_400.png)
+6. On the **Set up SpringCM** section, copy the appropriate URL(s) as per your requirement.
-1. On the **SpringCM Configuration** section, click **Configure SpringCM** to open **Configure sign-on** window. Copy the **SAML Entity ID, and SAML Single Sign-On Service URL** from the **Quick Reference section.**
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
- ![Configure Single Sign-On](./media/spring-cm-tutorial/tutorial_springcm_configure.png)
+ a. Login URL
+
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure SpringCM Single Sign-On
1. In a different web browser window, sign on to your **SpringCM** company site as administrator.
@@ -139,134 +136,105 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
a. To upload your downloaded Azure Active Directory certificate, click **Select Issuer Certificate** or **Change Issuer Certificate**.
- b. Paste **SAML Entity ID** value, which you have copied from Azure portal into the **Issuer** textbox.
+ b. In the **Issuer** textbox, paste **Azure AD Identifier** value, which you have copied from Azure portal.
- c. Paste **SAML Single Sign-On Service URL** value, which you have copied from the Azure portal into the **Service Provider (SP) Initiated Endpoint** textbox.
+ c. In the **Service Provider (SP) Initiated Endpoint** textbox, paste **Login URL** value, which you have copied from the Azure portal.
d. Select **SAML Enabled** as **Enable**.
e. Click **Save**.
-
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+### Create an Azure AD test user
-![Create Azure AD User][100]
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-**To create a test user in Azure AD, perform the following steps:**
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+ ![The "Users and groups" and "All users" links](common/users.png)
- ![Creating an Azure AD test user](./media/spring-cm-tutorial/create_aaduser_01.png)
+2. Select **New user** at the top of the screen.
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/spring-cm-tutorial/create_aaduser_02.png)
+ ![New user Button](common/new-user.png)
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/spring-cm-tutorial/create_aaduser_03.png)
+3. In the User properties, perform the following steps.
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/spring-cm-tutorial/create_aaduser_04.png)
+ ![The User dialog box](common/user-properties.png)
- a. In the **Name** textbox, type **BrittaSimon**.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
-
- c. Select **Show Password** and write down the value of the **Password**.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-
-### Creating a SpringCM test user
-To enable Azure Active Directory users to log in to SpringCM, they must be provisioned into SpringCM. In the case of SpringCM, provisioning is a manual task.
+### Assign the Azure AD test user
->[!NOTE]
->For more information, see [Create and Edit a SpringCM User](https://knowledge.springcm.com/create-and-edit-a-springcm-user).
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to SpringCM.
-**To provision a user account to SpringCM, perform the following steps:**
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **SpringCM**.
-1. Log in to your **SpringCM** company site as administrator.
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. Click **GOTO**, and then click **ADDRESS BOOK**.
-
- ![Create User](./media/spring-cm-tutorial/ic797054.png "Create User")
+2. In the applications list, select **SpringCM**.
-1. Click **Create User**.
+ ![The SpringCM link in the Applications list](common/all-applications.png)
-1. Select a **User Role**.
+3. In the menu on the left, select **Users and groups**.
-1. Select **Send Activation Email**.
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. Type the first name, last name, and email address of a valid Azure Active Directory user account you want to provision into the related textboxes.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. Add the user to a **Security group**.
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Save**.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- >[!NOTE]
- >You can use any other SpringCM user account creation tools or APIs provided by SpringCM to provision AAD user accounts.
- >
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-### Assigning the Azure AD test user
+7. In the **Add Assignment** dialog click the **Assign** button.
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to SpringCM.
+### Create SpringCM test user
-![Assign User][200]
+To enable Azure Active Directory users to sign in to SpringCM, they must be provisioned into SpringCM. In the case of SpringCM, provisioning is a manual task.
-**To assign Britta Simon to SpringCM, perform the following steps:**
+> [!NOTE]
+> For more information, see [Create and Edit a SpringCM User](https://knowledge.springcm.com/create-and-edit-a-springcm-user).
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+**To provision a user account to SpringCM, perform the following steps:**
- ![Assign User][201]
+1. Sign in to your **SpringCM** company site as administrator.
-1. In the applications list, select **SpringCM**.
+1. Click **GOTO**, and then click **ADDRESS BOOK**.
+
+ ![Create User](./media/spring-cm-tutorial/ic797054.png "Create User")
- ![Configure Single Sign-On](./media/spring-cm-tutorial/tutorial_springcm_app.png)
+1. Click **Create User**.
-1. In the menu on the left, click **Users and groups**.
+1. Select a **User Role**.
- ![Assign User][202]
+1. Select **Send Activation Email**.
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+1. Type the first name, last name, and email address of a valid Azure Active Directory user account you want to provision into the related textboxes.
- ![Assign User][203]
+1. Add the user to a **Security group**.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+1. Click **Save**.
-1. Click **Select** button on **Users and groups** dialog.
+ > [!NOTE]
+ > You can use any other SpringCM user account creation tools or APIs provided by SpringCM to provision AAD user accounts.
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-
-When you click the SpringCM tile in the Access Panel, you should get automatically signed-on to your SpringCM application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+When you click the SpringCM tile in the Access Panel, you should be automatically signed in to the SpringCM for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
## Additional resources
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
-
-
-[1]: ./media/spring-cm-tutorial/tutorial_general_01.png
-[2]: ./media/spring-cm-tutorial/tutorial_general_02.png
-[3]: ./media/spring-cm-tutorial/tutorial_general_03.png
-[4]: ./media/spring-cm-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/spring-cm-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/spring-cm-tutorial/tutorial_general_200.png
-[201]: ./media/spring-cm-tutorial/tutorial_general_201.png
-[202]: ./media/spring-cm-tutorial/tutorial_general_202.png
-[203]: ./media/spring-cm-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/springerlink-tutorial.md b/articles/active-directory/saas-apps/springerlink-tutorial.md
index ab46f47302c99..62d85008d0d23 100644
--- a/articles/active-directory/saas-apps/springerlink-tutorial.md
+++ b/articles/active-directory/saas-apps/springerlink-tutorial.md
@@ -203,9 +203,9 @@ When you click the Springer Link tile in the Access Panel, you should be automat
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/sprinklr-tutorial.md b/articles/active-directory/saas-apps/sprinklr-tutorial.md
index 333a25b82e12b..ad522282c7344 100644
--- a/articles/active-directory/saas-apps/sprinklr-tutorial.md
+++ b/articles/active-directory/saas-apps/sprinklr-tutorial.md
@@ -269,8 +269,8 @@ When you click the Sprinklr tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/statuspage-tutorial.md b/articles/active-directory/saas-apps/statuspage-tutorial.md
index 22e8f878ade29..ebfea05f49e9d 100644
--- a/articles/active-directory/saas-apps/statuspage-tutorial.md
+++ b/articles/active-directory/saas-apps/statuspage-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: f6ee8bb3-df43-4c0d-bf84-89f18deac4b9
ms.service: active-directory
@@ -12,278 +13,244 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 07/11/2017
+ms.topic: tutorial
+ms.date: 03/22/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with StatusPage
In this tutorial, you learn how to integrate StatusPage with Azure Active Directory (Azure AD).
-
Integrating StatusPage with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to StatusPage
-- You can enable your users to automatically get signed-on to StatusPage (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to StatusPage.
+* You can enable your users to be automatically signed-in to StatusPage (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with StatusPage, you need the following items:
-- An Azure AD subscription
-- A StatusPage single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* StatusPage single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding StatusPage from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* StatusPage supports **IDP** initiated SSO
## Adding StatusPage from the gallery
+
To configure the integration of StatusPage into Azure AD, you need to add StatusPage from the gallery to your list of managed SaaS apps.
**To add StatusPage from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **StatusPage**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/statuspage-tutorial/tutorial_statuspage_search.png)
+4. In the search box, type **StatusPage**, select **StatusPage** from result panel then click **Add** button to add the application.
-1. In the results panel, select **StatusPage**, and then click **Add** button to add the application.
+ ![StatusPage in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/statuspage-tutorial/tutorial_statuspage_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with StatusPage based on a test user called "Britta Simon".
+In this section, you configure and test Azure AD single sign-on with StatusPage based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in StatusPage needs to be established.
-For single sign-on to work, Azure AD needs to know what the counterpart user in StatusPage is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in StatusPage needs to be established.
+To configure and test Azure AD single sign-on with StatusPage, you need to complete the following building blocks:
-In StatusPage, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure StatusPage Single Sign-On](#configure-statuspage-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create StatusPage test user](#create-statuspage-test-user)** - to have a counterpart of Britta Simon in StatusPage that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-To configure and test Azure AD single sign-on with StatusPage, you need to complete the following building blocks:
+### Configure Azure AD single sign-on
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a StatusPage test user](#creating-a-statuspage-test-user)** - to have a counterpart of Britta Simon in StatusPage that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-### Configuring Azure AD single sign-on
+To configure Azure AD single sign-on with StatusPage, perform the following steps:
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your StatusPage application.
+1. In the [Azure portal](https://portal.azure.com/), on the **StatusPage** application integration page, select **Single sign-on**.
-**To configure Azure AD single sign-on with StatusPage, perform the following steps:**
+ ![Configure single sign-on link](common/select-sso.png)
-1. In the Azure portal, on the **StatusPage** application integration page, click **Single sign-on**.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On][4]
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_samlbase.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **StatusPage Domain and URLs** section, perform the following steps:
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_url.png)
+4. On the **Set up Single Sign-On with SAML** page, perform the following steps:
- a. In the **Identifier** textbox, type a URL using the following pattern:
+ ![StatusPage Domain and URLs single sign-on information](common/idp-intiated.png)
+ a. In the **Identifier** text box, type a URL using the following pattern:
+
| |
|--|
- | `https://.statuspagestaging.com/` |
- | `https://.statuspage.io/` |
+ | `https://.statuspagestaging.com/`|
+ | `https://.statuspage.io/`|
- b. In the **Reply URL** textbox, type a URL using the following pattern:
+ b. In the **Reply URL** text box, type a URL using the following pattern:
| |
|--|
- | `https://.statuspagestaging.com/sso/saml/consume` |
- | `https://.statuspage.io/sso/saml/consume` |
+ | `https://.statuspagestaging.com/sso/saml/consume`|
+ | `https://.statuspage.io/sso/saml/consume`|
- > [!NOTE]
- > Contact the StatusPage support team at [SupportTeam@statuspage.io](mailto:SupportTeam@statuspage.io)to request metadata necessary to configure single sign-on.
- >
- > a. From the metadata, copy the Issuer value, and then paste it into the **Identifier** textbox.
- >
- > b. From the metadata, copy the Reply URL, and then paste it into the **Reply URL** textbox.
+ > [!NOTE]
+ > Contact the StatusPage support team at [SupportTeam@statuspage.io](mailto:SupportTeam@statuspage.io)to request metadata necessary to configure single sign-on.
+ >
+ > a. From the metadata, copy the Issuer value, and then paste it into the **Identifier** textbox.
+ >
+ > b. From the metadata, copy the Reply URL, and then paste it into the **Reply URL** textbox.
-1. On the **SAML Signing Certificate** section, click **Certificate (Base64)** and then save the certificate file on your computer.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_certificate.png)
+ ![The Certificate download link](common/certificatebase64.png)
-1. Click **Save** button.
+6. On the **Set up StatusPage** section, copy the appropriate URL(s) as per your requirement.
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_general_400.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-1. On the **StatusPage Configuration** section, click **Configure StatusPage** to open **Configure sign-on** window. Copy the **SAML Single Sign-On Service URL** from the **Quick Reference section.**
+ a. Login URL
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_configure.png)
+ b. Azure AD Identifier
-1. In another browser window, sign on to your StatusPage company site as an administrator.
+ c. Logout URL
-1. In the main toolbar, click **Manage Account**.
-
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_06.png)
+### Configure StatusPage Single Sign-On
-1. Click the **Single Sign-on** tab.
-
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_07.png)
+1. In another browser window, sign in to your StatusPage company site as an administrator.
-1. On the SSO Setup page, perform the following steps:
-
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_08.png)
+1. In the main toolbar, click **Manage Account**.
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_09.png)
-
- a. In the **SSO Target URL** textbox, paste the value of **SAML Single Sign-On Service URL**, which you have copied from Azure portal.
+ ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_06.png)
- b. Open your downloaded certificate in Notepad, copy the content, and then paste it into the **Certificate** textbox.
+1. Click the **Single Sign-on** tab.
- c. Click **SAVE CONFIGURATION**.
+ ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_07.png)
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+1. On the SSO Setup page, perform the following steps:
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_08.png)
-![Create Azure AD User][100]
+ ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_09.png)
-**To create a test user in Azure AD, perform the following steps:**
+ a. In the **SSO Target URL** textbox, paste the value of **Login URL**, which you have copied from Azure portal.
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+ b. Open your downloaded certificate in Notepad, copy the content, and then paste it into the **Certificate** textbox.
- ![Creating an Azure AD test user](./media/statuspage-tutorial/create_aaduser_01.png)
+ c. Click **SAVE CONFIGURATION**.
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/statuspage-tutorial/create_aaduser_02.png)
+### Create an Azure AD test user
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/statuspage-tutorial/create_aaduser_03.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/statuspage-tutorial/create_aaduser_04.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- a. In the **Name** textbox, type **BrittaSimon**.
+ ![The "Users and groups" and "All users" links](common/users.png)
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+2. Select **New user** at the top of the screen.
- c. Select **Show Password** and write down the value of the **Password**.
+ ![New user Button](common/new-user.png)
- d. Click **Create**.
-
-### Creating a StatusPage test user
+3. In the User properties, perform the following steps.
-The objective of this section is to create a user called Britta Simon in StatusPage.
+ ![The User dialog box](common/user-properties.png)
-StatusPage supports just-in-time provisioning. You have already enabled it in [Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on).
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`
+ For example, BrittaSimon@contoso.com
-**To create a user called Britta Simon in StatusPage, perform the following steps:**
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-1. Sign-on to your StatusPage company site as an administrator.
+ d. Click **Create**.
-1. In the menu on the top, click **Manage Account**.
+### Assign the Azure AD test user
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_06.png)
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to StatusPage.
-1. Click the **Team Members** tab.
-
- ![Creating an Azure AD test user](./media/statuspage-tutorial/tutorial_statuspage_10.png)
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **StatusPage**.
-1. Click **ADD TEAM MEMBER**.
-
- ![Creating an Azure AD test user](./media/statuspage-tutorial/tutorial_statuspage_11.png)
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. Type the **Email Address**, **First Name**, and **Surname** of a valid user you want to provision into the related textboxes.
-
- ![Creating an Azure AD test user](./media/statuspage-tutorial/tutorial_statuspage_12.png)
+2. In the applications list, select **StatusPage**.
-1. As **Role**, choose **Client Administrator**.
+ ![The StatusPage link in the Applications list](common/all-applications.png)
-1. Click **CREATE ACCOUNT**.
+3. In the menu on the left, select **Users and groups**.
-### Assigning the Azure AD test user
+ ![The "Users and groups" link](common/users-groups-blade.png)
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to StatusPage.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-![Assign User][200]
+ ![The Add Assignment pane](common/add-assign-user.png)
-**To assign Britta Simon to StatusPage, perform the following steps:**
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
- ![Assign User][201]
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. In the applications list, select **StatusPage**.
+### Create StatusPage test user
- ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_app.png)
+The objective of this section is to create a user called Britta Simon in StatusPage.
-1. In the menu on the left, click **Users and groups**.
+StatusPage supports just-in-time provisioning. You have already enabled it in [Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on).
- ![Assign User][202]
+**To create a user called Britta Simon in StatusPage, perform the following steps:**
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+1. Sign-on to your StatusPage company site as an administrator.
- ![Assign User][203]
+1. In the menu on the top, click **Manage Account**.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+ ![Configure Single Sign-On](./media/statuspage-tutorial/tutorial_statuspage_06.png)
-1. Click **Select** button on **Users and groups** dialog.
+1. Click the **Team Members** tab.
+
+ ![Creating an Azure AD test user](./media/statuspage-tutorial/tutorial_statuspage_10.png)
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+1. Click **ADD TEAM MEMBER**.
+
+ ![Creating an Azure AD test user](./media/statuspage-tutorial/tutorial_statuspage_11.png)
-The objective of this section is to test your Azure AD single sign-on configuration using the Access Panel.
+1. Type the **Email Address**, **First Name**, and **Surname** of a valid user you want to provision into the related textboxes.
-When you click the StatusPage tile in the Access Panel, you should get automatically signed-on to your StatusPage application.
+ ![Creating an Azure AD test user](./media/statuspage-tutorial/tutorial_statuspage_12.png)
-## Additional resources
+1. As **Role**, choose **Client Administrator**.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+1. Click **CREATE ACCOUNT**.
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-
+When you click the StatusPage tile in the Access Panel, you should be automatically signed in to the StatusPage for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-[1]: ./media/statuspage-tutorial/tutorial_general_01.png
-[2]: ./media/statuspage-tutorial/tutorial_general_02.png
-[3]: ./media/statuspage-tutorial/tutorial_general_03.png
-[4]: ./media/statuspage-tutorial/tutorial_general_04.png
+## Additional Resources
-[100]: ./media/statuspage-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/statuspage-tutorial/tutorial_general_200.png
-[201]: ./media/statuspage-tutorial/tutorial_general_201.png
-[202]: ./media/statuspage-tutorial/tutorial_general_202.png
-[203]: ./media/statuspage-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/sugarcrm-tutorial.md b/articles/active-directory/saas-apps/sugarcrm-tutorial.md
index 214732a64cda1..e42ed996c3b87 100644
--- a/articles/active-directory/saas-apps/sugarcrm-tutorial.md
+++ b/articles/active-directory/saas-apps/sugarcrm-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 3331b9fc-ebc0-4a3a-9f7b-bf20ee35d180
ms.service: active-directory
@@ -12,283 +13,247 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 07/13/2017
+ms.topic: tutorial
+ms.date: 03/22/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Sugar CRM
In this tutorial, you learn how to integrate Sugar CRM with Azure Active Directory (Azure AD).
-
Integrating Sugar CRM with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Sugar CRM
-- You can enable your users to automatically get signed-on to Sugar CRM (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to Sugar CRM.
+* You can enable your users to be automatically signed-in to Sugar CRM (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Sugar CRM, you need the following items:
-- An Azure AD subscription
-- A Sugar CRM single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Sugar CRM single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Sugar CRM from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Sugar CRM supports **SP** initiated SSO
## Adding Sugar CRM from the gallery
+
To configure the integration of Sugar CRM into Azure AD, you need to add Sugar CRM from the gallery to your list of managed SaaS apps.
**To add Sugar CRM from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **Sugar CRM**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/sugarcrm-tutorial/tutorial_sugarcrm_search.png)
+4. In the search box, type **Sugar CRM**, select **Sugar CRM** from result panel then click **Add** button to add the application.
-1. In the results panel, select **Sugar CRM**, and then click **Add** button to add the application.
+ ![Sugar CRM in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/sugarcrm-tutorial/tutorial_sugarcrm_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Sugar CRM based on a test user called "Britta Simon".
+In this section, you configure and test Azure AD single sign-on with Sugar CRM based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Sugar CRM needs to be established.
-For single sign-on to work, Azure AD needs to know what the counterpart user in Sugar CRM is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Sugar CRM needs to be established.
+To configure and test Azure AD single sign-on with Sugar CRM, you need to complete the following building blocks:
-In Sugar CRM, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Sugar CRM Single Sign-On](#configure-sugar-crm-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Sugar CRM test user](#create-sugar-crm-test-user)** - to have a counterpart of Britta Simon in Sugar CRM that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-To configure and test Azure AD single sign-on with Sugar CRM, you need to complete the following building blocks:
+### Configure Azure AD single sign-on
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a Sugar CRM test user](#creating-a-sugar-crm-test-user)** - to have a counterpart of Britta Simon in Sugar CRM that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-### Configuring Azure AD single sign-on
+To configure Azure AD single sign-on with Sugar CRM, perform the following steps:
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Sugar CRM application.
+1. In the [Azure portal](https://portal.azure.com/), on the **Sugar CRM** application integration page, select **Single sign-on**.
-**To configure Azure AD single sign-on with Sugar CRM, perform the following steps:**
+ ![Configure single sign-on link](common/select-sso.png)
-1. In the Azure portal, on the **Sugar CRM** application integration page, click **Single sign-on**.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On][4]
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/sugarcrm-tutorial/tutorial_sugarcrm_samlbase.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **Sugar CRM Domain and URLs** section, perform the following steps:
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Configure Single Sign-On](./media/sugarcrm-tutorial/tutorial_sugarcrm_url.png)
+4. On the **Basic SAML Configuration** section, perform the following steps:
- In the **Sign-on URL** textbox, type a URL using the following pattern:
+ ![Sugar CRM Domain and URLs single sign-on information](common/sp-signonurl.png)
+
+ In the **Sign-on URL** text box, type a URL using the following pattern:
| |
|--|
- | `https://.sugarondemand.com` |
- | `https://.trial.sugarcrm` |
+ | `https://.sugarondemand.com`|
+ | `https://.trial.sugarcrm`|
+
+ > [!NOTE]
+ > The value is not real. Update the value with the actual Sign-On URL. Contact [Sugar CRM Client support team](https://support.sugarcrm.com/) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
- > [!NOTE]
- > The value is not real. Update the value with the actual Sign-On URL. Contact [Sugar CRM Client support team](https://support.sugarcrm.com/) to get the value.
-
-1. On the **SAML Signing Certificate** section, click **Certificate (Base64)** and then save the certificate file on your computer.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On](./media/sugarcrm-tutorial/tutorial_sugarcrm_certificate.png)
+ ![The Certificate download link](common/certificatebase64.png)
-1. Click **Save** button.
+6. On the **Set up Sugar CRM** section, copy the appropriate URL(s) as per your requirement.
- ![Configure Single Sign-On](./media/sugarcrm-tutorial/tutorial_general_400.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-1. On the **Sugar CRM Configuration** section, click **Configure Sugar CRM** to open **Configure sign-on** window. Copy the **Sign-Out URL, and SAML Single Sign-On Service URL** from the **Quick Reference section.**
+ a. Login URL
- ![Configure Single Sign-On](./media/sugarcrm-tutorial/tutorial_sugarcrm_configure.png)
+ b. Azure AD Identifier
-1. In a different web browser window, log in to your Sugar CRM company site as an administrator.
+ c. Logout URL
+
+### Configure Sugar CRM Single Sign-On
+
+1. In a different web browser window, sign in to your Sugar CRM company site as an administrator.
1. Go to **Admin**.
-
+
![Admin](./media/sugarcrm-tutorial/ic795888.png "Admin")
1. In the **Administration** section, click **Password Management**.
-
+
![Administration](./media/sugarcrm-tutorial/ic795889.png "Administration")
1. Select **Enable SAML Authentication**.
-
+
![Administration](./media/sugarcrm-tutorial/ic795890.png "Administration")
1. In the **SAML Authentication** section, perform the following steps:
-
+
![SAML Authentication](./media/sugarcrm-tutorial/ic795891.png "SAML Authentication")
-
- a. In the **Login URL** textbox, paste the value of **SAML Single Sign-On Service URL**, which you have copied from Azure portal.
+
+ a. In the **Login URL** textbox, paste the value of **Login URL**, which you have copied from Azure portal.
- b. In the **SLO URL** textbox, paste the value of **Sign-Out URL**, which you have copied from Azure portal.
+ b. In the **SLO URL** textbox, paste the value of **Logout URL**, which you have copied from Azure portal.
c. Open your base-64 encoded certificate in notepad, copy the content of it into your clipboard, and then paste the entire Certificate into **X.509 Certificate** textbox.
d. Click **Save**.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+### Create an Azure AD test user
-### Creating an Azure AD test user
The objective of this section is to create a test user in the Azure portal called Britta Simon.
-![Create Azure AD User][100]
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-**To create a test user in Azure AD, perform the following steps:**
+ ![The "Users and groups" and "All users" links](common/users.png)
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
-
- ![Creating an Azure AD test user](./media/sugarcrm-tutorial/create_aaduser_01.png)
-
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/sugarcrm-tutorial/create_aaduser_02.png)
+2. Select **New user** at the top of the screen.
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/sugarcrm-tutorial/create_aaduser_03.png)
+ ![New user Button](common/new-user.png)
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/sugarcrm-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** textbox, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`
+ For example, BrittaSimon@contoso.com
- c. Select **Show Password** and write down the value of the **Password**.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-
-### Creating a Sugar CRM test user
-In order to enable Azure AD users to log in to Sugar CRM, they must be provisioned to Sugar CRM.
+### Assign the Azure AD test user
-In the case of Sugar CRM, provisioning is a manual task.
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to Sugar CRM.
-**To provision a user account, perform the following steps:**
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Sugar CRM**.
-1. Log in to your **Sugar CRM** company site as administrator.
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. Go to **Admin**.
-
- ![Admin](./media/sugarcrm-tutorial/ic795888.png "Admin")
+2. In the applications list, select **Sugar CRM**.
-1. In the **Administration** section, click **User Management**.
-
- ![Administration](./media/sugarcrm-tutorial/ic795893.png "Administration")
+ ![The Sugar CRM link in the Applications list](common/all-applications.png)
-1. Go to **Users \> Create New User**.
-
- ![Create New User](./media/sugarcrm-tutorial/ic795894.png "Create New User")
+3. In the menu on the left, select **Users and groups**.
-1. On the **User Profile** tab, perform the following steps:
-
- ![New User](./media/sugarcrm-tutorial/ic795895.png "New User")
+ ![The "Users and groups" link](common/users-groups-blade.png)
- a. Type the **user name**, **last name**, and **email address** of a valid Azure Active Directory user into the related textboxes.
-
-1. As **Status**, select **Active**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. On the Password tab, perform the following steps:
-
- ![New User](./media/sugarcrm-tutorial/ic795896.png "New User")
+ ![The Add Assignment pane](common/add-assign-user.png)
- a. Type the password into the related textbox.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- b. Click **Save**.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
->[!NOTE]
->You can use any other Sugar CRM user account creation tools or APIs provided by Sugar CRM to provision AAD user accounts.
->
+7. In the **Add Assignment** dialog click the **Assign** button.
-### Assigning the Azure AD test user
+### Create Sugar CRM test user
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to Sugar CRM.
+In order to enable Azure AD users to sign in to Sugar CRM, they must be provisioned to Sugar CRM. In the case of Sugar CRM, provisioning is a manual task.
-![Assign User][200]
+**To provision a user account, perform the following steps:**
-**To assign Britta Simon to Sugar CRM, perform the following steps:**
+1. Sign in to your **Sugar CRM** company site as administrator.
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+1. Go to **Admin**.
- ![Assign User][201]
+ ![Admin](./media/sugarcrm-tutorial/ic795888.png "Admin")
-1. In the applications list, select **Sugar CRM**.
+1. In the **Administration** section, click **User Management**.
- ![Configure Single Sign-On](./media/sugarcrm-tutorial/tutorial_sugarcrm_app.png)
+ ![Administration](./media/sugarcrm-tutorial/ic795893.png "Administration")
-1. In the menu on the left, click **Users and groups**.
+1. Go to **Users \> Create New User**.
- ![Assign User][202]
+ ![Create New User](./media/sugarcrm-tutorial/ic795894.png "Create New User")
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+1. On the **User Profile** tab, perform the following steps:
- ![Assign User][203]
+ ![New User](./media/sugarcrm-tutorial/ic795895.png "New User")
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+ * Type the **user name**, **last name**, and **email address** of a valid Azure Active Directory user into the related textboxes.
+
+1. As **Status**, select **Active**.
-1. Click **Select** button on **Users and groups** dialog.
+1. On the Password tab, perform the following steps:
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+ ![New User](./media/sugarcrm-tutorial/ic795896.png "New User")
-The objective of this section is to test your Azure AD single sign-on configuration using the Access Panel.
+ a. Type the password into the related textbox.
-When you click the Sugar CRM tile in the Access Panel, you should get automatically signed-on to your Sugar CRM application.
+ b. Click **Save**.
-## Additional resources
+> [!NOTE]
+> You can use any other Sugar CRM user account creation tools or APIs provided by Sugar CRM to provision AAD user accounts.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+When you click the Sugar CRM tile in the Access Panel, you should be automatically signed in to the Sugar CRM for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional Resources
-[1]: ./media/sugarcrm-tutorial/tutorial_general_01.png
-[2]: ./media/sugarcrm-tutorial/tutorial_general_02.png
-[3]: ./media/sugarcrm-tutorial/tutorial_general_03.png
-[4]: ./media/sugarcrm-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/sugarcrm-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/sugarcrm-tutorial/tutorial_general_200.png
-[201]: ./media/sugarcrm-tutorial/tutorial_general_201.png
-[202]: ./media/sugarcrm-tutorial/tutorial_general_202.png
-[203]: ./media/sugarcrm-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/sumologic-tutorial.md b/articles/active-directory/saas-apps/sumologic-tutorial.md
index f035a1801de2e..3e522f71b044d 100644
--- a/articles/active-directory/saas-apps/sumologic-tutorial.md
+++ b/articles/active-directory/saas-apps/sumologic-tutorial.md
@@ -257,9 +257,9 @@ When you click the SumoLogic tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/sumtotalcentral-tutorial.md b/articles/active-directory/saas-apps/sumtotalcentral-tutorial.md
index c93f18e03d583..c4ffbc24544be 100644
--- a/articles/active-directory/saas-apps/sumtotalcentral-tutorial.md
+++ b/articles/active-directory/saas-apps/sumtotalcentral-tutorial.md
@@ -191,8 +191,8 @@ When you click the SumTotalCentral tile in the Access Panel, you should be autom
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/syncplicity-tutorial.md b/articles/active-directory/saas-apps/syncplicity-tutorial.md
index aa2fb9981f3b8..f2d40591abc09 100644
--- a/articles/active-directory/saas-apps/syncplicity-tutorial.md
+++ b/articles/active-directory/saas-apps/syncplicity-tutorial.md
@@ -241,8 +241,8 @@ When you click the Syncplicity tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/synergi-tutorial.md b/articles/active-directory/saas-apps/synergi-tutorial.md
index abedbd2bbdc12..731a24767d87c 100644
--- a/articles/active-directory/saas-apps/synergi-tutorial.md
+++ b/articles/active-directory/saas-apps/synergi-tutorial.md
@@ -191,9 +191,9 @@ When you click the Synergi tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/tableau-online-provisioning-tutorial.md b/articles/active-directory/saas-apps/tableau-online-provisioning-tutorial.md
index c3f52567dc040..7c680986101e7 100644
--- a/articles/active-directory/saas-apps/tableau-online-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/tableau-online-provisioning-tutorial.md
@@ -7,13 +7,14 @@ author: zchia
writer: zchia
manager: beatrizd-msft
-ms.assetid: na
+ms.assetid: 0be9c435-f9a1-484d-8059-e578d5797d8e
ms.service: active-directory
+ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 07/30/2018
+ms.date: 03/27/2019
ms.author: v-wingf-msft
ms.collection: M365-identity-device-management
---
@@ -41,27 +42,21 @@ Before configuring Tableau Online for automatic user provisioning with Azure AD,
**To add Tableau Online from the Azure AD application gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click on the **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications** > **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications Section][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
-3. To add Tableau Online, click the **New application** button on the top of the dialog.
+3. To add new application, click **New application** button on the top of dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
-4. In the search box, type **Tableau Online**.
+4. In the search box, type **Tableau Online**, select **Tableau Online** from result panel then click **Add** button to add the application.
- ![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/AppSearch.png)
-
-5. In the results panel, select **Tableau Online**, and then click the **Add** button to add Tableau Online to your list of SaaS applications.
-
- ![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/AppSearchResults.png)
-
- ![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/AppCreation.png)
+ ![Tableau Online in the results list](common/search-new-app.png)
## Assigning users to Tableau Online
@@ -86,11 +81,13 @@ This section guides you through the steps to configure the Azure AD provisioning
### To configure automatic user provisioning for Tableau Online in Azure AD:
-1. Sign in to the [Azure portal](https://portal.azure.com) and browse to **Azure Active Directory > Enterprise applications > All applications**.
+1. Sign in to the [Azure portal](https://portal.azure.com) and select **Enterprise Applications**, select **All applications**, then select **Tableau Online**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
-2. Select Tableau Online from your list of SaaS applications.
+2. In the applications list, select **Tableau Online**.
- ![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/AppInstanceSearch.png)
+ ![The Tableau Online link in the Applications list](common/all-applications.png)
3. Select the **Provisioning** tab.
@@ -112,15 +109,16 @@ This section guides you through the steps to configure the Azure AD provisioning
6. After logging in to your administrative account for Tableau Online, the values for **Domain** and **Content URL** can be extracted from the URL of the Admin page.
- * The **Domain** for your Tableau Online account can be copied from this part of the URL:
- ![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/DomainUrlPart.png)
+ * The **Domain** for your Tableau Online account can be copied from this part of the URL:
- * The **Content URL** for your Tableau Online account can be copied from this section, and is a value defined during account set-up. In this example, the value is "contoso":
- ![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/ContentUrlPart.png)
+ ![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/DomainUrlPart.png)
- > [!NOTE]
- > Your **Domain** may be different from the one shown here.
+ * The **Content URL** for your Tableau Online account can be copied from this section, and is a value defined during account set-up. In this example, the value is "contoso":
+
+ ![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/ContentUrlPart.png)
+ > [!NOTE]
+ > Your **Domain** may be different from the one shown here.
7. Upon populating the fields shown in Step 5, click **Test Connection** to ensure Azure AD can connect to Tableau Online. If the connection fails, ensure your Tableau Online account has Admin permissions and try again.
@@ -130,35 +128,35 @@ This section guides you through the steps to configure the Azure AD provisioning
![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/EmailNotification.png)
-10. Click **Save**.
+9. Click **Save**.
-11. Under the **Mappings** section, select **Synchronize Azure Active Directory Users to Tableau**.
+10. Under the **Mappings** section, select **Synchronize Azure Active Directory Users to Tableau**.
![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/UserMappings.png)
-12. Review the user attributes that are synchronized from Azure AD to Tableau Online in the **Attribute Mapping** section. The attributes selected as **Matching** properties are used to match the user accounts in Tableau Online for update operations. Select the **Save** button to commit any changes.
+11. Review the user attributes that are synchronized from Azure AD to Tableau Online in the **Attribute Mapping** section. The attributes selected as **Matching** properties are used to match the user accounts in Tableau Online for update operations. Select the **Save** button to commit any changes.
![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/UserAttributeMapping.png)
-13. Under the **Mappings** section, select **Synchronize Azure Active Directory Groups to Tableau**.
+12. Under the **Mappings** section, select **Synchronize Azure Active Directory Groups to Tableau**.
![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/GroupMappings.png)
-14. Review the group attributes that are synchronized from Azure AD to Tableau Online in the **Attribute Mapping** section. The attributes selected as **Matching** properties are used to match the user accounts in Tableau Online for update operations. Select the **Save** button to commit any changes.
+13. Review the group attributes that are synchronized from Azure AD to Tableau Online in the **Attribute Mapping** section. The attributes selected as **Matching** properties are used to match the user accounts in Tableau Online for update operations. Select the **Save** button to commit any changes.
![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/GroupAttributeMapping.png)
-15. To configure scoping filters, refer to the following instructions provided in the [Scoping filter tutorial](../manage-apps/define-conditional-rules-for-provisioning-user-accounts.md).
+14. To configure scoping filters, refer to the following instructions provided in the [Scoping filter tutorial](../manage-apps/define-conditional-rules-for-provisioning-user-accounts.md).
-16. To enable the Azure AD provisioning service for Tableau Online, change the **Provisioning Status** to **On** in the **Settings** section.
+15. To enable the Azure AD provisioning service for Tableau Online, change the **Provisioning Status** to **On** in the **Settings** section.
![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/ProvisioningStatus.png)
-17. Define the users and/or groups that you would like to provision to Tableau Online by choosing the desired values in **Scope** in the **Settings** section.
+16. Define the users and/or groups that you would like to provision to Tableau Online by choosing the desired values in **Scope** in the **Settings** section.
![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/ScopeSync.png)
-18. When you are ready to provision, click **Save**.
+17. When you are ready to provision, click **Save**.
![Tableau Online Provisioning](./media/tableau-online-provisioning-tutorial/SaveProvisioning.png)
@@ -171,7 +169,6 @@ For more information on how to read the Azure AD provisioning logs, see [Reporti
* [Managing user account provisioning for Enterprise Apps](../manage-apps/configure-automatic-user-provisioning-portal.md)
* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
## Next steps
* [Learn how to review logs and get reports on provisioning activity](../manage-apps/check-status-user-account-provisioning.md)
diff --git a/articles/active-directory/saas-apps/tableauonline-tutorial.md b/articles/active-directory/saas-apps/tableauonline-tutorial.md
index b810d0cc229fe..b9c3622e2a567 100644
--- a/articles/active-directory/saas-apps/tableauonline-tutorial.md
+++ b/articles/active-directory/saas-apps/tableauonline-tutorial.md
@@ -241,8 +241,8 @@ When you click the Tableau Online tile in the Access Panel, you should be automa
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/tableauserver-tutorial.md b/articles/active-directory/saas-apps/tableauserver-tutorial.md
index f859d29c8409e..110c2dc62288a 100644
--- a/articles/active-directory/saas-apps/tableauserver-tutorial.md
+++ b/articles/active-directory/saas-apps/tableauserver-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: c1917375-08aa-445c-a444-e22e23fa19e0
ms.service: active-directory
@@ -13,46 +13,35 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 12/12/2018
+ms.topic: tutorial
+ms.date: 03/22/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Tableau Server
In this tutorial, you learn how to integrate Tableau Server with Azure Active Directory (Azure AD).
-
Integrating Tableau Server with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Tableau Server.
-- You can enable your users to automatically get signed-on to Tableau Server (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Tableau Server.
+* You can enable your users to be automatically signed-in to Tableau Server (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md)
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Tableau Server, you need the following items:
-- An Azure AD subscription
-- A Tableau Server single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Tableau Server single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-1. Adding Tableau Server from the gallery
-2. Configuring and testing Azure AD single sign-on
+* Tableau Server supports **SP** initiated SSO
## Adding Tableau Server from the gallery
@@ -60,66 +49,86 @@ To configure the integration of Tableau Server into Azure AD, you need to add Ta
**To add Tableau Server from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![The Enterprise applications blade][2]
-
3. To add new application, click **New application** button on the top of dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
4. In the search box, type **Tableau Server**, select **Tableau Server** from result panel then click **Add** button to add the application.
- ![Tableau Server in the results list](./media/tableauserver-tutorial/tutorial-tableauserver-addfromgallery.png)
+ ![Tableau Server in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Tableau Server based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in Tableau Server is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Tableau Server needs to be established.
+In this section, you configure and test Azure AD single sign-on with Tableau Server based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Tableau Server needs to be established.
To configure and test Azure AD single sign-on with Tableau Server, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
2. **[Configure Tableau Server Single Sign-On](#configure-tableau-server-single-sign-on)** - to configure the Single Sign-On settings on application side.
3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-4. **[Create Tableau Server test user](#create-tableau-server-test-user)** - to have a counterpart of Britta Simon in Cisco Umbrella that is linked to the Azure AD representation of user.
-5. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Tableau Server test user](#create-tableau-server-test-user)** - to have a counterpart of Britta Simon in Tableau Server that is linked to the Azure AD representation of user.
6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Tableau Server application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with Tableau Server, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **Tableau Server** application integration page, select **Single sign-on**.
-**To configure Azure AD single sign-on with Tableau Server, perform the following steps:**
+ ![Configure single sign-on link](common/select-sso.png)
-1. In the Azure portal, on the **Tableau Server** application integration page, click **Single sign-on**.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure single sign-on link][4]
+ ![Single sign-on select mode](common/select-saml-option.png)
-2. On the **Select a Single sign-on method** dialog, Click **Select** for **SAML** mode to enable single sign-on.
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
+
+4. On the **Basic SAML Configuration** section, perform the following steps:
+
+ ![Tableau Server Domain and URLs single sign-on information](common/sp-identifier-reply.png)
+
+ a. In the **Sign-on URL** text box, type a URL using the following pattern:
+ `https://azure..link`
+
+ b. In the **Identifier** box, type a URL using the following pattern:
+ `https://azure..link`
+
+ c. In the **Reply URL** text box, type a URL using the following pattern:
+ `https://azure..link/wg/saml/SSO/index.html`
+
+ > [!NOTE]
+ > The preceding values are not real values. Update the values with the actual URL and identifier from the Tableau Server configuration page which is explained later in the tutorial.
- ![Configure Single Sign-On](common/tutorial-general-301.png)
+5. Tableau Server application expects a custom claim **username** which needs to be defined as below. This is being used as user identifier instead of Unique user identifier claim. You can manage the values of these attributes from the **User Attributes & Claims** section on application integration page. Click **Edit** button to open **User Attributes & Claims** dialog.
-3. Tableau Server application expects a custom claim **username** which needs to be defined as below. This is being used as user identifier instead of Unique user identifier claim. You can manage the values of these attributes from the **User Attributes & Claims** section on application integration page. Click **Edit** button to open **User Attributes & Claims** dialog.
+ ![image](common/edit-attribute.png)
- ![image](./media/tableauserver-tutorial/tutorial-tableauserver-attribute.png)
+6. In the **User Claims** section on the **User Attributes & Claims** dialog, configure SAML token attribute as shown in the image above and perform the following steps:
-4. In the **User Claims** section on the **User Attributes & Claims** dialog, configure SAML token attribute as shown in the image above and perform the following steps:
-
- | Attribute Name | Attribute Value | Namespace |
- | ---------------| --------------- | ----------- |
+ | Name | Source Attribute | Namespace |
+ | ---------------| --------------- | ----------- |
| username | user.userprincipalname | `http://schemas.xmlsoap.org/ws/2005/05/identity/claims` |
+ | | |
a. Click **Add new claim** to open the **Manage user claims** dialog.
- ![image](./media/tableauserver-tutorial/tutorial-tableauserver-add-attribute.png)
+ ![image](common/new-save-attribute.png)
- ![image](./media/tableauserver-tutorial/tutorial-tableauserver-manage-attribute.png)
+ ![image](common/new-attribute-details.png)
b. In the **Name** textbox, type the attribute name shown for that row.
@@ -129,32 +138,27 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
e. From the **Source attribute** list, type the attribute value shown for that row.
- f. Click **Save**.
+ f. Click **Ok**
-5. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+ g. Click **Save**.
- ![Configure Single Sign-On](common/editconfigure.png)
+7. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-6. On the **Basic SAML Configuration** section, perform the following steps:
+ ![The Certificate download link](common/metadataxml.png)
- a. In the **Sign-on URL** textbox, type a URL using the following pattern: `https://azure..link`
-
- b. In the **Identifier** textbox, type a URL using the following pattern: `https://azure..link`
+8. On the **Set up Tableau Server** section, copy the appropriate URL(s) as per your requirement.
- c. In the **Reply URL** textbox, type a URL using the following pattern: `https://azure..link/wg/saml/SSO/index.html`
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
- ![image](./media/tableauserver-tutorial/tutorial-tableauserver-url.png)
-
- > [!NOTE]
- > The preceding values are not real values. Update the values with the actual URL and identifier from the Tableau Server configuration page which is explained later in the tutorial.
+ a. Login URL
-7. On the **SAML Signing Certificate** page, in the **SAML Signing Certificate** section, click **Download** to download **Federation Metadata XML** and then save certificate file on your computer.
+ b. Azure AD Identifier
- ![The Certificate download link](./media/tableauserver-tutorial/tutorial-tableauserver-certificate.png)
+ c. Logout URL
-### Configure Tableau Server Single Sign-On
+### Configure Tableau Server Single Sign-On
-1. To get SSO configured for your application, you need to sign-on to your Tableau Server tenant as an administrator.
+1. To get SSO configured for your application, you need to sign in to your Tableau Server tenant as an administrator.
2. On the **CONFIGURATION** tab, select **User Identity & Access**, and then select the **Authentication** Method tab.
@@ -165,14 +169,14 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
![Configure Single Sign-On](./media/tableauserver-tutorial/tutorial-tableauserver-config.png)
a. For **Authentication Method**, select SAML.
-
+
b. Select the checkbox of **Enable SAML Authentication for the server**.
- c. Tableau Server return URL—The URL that Tableau Server users will be accessing, such as . Using `http://localhost` is not recommended. Using a URL with a trailing slash (for example, `http://tableau_server/`) is not supported. Copy **Tableau Server return URL** and paste it to Azure AD **Sign On URL** textbox in **Tableau Server Domain and URLs** section.
+ c. Tableau Server return URL—The URL that Tableau Server users will be accessing, such as . Using `http://localhost` is not recommended. Using a URL with a trailing slash (for example, `http://tableau_server/`) is not supported. Copy **Tableau Server return URL** and paste it in to **Sign On URL** textbox in **Basic SAML Configuration** section in the Azure portal
- d. SAML entity ID—The entity ID uniquely identifies your Tableau Server installation to the IdP. You can enter your Tableau Server URL again here, if you like, but it does not have to be your Tableau Server URL. Copy **SAML entity ID** and paste it to Azure AD **Identifier** textbox in **Tableau Server Domain and URLs** section.
+ d. SAML entity ID—The entity ID uniquely identifies your Tableau Server installation to the IdP. You can enter your Tableau Server URL again here, if you like, but it does not have to be your Tableau Server URL. Copy **SAML entity ID** and paste it in to **Identifier** textbox in **Basic SAML Configuration** section in the Azure portal
- e. Click the **Download XML Metadata File** and open it in the text editor application. Locate Assertion Consumer Service URL with Http Post and Index 0 and copy the URL. Now paste it to Azure AD **Reply URL** textbox in **Tableau Server Domain and URLs** section.
+ e. Click the **Download XML Metadata File** and open it in the text editor application. Locate Assertion Consumer Service URL with Http Post and Index 0 and copy the URL. Now paste it in to **Reply URL** textbox in **Basic SAML Configuration** section in the Azure portal
f. Locate your Federation Metadata file downloaded from Azure portal, and then upload it in the **SAML Idp metadata file**.
@@ -180,9 +184,8 @@ In this section, you enable Azure AD single sign-on in the Azure portal and conf
h. Click **Save**
- >[!NOTE]
- >Customer have to upload any certificate in the Tableau Server SAML SSO configuration and it will get ignored in the SSO flow.
- >If you need help configuring SAML on Tableau Server then please refer to this article [Configure SAML](https://onlinehelp.tableau.com/v2018.2/server/en-us/saml_config_steps_tsm_ui.htm).
+ > [!NOTE]
+ > Customer have to upload any certificate in the Tableau Server SAML SSO configuration and it will get ignored in the SSO flow. If you need help configuring SAML on Tableau Server then please refer to this article [Configure SAML](https://onlinehelp.tableau.com/v2018.2/server/en-us/saml_config_steps_tsm_ui.htm).
### Create an Azure AD test user
@@ -190,79 +193,71 @@ The objective of this section is to create a test user in the Azure portal calle
1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- ![Create Azure AD User][100]
+ ![The "Users and groups" and "All users" links](common/users.png)
2. Select **New user** at the top of the screen.
- ![Creating an Azure AD test user](common/create-aaduser-01.png)
+ ![New user Button](common/new-user.png)
3. In the User properties, perform the following steps.
- ![Creating an Azure AD test user](common/create-aaduser-02.png)
+ ![The User dialog box](common/user-properties.png)
- a. In the **Name** field, enter **BrittaSimon**.
+ a. In the **Name** field enter **BrittaSimon**.
- b. In the **User name** field, type **brittasimon\@yourcompanydomain.extension**
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`
For example, BrittaSimon@contoso.com
- c. Select **Properties**, select the **Show password** check box, and then write down the value that's displayed in the Password box.
-
- d. Select **Create**.
-
-### Create Tableau Server test user
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-The objective of this section is to create a user called Britta Simon in Tableau Server. You need to provision all the users in the Tableau server.
-
-That username of the user should match the value which you have configured in the Azure AD custom attribute of **username**. With the correct mapping the integration should work Configuring Azure AD Single Sign-On.
-
->[!NOTE]
->If you need to create a user manually, you need to contact the Tableau Server administrator in your organization.
+ d. Click **Create**.
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Tableau Server.
-1. In the Azure portal, select **Enterprise Applications**, select **All applications**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Tableau Server**.
- ![Assign User][201]
+ ![Enterprise applications blade](common/enterprise-applications.png)
2. In the applications list, select **Tableau Server**.
- ![Configure Single Sign-On](./media/tableauserver-tutorial/tutorial-tableauserver-app.png)
+ ![The Tableau Server link in the Applications list](common/all-applications.png)
-3. In the menu on the left, click **Users and groups**.
+3. In the menu on the left, select **Users and groups**.
- ![Assign User][202]
+ ![The "Users and groups" link](common/users-groups-blade.png)
-4. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![Assign User][203]
+ ![The Add Assignment pane](common/add-assign-user.png)
5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-6. In the **Add Assignment** dialog, select the **Assign** button.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+
+7. In the **Add Assignment** dialog click the **Assign** button.
+
+### Create Tableau Server test user
+
+The objective of this section is to create a user called Britta Simon in Tableau Server. You need to provision all the users in the Tableau server.
+
+That username of the user should match the value which you have configured in the Azure AD custom attribute of **username**. With the correct mapping the integration should work Configuring Azure AD Single Sign-On.
+
+> [!NOTE]
+> If you need to create a user manually, you need to contact the Tableau Server administrator in your organization.
### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the Tableau Server tile in the Access Panel, you should get automatically signed-on to your Tableau Server application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
-
-## Additional resources
+When you click the Tableau Server tile in the Access Panel, you should be automatically signed in to the Tableau Server for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+## Additional Resources
-
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[1]: common/tutorial-general-01.png
-[2]: common/tutorial-general-02.png
-[3]: common/tutorial-general-03.png
-[4]: common/tutorial-general-04.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[100]: common/tutorial-general-100.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
-[201]: common/tutorial-general-201.png
-[202]: common/tutorial-general-202.png
-[203]: common/tutorial-general-203.png
diff --git a/articles/active-directory/saas-apps/tangoanalytics-tutorial.md b/articles/active-directory/saas-apps/tangoanalytics-tutorial.md
index 6d803a118c3c8..aceccd3e29ca1 100644
--- a/articles/active-directory/saas-apps/tangoanalytics-tutorial.md
+++ b/articles/active-directory/saas-apps/tangoanalytics-tutorial.md
@@ -191,8 +191,8 @@ When you click the Tango Analytics tile in the Access Panel, you should be autom
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/target-process-tutorial.md b/articles/active-directory/saas-apps/target-process-tutorial.md
index 8052736ed1d9b..770902fb23940 100644
--- a/articles/active-directory/saas-apps/target-process-tutorial.md
+++ b/articles/active-directory/saas-apps/target-process-tutorial.md
@@ -229,8 +229,8 @@ When you click the TargetProcess tile in the Access Panel, you should be automat
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/tas-tutorial.md b/articles/active-directory/saas-apps/tas-tutorial.md
index 79dabfb4b1a95..93ae649cd26d4 100644
--- a/articles/active-directory/saas-apps/tas-tutorial.md
+++ b/articles/active-directory/saas-apps/tas-tutorial.md
@@ -225,9 +225,9 @@ When you click the TAS tile in the Access Panel, you should be automatically sig
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/teamphoria-tutorial.md b/articles/active-directory/saas-apps/teamphoria-tutorial.md
index 577e47efc384c..20ddd009fbdbd 100644
--- a/articles/active-directory/saas-apps/teamphoria-tutorial.md
+++ b/articles/active-directory/saas-apps/teamphoria-tutorial.md
@@ -234,9 +234,9 @@ When you click the Teamphoria tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/teamseer-tutorial.md b/articles/active-directory/saas-apps/teamseer-tutorial.md
index 6fc190dbfb71c..91ba7cf6b06cf 100644
--- a/articles/active-directory/saas-apps/teamseer-tutorial.md
+++ b/articles/active-directory/saas-apps/teamseer-tutorial.md
@@ -239,8 +239,8 @@ When you click the TeamSeer tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/teamwork-tutorial.md b/articles/active-directory/saas-apps/teamwork-tutorial.md
index 7dc6747782775..37ee28e92fa1f 100644
--- a/articles/active-directory/saas-apps/teamwork-tutorial.md
+++ b/articles/active-directory/saas-apps/teamwork-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: bd4413c2-0d7c-41a7-aba4-b7a7a28c9448
ms.service: active-directory
@@ -13,8 +13,8 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 04/04/2017
+ms.topic: tutorial
+ms.date: 08-04-2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -22,203 +22,181 @@ ms.collection: M365-identity-device-management
# Tutorial: Azure Active Directory integration with Teamwork.com
In this tutorial, you learn how to integrate Teamwork.com with Azure Active Directory (Azure AD).
-
Integrating Teamwork.com with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Teamwork.com.
-- You can enable your users to automatically get signed-on to Teamwork.com (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Teamwork.com.
+* You can enable your users to be automatically signed-in to Teamwork.com (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Teamwork.com, you need the following items:
-- An Azure AD subscription
-- A Teamwork.com single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Teamwork.com single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Teamwork.com from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Teamwork.com supports **SP** initiated SSO
## Adding Teamwork.com from the gallery
+
To configure the integration of Teamwork.com into Azure AD, you need to add Teamwork.com from the gallery to your list of managed SaaS apps.
**To add Teamwork.com from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
-
- ![The Azure Active Directory button][1]
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click the **Azure Active Directory** icon.
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+ ![The Azure Active Directory button](common/select-azuread.png)
- ![The Enterprise applications blade][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The New application button][3]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
-1. In the search box, type **Teamwork.com**, select **Teamwork.com** from result panel then click **Add** button to add the application.
+3. To add a new application, click the **New application** button at the top of the dialog.
- ![Teamwork.com in the results list](./media/teamwork-tutorial/tutorial_teamwork_addfromgallery.png)
+ ![The New application button](common/add-new-app.png)
-## Configure and test Azure AD single sign-on
+4. In the search box, type **Teamwork.com**, select **Teamwork.com** from the result panel then click the **Add** button to add the application.
-In this section, you configure and test Azure AD single sign-on with Teamwork.com based on a test user called "Britta Simon".
+ ![Teamwork.com in the results list](common/search-new-app.png)
-For single sign-on to work, Azure AD needs to know what the counterpart user in Teamwork.com is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Teamwork.com needs to be established.
+## Configure and test Azure AD single sign-on
-In Teamwork.com, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+In this section, you configure and test Azure AD single sign-on with Teamwork.com based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Teamwork.com needs to be established.
To configure and test Azure AD single sign-on with Teamwork.com, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a Teamwork.com test user](#create-a-teamworkcom-test-user)** - to have a counterpart of Britta Simon in Teamwork.com that is linked to the Azure AD representation of user.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure Teamwork.com Single Sign-On](#configure-teamworkcom-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Teamwork.com test user](#create-teamworkcom-test-user)** - to have a counterpart of Britta Simon in Teamwork.com that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Teamwork.com application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with Teamwork.com, perform the following steps:
-**To configure Azure AD single sign-on with Teamwork.com, perform the following steps:**
+1. In the [Azure portal](https://portal.azure.com/), on the **Teamwork.com** application integration page, select **Single sign-on**.
-1. In the Azure portal, on the **Teamwork.com** application integration page, click **Single sign-on**.
+ ![Configure single sign-on link](common/select-sso.png)
- ![Configure single sign-on link][4]
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Single sign-on dialog box](./media/teamwork-tutorial/tutorial_teamwork_samlbase.png)
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. On the **Teamwork.com Domain and URLs** section, perform the following steps:
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Teamwork.com Domain and URLs single sign-on information](./media/teamwork-tutorial/tutorial_teamwork_url.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- a. In the **Sign-on URL** textbox, type a URL using the following pattern: `https://.teamwork.com`
+4. On the **Basic SAML Configuration** section, perform the following steps:
- b. In the **Identifier** textbox, type the URL:
+ ![Teamwork.com Domain and URLs single sign-on information](common/sp-identifier.png)
- |||
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://.teamwork.com`
+
+ b. In the **Identifier (Entity ID)** text box, type the URL:
+
+ | | |
|-|-|
| `https://teamwork.com/saml`|
| `https://eu.teamwork.com/saml`|
- > [!NOTE]
- > This Sign-on URL value is not real. Update this value with the actual Sign-On URL. Contact [Teamwork.com support team](mailto:support@teamwork.com) to get this value.
+ > [!NOTE]
+ > This Sign-on URL value is not real. Update this value with the actual Sign-On URL. Contact [Teamwork.com support team](mailto:support@teamwork.com) to get this value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+4. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
- ![The Certificate download link](./media/teamwork-tutorial/tutorial_teamwork_certificate.png)
+ ![The Certificate download link](common/metadataxml.png)
-1. Click **Save** button.
+6. On the **Set up Teamwork.com** section, copy the appropriate URL(s) as per your requirement.
- ![Configure Single Sign-On Save button](./media/teamwork-tutorial/tutorial_general_400.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-1. To configure single sign-on on **Teamwork.com** side, you need to send the downloaded **Metadata XML** to [Teamwork.com support team](mailto:support@teamwork.com). They set this setting to have the SAML SSO connection set properly on both sides.
+ a. Login URL
-### Create an Azure AD test user
+ b. Azure AD Identifier
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ c. Logout URL
- ![Create an Azure AD test user][100]
+### Configure Teamwork.com Single Sign-On
-**To create a test user in Azure AD, perform the following steps:**
+To configure single sign-on on **Teamwork.com** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [Teamwork.com support team](mailto:support@teamwork.com). They set this setting to have the SAML SSO connection set properly on both sides.
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+### Create an Azure AD test user
- ![The Azure Active Directory button](./media/teamwork-tutorial/create_aaduser_01.png)
-
-1. To display the list of users, go to **Users and groups**, and then click **All users**.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- ![The "Users and groups" and "All users" links](./media/teamwork-tutorial/create_aaduser_02.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-1. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+ ![The "Users and groups" and "All users" links](common/users.png)
- ![The Add button](./media/teamwork-tutorial/create_aaduser_03.png)
+2. Select **New user** at the top of the screen.
-1. In the **User** dialog box, perform the following steps:
+ ![New user Button](common/new-user.png)
- ![The User dialog box](./media/teamwork-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** box, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** box, type the email address of user Britta Simon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-
-### Create a Teamwork.com test user
-
-In this section, you create a user called Britta Simon in Teamwork.com. Work with [Teamwork.com support team](mailto:support@teamwork.com) to add the users in the Teamwork.com platform. Users must be created and activated before you use single sign-on.
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Teamwork.com.
-![Assign the user role][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Teamwork.com**.
+
+ ![Enterprise applications blade](common/enterprise-applications.png)
-**To assign Britta Simon to Teamwork.com, perform the following steps:**
+2. In the applications list, select **Teamwork.com**.
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+ ![The Teamwork.com link in the Applications list](common/all-applications.png)
- ![Assign User][201]
+3. In the menu on the left, select **Users and groups**.
-1. In the applications list, select **Teamwork.com**.
+ ![The "Users and groups" link](common/users-groups-blade.png)
- ![The Teamwork.com link in the Applications list](./media/teamwork-tutorial/tutorial_teamwork_app.png)
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. In the menu on the left, click **Users and groups**.
+ ![The Add Assignment pane](common/add-assign-user.png)
- ![The "Users and groups" link][202]
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
- ![The Add Assignment pane][203]
+7. In the **Add Assignment** dialog click the **Assign** button.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+### Create Teamwork.com test user
-1. Click **Select** button on **Users and groups** dialog.
+In this section, you create a user called Britta Simon in Teamwork.com. Work with [Teamwork.com support team](mailto:support@teamwork.com) to add the users in the Teamwork.com platform. Users must be created and activated before you use single sign-on.
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Test single sign-on
+### Test single sign-on
In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-When you click the Teamwork.com tile in the Access Panel, you should get automatically signed-on to your Teamwork.com application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+When you click the Teamwork.com tile in the Access Panel, you should be automatically signed in to the Teamwork.com for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
## Additional resources
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
-
-
-
-[1]: ./media/teamwork-tutorial/tutorial_general_01.png
-[2]: ./media/teamwork-tutorial/tutorial_general_02.png
-[3]: ./media/teamwork-tutorial/tutorial_general_03.png
-[4]: ./media/teamwork-tutorial/tutorial_general_04.png
-
-[100]: ./media/teamwork-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/teamwork-tutorial/tutorial_general_200.png
-[201]: ./media/teamwork-tutorial/tutorial_general_201.png
-[202]: ./media/teamwork-tutorial/tutorial_general_202.png
-[203]: ./media/teamwork-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/textmagic-tutorial.md b/articles/active-directory/saas-apps/textmagic-tutorial.md
index 6ad39514a0186..0283ac15c9204 100644
--- a/articles/active-directory/saas-apps/textmagic-tutorial.md
+++ b/articles/active-directory/saas-apps/textmagic-tutorial.md
@@ -236,8 +236,8 @@ When you click the TextMagic tile in the Access Panel, you should be automatical
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/thefundingportal-tutorial.md b/articles/active-directory/saas-apps/thefundingportal-tutorial.md
index 98605412748f5..ae91c2edaec2b 100644
--- a/articles/active-directory/saas-apps/thefundingportal-tutorial.md
+++ b/articles/active-directory/saas-apps/thefundingportal-tutorial.md
@@ -220,8 +220,8 @@ When you click The Funding Portal tile in the Access Panel, you should be automa
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
\ No newline at end of file
diff --git a/articles/active-directory/saas-apps/thirdlight-tutorial.md b/articles/active-directory/saas-apps/thirdlight-tutorial.md
index d84d7befa7761..e5fff9a254e67 100644
--- a/articles/active-directory/saas-apps/thirdlight-tutorial.md
+++ b/articles/active-directory/saas-apps/thirdlight-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 168aae9a-54ee-4c2b-ab12-650a2c62b901
ms.service: active-directory
@@ -12,247 +13,219 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/16/2017
+ms.topic: tutorial
+ms.date: 03/25/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with ThirdLight
In this tutorial, you learn how to integrate ThirdLight with Azure Active Directory (Azure AD).
-
Integrating ThirdLight with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to ThirdLight
-- You can enable your users to automatically get signed-on to ThirdLight (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to ThirdLight.
+* You can enable your users to be automatically signed-in to ThirdLight (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with ThirdLight, you need the following items:
-- An Azure AD subscription
-- A ThirdLight single-sign on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* ThirdLight single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding ThirdLight from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* ThirdLight supports **SP** initiated SSO
## Adding ThirdLight from the gallery
+
To configure the integration of ThirdLight into Azure AD, you need to add ThirdLight from the gallery to your list of managed SaaS apps.
**To add ThirdLight from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **ThirdLight**.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/thirdlight-tutorial/tutorial_thirdlight_search.png)
+4. In the search box, type **ThirdLight**, select **ThirdLight** from result panel then click **Add** button to add the application.
-1. In the results panel, select **ThirdLight**, and then click **Add** button to add the application.
+ ![ThirdLight in the results list](common/search-new-app.png)
- ![Creating an Azure AD test user](./media/thirdlight-tutorial/tutorial_thirdlight_addfromgallery.png)
+## Configure and test Azure AD single sign-on
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with ThirdLight based on a test user called "Britta Simon."
+In this section, you configure and test Azure AD single sign-on with ThirdLight based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in ThirdLight needs to be established.
-For single sign-on to work, Azure AD needs to know what the counterpart user in ThirdLight is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in ThirdLight needs to be established.
+To configure and test Azure AD single sign-on with ThirdLight, you need to complete the following building blocks:
-This link relationship is established by assigning the value of the **user name** in Azure AD as the value of the **Username** in ThirdLight.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure ThirdLight Single Sign-On](#configure-thirdlight-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create ThirdLight test user](#create-thirdlight-test-user)** - to have a counterpart of Britta Simon in ThirdLight that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-To configure and test Azure AD single sign-on with ThirdLight, you need to complete the following building blocks:
+### Configure Azure AD single sign-on
+
+In this section, you enable Azure AD single sign-on in the Azure portal.
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a ThirdLight test user](#creating-a-thirdlight-test-user)** - to have a counterpart of Britta Simon in ThirdLight that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+To configure Azure AD single sign-on with ThirdLight, perform the following steps:
-### Configuring Azure AD single sign-on
+1. In the [Azure portal](https://portal.azure.com/), on the **ThirdLight** application integration page, select **Single sign-on**.
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your ThirdLight application.
+ ![Configure single sign-on link](common/select-sso.png)
-**To configure Azure AD single sign-on with ThirdLight, perform the following steps:**
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. In the Azure portal, on the **ThirdLight** application integration page, click **Single sign-on**.
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Configure Single Sign-On][4]
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/thirdlight-tutorial/tutorial_thirdlight_samlbase.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
-1. On the **ThirdLight Domain and URLs** section, perform the following steps:
+4. On the **Basic SAML Configuration** section, perform the following steps:
- ![Configure Single Sign-On](./media/thirdlight-tutorial/tutorial_thirdlight_url.png)
+ ![ThirdLight Domain and URLs single sign-on information](common/sp-identifier.png)
- a. In the **Sign-on URL** textbox, type a URL using the following pattern: `https://.thirdlight.com/`
+ a. In the **Sign on URL** text box, type a URL using the following pattern:
+ `https://.thirdlight.com/`
- b. In the **Identifier** textbox, type a URL using the following pattern: `https://.thirdlight.com/saml/sp`
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+ `https://.thirdlight.com/saml/sp`
- > [!NOTE]
- > These values are not real. Update these values with the actual Sign-On URL and Identiifer. Contact [ThirdLight Client support team](https://www.thirdlight.com/support) to get these values.
-
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the XML file on your computer.
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign on URL and Identifier. Contact [ThirdLight Client support team](https://www.thirdlight.com/support) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
- ![Configure Single Sign-On](./media/thirdlight-tutorial/tutorial_thirdlight_certificate.png)
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-1. Click **Save** button.
+ ![The Certificate download link](common/metadataxml.png)
- ![Configure Single Sign-On](./media/thirdlight-tutorial/tutorial_general_400.png)
+6. On the **Set up ThirdLight** section, copy the appropriate URL(s) as per your requirement.
-1. In a different web browser window, log in to your ThirdLight company site as an administrator.
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
+
+ a. Login URL
+
+ b. Azure AD Identifier
+
+ c. Logout URL
+
+### Configure ThirdLight Single Sign-On
+
+1. In a different web browser window, sign in to your ThirdLight company site as an administrator.
1. Go to **Configuration \> System Administration**, and then click **SAML2**.
-
+
![System Administration](./media/thirdlight-tutorial/ic805843.png "System Administration")
1. In the SAML2 configuration section, perform the following steps:
-
- ![SAML Single Sign-On](./media/thirdlight-tutorial/ic805844.png "SAML Single Sign-On")
-
- a. Select **Enable SAML2 Single Sign-On**.
-
- b. As **Source for IdP Metadata**, select **Load IdP Metadata from XML**.
-
- c. Open the downloaded metadata file, copy the content, and then paste it
- into the **IdP Metadata XML** textbox.
-
- d. Click **Save SAML2 settings**.
-
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
-
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+
+ ![SAML Single Sign-On](./media/thirdlight-tutorial/ic805844.png "SAML Single Sign-On")
-![Create Azure AD User][100]
+ a. Select **Enable SAML2 Single Sign-On**.
-**To create a test user in Azure AD, perform the following steps:**
+ b. As **Source for IdP Metadata**, select **Load IdP Metadata from XML**.
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+ c. Open the downloaded metadata file from the Azure portal, copy the content, and then paste it into the **IdP Metadata XML** textbox.
- ![Creating an Azure AD test user](./media/thirdlight-tutorial/create_aaduser_01.png)
+ d. Click **Save SAML2 settings**.
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/thirdlight-tutorial/create_aaduser_02.png)
+### Create an Azure AD test user
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/thirdlight-tutorial/create_aaduser_03.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/thirdlight-tutorial/create_aaduser_04.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- a. In the **Name** textbox, type **BrittaSimon**.
+ ![The "Users and groups" and "All users" links](common/users.png)
- b. In the **User name** textbox, type the **email address** of Britta Simon.
+2. Select **New user** at the top of the screen.
- c. Select **Show Password** and write down the value of the **Password**.
+ ![New user Button](common/new-user.png)
- d. Click **Create**.
-
-### Creating a ThirdLight test user
+3. In the User properties, perform the following steps.
-To enable Azure AD users to log in to ThirdLight, they must be provisioned into ThirdLight.
-In the case of ThirdLight, provisioning is a manual task.
+ ![The User dialog box](common/user-properties.png)
-**To provision a user account, perform the following steps:**
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type `brittasimon@yourcompanydomain.extension`. For example, BrittaSimon@contoso.com.
-1. Log in to your **ThirdLight** company site as an administrator.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-1. Go to **Users** tab.
+ d. Click **Create**.
-1. Select **Users and Groups**.
+### Assign the Azure AD test user
-1. Click **Add new User** button.
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to ThirdLight.
-1. Enter **the Username, Name or Description, Email, Choose a Preset or Group of New Members** of a valid AAD account you want to provision.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **ThirdLight**.
-1. Click **Create**.
+ ![Enterprise applications blade](common/enterprise-applications.png)
->[!NOTE]
->You can use any other Thirdlight user account creation tools or APIs provided by Thirdlight to provision AAD user accounts.
+2. In the applications list, select **ThirdLight**.
-### Assigning the Azure AD test user
+ ![The ThirdLight link in the Applications list](common/all-applications.png)
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to ThirdLight.
+3. In the menu on the left, select **Users and groups**.
+
+ ![The "Users and groups" link](common/users-groups-blade.png)
-![Assign User][200]
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-**To assign Britta Simon to ThirdLight, perform the following steps:**
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![Assign User][201]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. In the applications list, select **ThirdLight**.
+7. In the **Add Assignment** dialog click the **Assign** button.
- ![Configure Single Sign-On](./media/thirdlight-tutorial/tutorial_thirdlight_app.png)
+### Create ThirdLight test user
-1. In the menu on the left, click **Users and groups**.
+To enable Azure AD users to sign in to ThirdLight, they must be provisioned into ThirdLight.
+In the case of ThirdLight, provisioning is a manual task.
- ![Assign User][202]
+**To provision a user account, perform the following steps:**
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+1. Sign in to your **ThirdLight** company site as an administrator.
- ![Assign User][203]
+1. Go to **Users** tab.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+1. Select **Users and Groups**.
-1. Click **Select** button on **Users and groups** dialog.
+1. Click **Add new User** button.
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+1. Enter **the Username, Name or Description, Email, Choose a Preset or Group of New Members** of a valid AAD account you want to provision.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+1. Click **Create**.
-When you click the ThirdLight tile in the Access Panel, you should get automatically signed-on to your ThirdLight application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+> [!NOTE]
+> You can use any other Thirdlight user account creation tools or APIs provided by Thirdlight to provision AAD user accounts.
-## Additional resources
+### Test single sign-on
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-
+When you click the ThirdLight tile in the Access Panel, you should be automatically signed in to the ThirdLight for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-[1]: ./media/thirdlight-tutorial/tutorial_general_01.png
-[2]: ./media/thirdlight-tutorial/tutorial_general_02.png
-[3]: ./media/thirdlight-tutorial/tutorial_general_03.png
-[4]: ./media/thirdlight-tutorial/tutorial_general_04.png
+## Additional Resources
-[100]: ./media/thirdlight-tutorial/tutorial_general_100.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[200]: ./media/thirdlight-tutorial/tutorial_general_200.png
-[201]: ./media/thirdlight-tutorial/tutorial_general_201.png
-[202]: ./media/thirdlight-tutorial/tutorial_general_202.png
-[203]: ./media/thirdlight-tutorial/tutorial_general_203.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/thirdpartytrust-tutorial.md b/articles/active-directory/saas-apps/thirdpartytrust-tutorial.md
index ef976d67df50b..a6f90e5ce5b0f 100644
--- a/articles/active-directory/saas-apps/thirdpartytrust-tutorial.md
+++ b/articles/active-directory/saas-apps/thirdpartytrust-tutorial.md
@@ -191,9 +191,9 @@ When you click the ThirdPartyTrust tile in the Access Panel, you should be autom
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/thoughtworks-mingle-tutorial.md b/articles/active-directory/saas-apps/thoughtworks-mingle-tutorial.md
index 753911765f08e..1e3d1aff37559 100644
--- a/articles/active-directory/saas-apps/thoughtworks-mingle-tutorial.md
+++ b/articles/active-directory/saas-apps/thoughtworks-mingle-tutorial.md
@@ -229,9 +229,9 @@ When you click the Thoughtworks Mingle tile in the Access Panel, you should be a
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/thousandeyes-provisioning-tutorial.md b/articles/active-directory/saas-apps/thousandeyes-provisioning-tutorial.md
index a0d3b61b712d6..4933267ad4bc0 100644
--- a/articles/active-directory/saas-apps/thousandeyes-provisioning-tutorial.md
+++ b/articles/active-directory/saas-apps/thousandeyes-provisioning-tutorial.md
@@ -14,7 +14,7 @@ ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
ms.topic: article
-ms.date: 01/26/2018
+ms.date: 03/28/2019
ms.author: asmalser-msft
ms.collection: M365-identity-device-management
@@ -22,22 +22,18 @@ ms.collection: M365-identity-device-management
# Tutorial: Configure ThousandEyes for automatic user provisioning
-
The objective of this tutorial is to show you the steps you need to perform in ThousandEyes and Azure AD to automatically provision and de-provision user accounts from Azure AD to ThousandEyes.
## Prerequisites
The scenario outlined in this tutorial assumes that you already have the following items:
-* An Azure Active directory tenant
-* An active [ThousandEyes account](https://www.thousandeyes.com/pricing)
-* A ThousandEyes user account that has been assigned a Role which includes the following 3 permissions:
- * view all users
- * edit user
- * API access permissions
+* An Azure Active directory tenant
+* A ThousandEyes tenant with the [Standard plan](https://www.thousandeyes.com/pricing) or better enabled
+* A user account in ThousandEyes with Admin permissions
> [!NOTE]
-> The Azure AD provisioning integration relies on the [ThousandEyes SCIM API](https://success.thousandeyes.com/PublicArticlePage?articleIdParam=kA044000000CnWrCAK_ThousandEyes-support-for-SCIM).
+> The Azure AD provisioning integration relies on the [ThousandEyes SCIM API](https://success.thousandeyes.com/PublicArticlePage?articleIdParam=kA044000000CnWrCAK), which is available to ThousandEyes teams on the Standard plan or better.
## Assigning users to ThousandEyes
@@ -49,34 +45,19 @@ Before configuring and enabling the provisioning service, you need to decide wha
### Important tips for assigning users to ThousandEyes
-* It is recommended that a single Azure AD user is assigned to ThousandEyes to test the provisioning configuration. Additional users and/or groups may be assigned later.
-
-* When assigning a user to ThousandEyes, you must select either the **User** role or another valid application-specific role (if available) in the assignment dialogue. The **Default Access** role does not work for provisioning, and these users are skipped.
-
-## Configure auto-provisioned user roles in ThousandEyes
-
-For each account group, you are auto-provisioning users into you can configure a set of roles to be applied when the new user account is created. By default, auto-provisioning users are assigned the _Regular User_ role for all account groups unless configured otherwise.
-
-1. To specify a new set of roles for auto-provisioned users log-into ThousandEyes and navigate to the SCIM Settings section **> your user icon in the top right corner > Account Settings > Organization > Security & Authentication.**
-
- ![Navigate to SCIM API Settings](https://monosnap.com/file/kqY8Il7eysGFAiCLCQWFizzM27PiBG)
-
-2. Add an entry for each account group, assign a set of roles then *save* your changes.
-
- ![Set default roles and account groups for users created via SCIM API](https://monosnap.com/file/16siam6U8xDQH1RTnaxnmIxvsZuNZG)
+* It is recommended that a single Azure AD user is assigned to ThousandEyes to test the provisioning configuration. Additional users and/or groups may be assigned later.
+* When assigning a user to ThousandEyes, you must select either the **User** role, or another valid application-specific role (if available) in the assignment dialog. The **Default Access** role does not work for provisioning, and these users are skipped.
## Configuring user provisioning to ThousandEyes
This section guides you through connecting your Azure AD to ThousandEyes's user account provisioning API, and configuring the provisioning service to create, update, and disable assigned user accounts in ThousandEyes based on user and group assignment in Azure AD.
> [!TIP]
-> You may also choose to enabled SAML-based Single Sign-On (SSO) for ThousandEyes, following the [instructions provided in Azure knowledge base](https://docs.microsoft.com/azure/active-directory/saas-apps/thousandeyes-tutorial) to complete SSO. SSO can be configured independently of automatic provisioning, though these two features complement each other.
-
+> You may also choose to enabled SAML-based Single Sign-On for ThousandEyes, following the instructions provided in [Azure portal](https://portal.azure.com). Single sign-on can be configured independently of automatic provisioning, though these two features compliment each other.
### Configure automatic user account provisioning to ThousandEyes in Azure AD
-
1. In the [Azure portal](https://portal.azure.com), browse to the **Azure Active Directory > Enterprise Apps > All applications** section.
2. If you have already configured ThousandEyes for single sign-on, search for your instance of ThousandEyes using the search field. Otherwise, select **Add** and search for **ThousandEyes** in the application gallery. Select ThousandEyes from the search results, and add it to your list of applications.
@@ -88,7 +69,7 @@ This section guides you through connecting your Azure AD to ThousandEyes's user
![ThousandEyes Provisioning](./media/thousandeyes-provisioning-tutorial/ThousandEyes1.png)
5. Under the **Admin Credentials** section, input the **OAuth Bearer Token**
-generated by your ThousandEyes' account (you can find and or generate a token under your ThousandEyes account **Profile** section).
+generated by your ThousandEyes's account (you can find and or generate a token under your ThousandEyes account **Profile** section).
![ThousandEyes Provisioning](./media/thousandeyes-provisioning-tutorial/ThousandEyes2.png)
@@ -96,7 +77,7 @@ generated by your ThousandEyes' account (you can find and or generate a token un
7. Enter the email address of a person or group who should receive provisioning error notifications in the **Notification Email** field, and check the checkbox "Send an email notification when a failure occurs."
-8. Click **Save**.
+8. Click **Save**.
9. Under the Mappings section, select **Synchronize Azure Active Directory Users to ThousandEyes**.
@@ -104,13 +85,12 @@ generated by your ThousandEyes' account (you can find and or generate a token un
11. To enable the Azure AD provisioning service for ThousandEyes, change the **Provisioning Status** to **On** in the **Settings** section
-12. Click **Save**.
+12. Click **Save**.
This operation starts the initial synchronization of any users and/or groups assigned to ThousandEyes in the Users and Groups section. The initial sync takes longer to perform than subsequent syncs, which occur approximately every 40 minutes as long as the service is running. You can use the **Synchronization Details** section to monitor progress and follow links to provisioning activity logs, which describe all actions performed by the provisioning service.
For more information on how to read the Azure AD provisioning logs, see [Reporting on automatic user account provisioning](../manage-apps/check-status-user-account-provisioning.md).
-
## Additional resources
* [Managing user account provisioning for Enterprise Apps](../manage-apps/configure-automatic-user-provisioning-portal.md)
diff --git a/articles/active-directory/saas-apps/thousandeyes-tutorial.md b/articles/active-directory/saas-apps/thousandeyes-tutorial.md
index ca70b79f7f8eb..fd0c175f1004a 100644
--- a/articles/active-directory/saas-apps/thousandeyes-tutorial.md
+++ b/articles/active-directory/saas-apps/thousandeyes-tutorial.md
@@ -246,9 +246,9 @@ When you click the ThousandEyes tile in the Access Panel, you should be automati
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/tidemark-tutorial.md b/articles/active-directory/saas-apps/tidemark-tutorial.md
index bba431dd45de8..e470fd3f04d6e 100644
--- a/articles/active-directory/saas-apps/tidemark-tutorial.md
+++ b/articles/active-directory/saas-apps/tidemark-tutorial.md
@@ -200,9 +200,9 @@ When you click the Tidemark tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/tigertext-tutorial.md b/articles/active-directory/saas-apps/tigertext-tutorial.md
index e25978b6260f1..2bc8fb44126f5 100644
--- a/articles/active-directory/saas-apps/tigertext-tutorial.md
+++ b/articles/active-directory/saas-apps/tigertext-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 03f1e128-5bcb-4e49-b6a3-fe22eedc6d5e
ms.service: active-directory
@@ -12,210 +13,186 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 07/21/2017
+ms.topic: tutorial
+ms.date: 03/29/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with TigerText Secure Messenger
In this tutorial, you learn how to integrate TigerText Secure Messenger with Azure Active Directory (Azure AD).
-
Integrating TigerText Secure Messenger with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to TigerText Secure Messenger
-- You can enable your users to automatically get signed-on to TigerText Secure Messenger (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to TigerText Secure Messenger.
+* You can enable your users to be automatically signed-in to TigerText Secure Messenger (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with TigerText Secure Messenger, you need the following items:
-- An Azure AD subscription
-- A TigerText Secure Messenger single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get one-month trial [here](https://azure.microsoft.com/pricing/free-trial/)
+* TigerText Secure Messenger single sign-on enabled subscription
-To test the steps in this tutorial, you should follow these recommendations:
+## Scenario description
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+* TigerText Secure Messenger supports **SP** initiated SSO
-1. Add TigerText Secure Messenger from the gallery
-1. Configure and test Azure AD single sign-on
+## Adding TigerText Secure Messenger from the gallery
-## Add TigerText Secure Messenger from the gallery
To configure the integration of TigerText Secure Messenger into Azure AD, you need to add TigerText Secure Messenger from the gallery to your list of managed SaaS apps.
**To add TigerText Secure Messenger from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Active Directory][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Applications][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **TigerText Secure Messenger**, select **TigerText Secure Messenger** from result panel then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![Add from gallery](./media/tigertext-tutorial/tutorial_tigertext_addfromgallery.png)
+4. In the search box, type **TigerText Secure Messenger**, select **TigerText Secure Messenger** from result panel then click **Add** button to add the application.
-## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with TigerText Secure Messenger based on a test user called "Britta Simon".
+ ![TigerText Secure Messenger in the results list](common/search-new-app.png)
-For single sign-on to work, Azure AD needs to know what the counterpart user in TigerText Secure Messenger is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in TigerText Secure Messenger needs to be established.
+## Configure and test Azure AD single sign-on
-In TigerText Secure Messenger, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+In this section, you configure and test Azure AD single sign-on with TigerText Secure Messenger based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in TigerText Secure Messenger needs to be established.
To configure and test Azure AD single sign-on with TigerText Secure Messenger, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a TigerText Secure Messenger test user](#create-a-tigertext-secure-messenger-test-user)** - to have a counterpart of Britta Simon in TigerText Secure Messenger that is linked to the Azure AD representation of user.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test Single Sign-On](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure TigerText Secure Messenger Single Sign-On](#configure-tigertext-secure-messenger-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create TigerText Secure Messenger test user](#create-tigertext-secure-messenger-test-user)** - to have a counterpart of Britta Simon in TigerText Secure Messenger that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your TigerText Secure Messenger application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with TigerText Secure Messenger, perform the following steps:**
+To configure Azure AD single sign-on with TigerText Secure Messenger, perform the following steps:
-1. In the Azure portal, on the **TigerText Secure Messenger** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **TigerText Secure Messenger** application integration page, select **Single sign-on**.
- ![Configure Single Sign-On][4]
+ ![Configure single sign-on link](common/select-sso.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![SAML-based Sign-on](./media/tigertext-tutorial/tutorial_tigertext_samlbase.png)
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. On the **TigerText Secure Messenger Domain and URLs** section, perform the following steps:
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![TigerText Secure Messenger Domain and URLs section](./media/tigertext-tutorial/tutorial_tigertext_url.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- a. In the **Sign-on URL** textbox, type URL as: `https://home.tigertext.com`
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- b. In the **Identifier** textbox, type a URL using the following pattern: `https://saml-lb.tigertext.me/v1/organization/`
+4. On the **Basic SAML Configuration** section, perform the following steps:
- > [!NOTE]
- > This value is not real. Update this value with the actual Identifier. Contact [TigerText Secure Messenger Client support team](mailTo:prosupport@tigertext.com) to get this value.
-
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+ ![TigerText Secure Messenger Domain and URLs single sign-on information](common/sp-identifier.png)
- ![SAML Signing Certificate section](./media/tigertext-tutorial/tutorial_tigertext_certificate.png)
+ a. In the **Sign on URL** text box, type a URL:
+ `https://home.tigertext.com`
-1. Click **Save** button.
+ b. In the **Identifier (Entity ID)** text box, type a URL using the following pattern:
+ `https://saml-lb.tigertext.me/v1/organization/`
- ![Save Button](./media/tigertext-tutorial/tutorial_general_400.png)
+ > [!NOTE]
+ > The Identifier value is not real. Update this value with the actual Identifier. Contact [TigerText Secure Messenger Client support team](mailto:prosupport@tigertext.com) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. To get single sign-on configured for your application, contact [TigerText Secure Messenger support team](mailTo:prosupport@tigertext.com) and provide them the **Downloaded metadata**.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+ ![The Certificate download link](common/metadataxml.png)
-### Create an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+6. On the **Set up TigerText Secure Messenger** section, copy the appropriate URL(s) as per your requirement.
-![Create Azure AD User][100]
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-**To create a test user in Azure AD, perform the following steps:**
+ a. Login URL
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+ b. Azure AD Identifier
- ![Creating an Azure AD test user](./media/tigertext-tutorial/create_aaduser_01.png)
+ c. Logout URL
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Users and groups->All users](./media/tigertext-tutorial/create_aaduser_02.png)
+### Configure TigerText Secure Messenger Single Sign-On
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Add Button](./media/tigertext-tutorial/create_aaduser_03.png)
+To configure single sign-on on **TigerText Secure Messenger** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [TigerText Secure Messenger support team](mailto:prosupport@tigertext.com). They set this setting to have the SAML SSO connection set properly on both sides.
-1. On the **User** dialog page, perform the following steps:
-
- ![User dialog](./media/tigertext-tutorial/create_aaduser_04.png)
+### Create an Azure AD test user
- a. In the **Name** textbox, type **BrittaSimon**.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- c. Select **Show Password** and write down the value of the **Password**.
+ ![The "Users and groups" and "All users" links](common/users.png)
- d. Click **Create**.
-
-### Create a TigerText Secure Messenger test user
+2. Select **New user** at the top of the screen.
-In this section, you create a user called Britta Simon in TigerText. Please reach out to [TigerText Secure Messenger Client support team](mailTo:prosupport@tigertext.com) to add the users in the TigerText platform.
+ ![New user Button](common/new-user.png)
-### Assign the Azure AD test user
+3. In the User properties, perform the following steps.
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to TigerText Secure Messenger.
+ ![The User dialog box](common/user-properties.png)
+
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
-![Assign User][200]
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+
+ d. Click **Create**.
-**To assign Britta Simon to TigerText Secure Messenger, perform the following steps:**
+### Assign the Azure AD test user
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to TigerText Secure Messenger.
- ![Assign User][201]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **TigerText Secure Messenger**.
-1. In the applications list, select **TigerText Secure Messenger**.
+ ![Enterprise applications blade](common/enterprise-applications.png)
- ![TigerText Secure Messenger in app list](./media/tigertext-tutorial/tutorial_tigertext_app.png)
+2. In the applications list, select **TigerText Secure Messenger**.
-1. In the menu on the left, click **Users and groups**.
+ ![The TigerText Secure Messenger link in the Applications list](common/all-applications.png)
- ![Assign User][202]
+3. In the menu on the left, select **Users and groups**.
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+ ![The "Users and groups" link](common/users-groups-blade.png)
- ![Assign User][203]
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. Click **Select** button on **Users and groups** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Test single sign-on
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+7. In the **Add Assignment** dialog click the **Assign** button.
-When you click the TigerText tile in the Access Panel, you should get automatically signed-on to your TigerText application. For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+### Create TigerText Secure Messenger test user
-## Additional resources
+In this section, you create a user called Britta Simon in TigerText Secure Messenger. Work with [TigerText Secure Messenger support team](mailto:prosupport@tigertext.com) to add the users in the TigerText Secure Messenger platform. Users must be created and activated before you use single sign-on.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+When you click the TigerText Secure Messenger tile in the Access Panel, you should be automatically signed in to the TigerText Secure Messenger for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional Resources
-[1]: ./media/tigertext-tutorial/tutorial_general_01.png
-[2]: ./media/tigertext-tutorial/tutorial_general_02.png
-[3]: ./media/tigertext-tutorial/tutorial_general_03.png
-[4]: ./media/tigertext-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/tigertext-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/tigertext-tutorial/tutorial_general_200.png
-[201]: ./media/tigertext-tutorial/tutorial_general_201.png
-[202]: ./media/tigertext-tutorial/tutorial_general_202.png
-[203]: ./media/tigertext-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/timelive-tutorial.md b/articles/active-directory/saas-apps/timelive-tutorial.md
index 2e489d7afd2b5..3a6ba034ebd0a 100644
--- a/articles/active-directory/saas-apps/timelive-tutorial.md
+++ b/articles/active-directory/saas-apps/timelive-tutorial.md
@@ -214,9 +214,9 @@ When you click the TimeLive tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/timeoffmanager-tutorial.md b/articles/active-directory/saas-apps/timeoffmanager-tutorial.md
index e71be91d56972..3e677e2e82eed 100644
--- a/articles/active-directory/saas-apps/timeoffmanager-tutorial.md
+++ b/articles/active-directory/saas-apps/timeoffmanager-tutorial.md
@@ -249,9 +249,9 @@ When you click the TimeOffManager tile in the Access Panel, you should be automa
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/tinfoil-security-tutorial.md b/articles/active-directory/saas-apps/tinfoil-security-tutorial.md
index 57a4a3892f884..d0c529df2840f 100644
--- a/articles/active-directory/saas-apps/tinfoil-security-tutorial.md
+++ b/articles/active-directory/saas-apps/tinfoil-security-tutorial.md
@@ -247,9 +247,9 @@ When you click the TINFOIL SECURITY tile in the Access Panel, you should be auto
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/tivitz-tutorial.md b/articles/active-directory/saas-apps/tivitz-tutorial.md
index 51e305271fd77..35a125c58b0ef 100644
--- a/articles/active-directory/saas-apps/tivitz-tutorial.md
+++ b/articles/active-directory/saas-apps/tivitz-tutorial.md
@@ -195,9 +195,9 @@ When you click the TiViTz tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/toc.yml b/articles/active-directory/saas-apps/toc.yml
index 79cd00f5f87ee..16df4b6fce1dd 100644
--- a/articles/active-directory/saas-apps/toc.yml
+++ b/articles/active-directory/saas-apps/toc.yml
@@ -135,6 +135,8 @@
href: bcinthecloud-tutorial.md
- name: BeeLine
href: beeline-tutorial.md
+ - name: Benchling
+ href: benchling-tutorial.md
- name: BenefitHub
href: benefithub-tutorial.md
- name: Benefitsolver
@@ -229,6 +231,8 @@
href: cisco-umbrella-tutorial.md
- name: Cisco Webex Meetings
href: cisco-webex-tutorial.md
+ - name: Citrix Netscaler
+ href: citrix-netscaler-tutorial.md
- name: Citrix ShareFile
href: sharefile-tutorial.md
- name: Clarizen
@@ -265,6 +269,8 @@
href: concur-tutorial.md
- name: Condeco
href: condeco-tutorial.md
+ - name: Confirmit Horizons
+ href: confirmit-horizons-tutorial.md
- name: Confluence SAML SSO by Microsoft
href: confluencemicrosoft-tutorial.md
- name: Consent2Go
@@ -349,6 +355,8 @@
href: elium-tutorial.md
- name: eLuminate
href: eluminate-tutorial.md
+ - name: Empactis
+ href: empactis-tutorial.md
- name: EmpCenter
href: empcenter-tutorial.md
- name: Encompass
@@ -425,6 +433,8 @@
href: freshservice-tutorial.md
- name: Front
href: front-tutorial.md
+ - name: Fulcrum
+ href: fulcrum-tutorial.md
- name: Fuse
href: fuse-tutorial.md
- name: Fuze
@@ -485,6 +495,8 @@
href: hpesaas-tutorial.md
- name: HR2day by Merces
href: hr2day-tutorial.md
+ - name: HRworks Single Sign-On
+ href: hrworks-single-sign-on-tutorial.md
- name: HubSpot SAML
href: hubspot-tutorial.md
- name: Huddle
@@ -557,6 +569,8 @@
href: iqnavigatorvms-tutorial.md
- name: iQualify LMS
href: iqualify-tutorial.md
+ - name: Iris Intranet
+ href: iris-intranet-tutorial.md
- name: IriusRisk
href: iriusrisk-tutorial.md
- name: ITRP
@@ -709,6 +723,8 @@
href: mixpanel-tutorial.md
- name: MOBI
href: mobi-tutorial.md
+ - name: MobiControl
+ href: mobicontrol-tutorial.md
- name: Mobile Xpense
href: mobilexpense-tutorial.md
- name: MobileIron
@@ -823,6 +839,8 @@
href: peoplecart-tutorial.md
- name: Perception United States (Non-UltiPro)
href: perceptionunitedstates-tutorial.md
+ - name: Percolate
+ href: percolate-tutorial.md
- name: PerformanceCentre
href: performancecentre-tutorial.md
- name: Periscope Data
@@ -843,6 +861,8 @@
href: policystat-tutorial.md
- name: PostBeyond
href: postbeyond-tutorial.md
+ - name: Powerschool Performance Matters
+ href: powerschool-performance-matters-tutorial.md
- name: Predictix Assortment Planning
href: predictix-assortment-planning-tutorial.md
- name: Predictix Ordering
@@ -995,6 +1015,8 @@
href: settlingmusic-tutorial.md
- name: SharePoint on-premises
href: sharepoint-on-premises-tutorial.md
+ - name: Shibumi
+ href: shibumi-tutorial.md
- name: Shmoop For Schools
href: shmoopforschools-tutorial.md
- name: Showpad
@@ -1031,6 +1053,8 @@
href: slack-tutorial.md
- name: Small Improvements
href: smallimprovements-tutorial.md
+ - name: SmartDraw
+ href: smartdraw-tutorial.md
- name: SmarterU
href: smarteru-tutorial.md
- name: SmartFile
@@ -1101,6 +1125,8 @@
href: tangoe-tutorial.md
- name: TargetProcess
href: target-process-tutorial.md
+ - name: TAS
+ href: tas-tutorial.md
- name: Teamphoria
href: teamphoria-tutorial.md
- name: TeamSeer
@@ -1356,4 +1382,4 @@
href: zscaler-three-provisioning-tutorial.md
- name: Zscaler ZSCloud
href: zscaler-zscloud-provisioning-tutorial.md
-
+
diff --git a/articles/active-directory/saas-apps/tonicdm-tutorial.md b/articles/active-directory/saas-apps/tonicdm-tutorial.md
index c92fe6fe8d877..f96f7e5ab3038 100644
--- a/articles/active-directory/saas-apps/tonicdm-tutorial.md
+++ b/articles/active-directory/saas-apps/tonicdm-tutorial.md
@@ -189,9 +189,9 @@ When you click the TonicDM tile in the Access Panel, you should be automatically
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/trackvia-tutorial.md b/articles/active-directory/saas-apps/trackvia-tutorial.md
index 4005bd3ee7502..4ee5383cc2e75 100644
--- a/articles/active-directory/saas-apps/trackvia-tutorial.md
+++ b/articles/active-directory/saas-apps/trackvia-tutorial.md
@@ -208,9 +208,9 @@ When you click the TrackVia tile in the Access Panel, you should be automaticall
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/trakopolis-tutorial.md b/articles/active-directory/saas-apps/trakopolis-tutorial.md
index f58aad10050a5..8603bbdbe1efb 100644
--- a/articles/active-directory/saas-apps/trakopolis-tutorial.md
+++ b/articles/active-directory/saas-apps/trakopolis-tutorial.md
@@ -190,9 +190,9 @@ When you click the Trakopolis tile in the Access Panel, you should be automatica
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/trakstar-tutorial.md b/articles/active-directory/saas-apps/trakstar-tutorial.md
index fe71623b08a55..2e9bd5d6e7872 100644
--- a/articles/active-directory/saas-apps/trakstar-tutorial.md
+++ b/articles/active-directory/saas-apps/trakstar-tutorial.md
@@ -4,7 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 411cb8c3-95c6-4138-acf2-ffc7f663e89a
ms.service: active-directory
@@ -12,220 +13,188 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 06/09/2017
+ms.topic: tutorial
+ms.date: 04/02/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Trakstar
In this tutorial, you learn how to integrate Trakstar with Azure Active Directory (Azure AD).
-
Integrating Trakstar with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Trakstar
-- You can enable your users to automatically get signed-on to Trakstar (Single Sign-On) with their Azure AD accounts
-- You can manage your accounts in one central location - the Azure portal
+* You can control in Azure AD who has access to Trakstar.
+* You can enable your users to be automatically signed-in to Trakstar (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Trakstar, you need the following items:
-- An Azure AD subscription
-- A Trakstar single-sign on enabled subscription
- - SSO is a paid feature in Trakstar. To enable it for your organization, reach out to [Trakstar Client support team](mailto:support@trakstar.com).
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Trakstar single sign-on enabled subscription
+* SSO is a paid feature in Trakstar. To enable it for your organization, reach out to [Trakstar Client support team](mailto:support@trakstar.com).
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can get a one-month trial [here](https://azure.microsoft.com/pricing/free-trial/).
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding Trakstar from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Trakstar supports **SP** initiated SSO
## Adding Trakstar from the gallery
+
To configure the integration of Trakstar into Azure AD, you need to add Trakstar from the gallery to your list of managed SaaS apps.
**To add Trakstar from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
-
- ![Active Directory][1]
-
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![Applications][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Azure Active Directory button](common/select-azuread.png)
- ![Applications][3]
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
-1. In the search box, type **Trakstar**.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![Creating an Azure AD test user](./media/trakstar-tutorial/tutorial_trakstar_search.png)
+3. To add new application, click **New application** button on the top of dialog.
-1. In the results panel, select **Trakstar**, and then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![Creating an Azure AD test user](./media/trakstar-tutorial/tutorial_trakstar_addfromgallery.png)
+4. In the search box, type **Trakstar**, select **Trakstar** from result panel then click **Add** button to add the application.
-## Configuring and testing Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Trakstar based on a test user called "Britta Simon."
+ ![Trakstar in the results list](common/search-new-app.png)
-For single sign-on to work, Azure AD needs to know what the counterpart user in Trakstar is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Trakstar needs to be established.
+## Configure and test Azure AD single sign-on
-In Trakstar, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+In this section, you configure and test Azure AD single sign-on with Trakstar based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Trakstar needs to be established.
To configure and test Azure AD single sign-on with Trakstar, you need to complete the following building blocks:
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Creating a Trakstar test user](#creating-a-trakstar-test-user)** - to have a counterpart of Britta Simon in Trakstar that is linked to the Azure AD representation of user.
-1. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Testing Single Sign-On](#testing-single-sign-on)** - to verify whether the configuration works.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Trakstar Single Sign-On](#configure-trakstar-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Trakstar test user](#create-trakstar-test-user)** - to have a counterpart of Britta Simon in Trakstar that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-### Configuring Azure AD single sign-on
+### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Trakstar application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with Trakstar, perform the following steps:**
+To configure Azure AD single sign-on with Trakstar, perform the following steps:
-1. In the Azure portal, on the **Trakstar** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **Trakstar** application integration page, select **Single sign-on**.
- ![Configure Single Sign-On][4]
+ ![Configure single sign-on link](common/select-sso.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Configure Single Sign-On](./media/trakstar-tutorial/tutorial_trakstar_samlbase.png)
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-1. On the **Trakstar Domain and URLs** section, perform the following steps:
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Configure Single Sign-On](./media/trakstar-tutorial/tutorial_trakstar_url.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- a. In the **Sign-on URL** textbox, copy the value found in the **ACS (Consumer) URL** within Trakstar (Settings > Authentication & SSO) in the format: `https://app.trakstar.com/auth/saml/callback?namespace=`
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- b. In the **Identifier** textbox, leave the default: `https://app.trakstar.com`
+4. On the **Basic SAML Configuration** section, perform the following steps:
- > [!NOTE]
- > These values are not real. Update these values with the actual Sign-On URL and Identifier. Log into Trakstar as an Administrator to get these values.
- > If you don't see the "Authentication & SSO" tab within Settings, you might not have the feature
-
-1. On the **SAML Signing Certificate** section, click **Certificate (Base64)** and then save the certificate file on your computer.
+ ![Trakstar Domain and URLs single sign-on information](common/sp-identifier.png)
- ![Configure Single Sign-On](./media/trakstar-tutorial/tutorial_trakstar_certificate.png)
+ a. In the **Sign-on URL** textbox, copy the value found in the **ACS (Consumer) URL** within Trakstar (Settings > Authentication & SSO) in the format: `https://app.trakstar.com/auth/saml/callback?namespace=`
-1. Click **Save** button.
+ b. In the **Identifier (Entity ID)** text box, leave the default:
+ `https://app.trakstar.com`
- ![Configure Single Sign-On](./media/trakstar-tutorial/tutorial_general_400.png)
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Sign-On URL and Identifier. Sign into Trakstar as an Administrator to get these values.
+ > If you don't see the "Authentication & SSO" tab within Settings, you might not have the feature. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. On the **Trakstar Configuration** section, click **Configure Trakstar** to open **Configure sign-on** window. Copy the **Sign-Out URL, SAML Entity ID, and SAML Single Sign-On Service URL** from the **Quick Reference section.**
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On](./media/trakstar-tutorial/tutorial_trakstar_configure.png)
+ ![The Certificate download link](common/certificatebase64.png)
-1. To configure single sign-on on **Trakstar** side, you need to log in as an Administrator and enter the **Certificate (Base64)**, **Sign-Out URL, SAML Entity ID, and SAML Single Sign-On Service URL**.
+6. On the **Set up Trakstar** section, copy the appropriate URL(s) as per your requirement.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
->
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-### Creating an Azure AD test user
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ a. Login URL
-![Create Azure AD User][100]
+ b. Azure AD Identifier
-**To create a test user in Azure AD, perform the following steps:**
+ c. Logout URL
-1. In the **Azure portal**, on the left navigation pane, click **Azure Active Directory** icon.
+### Configure Trakstar Single Sign-On
- ![Creating an Azure AD test user](./media/trakstar-tutorial/create_aaduser_01.png)
+To configure single sign-on on **Trakstar** side, you need to sign in as an Administrator and enter the content of downloaded **Certificate (Base64)** and appropriate copied URLs from Azure portal. They set this setting to have the SAML SSO connection set properly on both sides.
-1. To display the list of users, go to **Users and groups** and click **All users**.
-
- ![Creating an Azure AD test user](./media/trakstar-tutorial/create_aaduser_02.png)
+### Create an Azure AD test user
-1. To open the **User** dialog, click **Add** on the top of the dialog.
-
- ![Creating an Azure AD test user](./media/trakstar-tutorial/create_aaduser_03.png)
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
-1. On the **User** dialog page, perform the following steps:
-
- ![Creating an Azure AD test user](./media/trakstar-tutorial/create_aaduser_04.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
- a. In the **Name** textbox, type **BrittaSimon**.
+ ![The "Users and groups" and "All users" links](common/users.png)
- b. In the **User name** textbox, type the **email address** of BrittaSimon.
+2. Select **New user** at the top of the screen.
- c. Select **Show Password** and write down the value of the **Password**.
+ ![New user Button](common/new-user.png)
- d. Click **Create**.
-
-### Creating a Trakstar test user
+3. In the User properties, perform the following steps.
-The objective of this section is to create a user called Britta Simon in Trakstar.
+ ![The User dialog box](common/user-properties.png)
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
-### Assigning the Azure AD test user
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
-In this section, you enable Britta Simon to use Azure single sign-on by granting access to Trakstar.
+ d. Click **Create**.
-![Assign User][200]
+### Assign the Azure AD test user
-**To assign Britta Simon to Trakstar, perform the following steps:**
+In this section, you enable Britta Simon to use Azure single sign-on by granting access to Trakstar.
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Trakstar**.
- ![Assign User][201]
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the applications list, select **Trakstar**.
+2. In the applications list, select **Trakstar**.
- ![Configure Single Sign-On](./media/trakstar-tutorial/tutorial_trakstar_app.png)
+ ![The Trakstar link in the Applications list](common/all-applications.png)
-1. In the menu on the left, click **Users and groups**.
+3. In the menu on the left, select **Users and groups**.
- ![Assign User][202]
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![Assign User][203]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-1. Click **Select** button on **Users and groups** dialog.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Testing single sign-on
+7. In the **Add Assignment** dialog click the **Assign** button.
-The objective of this section is to test your Azure AD single sign-on configuration using the Access Panel.
-When you click the Trakstar tile in the Access Panel, you should get automatically signed-on to your Trakstar application.
+### Create Trakstar test user
-## Additional resources
+In this section, you create a user called Britta Simon in Trakstar. Work with Trakstar Administrator to add the users in the Trakstar platform. Users must be created and activated before you use single sign-on.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+When you click the Trakstar tile in the Access Panel, you should be automatically signed in to the Trakstar for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional Resources
-[1]: ./media/trakstar-tutorial/tutorial_general_01.png
-[2]: ./media/trakstar-tutorial/tutorial_general_02.png
-[3]: ./media/trakstar-tutorial/tutorial_general_03.png
-[4]: ./media/trakstar-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/trakstar-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/trakstar-tutorial/tutorial_general_200.png
-[201]: ./media/trakstar-tutorial/tutorial_general_201.png
-[202]: ./media/trakstar-tutorial/tutorial_general_202.png
-[203]: ./media/trakstar-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/trello-tutorial.md b/articles/active-directory/saas-apps/trello-tutorial.md
index 1fa1e577794ad..1851578c18d78 100644
--- a/articles/active-directory/saas-apps/trello-tutorial.md
+++ b/articles/active-directory/saas-apps/trello-tutorial.md
@@ -24,109 +24,112 @@ In this tutorial, you learn how to integrate Trello with Azure Active Directory
Integrating Trello with Azure AD provides you with the following benefits:
* You can control in Azure AD who has access to Trello.
-* You can enable your users to be automatically signed-in to Trello (Single Sign-On) with their Azure AD accounts.
-* You can manage your accounts in one central location - the Azure portal.
+* You can enable your users to be automatically signed-in to Trello (single sign-on) with their Azure AD accounts.
+* You can manage your accounts in one central location: the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+For more information about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Trello, you need the following items:
-* An Azure AD subscription. If you don't have an Azure AD environment, you can get one-month trial [here](https://azure.microsoft.com/pricing/free-trial/)
-* Trello single sign-on enabled subscription
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* A Trello single-sign-on-enabled subscription.
## Scenario description
In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-* Trello supports **SP and IDP** initiated SSO
+* Trello supports SP- and IDP-initiated SSO
-* Trello supports **Just In Time** user provisioning
+* Trello supports Just In Time user provisioning
-## Adding Trello from the gallery
+## Add Trello from the gallery
-To configure the integration of Trello into Azure AD, you need to add Trello from the gallery to your list of managed SaaS apps.
+To configure the integration of Trello into Azure AD, first add Trello from the gallery to your list of managed SaaS apps.
-**To add Trello from the gallery, perform the following steps:**
+To add Trello from the gallery, take the following steps:
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the [Azure portal](https://portal.azure.com), in the left pane, select the **Azure Active Directory** icon.
![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
+2. Select **Enterprise Applications**, and then select **All Applications**.
![The Enterprise applications blade](common/enterprise-applications.png)
-3. To add new application, click **New application** button on the top of dialog.
+3. To add a new application, select the **New application** button at the top of the dialog box.
![The New application button](common/add-new-app.png)
-4. In the search box, type **Trello**, select **Trello** from result panel then click **Add** button to add the application.
+4. In the search box, enter **Trello**, and then select **Trello** from the results pane.
+
+5. Select the **Add** button to add the application.
![Trello in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with [Application name] based on a test user called **Britta Simon**.
-For single sign-on to work, a link relationship between an Azure AD user and the related user in [Application name] needs to be established.
+In this section, you configure and test Azure AD single sign-on with Trello based on a test user called **Britta Simon**.
+
+For single sign-on to work, you need to establish a link between an Azure AD user and the related user in Trello.
-To configure and test Azure AD single sign-on with [Application name], you need to complete the following building blocks:
+To configure and test Azure AD single sign-on with Trello, you need to complete the following building blocks:
-1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Configure Trello Single Sign-On](#configure-trello-single-sign-on)** - to configure the Single Sign-On settings on application side.
-3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Create Trello test user](#create-trello-test-user)** - to have a counterpart of Britta Simon in Trello that is linked to the Azure AD representation of user.
-6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+1. [Configure Azure AD single sign-on](#configure-azure-ad-single-sign-on) to enable your users to use this feature.
+2. [Configure Trello single sign-on](#configure-trello-single-sign-on) to configure the single sign-on settings on the application side.
+3. [Create an Azure AD test user](#create-an-azure-ad-test-user) to test Azure AD single sign-on with Britta Simon.
+4. [Assign the Azure AD test user](#assign-the-azure-ad-test-user) to enable Britta Simon to use Azure AD single sign-on.
+5. [Create a Trello test user](#create-a-trello-test-user) to have a counterpart of Britta Simon in Trello that is linked to the Azure AD representation of the user.
+6. [Test single sign-on](#test-single-sign-on) to verify that the configuration works.
### Configure Azure AD single sign-on
In this section, you enable Azure AD single sign-on in the Azure portal.
> [!NOTE]
-> You should get the **\** slug from Trello. If you don't have the slug value, contact [Trello support team](mailto:support@trello.com) to get the slug for you enterprise.
+> You should get the **\** slug from Trello. If you don't have the slug value, contact the [Trello support team](mailto:support@trello.com) to get the slug for your enterprise.
-To configure Azure AD single sign-on with [Application name], perform the following steps:
+To configure Azure AD single sign-on with Trello, take the following steps:
1. In the [Azure portal](https://portal.azure.com/), on the **Trello** application integration page, select **Single sign-on**.
![Configure single sign-on link](common/select-sso.png)
-2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
+2. In the **Select a Single sign-on method** dialog box, select **SAML** to enable single sign-on.
![Single sign-on select mode](common/select-saml-option.png)
-3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
+3. On the **Set up Single Sign-on with SAML** page, select the **Edit** icon to open the **Basic SAML Configuration** dialog box.
![Edit Basic SAML Configuration](common/edit-urls.png)
-4. On the **Basic SAML Configuration** section, If you wish to configure the application in **IDP** initiated mode, perform the following steps:
+4. In the **Basic SAML Configuration** section, if you want to configure the application in IDP-initiated mode, take the following steps:
- ![Trello Domain and URLs single sign-on information](common/idp-intiated.png)
+ ![Trello domain and URLs single sign-on information](common/idp-intiated.png)
- a. In the **Identifier** text box, type a URL using the following pattern:
+ a. In the **Identifier** box, enter a URL by using the following pattern:
`https://trello.com/auth/saml/metadata`
- b. In the **Reply URL** text box, type a URL using the following pattern:
+ b. In the **Reply URL** box, enter a URL by using the following pattern:
`https://trello.com/auth/saml/consume/`
-5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
+5. Select **Set additional URLs**, and then take the following steps if you want to configure the application in SP-initiated mode:
- ![Trello Domain and URLs single sign-on information](common/metadata-upload-additional-signon.png)
+ ![Trello domain and URLs single sign-on information](common/metadata-upload-additional-signon.png)
- In the **Sign-on URL** text box, type a URL using the following pattern:
+ In the **Sign-on URL** box, enter a URL by using the following pattern:
`https://trello.com/auth/saml/login/`
> [!NOTE]
- > These values are not real. Update these values with the actual Identifier, Reply URL and Sign-on URL. Contact [Trello Client support team](mailto:support@trello.com) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
+ > These values are not real. Update these values with the actual identifier, reply URL, and sign-on URL. Contact the [Trello Client support team](mailto:support@trello.com) to get these values. You can also refer to the patterns in the **Basic SAML Configuration** section in the Azure portal.
-6. Trello application expects the SAML assertions in a specific format. Configure the following claims for this application. You can manage the values of these attributes from the **User Attributes** section on application integration page. On the **Set up Single Sign-On with SAML** page, click **Edit** button to open **User Attributes** dialog.
+6. The Trello application expects the SAML assertions in a specific format. Configure the following claims for this application. You can manage the values of these attributes from the **User Attributes** section on the application integration page. On the **Set up Single Sign-On with SAML** page, select the **Edit** button to open the **User Attributes** dialog box.
- ![image](common/edit-attribute.png)
+ ![User Attributes dialog box](common/edit-attribute.png)
-7. In the **User Claims** section on the **User Attributes** dialog, configure SAML token attribute as shown in the image above and perform the following steps:
+7. In the **User Claims** section in the **User Attributes** dialog box, configure the SAML token attribute as shown in the previous image. Then take the following steps:
| Name | Source Attribute|
| --- | --- |
@@ -134,41 +137,41 @@ To configure Azure AD single sign-on with [Application name], perform the follow
| User.FirstName | user.givenname |
| User.LastName | user.surname |
- a. Click **Add new claim** to open the **Manage user claims** dialog.
+ a. Select **Add new claim** to open the **Manage user claims** dialog box.
- ![image](common/new-save-attribute.png)
+ ![User claims dialog box](common/new-save-attribute.png)
- ![image](common/new-attribute-details.png)
+ ![Manage user claims](common/new-attribute-details.png)
- b. In the **Name** textbox, type the attribute name shown for that row.
+ b. In the **Name** box, enter the attribute name that's shown for that row.
- c. Leave the **Namespace** blank.
+ c. Leave **Namespace** blank.
- d. Select Source as **Attribute**.
+ d. For **Source**, select **Attribute**.
- e. From the **Source attribute** list, type the attribute value shown for that row.
+ e. In the **Source attribute** list, enter the attribute value that's shown for that row.
- f. Click **Ok**
+ f. Select **Ok**.
- g. Click **Save**.
+ g. Select **Save**.
-8. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Certificate (Base64)** from the given options as per your requirement and save it on your computer.
+8. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, select **Download** to download the **Certificate (Base64)** from the given options as per your requirements. Then save it on your computer.
![The Certificate download link](common/certificatebase64.png)
-9. On the **Set up Trello** section, copy the appropriate URL(s) as per your requirement.
+9. On the **Set up Trello** section, copy the appropriate URL(s) according to your requirements.
![Copy configuration URLs](common/copy-configuration-urls.png)
a. Login URL
- b. Azure Ad Identifier
+ b. Azure AD identifier
c. Logout URL
-### Configure Trello Single Sign-On
+### Configure Trello single sign-on
-To configure single sign-on on **Trello** side, you need to send the downloaded **Certificate (Base64)** and appropriate copied URLs from Azure portal to [Trello support team](mailto:support@trello.com). They set this setting to have the SAML SSO connection set properly on both sides.
+To configure single sign-on on the Trello side, first send the downloaded **Certificate (Base64)** and copied URLs from the Azure portal to the [Trello support team](mailto:support@trello.com). They ensure that the SAML SSO connection is set properly on both sides.
### Create an Azure AD test user
@@ -180,63 +183,62 @@ The objective of this section is to create a test user in the Azure portal calle
2. Select **New user** at the top of the screen.
- ![New user Button](common/new-user.png)
+ ![New user button](common/new-user.png)
-3. In the User properties, perform the following steps.
+3. In the **User** dialog box, take the following steps.
![The User dialog box](common/user-properties.png)
- a. In the **Name** field enter **BrittaSimon**.
+ a. In the **Name** field, enter **BrittaSimon**.
- b. In the **User name** field type **brittasimon\@yourcompanydomain.extension**
- For example, BrittaSimon@contoso.com
+ b. In the **User name** field, enter "brittasimon@yourcompanydomain.extension". For example, in this case, you might enter "BrittaSimon@contoso.com".
- c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
+ c. Select the **Show password** check box, and then note the value that's displayed in the **Password** box.
- d. Click **Create**.
+ d. Select **Create**.
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Trello.
-1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Trello**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, and then select **Trello**.
- ![Enterprise applications blade](common/enterprise-applications.png)
+ ![Enterprise Applications blade](common/enterprise-applications.png)
2. In the applications list, select **Trello**.
- ![The Trello link in the Applications list](common/all-applications.png)
+ ![The Trello link in the applications list](common/all-applications.png)
3. In the menu on the left, select **Users and groups**.
![The "Users and groups" link](common/users-groups-blade.png)
-4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
+4. Select the **Add user** button. Then, in the **Add Assignment** dialog box, select **Users and groups**.
![The Add Assignment pane](common/add-assign-user.png)
-5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
+5. In the **Users and groups** dialog box, select **Britta Simon** in the users list. Then click the **Select** button at the bottom of the screen.
-6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
+6. If you are expecting any role value in the SAML assertion, then, in the **Select Role** dialog box, select the appropriate role for the user from the list. Then click the **Select** button at the bottom of the screen.
-7. In the **Add Assignment** dialog click the **Assign** button.
+7. In the **Add Assignment** dialog box, select the **Assign** button.
-### Create Trello test user
+### Create a Trello test user
-In this section, a user called Britta Simon is created in Trello. Trello supports just-in-time user provisioning, which is enabled by default. There is no action item for you in this section. If a user doesn't already exist in Trello, a new one is created after authentication.
+In this section, you create a user called Britta Simon in Trello. Trello supports Just in Time user provisioning, which is enabled by default. There is no action item for you in this section. If a user doesn't already exist in Trello, a new one is created after authentication.
-> [!Note]
-> If you need to create a user manually, Contact [Trello support team](mailto:support@trello.com).
+> [!NOTE]
+> If you need to create a user manually, contact the [Trello support team](mailto:support@trello.com).
### Test single sign-on
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+In this section, you test your Azure AD single sign-on configuration by using the MyApps portal.
-When you click the Trello tile in the Access Panel, you should be automatically signed in to the Trello for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
+When you select the Trello tile in the MyApps portal, you should be automatically signed in to Trello. For more information about the My Apps portal, see [What is the MyApps portal?](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-## Additional Resources
+## Additional resources
-- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of tutorials on how to integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
diff --git a/articles/active-directory/saas-apps/trisotechdigitalenterpriseserver-tutorial.md b/articles/active-directory/saas-apps/trisotechdigitalenterpriseserver-tutorial.md
index cf78cd69a5aee..48f446d4e3436 100644
--- a/articles/active-directory/saas-apps/trisotechdigitalenterpriseserver-tutorial.md
+++ b/articles/active-directory/saas-apps/trisotechdigitalenterpriseserver-tutorial.md
@@ -209,9 +209,9 @@ When you click the Trisotech Digital Enterprise Server tile in the Access Panel,
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/turborater-tutorial.md b/articles/active-directory/saas-apps/turborater-tutorial.md
index 4da2bbc8df7f6..e246c20fb2414 100644
--- a/articles/active-directory/saas-apps/turborater-tutorial.md
+++ b/articles/active-directory/saas-apps/turborater-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: daveba
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: abb116b8-8024-4cc6-bc81-f32ef490ea17
ms.service: active-directory
@@ -13,216 +13,190 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 10/03/2017
+ms.topic: tutorial
+ms.date: 3/8/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with TurboRater
In this tutorial, you learn how to integrate TurboRater with Azure Active Directory (Azure AD).
-
Integrating TurboRater with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to TurboRater.
-- You can enable your users to automatically get signed-on to TurboRater (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to TurboRater.
+* You can enable your users to be automatically signed-in to TurboRater (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md).
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with TurboRater, you need the following items:
-- An Azure AD subscription
-- A TurboRater single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get one-month trial [here](https://azure.microsoft.com/pricing/free-trial/)
+* TurboRater single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
-1. Adding TurboRater from the gallery
-1. Configuring and testing Azure AD single sign-on
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* TurboRater supports **IDP** initiated SSO
## Adding TurboRater from the gallery
+
To configure the integration of TurboRater into Azure AD, you need to add TurboRater from the gallery to your list of managed SaaS apps.
**To add TurboRater from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-1. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
-
-1. To add new application, click **New application** button on the top of dialog.
+ ![The Enterprise applications blade](common/enterprise-applications.png)
- ![The New application button][3]
+3. To add new application, click **New application** button on the top of dialog.
-1. In the search box, type **TurboRater**, select **TurboRater** from result panel then click **Add** button to add the application.
+ ![The New application button](common/add-new-app.png)
- ![TurboRater in the results list](./media/turborater-tutorial/tutorial_turborater_addfromgallery.png)
+4. In the search box, type **TurboRater**, select **TurboRater** from result panel then click **Add** button to add the application.
-## Configure and test Azure AD single sign-on
+ ![TurboRater in the results list](common/search-new-app.png)
-In this section, you configure and test Azure AD single sign-on with TurboRater based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in TurboRater is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in TurboRater needs to be established.
+## Configure and test Azure AD single sign-on
-In TurboRater, assign the value of the **user name** in Azure AD as the value of the **Username** to establish the link relationship.
+In this section, you configure and test Azure AD single sign-on with TurboRater based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in TurboRater needs to be established.
To configure and test Azure AD single sign-on with TurboRater, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-1. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-1. **[Create a TurboRater test user](#create-a-turborater-test-user)** - to have a counterpart of Britta Simon in TurboRater that is linked to the Azure AD representation of user.
-1. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-1. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+2. **[Configure TurboRater Single Sign-On](#configure-turborater-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create TurboRater test user](#create-turborater-test-user)** - to have a counterpart of Britta Simon in TurboRater that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your TurboRater application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with TurboRater, perform the following steps:
+
+1. In the [Azure portal](https://portal.azure.com/), on the **TurboRater** application integration page, select **Single sign-on**.
+
+ ![Configure single sign-on link](common/select-sso.png)
+
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-**To configure Azure AD single sign-on with TurboRater, perform the following steps:**
+ ![Single sign-on select mode](common/select-saml-option.png)
-1. In the Azure portal, on the **TurboRater** application integration page, click **Single sign-on**.
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Configure single sign-on link][4]
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
-1. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
-
- ![Single sign-on dialog box](./media/turborater-tutorial/tutorial_turborater_samlbase.png)
+4. On the **Set up Single Sign-On with SAML** page, perform the following steps:
-1. On the **TurboRater Domain and URLs** section, perform the following steps:
+ ![TurboRater Domain and URLs single sign-on information](common/idp-intiated.png)
- ![TurboRater Domain and URLs single sign-on information](./media/turborater-tutorial/tutorial_turborater_url.png)
+ a. In the **Identifier** text box, type a URL:
+ `https://www.itcdataservices.com`
- a. In the **Identifier** textbox, type the value as: `https://www.itcdataservices.com`
-
- b. In the **Reply URL** textbox, type the value as:
-
- | Environment | URL |
+ b. In the **Reply URL** text box, type a URL using the following pattern:
+
+ | Environment | URL |
| ---------------| --------------- |
| Test | `https://ratingqa.itcdataservices.com/webservices/imp/saml/login` |
| Live | `https://www.itcratingservices.com/webservices/imp/saml/login` |
-1. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
-
- ![The Certificate download link](./media/turborater-tutorial/tutorial_turborater_certificate.png)
+ > [!NOTE]
+ > These values are not real. Update these values with the actual Identifier and Reply URL. Contact [TurboRater Client support team](https://www.getitc.com/support) to get these values. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-1. Click **Save** button.
+5. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
- ![Configure Single Sign-On Save button](./media/turborater-tutorial/tutorial_general_400.png)
+ ![The Certificate download link](common/metadataxml.png)
-1. To configure single sign-on on **TurboRater** side, you need to send the downloaded **Metadata XML** to [TurboRater support team](https://www.getitc.com/support). They set this setting to have the SAML SSO connection set properly on both sides.
+6. On the **Set up TurboRater** section, copy the appropriate URL(s) as per your requirement.
-> [!TIP]
-> You can now read a concise version of these instructions inside the [Azure portal](https://portal.azure.com), while you are setting up the app! After adding this app from the **Active Directory > Enterprise Applications** section, simply click the **Single Sign-On** tab and access the embedded documentation through the **Configuration** section at the bottom. You can read more about the embedded documentation feature here: [Azure AD embedded documentation]( https://go.microsoft.com/fwlink/?linkid=845985)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-### Create an Azure AD test user
+ a. Login URL
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ b. Azure AD Identifier
- ![Create an Azure AD test user][100]
+ c. Logout URL
-**To create a test user in Azure AD, perform the following steps:**
+### Configure TurboRater Single Sign-On
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+To configure single sign-on on **TurboRater** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [TurboRater support team](https://www.getitc.com/support). They set this setting to have the SAML SSO connection set properly on both sides.
- ![The Azure Active Directory button](./media/turborater-tutorial/create_aaduser_01.png)
+### Create an Azure AD test user
-1. To display the list of users, go to **Users and groups**, and then click **All users**.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- ![The "Users and groups" and "All users" links](./media/turborater-tutorial/create_aaduser_02.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-1. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+ ![The "Users and groups" and "All users" links](common/users.png)
- ![The Add button](./media/turborater-tutorial/create_aaduser_03.png)
+2. Select **New user** at the top of the screen.
-1. In the **User** dialog box, perform the following steps:
+ ![New user Button](common/new-user.png)
- ![The User dialog box](./media/turborater-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** box, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** box, type the email address of user Britta Simon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-
-### Create a TurboRater test user
-
-To enable Azure AD users to log in to TurboRater, they must be provisioned into TurboRater.
-In the case of TurboRater, provisioning is a manual task.
-To create a user, please work with [TurboRater support team](https://www.getitc.com/support).
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to TurboRater.
-![Assign the user role][200]
-
-**To assign Britta Simon to TurboRater, perform the following steps:**
-
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **TurboRater**.
- ![Assign User][201]
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the applications list, select **TurboRater**.
+2. In the applications list, select **TurboRater**.
- ![The TurboRater link in the Applications list](./media/turborater-tutorial/tutorial_turborater_app.png)
+ ![The TurboRater link in the Applications list](common/all-applications.png)
-1. In the menu on the left, click **Users and groups**.
+3. In the menu on the left, select **Users and groups**.
- ![The "Users and groups" link][202]
+ ![The "Users and groups" link](common/users-groups-blade.png)
-1. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![The Add Assignment pane][203]
+ ![The Add Assignment pane](common/add-assign-user.png)
-1. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
-1. Click **Select** button on **Users and groups** dialog.
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-1. Click **Assign** button on **Add Assignment** dialog.
-
-### Test single sign-on
+7. In the **Add Assignment** dialog click the **Assign** button.
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-
-When you click the TurboRater tile in the Access Panel, you should get automatically signed-on to your TurboRater application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+### Create TurboRater test user
-## Additional resources
+In this section, you create a user called Britta Simon in TurboRater. Work with [TurboRater support team](https://www.getitc.com/support) to add the users in the TurboRater platform. Users must be created and activated before you use single sign-on.
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+### Test single sign-on
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+When you click the TurboRater tile in the Access Panel, you should be automatically signed in to the TurboRater for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-
+## Additional Resources
-[1]: ./media/turborater-tutorial/tutorial_general_01.png
-[2]: ./media/turborater-tutorial/tutorial_general_02.png
-[3]: ./media/turborater-tutorial/tutorial_general_03.png
-[4]: ./media/turborater-tutorial/tutorial_general_04.png
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[100]: ./media/turborater-tutorial/tutorial_general_100.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[200]: ./media/turborater-tutorial/tutorial_general_200.png
-[201]: ./media/turborater-tutorial/tutorial_general_201.png
-[202]: ./media/turborater-tutorial/tutorial_general_202.png
-[203]: ./media/turborater-tutorial/tutorial_general_203.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/tyeexpress-tutorial.md b/articles/active-directory/saas-apps/tyeexpress-tutorial.md
index 178ccd406f666..f0b1276fb6162 100644
--- a/articles/active-directory/saas-apps/tyeexpress-tutorial.md
+++ b/articles/active-directory/saas-apps/tyeexpress-tutorial.md
@@ -219,9 +219,9 @@ When you click the T&E Express tile in the Access Panel, you should be automatic
## Additional Resources
-- [ List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory ](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-- [What is application access and single sign-on with Azure Active Directory? ](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
diff --git a/articles/active-directory/saas-apps/uberflip-tutorial.md b/articles/active-directory/saas-apps/uberflip-tutorial.md
index bed8c26563924..7c88fb9496af4 100644
--- a/articles/active-directory/saas-apps/uberflip-tutorial.md
+++ b/articles/active-directory/saas-apps/uberflip-tutorial.md
@@ -4,54 +4,46 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 754b1f5b-6694-4fd6-9e1e-9fad769c64db
ms.service: active-directory
ms.workload: identity
+ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 08/21/2018
+ms.topic: tutorial
+ms.date: 03/28/2019
ms.author: jeedes
-ms.collection: M365-identity-device-management
---
# Tutorial: Azure Active Directory integration with Uberflip
In this tutorial, you learn how to integrate Uberflip with Azure Active Directory (Azure AD).
-
Integrating Uberflip with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Uberflip.
-- You can enable your users to automatically get signed-on to Uberflip (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Uberflip.
+* You can enable your users to be automatically signed-in to Uberflip (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md)
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Uberflip, you need the following items:
-- An Azure AD subscription
-- A Uberflip single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Uberflip single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
+
+* Uberflip supports **SP** and **IDP** initiated SSO
-1. Adding Uberflip from the gallery
-2. Configuring and testing Azure AD single sign-on
+* Uberflip supports **Just In Time** user provisioning
## Adding Uberflip from the gallery
@@ -59,166 +51,157 @@ To configure the integration of Uberflip into Azure AD, you need to add Uberflip
**To add Uberflip from the gallery, perform the following steps:**
-1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
+1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
3. To add new application, click **New application** button on the top of dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
4. In the search box, type **Uberflip**, select **Uberflip** from result panel then click **Add** button to add the application.
- ![Uberflip in the results list](./media/uberflip-tutorial/tutorial_uberflip_addfromgallery.png)
+ ![Uberflip in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Uberflip based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in Uberflip is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Uberflip needs to be established.
+In this section, you configure and test Azure AD single sign-on with Uberflip based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Uberflip needs to be established.
To configure and test Azure AD single sign-on with Uberflip, you need to complete the following building blocks:
1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-3. **[Create an Uberflip test user](#create-an-uberflip-test-user)** - to have a counterpart of Britta Simon in Uberflip that is linked to the Azure AD representation of user.
+2. **[Configure Uberflip Single Sign-On](#configure-uberflip-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
+5. **[Create Uberflip test user](#create-uberflip-test-user)** - to have a counterpart of Britta Simon in Uberflip that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Uberflip application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
+
+To configure Azure AD single sign-on with Uberflip, perform the following steps:
-**To configure Azure AD single sign-on with Uberflip, perform the following steps:**
+1. In the [Azure portal](https://portal.azure.com/), on the **Uberflip** application integration page, select **Single sign-on**.
-1. In the Azure portal, on the **Uberflip** application integration page, click **Single sign-on**.
+ ![Configure single sign-on link](common/select-sso.png)
- ![Configure single sign-on link][4]
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
-2. On the **Single sign-on** dialog, select **Mode** as **SAML-based Sign-on** to enable single sign-on.
+ ![Single sign-on select mode](common/select-saml-option.png)
- ![Single sign-on dialog box](./media/uberflip-tutorial/tutorial_uberflip_samlbase.png)
+3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
-3. On the **Uberflip Domain and URLs** section, perform the following step if you wish to configure the application in **IDP** initiated mode:
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
- ![Uberflip Domain and URLs single sign-on information](./media/uberflip-tutorial/tutorial_uberflip_url1.png)
+4. On the **Basic SAML Configuration** section, if you wish to configure the application in **IDP** initiated mode, perform the following step:
- In the **Reply URL** textbox, type a URL using the following pattern: `https://app.uberflip.com/sso/saml2//`
+ ![Uberflip Domain and URLs single sign-on information](common/both-replyurl.png)
+ In the **Reply URL** text box, type a URL using the following pattern:
+ `https://app.uberflip.com/sso/saml2//`
+
> [!NOTE]
- > This value is not real. Update this value with the actual Reply URL. Contact [Uberflip Client support team](mailto:support@uberflip.com) to get this value.
+ > This value is not real. Update this value with the actual Reply URL. Contact [Uberflip Client support team](mailto:support@uberflip.com) to get the value. You can also refer to the patterns shown in the **Basic SAML Configuration** section in the Azure portal.
-4. Check **Show advanced URL settings** and perform the following step if you wish to configure the application in **SP** initiated mode:
+5. Click **Set additional URLs** and perform the following step if you wish to configure the application in **SP** initiated mode:
- ![Uberflip Domain and URLs single sign-on information](./media/uberflip-tutorial/tutorial_uberflip_url2.png)
+ ![Uberflip Domain and URLs single sign-on information](common/both-signonurl.png)
- In the **Sign-on URL** textbox, type the URL: `https://app.uberflip.com/users/login`
+ In the **Sign-on URL** text box, type a URL:
+ `https://app.uberflip.com/users/login`
-5. On the **SAML Signing Certificate** section, click **Metadata XML** and then save the metadata file on your computer.
+6. On the **Set up Single Sign-On with SAML** page, in the **SAML Signing Certificate** section, click **Download** to download the **Federation Metadata XML** from the given options as per your requirement and save it on your computer.
- ![The Certificate download link](./media/uberflip-tutorial/tutorial_uberflip_certificate.png)
+ ![The Certificate download link](common/metadataxml.png)
-6. Click **Save** button.
+7. On the **Set up Uberflip** section, copy the appropriate URL(s) as per your requirement.
- ![Configure Single Sign-On Save button](./media/uberflip-tutorial/tutorial_general_400.png)
+ ![Copy configuration URLs](common/copy-configuration-urls.png)
-7. To configure single sign-on on **Uberflip** side, you need to send the downloaded **Metadata XML** to [Uberflip support team](mailto:support@uberflip.com). They set this setting to have the SAML SSO connection set properly on both sides.
+ a. Login URL
-### Create an Azure AD test user
+ b. Azure AD Identifier
-The objective of this section is to create a test user in the Azure portal called Britta Simon.
+ c. Logout URL
- ![Create an Azure AD test user][100]
+### Configure Uberflip Single Sign-On
-**To create a test user in Azure AD, perform the following steps:**
+To configure single sign-on on **Uberflip** side, you need to send the downloaded **Federation Metadata XML** and appropriate copied URLs from Azure portal to [Uberflip support team](mailto:support@uberflip.com). They set this setting to have the SAML SSO connection set properly on both sides.
-1. In the Azure portal, in the left pane, click the **Azure Active Directory** button.
+### Create an Azure AD test user
- ![The Azure Active Directory button](./media/uberflip-tutorial/create_aaduser_01.png)
-
-2. To display the list of users, go to **Users and groups**, and then click **All users**.
+The objective of this section is to create a test user in the Azure portal called Britta Simon.
- ![The "Users and groups" and "All users" links](./media/uberflip-tutorial/create_aaduser_02.png)
+1. In the Azure portal, in the left pane, select **Azure Active Directory**, select **Users**, and then select **All users**.
-3. To open the **User** dialog box, click **Add** at the top of the **All Users** dialog box.
+ ![The "Users and groups" and "All users" links](common/users.png)
- ![The Add button](./media/uberflip-tutorial/create_aaduser_03.png)
+2. Select **New user** at the top of the screen.
-4. In the **User** dialog box, perform the following steps:
+ ![New user Button](common/new-user.png)
- ![The User dialog box](./media/uberflip-tutorial/create_aaduser_04.png)
+3. In the User properties, perform the following steps.
- a. In the **Name** box, type **BrittaSimon**.
+ ![The User dialog box](common/user-properties.png)
- b. In the **User name** box, type the email address of user Britta Simon.
+ a. In the **Name** field enter **BrittaSimon**.
+
+ b. In the **User name** field type brittasimon@yourcompanydomain.extension. For example, BrittaSimon@contoso.com
- c. Select the **Show Password** check box, and then write down the value that's displayed in the **Password** box.
+ c. Select **Show password** check box, and then write down the value that's displayed in the Password box.
d. Click **Create**.
-### Create an Uberflip test user
-
-The objective of this section is to create a user called Britta Simon in Uberflip. Uberflip supports just-in-time provisioning, which is by default enabled. There is no action item for you in this section. A new user is created during an attempt to access Uberflip if it doesn't exist yet.
-
-> [!Note]
-> If you need to create a user manually, contact [Uberflip support team](mailto:support@uberflip.com).
-
### Assign the Azure AD test user
In this section, you enable Britta Simon to use Azure single sign-on by granting access to Uberflip.
-![Assign the user role][200]
+1. In the Azure portal, select **Enterprise Applications**, select **All applications**, then select **Uberflip**.
-**To assign Britta Simon to Uberflip, perform the following steps:**
+ ![Enterprise applications blade](common/enterprise-applications.png)
-1. In the Azure portal, open the applications view, and then navigate to the directory view and go to **Enterprise applications** then click **All applications**.
+2. In the applications list, select **Uberflip**.
- ![Assign User][201]
+ ![The Uberflip link in the Applications list](common/all-applications.png)
-2. In the applications list, select **Uberflip**.
+3. In the menu on the left, select **Users and groups**.
- ![The Uberflip link in the Applications list](./media/uberflip-tutorial/tutorial_uberflip_app.png)
+ ![The "Users and groups" link](common/users-groups-blade.png)
-3. In the menu on the left, click **Users and groups**.
+4. Click the **Add user** button, then select **Users and groups** in the **Add Assignment** dialog.
- ![The "Users and groups" link][202]
+ ![The Add Assignment pane](common/add-assign-user.png)
-4. Click **Add** button. Then select **Users and groups** on **Add Assignment** dialog.
+5. In the **Users and groups** dialog select **Britta Simon** in the Users list, then click the **Select** button at the bottom of the screen.
- ![The Add Assignment pane][203]
+6. If you are expecting any role value in the SAML assertion then in the **Select Role** dialog select the appropriate role for the user from the list, then click the **Select** button at the bottom of the screen.
-5. On **Users and groups** dialog, select **Britta Simon** in the Users list.
+7. In the **Add Assignment** dialog click the **Assign** button.
-6. Click **Select** button on **Users and groups** dialog.
+### Create Uberflip test user
-7. Click **Assign** button on **Add Assignment** dialog.
+In this section, a user called Britta Simon is created in Uberflip. Uberflip supports just-in-time user provisioning, which is enabled by default. There is no action item for you in this section. If a user doesn't already exist in Uberflip, a new one is created after authentication.
-### Test single sign-on
+> [!Note]
+> If you need to create a user manually, contact [Uberflip support team](mailto:support@uberflip.com).
-In this section, you test your Azure AD single sign-on configuration using the Access Panel.
+### Test single sign-on
-When you click the Uberflip tile in the Access Panel, you should get automatically signed-on to your Uberflip application.
-For more information about the Access Panel, see [Introduction to the Access Panel](../user-help/active-directory-saas-access-panel-introduction.md).
+In this section, you test your Azure AD single sign-on configuration using the Access Panel.
-## Additional resources
+When you click the Uberflip tile in the Access Panel, you should be automatically signed in to the Uberflip for which you set up SSO. For more information about the Access Panel, see [Introduction to the Access Panel](https://docs.microsoft.com/azure/active-directory/active-directory-saas-access-panel-introduction).
-* [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](tutorial-list.md)
-* [What is application access and single sign-on with Azure Active Directory?](../manage-apps/what-is-single-sign-on.md)
+## Additional Resources
-
+- [List of Tutorials on How to Integrate SaaS Apps with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-saas-tutorial-list)
-[1]: ./media/uberflip-tutorial/tutorial_general_01.png
-[2]: ./media/uberflip-tutorial/tutorial_general_02.png
-[3]: ./media/uberflip-tutorial/tutorial_general_03.png
-[4]: ./media/uberflip-tutorial/tutorial_general_04.png
+- [What is application access and single sign-on with Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis)
-[100]: ./media/uberflip-tutorial/tutorial_general_100.png
+- [What is conditional access in Azure Active Directory?](https://docs.microsoft.com/azure/active-directory/conditional-access/overview)
-[200]: ./media/uberflip-tutorial/tutorial_general_200.png
-[201]: ./media/uberflip-tutorial/tutorial_general_201.png
-[202]: ./media/uberflip-tutorial/tutorial_general_202.png
-[203]: ./media/uberflip-tutorial/tutorial_general_203.png
diff --git a/articles/active-directory/saas-apps/useall-tutorial.md b/articles/active-directory/saas-apps/useall-tutorial.md
index 590866020f83f..e44adc906c4d3 100644
--- a/articles/active-directory/saas-apps/useall-tutorial.md
+++ b/articles/active-directory/saas-apps/useall-tutorial.md
@@ -4,8 +4,8 @@ description: Learn how to configure single sign-on between Azure Active Director
services: active-directory
documentationCenter: na
author: jeevansd
-manager: femila
-ms.reviewer: joflore
+manager: mtillman
+ms.reviewer: barbkess
ms.assetid: 8dd9e452-a5b6-4a16-a97c-b60211ea6b95
ms.service: active-directory
@@ -13,8 +13,8 @@ ms.subservice: saas-app-tutorial
ms.workload: identity
ms.tgt_pltfrm: na
ms.devlang: na
-ms.topic: article
-ms.date: 10/30/2018
+ms.topic: tutorial
+ms.date: 04/03/2019
ms.author: jeedes
ms.collection: M365-identity-device-management
@@ -22,37 +22,27 @@ ms.collection: M365-identity-device-management
# Tutorial: Azure Active Directory integration with Useall
In this tutorial, you learn how to integrate Useall with Azure Active Directory (Azure AD).
-
Integrating Useall with Azure AD provides you with the following benefits:
-- You can control in Azure AD who has access to Useall.
-- You can enable your users to automatically get signed-on to Useall (Single Sign-On) with their Azure AD accounts.
-- You can manage your accounts in one central location - the Azure portal.
+* You can control in Azure AD who has access to Useall.
+* You can enable your users to be automatically signed-in to Useall (Single Sign-On) with their Azure AD accounts.
+* You can manage your accounts in one central location - the Azure portal.
-If you want to know more details about SaaS app integration with Azure AD, see [what is application access and single sign-on with Azure Active Directory](../manage-apps/what-is-single-sign-on.md)
+If you want to know more details about SaaS app integration with Azure AD, see [What is application access and single sign-on with Azure Active Directory](https://docs.microsoft.com/azure/active-directory/active-directory-appssoaccess-whatis).
+If you don't have an Azure subscription, [create a free account](https://azure.microsoft.com/free/) before you begin.
## Prerequisites
To configure Azure AD integration with Useall, you need the following items:
-- An Azure AD subscription
-- A Useall single sign-on enabled subscription
-
-> [!NOTE]
-> To test the steps in this tutorial, we do not recommend using a production environment.
-
-To test the steps in this tutorial, you should follow these recommendations:
-
-- Do not use your production environment, unless it is necessary.
-- If you don't have an Azure AD trial environment, you can [get a one-month trial](https://azure.microsoft.com/pricing/free-trial/).
+* An Azure AD subscription. If you don't have an Azure AD environment, you can get a [free account](https://azure.microsoft.com/free/)
+* Useall single sign-on enabled subscription
## Scenario description
-In this tutorial, you test Azure AD single sign-on in a test environment.
-The scenario outlined in this tutorial consists of two main building blocks:
+In this tutorial, you configure and test Azure AD single sign-on in a test environment.
-1. Adding Useall from the gallery
-2. Configuring and testing Azure AD single sign-on
+* Useall supports **SP** initiated SSO
## Adding Useall from the gallery
@@ -62,144 +52,138 @@ To configure the integration of Useall into Azure AD, you need to add Useall fro
1. In the **[Azure portal](https://portal.azure.com)**, on the left navigation panel, click **Azure Active Directory** icon.
- ![The Azure Active Directory button][1]
+ ![The Azure Active Directory button](common/select-azuread.png)
-2. Navigate to **Enterprise applications**. Then go to **All applications**.
+2. Navigate to **Enterprise Applications** and then select the **All Applications** option.
- ![The Enterprise applications blade][2]
+ ![The Enterprise applications blade](common/enterprise-applications.png)
3. To add new application, click **New application** button on the top of dialog.
- ![The New application button][3]
+ ![The New application button](common/add-new-app.png)
4. In the search box, type **Useall**, select **Useall** from result panel then click **Add** button to add the application.
- ![Useall in the results list](./media/useall-tutorial/tutorial_useall_addfromgallery.png)
+ ![Useall in the results list](common/search-new-app.png)
## Configure and test Azure AD single sign-on
-In this section, you configure and test Azure AD single sign-on with Useall based on a test user called "Britta Simon".
-
-For single sign-on to work, Azure AD needs to know what the counterpart user in Useall is to a user in Azure AD. In other words, a link relationship between an Azure AD user and the related user in Useall needs to be established.
+In this section, you configure and test Azure AD single sign-on with Useall based on a test user called **Britta Simon**.
+For single sign-on to work, a link relationship between an Azure AD user and the related user in Useall needs to be established.
To configure and test Azure AD single sign-on with Useall, you need to complete the following building blocks:
-1. **[Configuring Azure AD Single Sign-On](#configuring-azure-ad-single-sign-on)** - to enable your users to use this feature.
-2. **[Creating an Azure AD test user](#creating-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
-3. **[Creating Useall test user](#creating-useall-test-user)** - to have a counterpart of Britta Simon in Useall that is linked to the Azure AD representation of user.
-4. **[Assigning the Azure AD test user](#assigning-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
-5. **[Testing single sign-on](#testing-single-sign-on)** - to verify whether the configuration works.
+1. **[Configure Azure AD Single Sign-On](#configure-azure-ad-single-sign-on)** - to enable your users to use this feature.
+2. **[Configure Useall Single Sign-On](#configure-useall-single-sign-on)** - to configure the Single Sign-On settings on application side.
+3. **[Create an Azure AD test user](#create-an-azure-ad-test-user)** - to test Azure AD single sign-on with Britta Simon.
+4. **[Assign the Azure AD test user](#assign-the-azure-ad-test-user)** - to enable Britta Simon to use Azure AD single sign-on.
+5. **[Create Useall test user](#create-useall-test-user)** - to have a counterpart of Britta Simon in Useall that is linked to the Azure AD representation of user.
+6. **[Test single sign-on](#test-single-sign-on)** - to verify whether the configuration works.
-### Configuring Azure AD single sign-on
+### Configure Azure AD single sign-on
-In this section, you enable Azure AD single sign-on in the Azure portal and configure single sign-on in your Useall application.
+In this section, you enable Azure AD single sign-on in the Azure portal.
-**To configure Azure AD single sign-on with Useall, perform the following steps:**
+To configure Azure AD single sign-on with Useall, perform the following steps:
-1. In the Azure portal, on the **Useall** application integration page, click **Single sign-on**.
+1. In the [Azure portal](https://portal.azure.com/), on the **Useall** application integration page, select **Single sign-on**.
- ![Configure single sign-on link][4]
+ ![Configure single sign-on link](common/select-sso.png)
-2. On the **Select a Single sign-on method** dialog, Click **Select** for **SAML** mode to enable single sign-on.
+2. On the **Select a Single sign-on method** dialog, select **SAML/WS-Fed** mode to enable single sign-on.
- ![Configure Single Sign-On](common/tutorial_general_301.png)
+ ![Single sign-on select mode](common/select-saml-option.png)
3. On the **Set up Single Sign-On with SAML** page, click **Edit** icon to open **Basic SAML Configuration** dialog.
- ![Configure Single Sign-On](common/editconfigure.png)
+ ![Edit Basic SAML Configuration](common/edit-urls.png)
4. On the **Basic SAML Configuration** section, perform the following steps:
- ![Useall Domain and URLs single sign-on information](./media/useall-tutorial/tutorial_useall_url.png)
+ ![Useall Domain and URLs single sign-on information](common/sp-identifier.png)
- a. In the **Sign on URL** textbox, type a URL using the following pattern: `https://