Skip to content

Commit acebd51

Browse files
authored
Merge branch 'main' into patch-285
2 parents 6f94e94 + 5fbf29b commit acebd51

File tree

1,110 files changed

+9397
-4534
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,110 files changed

+9397
-4534
lines changed

.openpublishing.publish.config.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -813,8 +813,8 @@
813813
"branch_mapping": {}
814814
},
815815
{
816-
"path_to_root": "azure-spring-cloud-reference-architecture",
817-
"url": "https://github.com/Azure/azure-spring-cloud-reference-architecture",
816+
"path_to_root": "azure-spring-apps-reference-architecture",
817+
"url": "https://github.com/Azure/azure-spring-apps-reference-architecture",
818818
"branch": "main",
819819
"branch_mapping": {}
820820
},
@@ -1016,6 +1016,7 @@
10161016
"articles/mysql/.openpublishing.redirection.mysql.json",
10171017
"articles/container-apps/.openpublishing.redirection.container-apps.json",
10181018
"articles/spring-cloud/.openpublishing.redirection.spring-cloud.json",
1019+
"articles/spring-apps/.openpublishing.redirection.spring-apps.json",
10191020
"articles/load-testing/.openpublishing.redirection.azure-load-testing.json",
10201021
"articles/azure-video-indexer/.openpublishing.redirection.azure-video-indexer.json",
10211022
"articles/machine-learning/.openpublishing.redirection.machine-learning.json",

.openpublishing.redirection.azure-monitor.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,11 @@
430430
"source_path_from_root": "/articles/azure-monitor/insights/key-vault-insights-overview.md" ,
431431
"redirect_url": "/azure/key-vault/key-vault-insights-overview",
432432
"redirect_document_id": false
433+
},
434+
{
435+
"source_path_from_root": "/articles/azure-monitor/app/cloudservices.md" ,
436+
"redirect_url": "/azure/azure-monitor/app/azure-web-apps-net-core",
437+
"redirect_document_id": false
433438
}
434439
]
435440
}

articles/active-directory/app-provisioning/on-premises-scim-provisioning.md

Lines changed: 25 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -23,27 +23,31 @@ The Azure Active Directory (Azure AD) provisioning service supports a [SCIM 2.0]
2323
- Administrator role for installing the agent. This task is a one-time effort and should be an Azure account that's either a hybrid administrator or a global administrator.
2424
- Administrator role for configuring the application in the cloud (application administrator, cloud application administrator, global administrator, or a custom role with permissions).
2525

26-
## On-premises app provisioning to SCIM-enabled apps
27-
To provision users to SCIM-enabled apps:
28-
29-
1. [Download](https://aka.ms/OnPremProvisioningAgent) the provisioning agent and copy it onto the virtual machine or server that your SCIM endpoint is hosted on.
30-
1. Open the provisioning agent installer, agree to the terms of service, and select **Install**.
31-
1. Open the provisioning agent wizard, and select **On-premises provisioning** when prompted for the extension you want to enable.
32-
1. Provide credentials for an Azure AD administrator when you're prompted to authorize. Hybrid administrator or global administrator is required.
33-
1. Select **Confirm** to confirm the installation was successful.
34-
1. Navigate to the Azure Portal and add the **On-premises SCIM app** from the [gallery](../../active-directory/manage-apps/add-application-portal.md).
35-
1. Select **On-Premises Connectivity**, and download the provisioning agent. 1. Go back to your application, and select **On-Premises Connectivity**.
36-
1. Select the agent that you installed from the dropdown list, and select **Assign Agent(s)**.
37-
1. Wait 20 minutes prior to completing the next step, to provide time for the agent assignment to complete.
38-
1. Provide the URL for your SCIM endpoint in the **Tenant URL** box. An example is https://localhost:8585/scim.
39-
![Screenshot that shows assigning an agent.](./media/on-premises-scim-provisioning/scim-2.png)
40-
1. Select **Test Connection**, and save the credentials. Use the steps [here](on-premises-ecma-troubleshoot.md#troubleshoot-test-connection-issues) if you run into connectivity issues.
41-
1. Configure any [attribute mappings](customize-application-attributes.md) or [scoping](define-conditional-rules-for-provisioning-user-accounts.md) rules required for your application.
42-
1. Add users to scope by [assigning users and groups](../../active-directory/manage-apps/add-application-portal-assign-users.md) to the application.
43-
1. Test provisioning a few users [on demand](provision-on-demand.md).
44-
1. Add more users into scope by assigning them to your application.
45-
1. Go to the **Provisioning** pane, and select **Start provisioning**.
46-
1. Monitor using the [provisioning logs](../../active-directory/reports-monitoring/concept-provisioning-logs.md).
26+
## Deploying Azure AD provisioning agent
27+
The Azure AD Provisioning agent can be deployed on the same server hosting a SCIM enabled application, or a seperate server, providing it has line of sight to the application's SCIM endpoint. A single agent also supports provision to multiple applications hosted locally on the same server or seperate hosts, again as long as each SCIM endpoint is reachable by the agent.
28+
29+
1. [Download](https://aka.ms/OnPremProvisioningAgent) the provisioning agent and copy it onto the virtual machine or server that your SCIM application endpoint is hosted on.
30+
2. Run the provisioning agent installer, agree to the terms of service, and select **Install**.
31+
3. Once installed, locate and launch the **AAD Connect Provisioning Agent wizard**, and when prompted for an extensions select **On-premises provisioning**
32+
4. For the agent to register itself with your tenant, provide credentials for an Azure AD admin with Hybrid administrator or global administrator permissions.
33+
5. Select **Confirm** to confirm the installation was successful.
34+
35+
## Provisioning to SCIM-enabled application
36+
Once the agent is installed, no further configuration is necesary on-prem, and all provisioning configurations are then managed from the portal. Repeat the below steps for every on-premises application being provisioned via SCIM.
37+
38+
1. In the Azure portal navigate to the Enterprise applications and add the **On-premises SCIM app** from the [gallery](../../active-directory/manage-apps/add-application-portal.md).
39+
2. From the left hand menu navigate to the **Provisioning** option and select **Get started**.
40+
3. Select **Automatic** from the dropdown list and expand the **On-Premises Connectivity** option.
41+
4. Select the agent that you installed from the dropdown list and select **Assign Agent(s)**.
42+
5. Now either wait 10 minutes or restart the **Microsoft Azure AD Connect Provisioning Agent** before proceeding to the next step & testing the connection.
43+
6. In the **Tenant URL** field, provide the SCIM endpoint URL for your application. The URL is typically unique to each target application and must be resolveable by DNS. An example for a scenario where the agent is installed on the same host as the application is https://localhost:8585/scim ![Screenshot that shows assigning an agent.](./media/on-premises-scim-provisioning/scim-2.png)
44+
7. Select **Test Connection**, and save the credentials. The application SCIM endpoint must be actively listening for inbound provisioning requests, otherwise the test will fail. Use the steps [here](on-premises-ecma-troubleshoot.md#troubleshoot-test-connection-issues) if you run into connectivity issues.
45+
8. Configure any [attribute mappings](customize-application-attributes.md) or [scoping](define-conditional-rules-for-provisioning-user-accounts.md) rules required for your application.
46+
9. Add users to scope by [assigning users and groups](../../active-directory/manage-apps/add-application-portal-assign-users.md) to the application.
47+
10. Test provisioning a few users [on demand](provision-on-demand.md).
48+
11. Add more users into scope by assigning them to your application.
49+
12. Go to the **Provisioning** pane, and select **Start provisioning**.
50+
13. Monitor using the [provisioning logs](../../active-directory/reports-monitoring/concept-provisioning-logs.md).
4751

4852
## Additional requirements
4953
* Ensure your [SCIM](https://techcommunity.microsoft.com/t5/identity-standards-blog/provisioning-with-scim-getting-started/ba-p/880010) implementation meets the [Azure AD SCIM requirements](use-scim-to-provision-users-and-groups.md).

articles/active-directory/develop/id-tokens.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ The table below shows the claims that are in most ID tokens by default (except w
8484
|`roles`| Array of strings | The set of roles that were assigned to the user who is logging in. |
8585
|`rh` | Opaque String |An internal claim used by Azure to revalidate tokens. Should be ignored. |
8686
|`sub` | String | The principal about which the token asserts information, such as the user of an app. This value is immutable and cannot be reassigned or reused. The subject is a pairwise identifier - it is unique to a particular application ID. If a single user signs into two different apps using two different client IDs, those apps will receive two different values for the subject claim. This may or may not be wanted depending on your architecture and privacy requirements. |
87-
|`tid` | String, a GUID | Represents the tenant that the user is signing in to. For work and school accounts, the GUID is the immutable tenant ID of the organization that the user is signing in to. For sign-ins to the personal Microsoft account tenant (services like Xbox, Teams for Life, or Outlook), the value is `9188040d-6c67-4c5b-b112-36a304b66dad`. To receive this claim, your app must request the `profile` scope. |
87+
|`tid` | String, a GUID | Represents the tenant that the user is signing in to. For work and school accounts, the GUID is the immutable tenant ID of the organization that the user is signing in to. For sign-ins to the personal Microsoft account tenant (services like Xbox, Teams for Life, or Outlook), the value is `9188040d-6c67-4c5b-b112-36a304b66dad`.|
8888
| `unique_name` | String | Only present in v1.0 tokens. Provides a human readable value that identifies the subject of the token. This value is not guaranteed to be unique within a tenant and should be used only for display purposes. |
8989
| `uti` | String | Token identifier claim, equivalent to `jti` in the JWT specification. Unique, per-token identifier that is case-sensitive.|
9090
|`ver` | String, either 1.0 or 2.0 | Indicates the version of the id_token. |

articles/active-directory/fundamentals/scenario-azure-first-sap-identity-integration.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ This document provides advice on the technical design and configuration of SAP p
2929
| [IPS](https://help.sap.com/viewer/f48e822d6d484fa5ade7dda78b64d9f5/Cloud/en-US/2d2685d469a54a56b886105a06ccdae6.html) | SAP Cloud Identity Services - Identity Provisioning Service. IPS helps to synchronize identities between different stores / target systems. |
3030
| [XSUAA](https://blogs.sap.com/2019/01/07/uaa-xsuaa-platform-uaa-cfuaa-what-is-it-all-about/) | Extended Services for Cloud Foundry User Account and Authentication. XSUAA is a multi-tenant OAuth authorization server within the SAP BTP. |
3131
| [CF](https://www.cloudfoundry.org/) | Cloud Foundry. Cloud Foundry is the environment on which SAP built their multi-cloud offering for BTP (AWS, Azure, GCP, Alibaba). |
32-
| [Fiori](https://www.sap.com/products/fiori/develop.html) | The web-based user experience of SAP (as opposed to the desktop-based experience). |
32+
| [Fiori](https://www.sap.com/products/fiori.html) | The web-based user experience of SAP (as opposed to the desktop-based experience). |
3333

3434
## Overview
3535

@@ -272,4 +272,4 @@ Azure AD B2C doesn't natively support the use of groups to create collections of
272272

273273
Fortunately, Azure AD B2C is highly customizable, so you can configure the SAML tokens it sends to IAS to include any custom information. For various options on supporting authorization claims, see the documentation accompanying the [Azure AD B2C App Roles sample](https://github.com/azure-ad-b2c/api-connector-samples/tree/main/Authorization-AppRoles), but in summary: through its [API Connector](../../active-directory-b2c/api-connectors-overview.md) extensibility mechanism you can optionally still use groups, app roles, or even a custom database to determine what the user is allowed to access.
274274

275-
Regardless of where the authorization information comes from, it can then be emitted as the `Groups` attribute inside the SAML token by configuring that attribute name as the [default partner claim type on the claims schema](../../active-directory-b2c/claimsschema.md#defaultpartnerclaimtypes) or by overriding the [partner claim type on the output claims](../../active-directory-b2c/relyingparty.md#outputclaims). Note however that BTP allows you to [map Role Collections to User Attributes](https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/b3fbb1a9232d4cf99967a0b29dd85d4c.html), which means that *any* attribute name can be used for authorization decisions, even if you don't use the `Groups` attribute name.
275+
Regardless of where the authorization information comes from, it can then be emitted as the `Groups` attribute inside the SAML token by configuring that attribute name as the [default partner claim type on the claims schema](../../active-directory-b2c/claimsschema.md#defaultpartnerclaimtypes) or by overriding the [partner claim type on the output claims](../../active-directory-b2c/relyingparty.md#outputclaims). Note however that BTP allows you to [map Role Collections to User Attributes](https://help.sap.com/products/BTP/65de2977205c403bbc107264b8eccf4b/b3fbb1a9232d4cf99967a0b29dd85d4c.html), which means that *any* attribute name can be used for authorization decisions, even if you don't use the `Groups` attribute name.
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
---
2+
title: 'Create an enterprise application from a multi-tenant application'
3+
description: Create an enterprise application using the client ID for a multi-tenant application.
4+
services: active-directory
5+
author: omondiatieno
6+
manager: CelesteDG
7+
ms.service: active-directory
8+
ms.subservice: app-mgmt
9+
ms.topic: how-to
10+
ms.workload: identity
11+
ms.date: 07/26/2022
12+
ms.author: jomondi
13+
ms.reviewer: karavar
14+
ms.custom: mode-other
15+
zone_pivot_groups: enterprise-apps-cli
16+
17+
18+
#Customer intent: As an administrator of an Azure AD tenant, I want to create an enterprise application using client ID for a multi-tenant application provided by a service provider or independent software vendor.
19+
---
20+
21+
# Create an enterprise application from a multi-tenant application in Azure Active Directory
22+
23+
In this article, you'll learn how to create an enterprise application in your tenant using the client ID for a multi-tenant application. An enterprise application refers to a service principal within a tenant. The service principal discussed in this article is the local representation, or application instance, of a global application object in a single tenant or directory.
24+
25+
Before you proceed to add the application using any of these options, check whether the enterprise application is already in your tenant by attempting to sign in to the application. If the sign-in is successful, the enterprise application already exists in your tenant.
26+
27+
If you have verified that the application isn't in your tenant, proceed with any of the following ways to add the enterprise application to your tenant using the appId
28+
29+
## Prerequisites
30+
31+
To add an enterprise application to your Azure AD tenant, you need:
32+
33+
- An Azure AD user account. If you don't already have one, you can [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
34+
- One of the following roles: Global Administrator, Cloud Application Administrator, or Application Administrator.
35+
- The client ID of the multi-tenant application.
36+
37+
38+
## Create an enterprise application
39+
40+
:::zone pivot="admin-consent-url"
41+
42+
If you've been provided with the admin consent URL, navigate to the URL through a web browser to [grant tenant-wide admin consent](grant-admin-consent.md) to the application. Granting tenant-wide admin consent to the application will add it to your tenant. The tenant-wide admin consent URL has the following format:
43+
44+
```http
45+
https://login.microsoftonline.com/common/oauth2/authorize?response_type=code&client_id=248e869f-0e5c-484d-b5ea1fba9563df41&redirect_uri=https://www.your-app-url.com
46+
```
47+
where:
48+
49+
- `{client-id}` is the application's client ID (also known as appId).
50+
51+
:::zone-end
52+
53+
:::zone pivot="msgraph-powershell"
54+
55+
1. Run `connect-MgGraph -Scopes "Application.ReadWrite.All"` and sign in with a Global Admin user account.
56+
1. Run the following command to create the enterprise application:
57+
58+
```powershell
59+
New-MgServicePrincipal -AppId fc876dd1-6bcb-4304-b9b6-18ddf1526b62
60+
```
61+
1. To delete the enterprise application you created, run the command:
62+
63+
```powershell
64+
Remove-MgServicePrincipal
65+
-ServicePrincipalId <objectID>
66+
```
67+
:::zone-end
68+
:::zone pivot="ms-graph"
69+
70+
From the Microsoft Graph explorer window:
71+
72+
1. To create the enterprise application, insert the following query:
73+
74+
```http
75+
POST /servicePrincipals.
76+
```
77+
1. Supply the following request in the **Request body**.
78+
79+
{
80+
"appId": "fc876dd1-6bcb-4304-b9b6-18ddf1526b62"
81+
}
82+
1. Grant the Application.ReadWrite.All permission under the **Modify permissions** tab and select **Run query**.
83+
84+
1. To delete the enterprise application you created, run the query:
85+
86+
```http
87+
DELETE /servicePrincipals/{objectID}
88+
```
89+
:::zone-end
90+
:::zone pivot="azure-cli"
91+
1. To create the enterprise application, run the following command:
92+
93+
```azurecli
94+
az ad sp create --id fc876dd1-6bcb-4304-b9b6-18ddf1526b62
95+
```
96+
97+
1. To delete the enterprise application you created, run the command:
98+
99+
```azurecli
100+
az ad sp delete --id
101+
```
102+
103+
:::zone-end
104+
105+
## Next steps
106+
107+
- [Add RBAC role to the enterprise application](/azure/role-based-access-control/role-assignments-portal)
108+
- [Assign users to your application](add-application-portal-assign-users.md)

articles/active-directory/manage-apps/toc.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,8 @@
234234
href: application-sign-in-problem-application-error.md
235235
- name: Problem signing into a Microsoft app
236236
href: application-sign-in-problem-first-party-microsoft.md
237+
- name: Create enterprise app for multi-tenant app registration
238+
href: create-service-principal-cross-tenant.md
237239
- name: Reference
238240
items:
239241
- name: Deletion and recovery FAQ

articles/active-directory/manage-apps/what-is-application-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ To [manage access](what-is-access-management.md) for an application, you want to
6161

6262
You can [manage user consent settings](configure-user-consent.md) to choose whether users can allow an application or service to access user profiles and organizational data. When applications are granted access, users can sign in to applications integrated with Azure AD, and the application can access your organization's data to deliver rich data-driven experiences.
6363

64-
Users often are unable to consent to the permissions an application is requesting. Configure the [admin consent workflow](configure-admin-consent-workflow.md) to allow users to provide a justification and request an administrator's review and approval of an application.
64+
Users often are unable to consent to the permissions an application is requesting. Configure the admin consent workflow to allow users to provide a justification and request an administrator's review and approval of an application. For training on how to configure admin consent workflow in your Azure AD tenant, see [Configure admin consent workflow](/learn/modules/configure-admin-consent-workflow).
6565

6666
As an administrator, you can [grant tenant-wide admin consent](grant-admin-consent.md) to an application. Tenant-wide admin consent is necessary when an application requires permissions that regular users aren't allowed to grant, and allows organizations to implement their own review processes. Always carefully review the permissions the application is requesting before granting consent. When an application has been granted tenant-wide admin consent, all users are able to sign into the application unless it has been configured to require user assignment.
6767

0 commit comments

Comments
 (0)