Pourquoi mettre à jour à la plateforme d’identités Microsoft (v2.0) ?Why update to Microsoft identity platform (v2.0)?

Lorsque vous développez une nouvelle application, il est important de connaître les différences entre les points de terminaison respectifs de la Plateforme d’identités Microsoft (v2.0) et d’Azure Active Directory (v1.0).When developing a new application, it's important to know the differences between the Microsoft identity platform (v2.0) and Azure Active Directory (v1.0) endpoints. Cet article décrit les principales différences entre ces points de terminaison et certains limitations existantes pour la Plateforme d’identités Microsoft.This article covers the main differences between the endpoints and some existing limitations for Microsoft identity platform.

Notes

Le point de terminaison de la plateforme d’identités Microsoft ne prend pas en charge l’intégralité des scénarios Azure AD et fonctionnalités.The Microsoft identity platform endpoint doesn't support all Azure AD scenarios and features. Pour déterminer si vous devez utiliser le point de terminaison de la plateforme d’identités Microsoft, consultez les limitations de la plateforme d’identités Microsoft.To determine if you should use the Microsoft identity platform endpoint, read about Microsoft identity platform limitations.

Qui peut se connecterWho can sign in

Utilisateurs autorisés à se connecter avec les points de terminaison v1.0 et v2.0

  • Le point de terminaison v1.0 permet uniquement aux comptes professionnels et scolaires de se connecter à votre application (Azure AD).The v1.0 endpoint allows only work and school accounts to sign in to your application (Azure AD)
  • Le point de terminaison de la Plateforme d’identités Microsoft permet aux comptes professionnels et scolaires d’Azure AD ainsi qu’aux comptes Microsoft personnels (MSA), tels que hotmail.com, outlook.com et msn.com, de se connecter.The Microsoft identity platform endpoint allows work and school accounts from Azure AD and personal Microsoft accounts (MSA), such as hotmail.com, outlook.com, and msn.com, to sign in.
  • Les deux points de terminaison acceptent également des connexions d’ utilisateurs invités issus d’un répertoire Azure AD pour les applications configurées comme étant à client unique ou pour les applications mutualisées configurées de manière à pointer vers le point de terminaison spécifique du locataire (https://login.microsoftonline.com/{TenantId_or_Name}).Both endpoints also accept sign-ins of guest users of an Azure AD directory for applications configured as single-tenant or for multi-tenant applications configured to point to the tenant-specific endpoint (https://login.microsoftonline.com/{TenantId_or_Name}).

Le point de terminaison de la Plateforme d’identités Microsoft vous permet d’écrire des applications qui acceptent les connexions à partir de comptes Microsoft personnels, ainsi que de comptes professionnels ou scolaires.The Microsoft identity platform endpoint allows you to write apps that accept sign-ins from personal Microsoft accounts, and work and school accounts. Ceci vous donne la possibilité d’écrire votre application de façon complètement indépendante des comptes.This gives you the ability to write your app completely account-agnostic. Par exemple, si votre application appelle Microsoft Graph, certaines fonctionnalités et données supplémentaires seront disponibles pour les comptes professionnels, comme leurs sites SharePoint ou les données de leurs annuaires.For example, if your app calls the Microsoft Graph, some additional functionality and data will be available to work accounts, such as their SharePoint sites or directory data. Mais pour de nombreuses actions, comme la lecture du courrier d’un utilisateur, vous pouvez utiliser le même code pour accéder à la messagerie, aussi bien pour les comptes professionnels que scolaires.But for many actions, such as Reading a user's mail, the same code can access the email for both personal and work and school accounts.

Pour le point de terminaison de la Plateforme d’identités Microsoft, vous pouvez utiliser la bibliothèque MSAL (Microsoft Authentication Library) pour accéder aux différents mondes (utilisateurs privés, scolaires ou professionnels).For Microsoft identity platform endpoint, you can use the Microsoft Authentication Library (MSAL) to gain access to the consumer, educational, and enterprise worlds. Le point de terminaison Azure AD v1.0 accepte les connexions uniquement depuis des comptes professionnels et scolaires.The Azure AD v1.0 endpoint accepts sign-ins from work and school accounts only.

Les applications qui utilisent le point de terminaison Azure AD v1.0 doivent spécifier à l’avance les autorisations OAuth 2.0 requises, par exemple :Apps using the Azure AD v1.0 endpoint are required to specify their required OAuth 2.0 permissions in advance, for example:

Exemple illustrant l’interface utilisateur d’inscription des autorisations

Les autorisations qui sont directement définies sur l’inscription d’application sont statiques.The permissions set directly on the application registration are static. Bien que les autorisations statiques de l’application définies dans le portail Azure préservent la simplicité du code, elles présentent quelques problèmes potentiels pour les développeurs :While static permissions of the app defined in the Azure portal keep the code nice and simple, it presents some possible issues for developers:

  • L’application doit demander toutes les autorisations dont elle est susceptible d’avoir besoin dès la première connexion de l’utilisateur.The app needs to request all the permissions it would ever need upon the user's first sign-in. Ceci peut résulter en une longue liste d’autorisations qui décourage les utilisateurs finaux d’approuver l’accès de l’application lors de la connexion initiale.This can lead to a long list of permissions that discourages end users from approving the app's access on initial sign-in.

  • L’application doit connaître au préalable l’ensemble des ressources auxquelles elle est susceptible d’accéder.The app needs to know all of the resources it would ever access ahead of time. Il était difficile de créer des applications pouvant accéder à un nombre arbitraire de ressources.It was difficult to create apps that could access an arbitrary number of resources.

Avec le point de terminaison de la Plateforme d’identités Microsoft, vous pouvez ignorer les autorisations statiques définies dans les informations d’inscription de l’application du portail Azure et demander à la place des autorisations de façon incrémentielle, ce qui signifie demander dès le départ un ensemble minimal d’autorisations, puis d’en demander plus au fil du temps à mesure que le client utilise des fonctionnalités supplémentaires de l’application.With the Microsoft identity platform endpoint, you can ignore the static permissions defined in the app registration information in the Azure portal and request permissions incrementally instead, which means asking for a bare minimum set of permissions upfront and growing more over time as the customer uses additional app features. Pour cela, vous pouvez spécifier les étendues dont votre application a besoin à tout moment en incluant les nouvelles étendues dans le paramètre scope quand vous demandez un jeton d’accès, sans qu’il soit nécessaire de les définir au préalable dans les informations d’inscription de l’application.To do so, you can specify the scopes your app needs at any time by including the new scopes in the scope parameter when requesting an access token - without the need to pre-define them in the application registration information. Si l’utilisateur n’a pas encore consenti aux nouvelles étendues ajoutées à la demande, il est invité à donner son consentement seulement aux nouvelles autorisations.If the user hasn't yet consented to new scopes added to the request, they'll be prompted to consent only to the new permissions. Pour plus d’informations, consultez Autorisations, consentements et étendues.To learn more, see permissions, consent, and scopes.

En permettant à l’application de demander des autorisations de façon dynamique grâce au paramètre scope, les développeurs maîtrisent totalement l’expérience de vos utilisateurs.Allowing an app to request permissions dynamically through the scope parameter gives developers full control over your user's experience. Vous pouvez aussi anticiper l’expérience de consentement et demander toutes les autorisations dans une même demande d’autorisation initiale.You can also front load your consent experience and ask for all permissions in one initial authorization request. Si votre application nécessite un grand nombre d’autorisations, vous pouvez les demander à l’utilisateur de façon incrémentielle quand il essaie d’utiliser certaines fonctionnalités de votre application au fil du temps.If your app requires a large number of permissions, you can gather those permissions from the user incrementally as they try to use certain features of the app over time.

Quand il est recueilli pour le compte d’une organisation, le consentement de l’administrateur nécessite toujours les autorisations statiques inscrites pour l’application. Par conséquent, nous vous recommandons de définir ces autorisations pour les applications dans le portail d’inscription des applications si vous avez besoin qu’un administrateur donne son consentement pour le compte de toute l’organisation.Admin consent done on behalf of an organization still requires the static permissions registered for the app, so you should set those permissions for apps in the app registration portal if you need an admin to give consent on behalf of the entire organization. Ainsi, les cycles nécessaires à l’administrateur de l’organisation pour configurer l’application sont réduits.This reduces the cycles required by the organization admin to set up the application.

Des étendues, pas des ressourcesScopes, not resources

Lorsqu’elle utilise le point de terminaison v1.0, une application peut se comporter comme une ressource ou comme un destinataire de jetons.For apps using the v1.0 endpoint, an app can behave as a resource, or a recipient of tokens. Une ressource peut définir plusieurs étendues ou oAuth2Permissions qu’elle comprend, permettant ainsi aux applications clientes de demander des jetons à cette ressource pour un ensemble d’étendues donné.A resource can define a number of scopes or oAuth2Permissions that it understands, allowing client apps to request tokens from that resource for a certain set of scopes. Prenez comme exemple de ressource l’API Graph d’Azure AD :Consider the Azure AD Graph API as an example of a resource:

  • Identificateur de ressource, ou AppID URI : https://graph.windows.net/Resource identifier, or AppID URI: https://graph.windows.net/
  • Étendues ou oAuth2Permissions: Directory.Read, Directory.Write, et ainsi de suite.Scopes, or oAuth2Permissions: Directory.Read, Directory.Write, and so on.

Ceci se vérifie pour le point de terminaison de la Plateforme d’identités Microsoft.This holds true for the Microsoft identity platform endpoint. Une application peut toujours se comporter comme une ressource, définir des étendues et être identifiée par un URI.An app can still behave as a resource, define scopes, and be identified by a URI. Les applications clientes peuvent toujours demander l’accès à ces étendues.Client apps can still request access to those scopes. Toutefois, la manière dont le client demande ces autorisations a changé.However, the way that a client requests those permissions have changed.

Pour le point de terminaison v1.0, une demande d’autorisation OAuth 2.0 à Azure AD pouvait ressembler à ceci :For the v1.0 endpoint, an OAuth 2.0 authorize request to Azure AD might have looked like:

GET https://login.microsoftonline.com/common/oauth2/authorize?
client_id=2d4d11a2-f814-46a7-890a-274a72a7309e
&resource=https://graph.windows.net/
...

Ici, le paramètre resource indiquait la ressource pour laquelle l’application cliente demandait une autorisation.Here, the resource parameter indicated which resource the client app is requesting authorization. Azure AD calculait les autorisations requises par l’application en fonction de la configuration statique définie sur le Portail Azure, puis émettait les jetons en conséquence.Azure AD computed the permissions required by the app based on static configuration in the Azure portal, and issued tokens accordingly.

Pour les applications utilisant le point de terminaison de la Plateforme d’identités Microsoft, cette même demande d’autorisation OAuth 2.0 ressemble à ceci :For applications using the Microsoft identity platform endpoint, the same OAuth 2.0 authorize request looks like:

GET https://login.microsoftonline.com/common/oauth2/v2.0/authorize?
client_id=2d4d11a2-f814-46a7-890a-274a72a7309e
&scope=https://graph.windows.net/directory.read%20https://graph.windows.net/directory.write
...

Ici, le paramètre scope indique la ressource et les autorisations pour lesquelles l’application demande une autorisation.Here, the scope parameter indicates which resource and permissions the app is requesting authorization. La ressource souhaitée est toujours présente dans la demande : elle est englobée dans chacune des valeurs du paramètre d’étendue.The desired resource is still present in the request - it's encompassed in each of the values of the scope parameter. L’utilisation du paramètre d’étendue de cette manière permet au point de terminaison de la Plateforme d’identités Microsoft d’être plus conforme à la spécification OAuth 2.0, ainsi qu’aux pratiques courantes du secteur.Using the scope parameter in this manner allows the Microsoft identity platform endpoint to be more compliant with the OAuth 2.0 specification, and aligns more closely with common industry practices. Elle permet également aux applications d’obtenir un consentement incrémentiel en ne demandant des autorisations que quand elles en ont besoin, plutôt qu’au préalable.It also enables apps to do incremental consent - only requesting permissions when the application requires them as opposed to up front.

Étendues connuesWell-known scopes

Accès hors connexionOffline access

Les applications qui utilisent le point de terminaison de la Plateforme d’identités Microsoft peuvent nécessiter l’utilisation d’une nouvelle autorisation bien connue pour les applications, à savoir l’étendue offline_access.Apps using the Microsoft identity platform endpoint may require the use of a new well-known permission for apps - the offline_access scope. Toutes les applications doivent demander cette autorisation si elles doivent accéder aux ressources au nom d’un utilisateur pendant une période prolongée, même si l’utilisateur n’utilise peut-être pas activement l’application donnée.All apps will need to request this permission if they need to access resources on the behalf of a user for a prolonged period of time, even when the user may not be actively using the app. L’étendue offline_access apparaît à l’utilisateur dans la boîte de dialogue de consentement Accéder aux données à tout moment, que l’utilisateur doit accepter.The offline_access scope will appear to the user in consent dialogs as Access your data anytime, which the user must agree to. Demander l’autorisation offline_access permet à votre application web de recevoir les jetons d’actualisation OAuth 2.0 du point de terminaison de la Plateforme d’identités Microsoft.Requesting the offline_access permission will enable your web app to receive OAuth 2.0 refresh_tokens from the Microsoft identity platform endpoint. Les jetons d’actualisation ont une durée de vie assez longue, et peuvent être échangés contre les nouveaux jetons d’accès OAuth 2.0 pour des périodes d’accès prolongées.Refresh tokens are long-lived, and can be exchanged for new OAuth 2.0 access tokens for extended periods of access.

Si votre application ne sollicite pas l’étendue offline_access, elle ne reçoit pas de jetons d’actualisation.If your app doesn't request the offline_access scope, it won't receive refresh tokens. Ainsi, quand vous échangez un code d’autorisation dans le flux de code d’autorisation OAuth 2.0, vous recevez seulement en retour un jeton d’accès du point de terminaison /token.This means that when you redeem an authorization code in the OAuth 2.0 authorization code flow, you'll only receive back an access token from the /token endpoint. Ce jeton d’accès demeure valide pendant une courte période de temps (généralement une heure), mais il finit par expirer.That access token remains valid for a short period of time (typically one hour), but will eventually expire. À ce stade, votre application doit rediriger l’utilisateur vers le point de terminaison /authorize afin de récupérer un nouveau code d’autorisation.At that point in time, your app will need to redirect the user back to the /authorize endpoint to retrieve a new authorization code. Lors de cette redirection, il peut ou non être demandé à l’utilisateur d’entrer à nouveau ses informations d’identification ou de consentir une nouvelle fois les autorisations, en fonction du type d’application.During this redirect, the user may or may not need to enter their credentials again or reconsent to permissions, depending on the type of app.

Pour en savoir plus sur OAuth 2.0, refresh_tokens, et access_tokens, consultez la documentation de référence sur la Plateforme d’identités Microsoft.To learn more about OAuth 2.0, refresh_tokens, and access_tokens, check out the Microsoft identity platform protocol reference.

OpenID, profil et e-mailOpenID, profile, and email

Historiquement, le flux de connexion OpenID Connect de base avec la Plateforme d’identités Microsoft fournissait de nombreuses informations sur l’utilisateur dans le jeton id_token qui en résultait.Historically, the most basic OpenID Connect sign-in flow with Microsoft identity platform would provide a lot of information about the user in the resulting id_token. Les revendications contenues dans un paramètre id_token peuvent inclure différentes informations utilisateur : son nom, son nom d’utilisateur par défaut, son adresse de messagerie, son ID objet, etc.The claims in an id_token can include the user's name, preferred username, email address, object ID, and more.

Les informations auxquelles l’étendue openid permet à votre application d’accéder sont maintenant restreintes.The information that the openid scope affords your app access to is now restricted. L’étendue openid ne l’autorisera qu’à connecter l’utilisateur et à recevoir un identificateur propre à l’application pour l’utilisateur.The openid scope will only allow your app to sign in the user and receive an app-specific identifier for the user. Si vous voulez obtenir des données personnelles sur l’utilisateur dans votre application, celle-ci doit lui demander des autorisations supplémentaires.If you want to get personal data about the user in your app, your app needs to request additional permissions from the user. Deux nouvelles étendues, email et profile, vous permettent de le faire.Two new scopes, email and profile, will allow you to request additional permissions.

  • L’étendue email permet à votre application d’accéder à l’adresse e-mail principale de l’utilisateur via la revendication email contenue dans id_token, en supposant que l’utilisateur ait une adresse e-mail utilisable.The email scope allows your app access to the user’s primary email address through the email claim in the id_token, assuming the user has an addressable email address.
  • L’étendue profile permet à votre application d’accéder à toutes les autres informations de base sur l’utilisateur contenues dans le jeton id-token, comme le nom, le nom d’utilisateur par défaut, l’ID d’objet, etc.The profile scope affords your app access to all other basic information about the user, such as their name, preferred username, object ID, and so on, in the id_token.

Ces étendues vous permettent de coder votre application en divulguant le moins possible d’informations : vous pouvez vous contenter de demander à l’utilisateur les informations nécessaires à l’exécution de votre application.These scopes allow you to code your app in a minimal-disclosure fashion so you can only ask the user for the set of information that your app needs to do its job. Pour plus d’informations sur ces étendues, voir la documentation de référence sur la Plateforme d’identités Microsoft.For more information on these scopes, see the Microsoft identity platform scope reference.

Revendications de jetonsToken claims

Le point de terminaison de la Plateforme d’identités Microsoft émet un ensemble plus restreint de revendications dans ses jetons par défaut, pour limiter la taille des charges utiles.The Microsoft identity platform endpoint issues a smaller set of claims in its tokens by default to keep payloads small. Si vous avez des applications et des services qui dépendent d’une revendication particulière dans un jeton v1.0 qui n’est plus fourni par défaut dans un jeton de la Plateforme d’identités Microsoft, envisagez d’utiliser la fonctionnalité des revendications facultatives pour inclure cette revendication.If you have apps and services that have a dependency on a particular claim in a v1.0 token that is no longer provided by default in a Microsoft identity platform token, consider using the optional claims feature to include that claim.

Important

Les jetons v1.0 et v2.0 peuvent être émis par les points de terminaison v1.0 et v2.0 !v1.0 and v2.0 tokens can be issued by both the v1.0 and v2.0 endpoints! id_tokens corresponde toujours au point de terminaison à partir duquel ils sont demandés, et les jetons d’accès correspondent toujours au format attendu par l’API Web que votre client appellera à l’aide de ce jeton.id_tokens always match the endpoint they're requested from, and access tokens always match the format expected by the Web API your client will call using that token. Par conséquent, si votre application utilise le point de terminaison v2.0 pour obtenir un jeton pour appeler Microsoft Graph, qui attend des jetons d’accès au format v1.0, votre application reçoit un jeton au format v1.0.So if your app uses the v2.0 endpoiont to get a token to call Microsoft Graph, which expects v1.0 format access tokens, your app will recieve a token in the v1.0 format.

LimitesLimitations

Il existe quelques restrictions à connaître lors de l’utilisation de la Plateforme d’identités Microsoft.There are a few restrictions to be aware of when using Microsoft identity platform.

Lorsque vous créez des applications qui s’intègrent dans la Plateforme d’identités Microsoft, vous devez déterminer si les protocoles d’authentification et le point de terminaison de la Plateforme d’identités Microsoft répondent à vos besoins.When you build applications that integrate with the Microsoft identity platform, you need to decide whether the Microsoft identity platform endpoint and authentication protocols meet your needs. Le point de terminaison et la plateforme v1.0 sont toujours intégralement pris en charge. À certains égards, ils sont plus riches en fonctionnalités que la Plateforme d’identités Microsoft.The v1.0 endpoint and platform is still fully supported and, in some respects, is more feature rich than Microsoft identity platform. Toutefois, la Plateforme d’identités Microsoft présente des avantages significatifs pour les développeurs.However, Microsoft identity platform introduces significant benefits for developers.

Voici une suggestion simplifiée pour les développeurs à ce stade :Here's a simplified recommendation for developers now:

  • Si vous voulez ou si vous devez prendre en charge des comptes personnels Microsoft dans votre application, ou si vous écrivez une nouvelle application, utilisez la Plateforme d’identités Microsoft.If you want or need to support personal Microsoft accounts in your application, or you're writing a new application, use Microsoft identity platform. Avant cela, comprenez cependant bien les limitations exposées dans cet article.But before you do, make sure you understand the limitations discussed in this article.
  • Si vous migrez ou mettez à jour une application qui s’appuie sur SAML, vous ne pouvez pas utiliser la Plateforme d’identités Microsoft.If you're migrating or updating an application that relies on SAML, you can't use Microsoft identity platform. Dans ce cas, consultez le guide Azure AD v1.0.Instead, refer to the Azure AD v1.0 guide.

Le point de terminaison de la Plateforme d’identités Microsoft va évoluer et les restrictions listées ici seront éliminées. Ainsi, vous pourrez toujours utiliser le point de terminaison de la Plateforme d’identités Microsoft.The Microsoft identity platform endpoint will evolve to eliminate the restrictions listed here, so that you'll only ever need to use the Microsoft identity platform endpoint. En attendant, cet article est là pour vous aider à déterminer si le point de terminaison de la Plateforme d’identités Microsoft répond à vos besoins.In the meantime, use this article to determine whether the Microsoft identity platform endpoint is right for you. Nous continuerons à mettre à jour cet article pour refléter l’état actuel du point de terminaison de la Plateforme d’identités Microsoft.We'll continue to update this article to reflect the current state of the Microsoft identity platform endpoint. Consultez-le régulièrement pour réévaluer vos besoins par rapport aux fonctionnalités de la Plateforme d’identités Microsoft.Check back to reevaluate your requirements against Microsoft identity platform capabilities.

Restrictions sur les inscriptions d’applicationRestrictions on app registrations

Pour chaque application que vous souhaitez intégrer avec le point de terminaison de la Plateforme d’identités Microsoft, vous pouvez créer une inscription d’application dans la nouvelle expérience Inscriptions d’applications dans le portail Azure.For each app that you want to integrate with the Microsoft identity platform endpoint, you can create an app registration in the new App registrations experience in the Azure portal. Les applications de compte Microsoft existantes ne sont pas compatibles avec le portail, mais toutes les applications Azure AD le sont, quel que soit l’endroit et le moment où elles ont été inscrites.Existing Microsoft account apps aren't compatible with the portal, but all Azure AD apps are, regardless of where or when they were registered.

Les inscriptions d’applications qui prennent en charge les comptes professionnels et scolaires ont les caractéristiques suivantes :App registrations that support work and school accounts and personal accounts have the following caveats:

  • Seuls deux secrets d’application sont autorisés par ID d’application.Only two app secrets are allowed per application ID.
  • Une application qui n’a pas été inscrite dans un locataire peut être gérée seulement par le compte qui l’a inscrite.An application that wasn't registered in a tenant can only be managed by the account that registered it. Elle ne peut pas être partagée avec d’autres développeurs.It can’t be shared with other developers. C’est le cas pour la plupart des applications qui ont été inscrites avec un compte Microsoft personnel dans le portail d’inscription des applications.This is the case for most apps that were registered using a personal Microsoft account in the App Registration Portal. Si vous voulez partager votre inscription d’application avec plusieurs développeurs, inscrivez l’application dans un locataire en utilisant la nouvelle section Inscriptions d’applications du portail Azure.If you’d like to share your app registration with multiple developers, register the application in a tenant using the new App registrations section of the Azure portal.
  • Il existe plusieurs restrictions quant au format de l’URL de redirection autorisé.There are several restrictions on the format of the redirect URL that is allowed. Pour plus d’informations sur les URL de redirection, consultez la section suivante.For more information about redirect URL, see the next section.

Restrictions concernant les URL de redirectionRestrictions on redirect URLs

Les applications inscrites pour la Plateforme d’identités Microsoft sont limitées à un jeu restreint de valeurs d’URL de redirection.Apps that are registered for Microsoft identity platform are restricted to a limited set of redirect URL values. L’URL de redirection pour les services et applications web doit commencer par le schéma https, et toutes les valeurs d’URL de redirection doivent partager un seul domaine DNS.The redirect URL for web apps and services must begin with the scheme https, and all redirect URL values must share a single DNS domain. Le système d’inscription compare le nom DNS complet de l’URL de redirection existante au nom DNS de l’URL de redirection que vous ajoutez.The registration system compares the whole DNS name of the existing redirect URL to the DNS name of the redirect URL that you're adding. http://localhost est également pris en charge comme URL de redirection.http://localhost is also supported as a redirect URL.

La demande d’ajout du nom DNS échoue si l’une des conditions suivantes est remplie :The request to add the DNS name will fail if either of the following conditions is true:

  • Le nom DNS complet de la nouvelle URL de redirection ne correspond pas au nom DNS de l’URL de redirection existante.The whole DNS name of the new redirect URL doesn't match the DNS name of the existing redirect URL.
  • Le nom DNS complet de la nouvelle URL de redirection n’est pas un sous-domaine de l’URL de redirection existante.The whole DNS name of the new redirect URL isn't a subdomain of the existing redirect URL.

Exemple 1Example 1

Si l’application a une URL de redirection https://login.contoso.com, vous pouvez ajouter une URL de redirection où le nom DNS correspond exactement, comme dans l’exemple suivant :If the app has a redirect URL of https://login.contoso.com, you can add a redirect URL where the DNS name matches exactly, as shown in the following example:

https://login.contoso.com/new

Vous pouvez aussi faire référence à un sous-domaine DNS de login.contoso.com, comme dans l’exemple suivant :Or, you can refer to a DNS subdomain of login.contoso.com, as shown in the following example:

https://new.login.contoso.com

Exemple 2Example 2

Si vous voulez que votre application utilise les URL de redirection login-east.contoso.com et login-west.contoso.com, vous devez ajouter ces URL de redirection dans l’ordre suivant :If you want to have an app that has login-east.contoso.com and login-west.contoso.com as redirect URLs, you must add those redirect URLs in the following order:

https://contoso.com
https://login-east.contoso.com
https://login-west.contoso.com

Vous pouvez ajouter les deux dernières, car ce sont des sous-domaines de la première URL de redirection, contoso.com.You can add the latter two because they're subdomains of the first redirect URL, contoso.com.

Vous ne pouvez avoir que seulement 20 URL de réponse pour une application donnée : cette limite s’applique à tous les types d’applications pris en charge par l’inscription (application monopage, client natif, application web et service).You can have only 20 reply URLs for a particular application - this limit applies across all app types that the registration supports (single-page application (SPA), native client, web app, and service).

Pour savoir comment inscrire une application en vue de son utilisation avec la Plateforme d’identités Microsoft, voir Inscrire une application à l’aide de la nouvelle expérience Inscriptions application.To learn how to register an app for use with Microsoft identity platform, see Register an app using the new App registrations experience.

Restrictions concernant les bibliothèques et les SDKRestrictions on libraries and SDKs

Actuellement, la prise en charge de la bibliothèque pour le point de terminaison de la Plateforme d’identités Microsoft est limitée.Currently, library support for the Microsoft identity platform endpoint is limited. Si vous souhaitez utiliser le point de terminaison de la Plateforme d’identités Microsoft dans une application de production, vous disposez des options suivantes :If you want to use the Microsoft identity platform endpoint in a production application, you have these options:

  • Si vous créez une application web, vous pouvez utiliser sans problème le middleware (intergiciel) côté serveur en disponibilité générale pour vous connecter et valider des jetons.If you're building a web application, you can safely use the generally available server-side middleware to do sign-in and token validation. Il s’agit notamment du middleware OWIN OpenID Connect pour ASP.NET et du plug-in Node.js Passport.These include the OWIN OpenID Connect middleware for ASP.NET and the Node.js Passport plug-in. Pour obtenir des exemples de code qui utilisent le middleware Microsoft, voir la section Prise en main de la Plateforme d’identités Microsoft.For code samples that use Microsoft middleware, see the Microsoft identity platform getting started section.
  • Si vous créez une application mobile ou pour poste de travail, vous pouvez utiliser une des bibliothèques d’authentification Microsoft (MSAL).If you're building a desktop or mobile application, you can use one of the Microsoft Authentication Libraries (MSAL). Ces bibliothèques étant généralement disponibles ou en préversion prise en charge pour la production, leur utilisation dans des applications de production ne présente aucun risque.These libraries are generally available or in a production-supported preview, so it is safe to use them in production applications. Pour plus d’informations sur les conditions d’utilisation de la préversion et sur les bibliothèques disponibles, consultez la documentation de référence sur les bibliothèques d’authentification.You can read more about the terms of the preview and the available libraries in authentication libraries reference.
  • Vous pouvez intégrer les plateformes non couvertes par les bibliothèques Microsoft, dans le point de terminaison de la Plateforme d’identités Microsoft en envoyant et en recevant directement des messages de protocole dans le code de votre application.For platforms not covered by Microsoft libraries, you can integrate with the Microsoft identity platform endpoint by directly sending and receiving protocol messages in your application code. Les protocoles v2.0 OpenID Connect et OAuth sont explicitement documentés pour vous aider à effectuer une telle intégration.The OpenID Connect and OAuth protocols are explicitly documented to help you do such an integration.
  • Enfin, vous pouvez utiliser les bibliothèques open source OpenID Connect et OAuth pour l’intégration avec le point de terminaison de la Plateforme d’identités Microsoft.Finally, you can use open-source OpenID Connect and OAuth libraries to integrate with the Microsoft identity platform endpoint. Le point de terminaison de la Plateforme d’identités Microsoft doit normalement être compatible sans modifications avec de nombreuses bibliothèques de protocoles open source.The Microsoft identity platform endpoint should be compatible with many open-source protocol libraries without changes. La disponibilité de ces types de bibliothèques varie en fonction de la langue et de la plateforme.The availability of these kinds of libraries varies by language and platform. Les sites web OpenID Connect et OAuth 2.0 contiennent une liste à jour des implémentations les plus courantes.The OpenID Connect and OAuth 2.0 websites maintain a list of popular implementations. Pour plus d’informations, voir Plateforme d’identités Microsoft et bibliothèques d’authentification, ainsi que la liste des bibliothèques clientes open source et des exemples qui ont été testés avec la Plateforme d’identités Microsoft.For more information, see Microsoft identity platform and authentication libraries, and the list of open-source client libraries and samples that have been tested with the Microsoft identity platform endpoint.
  • Pour référence, le point de terminaison .well-known pour le point de terminaison commun de la Plateforme d’identités Microsoft est https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration.For reference, the .well-known endpoint for the Microsoft identity platform common endpoint is https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration. Remplacez common par votre ID de locataire pour obtenir des données spécifiques à votre locataire.Replace common with your tenant ID to get data specific to your tenant.

Changements de protocoleProtocol changes

Le point de terminaison de la Plateforme d’identités Microsoft ne prend pas en charge SAML ou WS-Federation ; il prend en charge uniquement OpenID Connect et OAuth 2.0.The Microsoft identity platform endpoint does not support SAML or WS-Federation; it only supports OpenID Connect and OAuth 2.0. Les changements notables apportés aux protocoles OAuth 2.0 par rapport au point de terminaison v1.0 sont :The notable changes to the OAuth 2.0 protocols from the v1.0 endpoint are:

  • La revendication email est retournée si une revendication facultative est configurée ou si scope=email a été spécifié dans la demande.The email claim is returned if an optional claim is configured or scope=email was specified in the request.
  • Le paramètre scope est désormais pris en charge à la place du paramètre resource.The scope parameter is now supported in place of the resource parameter.
  • De nombreuses réponses ont été modifiées pour les rendre plus conforme à la spécification OAuth 2.0, par exemple retourner correctement expires_in sous la forme d’un entier au lieu d’une chaîne.Many responses have been modified to make them more compliant with the OAuth 2.0 specification, for example, correctly returning expires_in as an int instead of a string.

Pour mieux comprendre l’étendue des fonctionnalités de protocole prises en charge dans le point de terminaison de la Plateforme d’identités Microsoft, voir Informations de référence sur les protocoles OpenID Connect et OAuth 2.0.To better understand the scope of protocol functionality supported in the Microsoft identity platform endpoint, see OpenID Connect and OAuth 2.0 protocol reference.

Restrictions SAMLSAML restrictions

Si vous avez utilisé la bibliothèque ADAL (Active Directory Authentication Library) dans des applications Windows, vous avez peut-être tiré parti de l’authentification intégrée Windows, qui utilise l’octroi d’assertions SAML (Security Assertion Markup Language).If you've used Active Directory Authentication Library (ADAL) in Windows applications, you might have taken advantage of Windows Integrated authentication, which uses the Security Assertion Markup Language (SAML) assertion grant. Avec cet octroi, les utilisateurs de locataires Azure AD fédérés peuvent s’authentifier en mode silencieux auprès de leur instance d’Active Directory locale sans entrer leurs informations d’identification.With this grant, users of federated Azure AD tenants can silently authenticate with their on-premises Active Directory instance without entering credentials. L’octroi d’assertion SAML n’est pas pris en charge sur le point de terminaison de la Plateforme d’identités Microsoft.The SAML assertion grant isn't supported on the Microsoft identity platform endpoint.