Paramètres du fournisseur Azure AD B2C pour les portails

Azure Active Directory (Azure AD) exécute les services Office 365 et Dynamics 365 pour l'authentification des employés ou interne. Azure Active Directory B2C est une extension à ce modèle d'authentification qui permet la connexion des clients externes par le biais d'informations d'identification locales et de la fédération avec divers fournisseurs d'identité sociale courants.

Un propriétaire du portail peut configurer le portail pour accepter Azure AD B2C comme fournisseur d'identité. Azure AD B2C prend en charge Open ID Connect pour la fédération.

Au cours de la configuration d'Azure AD B2C comme fournisseur d'identité pour votre portail, plusieurs valeurs sont générées que vous utiliserez plus tard lors de la configuration du portail. Vous pouvez noter ces valeurs dans le tableau suivant. Lors de la configuration du portail, remplacez le nom de la variable par les valeurs notées ici.

Nom de la variable Valeur Description
Application-Name Nom de l'application qui représente le portail en tant que partie de confiance
Application-ID ID d'application associé à l'application créée dans Azure Active Directory B2C.
Policy-Signin-URL URL de l'émetteur définie dans le point de terminaison des métadonnées.
Federation-Name Nom unique pour identifier le type de fournisseur de fédération, par exemple « B2C ». Il sera utilisé dans les noms de paramètre de site pour regrouper les paramètres de configuration pour ce fournisseur spécifique.

Utiliser Azure AD B2C comme fournisseur d'identité pour votre portail

  1. Connectez-vous à votre portail Azure.
  2. Créez un client Azure AD B2C.
  3. Sélectionnez Azure AD B2C sur la barre de navigation située à l'extrême gauche.
  4. Créez une application Azure.

    Note

    Vous devez choisir Oui pour le champ Autoriser le flux implicite et spécifier l'URL de votre portail dans le champ URL de réponse. La valeur du champ URL de réponse doit être au format [domaine du portail]/signin-[Federation-Name].

  5. Copiez le nom de l'application et entrez-le comme valeur pour Application-Name dans le tableau précédent.

  6. Copiez l'ID de l'application et entrez-le comme valeur pour Application-ID dans le tableau précédent.
  7. Créez une stratégie d'inscription ou de connexion.
  8. Sélectionnez la stratégie, puis sélectionnez Modifier.
  9. Sélectionnez Configuration du jeton, de la session et de l'authentification unique.
  10. Dans la liste Revendication de l'émetteur, sélectionnez l'URL contenant /tfp dans son chemin d'accès.
  11. Enregistrez la stratégie.
  12. Sélectionnez l'URL dans le champ Point de terminaison des métadonnées pour cette stratégie.
  13. Copiez la valeur du champ Émetteur et entrez-la comme valeur pour Policy-Signin-URL dans le tableau précédent.

Configuration du portail

Après avoir créé et configuré le client B2C dans Azure, vous devez configurer votre portail pour la fédération avec Azure AD B2C à l'aide du protocole Open ID Connect. Vous devez créer un nom unique pour votre fédération avec Azure AD B2C—par exemple, B2C—et l'enregistrer comme valeur de la variable Federation-Name dans le tableau ci-dessus.

Configurer votre portail

  1. Connectez-vous à Dynamics 365.
  2. Accédez à Portails > Sites Web.
  3. Sélectionnez l'enregistrement de site Web pour lequel Azure AD B2C doit être activé.
  4. Accédez à Paramètres du site.
  5. Créez les paramètres de site suivants :

    • Nom : Authentication/OpenIdConnect/[Federation-Name]/Authority

      Valeur : [Policy-Signin-URL]

    • Nom : Authentication/OpenIdConnect/[Federation-Name]/ClientId

      Valeur: [Application-ID]

    • Nom : Authentication/OpenIdConnect/[Federation-Name]/RedirectUri

      Valeur : [domaine du portail]/signin-[Federation-Name]

      Par exemple, https://mysite.com/signin-b2c

  6. Pour prendre en charge une déconnexion fédérée, créez le paramètre de site suivant :

    • Nom : Authentication/OpenIdConnect/[Federation-Name]/ExternalLogoutEnabled

      Valeur : true

  7. Pour coder en dur votre portail sur un fournisseur d'identité unique, créez le paramètre de site suivant :

    • Nom : Authentication/Registration/LoginButtonAuthenticationType

      Valeur : [Policy-Signin-URL]

  8. Pour prendre en charge la réinitialisation du mot de passe, créez les paramètres de site requis décrits ici.

  9. Pour prendre en charge le mappage des revendications, créez les paramètres de site requis décrits ici.

Pour obtenir la liste complète des paramètres de site associés, cliquez ici.

Réinitialisation du mot de passe

Les paramètres de site suivants sont requis si vous souhaitez prendre en charge la réinitialisation du mot de passe avec les comptes locaux Azure AD B2C :

Paramètre du site Description
Authentication/OpenIdConnect/[Federation-Name/PasswordResetPolicyId ID de la stratégie de réinitialisation du mot de passe.
Authentication/OpenIdConnect/[Federation-Name]/ValidIssuers Liste séparée par des virgules d'émetteurs incluant la variable [Policy-Signin-URL] et l'émetteur de la stratégie de réinitialisation du mot de passe.

Vous pouvez créer ou configurer les paramètres de site suivants dans les portails pour prendre en charge Azure AD B2C comme fournisseur d'identité :

Paramètre du site Description
Authentication/Registration/ProfileRedirectEnabled Spécifie si le portail peut rediriger les utilisateurs vers la page de profil une fois la connexion réussie. Par défaut, la valeur est true.
Authentication/Registration/EmailConfirmationEnabled Spécifie si la validation par courrier électronique est requise. Par défaut, la valeur est true.
Authentication/Registration/LocalLoginEnabled Spécifie si une connexion locale est requise. Par défaut, la valeur est true.
Authentication/Registration/ExternalLoginEnabled Active ou désactive l'authentification externe.
Authentication/Registration/AzureADLoginEnabled Active ou désactive Azure AD comme fournisseur d'identité externe. Par défaut, la valeur est true.
Authentication/OpenIdConnect/[Federation-Name]/ExternalLogoutEnabled Active ou désactive la déconnexion fédérée. Lorsque la valeur est true, les utilisateurs sont redirigés vers l'expérience utilisateur de déconnexion fédérée lorsqu'ils se déconnectent du portail. Lorsque la valeur est false, les utilisateurs sont déconnectés du portail uniquement. Par défaut, la valeur est false.
Authentication/LoginTrackingEnabled Active ou désactive le suivi de la dernière connexion de l'utilisateur. Lorsque la valeur est true, la date et l'heure sont affichées dans le champ Dernière connexion réussie de l'enregistrement de contact. Par défaut, la valeur est false.
Authentication/OpenIdConnect/[Federation-Name]/RegistrationEnabled Active ou désactive l'inscription requise pour le fournisseur d'identité existant. Lorsque la valeur est true, l'inscription est activée pour le fournisseur existant uniquement si le paramètre de site Authentication/Registration/Enabled est également défini sur true. Par défaut, la valeur est true.
Authentication/OpenIdConnect/[Federation-Name]/PostLogoutRedirectUri Spécifie l'URL dans le portail de redirection une fois qu'un utilisateur se déconnecte.

Si l'inscription est désactivée pour un utilisateur après que l'utilisateur a utilisé une invitation, affichez un message à l'aide de l'extrait de contenu suivant :

Nom : Account/Register/RegistrationDisabledMessage

Valeur : L'inscription a été désactivée.

Personnaliser l’interface utilisateur Azure AD B2C

Azure AD B2C prend en charge la personnalisation de l'interface utilisateur. Vous pouvez personnaliser l'expérience utilisateur pour les scénarios d'inscription et de connexion.

Étape 1 : créer un modèle Web

Connectez-vous à Dynamics 365 et créez un modèle Web à l'aide des valeurs suivantes :

Nom : page personnalisée Azure AD B2C

Source : utilisez l'exemple de code HTML source du modèle Web suivant.

<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>
      {{ page.title | h }}
    </title>
                        <link href="{{ request.url | base }}/bootstrap.min.css" rel="stylesheet">
                        <link href="{{ request.url | base }}/theme.css" rel="stylesheet">
                        <style>
                          .page-heading {
            padding-top: 20px;
      }
      .page-copy {
            margin-bottom: 40px;
      }
      .highlightError {
        border: 1px solid #cb2027!important;
        background-color: #fce8e8!important;
      }
      .attrEntry .error.itemLevel {
        display: none;
        color: #cb2027;
        font-size: .9em;
      }
      .error {
        color: #cb2027;
      }
      .entry {
        padding-top: 8px;
        padding-bottom: 0!important;
      }
      .entry-item {
        margin-bottom: 20px;
      }
      .intro {
        display: inline;
        margin-bottom: 5px;
      }
      .pageLevel {
          width: 293px;
          text-align: center;
          margin-top: 5px;
          padding: 5px;
          font-size: 1.1em;
          height: auto;
      }
      #panel, .pageLevel, .panel li, label {
          display: block;
      }
      #forgotPassword {
          font-size: .75em;
          padding-left: 5px;
      }
      #createAccount {
          margin-left: 5px;
      }
      .working {
          display: none;
          background: url(data:image/gif;base64,R0lGODlhbgAKAPMAALy6vNze3PTy9MTCxOTm5Pz6/Ly+vNTS1Pz+/�N0Jp6BUJ9EBIISAQAh+QQJCQAKACxRAAIABgAGAAAEE1ClYU4RIIMTdCaegVCfRASCEgEAOw==) no-repeat;
          height: 10px;
          width: auto;
      }
      .divider {
        margin-top: 20px;
        margin-bottom: 10px;
      }
      .divider h2 {
        display: table;
        white-space: nowrap;
        font-size: 1em;
        font-weight: 700;
      }
      .buttons {
        margin-top: 10px;
      }
      button {
            width:auto;
            min-width:50px;
            height:32px;
            margin-top:2px;
            -moz-border-radius:0;
            -webkit-border-radius:0;
            border-radius:0;
            background:#2672E6;
            border:1px solid #FFF;
            color:#fff;
            transition:background 1s ease 0s;
            font-size:100%;
            padding:0 2px
      }

      button:hover {
            background:#0F3E83;
            border:1px solid #3079ed;
            -moz-box-shadow:0 0 0;
            -webkit-box-shadow:0 0 0;
            box-shadow:0 0 0
      }
      .password-label label {
        display: inline-block;
        vertical-align: baseline;
      }
      img {
            border:0
      }
      .divider {
            margin-top:20px;
            margin-bottom:10px
      }
      .divider h2 {
            display:table;
            white-space:nowrap;
            font-size:1em;
            font-weight:700
      }
      .divider h2:after,.divider h2:before {
            border-top:1px solid #B8B8B8;
            content:'';
            display:table-cell;
            position:relative;
            top:.7em;
            width:50%
      }
      .divider h2:before {
            right:1.8%
      }
      .divider h2:after {
            left:1.8%
      }
      .verificationErrorText {
            color:#D63301
      }
      .options div {
            display:inline-block;
            vertical-align:top;
            margin-top:7px
      }
      .accountButton,.accountButton:hover {
            background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAh1BMVEX///9QUFBOTk5LS0tERERCQkI/Pz9ISEg6OjpGRkZNTU08PDyAgID09PSlpaWWlpZxcXFgYGBZWVlUVFT6+vrx8fHt7e3s7Ozo6Oji4uLJycnGxsa4uLiqqqqgoKCNjY2JiYmGhoZra2tmZmb7+/vu7u7d3d3U1NTNzc2+vr67u7usrKx7e3vprNQnAAAA8klEQVQ4y63Q127DMAxAUZpDwyMeSdqsNqu7/f/va6zahgGJKAr0vgk6DyQh+6V/BiTOOeNRA9zuAWBdM6WBlPDTvaUUoAuMrT0mgNvA1IJjQB3MKjACvp6DK0WAH+agtH8H9jQHLUUgz7Uhx8xOXzNESxirLCYA2mw8tacI5FyIYXq8A9ge2Qs6oTnw2e2ruho2rjBcXJ4ADh3jBOQLQnVhRFx2gNDZ4ACogbHXj/ft9Dj5AcgbJFu5AThQWuYBIGmgtAFQo4EFB+CPGthJAPypgY3BHsheA5UNwLyAvsYNoDyroKUe4EoFTQ/yDtTONvsGUJ8KTUYyH+UAAAAASUVORK5CYII=);
            background-repeat:no-repeat
      }
      .accountButton {
            border:1px solid #FFF;
            color:#FFF;
            margin-left:0;
            margin-right:2px;
            transition:background-color 1s ease 0s;
            -moz-border-radius:0;
            -webkit-border-radius:0;
            border-radius:0;
            text-align:center;
            word-wrap:break-word;
            height:34px;
            width:158px;
            padding-left:30px;
            background-color:#505050;
      }
      .accountButton:hover {
            background-color:#B9B9B9;
            border:1px solid #FFF;
            -moz-box-shadow:0 0 0;
            -webkit-box-shadow:0 0 0;
            box-shadow:0 0 0
      }
      .accountButton:focus {
            outline:gold solid 1px
      }
      #MicrosoftAccountExchange {
            background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAPFBMVEU1pe/////t+v4uoe5btvNixPVVwfUsoe9tyfXU7/y95vu24vrd9f5NtfLH6/ys3/o/sPE6qfD2/f+f2vnAysuQAAAAaElEQVQ4y93SORKAIAwFUEGCsoT1/nd1JkkDFhY24qt+8VMkk20lu6DAaVBOBsVKsuO8aYo08IqlYyxoRTQExfyKheRIgu5Yl4KoVhSUgNOhoiYRsmb5g2u+LtzXDNOhjKgoAZ9/8k8uZWsGqcIav5wAAAAASUVORK5CYII=);
            background-color:#33A7F2
      }
      #MicrosoftAccountExchange:hover {
            background-color:#ADDBF9
      }
      #GoogleExchange {
            background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAb1BMVEXcTkH////cTD/bSj3ZQDLYOyzaRDbeV0vbSDrZPS/66Obyv7rsnpfpkorjcWfgZlvXOCr++Pj5393haFz88/L88fD67Or319T1zsv1zsrxuLPuqaLuqKLoi4LlfXTgYlbWMyTWMiPwtrHwta/fXVH/sCIIAAAAmElEQVQ4y+2RyQ7DIBBDMcwAIXvovqXb/39jRaX0AEmr5px3tSV7PGLhX6TVRFpN61l9zPNS6kn9gDcXO67zDnCnO2BCiNIyMtgKKJgyY2zQ68JEDtqju0nFTcOsxPUMw1GDDUqt+tY51/YNVlhvacTgEfCDIY0Q/lkBSg4RaUmmDo4/JdMzHy1Q2ejMeCj6PrXQP5+1MI8X0Y4HL4c826EAAAAASUVORK5CYII=);
            background-color:#DC4E41
      }
      #GoogleExchange:hover {
            background-color:#F1B8B3
      }
      #TwitterExchange {
            background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAdVBMVEVgqd3///9Ypdtdp9xaptxSotpQodlNn9lWo9pUo9rX6Pa+2vGTw+iLvuZlqt79/P7K4PO62O+y0+6hyutysuD2+fzi7vne6/fT5PTE3fKs0O2lzeuZx+l7tuJqrd71+Pzz9vzn8PnQ4/SCueSAueNsrt9InNh7sQwBAAAAwklEQVQ4y92PRw6EMAwAXeIkdBbY3uv/n7gSAoLDD5hbPCPZgZVihEgYgNSUpmfS7bfbtHS2nReyL2Qoc+yp8ZRAwCEWjgGAPQ7sssKoAGsWBrrgyMZCwD77Uel+59E3Tt14xZ7qlY7BRf1CDgeMKMw8sBXGlKxWtLGvHCgkQ80m0YHpjjq4sQ74pn1mISLJVSAMiwJO98l/TWSNF1eGKzqKfZ7Vj0mnHHwodpP+WIYlZP373DTtVWxYr2FD3pOBdfIHhOAHYHQI9VgAAAAASUVORK5CYII=);
            background-color:#60A9DD
      }
      #TwitterExchange:hover {
            background-color:#BFDCF1
      }
      #FacebookExchange {
            background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAaVBMVEU7W5z///85Wps3WJsiRo8xU5fw8vYyUpY0VZiAj70pS5OBkb0vUpb7+fwsTpTR1ud6irllerBPaqX09fnx8vfs7fSQoMZxg7VsgLNGY6FCX58ZP4v++/7r7vTZ3OupstGIlsFWcalDYaCK3qwDAAAAnklEQVQ4y+XQyw7CIBAFUBgc5VUoWGtb3/7/RyoYkyZAiSsXvdt7kstA/hRg/B0GpZ6byQ3Dw0NBaH+lMYRle3T0kwayACRdBrr/gnN+QtpQWv8cR4DswiUAjozlz4RdF8AmlnmwjaDQImoZwQkRedoToUS7D+ColGoTwQidx8oEQDMHN1MBva5MOL70SCHuE1TOhOpHrRt0FWAOP4IX8PsG2qEOR30AAAAASUVORK5CYII=);
            background-color:#3B5B9C
      }
      #FacebookExchange:hover {
            background-color:#B0BDD7
      }
      #LinkedInExchange {
            background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAb1BMVEUAe7b///8AdrMklscAc7EAeLUAcbB5ttifzeMqmckAdLIAaqz7+/6PxeAShr0CgLkAba4nmMctksTv9Puw1eij0OWGvNtfrNJNo80YjMAeib/D4vGt3Oy82+yfzOOCvtyJvdx3tddirtI/ncoxmMj9KsrQAAAAw0lEQVQ4y9WSVw7DIAxAG8CkjJDVzO5x/zMWk0RNJaB/kfo+sGUeCMvstgI4J7F9aS5NxSLnTWLpZVDgexTqIiycUNBhgTxRyCKPYJ3dl7sITCkO+FyLXaWU310DscASOesf3ahWChGJ5cb4ASO5Joiu2EegWEmZa1c3yUwOHmHNuQgJup4CgF8YlKpcMhKvkNmb1REz6hdetsyziIBldv8lpH8ouGm28zQFCu2SOSAXlJYGYCgpFThEMFPm/zCryja8Acy7CRfMrcKPAAAAAElFTkSuQmCC);
            background-color:#0077B5
      }
      #LinkedInExchange:hover {
            background-color:#99CAE1
      }
      #AmazonExchange {
            background-image:url(https://images-na.ssl-images-amazon.com/images/G/01/lwa/btnLWA_gold_156x32.png);
            background-color:#FFF;
            color:transparent
      }

      #next {
            -moz-user-select:none;
            user-select:none;
            cursor:pointer;
            width:auto;
            padding-left:10px;
            padding-right:10px;
            height:30.5px;
            -moz-border-radius:0;
           -webkit-border-radius:0;
            border-radius:0;
            background:#2672E6;
            border:1px solid #FFF;
            color:#fff;
            transition:background 1s ease 0s;
            font-size:100%
      }
      #next:hover {
            background:#0F3E83;
            border:1px solid #FFF;
            box-shadow:0 0 0
      }
      #next:hover,.accountButton:hover {
            -moz-box-shadow:0 0 0;
            -webkit-box-shadow:0 0 0;
            box-shadow:0 0 0;
      }
                        </style>
  </head>
  <body>
    <div class="navbar navbar-inverse navbar-static-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <div class="visible-xs-block">
            {{ snippets["Mobile Header"] }}
          </div>
          <div class="visible-sm-block visible-md-block visible-lg-block navbar-brand">
            {{ snippets["Navbar Left"] }}
          </div>
        </div>
      </div>
    </div>
    <div class="container">
      <div class="page-heading">
        <ul class="breadcrumb">
          <li>
            <a href="{{ request.url | base }}" title="Home">Home</a>
          </li>
          <li class="active">{{ page.title | h}}</li>
        </ul>
        {% include 'Page Header' %}
     </div>
     <div class="row">
      <div class="col-md-12">
        {% include 'Page Copy' %}
        <div id="api"></div>
      </div>
     </div>
    </div>
    <footer role="contentinfo">
      <div class="footer-top hidden-print">
        <div class="container">
          <div class="row">
            <div class="col-md-6 col-sm-12 col-xs-12 text-left">
               {{ snippets["About Footer"] }}
            </div>
            <div class="col-md-6 col-sm-12 col-xs-12 text-right">
              <ul class="list-social-links">
                <li><a href="#"><span class="sprite sprite-facebook_icon"></span></a></li>
                <li><a href="#"><span class="sprite sprite-twitter_icon"></span></a></li>
                <li><a href="#"><span class="sprite sprite-email_icon"></span></a></li>
              </ul>
            </div>
          </div>
        </div>
      </div>
      <div class="footer-bottom hidden-print">
        <div class="container">
          <div class="row">
            <div class="col-md-4 col-sm-12 col-xs-12 text-left">
               {{ snippets["Footer"] | liquid }}
            </div>
            <div class="col-md-8 col-sm-12 col-xs-12 text-left ">
            </div>   
          </div>
        </div>
      </div>
    </footer>
  </body>
</html>

Étape 2 : créer un modèle de page

Connectez-vous à Dynamics 365 et créez le modèle de page suivant :

  • Nom : page personnalisée Azure AD B2C
  • Type : modèle Web
  • Modèle Web : page personnalisée Azure AD B2C
  • Utiliser l'en-tête et le pied de page du site Web : désactivez cette case à cocher

Étape 3 : créer une page Web

Connectez-vous à Dynamics 365 et créez la page Web suivante :

  • Nom : connexion
  • Page Parent : accueil
  • URL partielle : azure-ad-b2c-sign-in
  • Modèle de page : page personnalisée Azure AD B2C
  • État de publication : publié

Étape 4 : créer les paramètres de site

Les paramètres de site sont nécessaires pour configurer le partage des ressources cross-origin (CORS) afin que Azure AD B2C puisse demander la page personnalisée et injecter l'interface utilisateur de connexion ou d'inscription. Connectez-vous à Dynamics 365 et créez les paramètres de site suivants.

Nom Valeur
HTTP/Access-Control-Allow-Methods GET, OPTIONS
HTTP/Access-Control-Allow-Origin https://login.microsoftonline.com

Pour obtenir la liste complète des autres paramètres CORS, voir Prise en charge du protocole CORS.

Étape 5 : configuration de Azure

  1. Connectez-vous à votre Portail Azure.
  2. Accédez à la page Gestion du client Azure AD B2C.
  3. Accédez à Paramètres > Stratégies d'inscription ou de connexion. La liste des stratégies disponibles s'affiche.
  4. Sélectionnez la stratégie que vous souhaitez modifier.
  5. Sélectionnez Modifier.
  6. Sélectionnez Modifier la stratégie > Personnalisation de l'interface utilisateur de la page > Page d'inscription ou de connexion unifiée
  7. Définissez Utiliser la page personnalisée sur Oui.
  8. Définissez URI de la page personnalisée sur l'URL de la page Web Page personnalisée Azure AD B2C créée dans Dynamics 365 à l'étape 3 de cette procédure. Par exemple, https://mydomain.com/azure-ad-b2c-sign-in
  9. Sélectionnez OK.

Mappage des revendications

Lorsque les utilisateurs se connectent, pour la première fois ou ultérieurement, le fournisseur d'identité fédéré fournit des revendications basées sur sa base de données relatives à la connexion des utilisateurs. Ces revendications sont configurables dans le fournisseur d'identité.

Revendications par courrier électronique Azure AD B2C

Azure AD B2C envoie la revendication par courrier électronique sous forme de collection. Le portail accepte le premier e-mail fourni dans la collection comme adresse de messagerie principale du contact.

Revendications pour prendre en charge les scénarios d'inscription

Lorsqu'un nouveau client qui n'existe pas dans Dynamics 365 est mis en service, les revendications entrantes peuvent être utilisées pour définir le nouvel enregistrement de contact qui sera créé par le portail. Les revendications courantes peuvent inclure les nom et prénom, l'adresse de messagerie et le numéro de téléphone, mais elles sont configurables. Les paramètres de site suivants sont requis :

Nom : Authentication/OpenIdConnect/[Federation-Name]/RegistrationClaimsMapping

Description : liste de paires nom logique/revendication à utiliser pour mettre en correspondance les valeurs de revendication avec les attributs de l'enregistrement de contact créé au cours de l'inscription.

Format : attribute1=claim1, attribute2=claim2, attribute3=claim3

Par exemple : firstname=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname,lastname=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname,jobtitle=jobTitle

Revendications pour prendre en charge les scénarios de connexion

Les données de Dynamics 365 et du fournisseur d'identité ne sont pas directement liées, elles peuvent donc être désynchronisées. Le portail doit contenir une liste des revendications que vous souhaitez accepter de n'importe quel événement de connexion à mettre à jour dans Dynamics 365. Ces revendications peuvent être un sous-ensemble des revendications provenant d'un scénario de connexion ou en être équivalentes. Elles doivent être configurées séparément du mappage des revendications de connexion, car vous ne souhaitez peut-être pas remplacer certains attributs clés du portail. Les paramètres de site suivants sont requis :

Nom : Authentication/OpenIdConnect/[Federation-Name]/LoginClaimsMapping

Description : liste de paires nom logique/revendication à utiliser pour mettre en correspondance les valeurs de revendication avec les attributs de l'enregistrement de contact créé après la connexion.

Format : attribute1=claim1, attribute2=claim2, attribute3=claim3

Par exemple : firstname=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname,lastname=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname,jobtitle=jobTitle

Le nom de la revendication est le champ TYPE DE REVENDICATION répertorié en regard de l'attribut dans les revendications d'application des stratégies de connexion.

Autoriser l'association automatique à un enregistrement de contact basé sur le courrier électronique

Les clients qui ont des enregistrements de contact avec des courriers électroniques associés peuvent lancer un site Web où les utilisateurs externes se connectent à Azure AD B2C par le biais d'un mécanisme de validation par courrier électronique. La nouvelle connexion doit être associée à l'enregistrement de contact existant au lieu de créer un enregistrement en double. Cette fonctionnalité met en correspondance uniquement un contact qui n'a pas d'identité active, et l'adresse de messagerie doit être unique (non associée à plusieurs enregistrements de contact). Les paramètres de site suivants sont requis :

Nom : Authentication/[Protocol]/[Provider]/AllowContactMappingWithEmail

Description : spécifie si les contacts sont mis en correspondance avec un courrier électronique correspondant. Lorsque la valeur est true, ce paramètre associe un enregistrement de contact unique à une adresse de messagerie correspondante, et attribue automatiquement le fournisseur d'identité externe au contact une fois que l'utilisateur s'est connecté avec succès. Par défaut, la valeur est false.