You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
# Customer intent: As an identity administrator, I want to encourage users to use the Microsoft Authenticator app in Azure AD to improve and secure user sign-in events.
System-preferred multifactor authentication (MFA) prompts users to sign in by using the most secure method they registered. Administrators can enable system-preferred MFA to improve sign-in security and discourage less secure sign-in methods like SMS.
@@ -111,7 +112,7 @@ When a user signs in, the authentication process checks which authentication met
title: Create folders to organize your Authorization Systems
3
+
description: How to create folders to organize Authorization Systems - accounts, subscriptions, and projects - in Microsoft Entra Permissions Management.
4
+
services: active-directory
5
+
author: jenniferf-skc
6
+
manager: amycolannino
7
+
ms.service: active-directory
8
+
ms.subservice: ciem
9
+
ms.workload: identity
10
+
ms.topic: how-to
11
+
ms.date: 08/09/2023
12
+
ms.author: jfields
13
+
---
14
+
15
+
# Create folders to organize your authorization systems
16
+
17
+
After onboarding your cloud environment to Permissions Management, you might have multiple authorization systems (AWS accounts, Azure subscriptions, or GCP projets) that you need to manage. You can create folders to organize and group together your list of accounts, subscriptions, or projects to manage your workflow more efficiently.
18
+
19
+
## Create a folder
20
+
21
+
1. On the Permissions Management home page, select the **Data Collectors** tab and make sure that the **Status** for your cloud environment is **Onboarded**.
22
+
1. Select the **Authorization Systems** subtab, then **Folders**.
23
+
1. Click **Create Folder**.
24
+
1. In the **Folder Name** field, enter a name for the folder you want to create.
25
+
1. From the list of names, select all Authorization Systems (accounts, subscriptions, or projects) you want to add to this folder.
26
+
1. Click **Save**. Your folder is created.
27
+
1. Repeat these steps to create as many folders as you need.
28
+
29
+
## Next steps
30
+
31
+
-[View key statistics and data about your authorization systems](ui-dashboard.md)
32
+
-[View data about the activity in your authorization system](product-dashboard.md)
Copy file name to clipboardExpand all lines: articles/active-directory/develop/jwt-claims-customization.md
+282Lines changed: 282 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -195,6 +195,288 @@ As another example, consider when Britta Simon tries to sign in using the follow
195
195
196
196
As a final example, consider what happens if Britta has no `user.othermail` configured or it's empty. The claim falls back to `user.extensionattribute1` ignoring the condition entry in both cases.
197
197
198
+
## Security considerations
199
+
Applications that receive tokens rely on claim values that are authoritatively issued by Azure AD and can't be tampered with. When you modify the token contents through claims customization, these assumptions may no longer be correct. Applications must explicitly acknowledge that tokens have been modified by the creator of the customization to protect themselves from customizations created by malicious actors. This can be done in one the following ways:
200
+
201
+
-[Configure a custom signing key](#configure-a-custom-signing-key)
202
+
-[update the application manifest to accept mapped claims](#update-the-application-manifest).
203
+
204
+
Without this, Azure AD returns an [AADSTS50146 error code](reference-aadsts-error-codes.md#aadsts-error-codes).
205
+
206
+
## Configure a custom signing key
207
+
For multi-tenant apps, a custom signing key should be used. Don't set `acceptMappedClaims` in the app manifest. when setting up an app in the Azure portal, you get an app registration object and a service principal in your tenant. That app is using the Azure global sign-in key, which can't be used for customizing claims in tokens. To get custom claims in tokens, create a custom sign-in key from a certificate and add it to service principal. For testing purposes, you can use a self-signed certificate. After configuring the custom signing key, your application code needs to validate the token signing key.
208
+
209
+
Add the following information to the service principal:
210
+
211
+
- Private key (as a [key credential](/graph/api/resources/keycredential?view=graph-rest-1.0&preserve-view=true))
212
+
- Password (as a [password credential](/graph/api/resources/passwordcredential?view=graph-rest-1.0&preserve-view=true))
213
+
- Public key (as a [key credential](/graph/api/resources/keycredential?view=graph-rest-1.0&preserve-view=true))
214
+
215
+
Extract the private and public key base-64 encoded from the PFX file export of your certificate. Make sure that the `keyId` for the `keyCredential` used for "Sign" matches the `keyId` of the `passwordCredential`. You can generate the `customkeyIdentifier` by getting the hash of the cert's thumbprint.
216
+
217
+
## Request
218
+
The following example shows the format of the HTTP PATCH request to add a custom signing key to a service principal. The "key" value in the `keyCredentials` property is shortened for readability. The value is base-64 encoded. For the private key, the property usage is "Sign". For the public key, the property usage is "Verify".
## Configure a custom signing key using PowerShell
263
+
Use PowerShell to [instantiate an MSAL Public Client Application](msal-net-initializing-client-applications.md#initializing-a-public-client-application-from-code) and use the [Authorization Code Grant](v2-oauth2-auth-code-flow.md) flow to obtain a delegated permission access token for Microsoft Graph. Use the access token to call Microsoft Graph and configure a custom signing key for the service principal. After configuring the custom signing key, your application code needs to [validate the token signing key](#validate-token-signing-key).
264
+
265
+
To run this script you need:
266
+
267
+
- The object ID of your application's service principal, found in the Overview blade of your application's entry in Enterprise Applications in the Azure portal.
268
+
- An app registration to sign in a user and get an access token to call Microsoft Graph. Get the application (client) ID of this app in the Overview blade of the application's entry in App registrations in the Azure portal. The app registration should have the following configuration:
269
+
- A redirect URI of "http://localhost" listed in the **Mobile and desktop applications** platform configuration.
270
+
- In **API permissions**, Microsoft Graph delegated permissions **Application.ReadWrite.All** and **User.Read** (make sure you grant Admin consent to these permissions).
271
+
- A user who logs in to get the Microsoft Graph access token. The user should be one of the following Azure AD administrative roles (required to update the service principal):
272
+
- Cloud Application Administrator
273
+
- Application Administrator
274
+
- Global Administrator
275
+
- A certificate to configure as a custom signing key for our application. You can either create a self-signed certificate or obtain one from your trusted certificate authority. The following certificate components are used in the script:
276
+
- public key (typically a .cer file)
277
+
- private key in PKCS#12 format (in .pfx file)
278
+
- password for the private key (pfx file)
279
+
280
+
> [!IMPORTANT]
281
+
> The private key must be in PKCS#12 format since Azure AD doesn't support other format types. Using the wrong format can result in the error "Invalid certificate: Key value is invalid certificate" when using Microsoft Graph to PATCH the service principal with a `keyCredentials` containing the certificate information.
282
+
283
+
```
284
+
$fqdn="fourthcoffeetest.onmicrosoft.com" # this is used for the 'issued to' and 'issued by' field of the certificate
285
+
$pwd="mypassword" # password for exporting the certificate private key
286
+
$location="C:\\temp" # path to folder where both the pfx and cer file will be written to
Apps that have claims mapping enabled must validate their token signing keys by appending `appid={client_id}` to their [OpenID Connect metadata requests](v2-protocols-oidc.md#fetch-the-openid-configuration-document). The following example shows the format of the OpenID Connect metadata document you should use:
For single tenant apps, you can set the `acceptMappedClaims` property to `true` in the [application manifest](reference-app-manifest.md). As documented on the [apiApplication resource type](/graph/api/resources/apiapplication?view=graph-rest-1.0&preserve-view=true#properties), this allows an application to use claims mapping without specifying a custom signing key.
472
+
473
+
>[!WARNING]
474
+
>Do not set the acceptMappedClaims property to true for multi-tenant apps, which can allow malicious actors to create claims-mapping policies for your app.
475
+
476
+
The requested token audience is required to use a verified domain name of your Azure AD tenant, which means you should set the `Application ID URI` (represented by the `identifierUris` in the application manifest) for example to `https://contoso.com/my-api` or (simply using the default tenant name) `https://contoso.onmicrosoft.com/my-api`.
477
+
478
+
If you're not using a verified domain, Azure AD returns an `AADSTS501461` error code with message "_AcceptMappedClaims is only supported for a token audience matching the application GUID or an audience within the tenant's verified domains. Either change the resource identifier or use an application-specific signing key."
479
+
198
480
## Advanced claims options
199
481
200
482
Configure advanced claims options for OIDC applications to expose the same claim as SAML tokens. Also for applications that intend to use the same claim for both SAML2.0 and OIDC response tokens.
0 commit comments