Nastavení poskytovatele Azure AD B2C pro portály

Azure Active Directory (Azure AD) zajišťuje služby Office 365 a Dynamics 365 pro zaměstanecké či interní ověřování. Azure Active Directory B2C je rozšíření modelu ověřování umožňující přihlášení externích zákazníků pomocí místních přihlašovacích údajů a federace s různými poskytovateli společné sociální identity.

Vlastník portálu může konfigurovat portál tak, aby přijímal Azure AD B2C jako poskytovatel identit. Azure AD B2C podporuje Open ID Connect pro federaci.

Během konfigurace AzureAD B2C jako poskytovatele identit pro portál je generováno více hodnot, které použijete později při konfiguraci portálu. Tyto hodnoty jsou uvedeny v následující tabulce. Při konfiguraci portálu nahraďte název proměnné hodnotami, které zjistíte zde.

Název proměnné Hodnota Popis
Application-Name Název aplikace, jež představuje portál jako předávající stranu.
Application-ID ID aplikace přidružené k aplikaci vytvořené v Azure Active Directory B2C.
Policy-Signin-URL Adresa URL vydavatele (iss) definovaná v koncovém bodu metadat.
Federation-Name Jedinečný název pro identifikaci typu poskytovatele federace, například „B2C“. Použije se v názvech Nastavení webu k seskupení nastavení konfigurace pro tohoto konkrétního poskytovatele.

Použití Azure AD B2C jako poskytovatele identit pro portál

  1. Přihlaste se k portálu Azure.
  2. Vytvořte klienta Azure AD B2C .
  3. Vyberte Azure AD B2C na levém navigačním panelu.
  4. Vytvořte aplikaci Azure.

    Poznámka

    Je nutné zvolit Ano pro pole Povolit implicitní tok pole a do pole Adresa URL odpovědi zadat adresu URL portálu. Hodnota v poli Adresa URL odpovědi by měla být ve formátu [doména portálu]/signin-[Federation-Name].

  5. Zkopírujte název aplikace a zadejte jej jako hodnotu parametru Application-Name v předchozí tabulce.

  6. Zkopírujte ID aplikace a zadejte jej jako hodnotu parametru Application-ID v předchozí tabulce.
  7. Vytvořte zásady registrace nebo přihlášení .
  8. Vyberte zásadu a potom vyberte položku Upravit.
  9. Vyberte Konfigurace tokenu, relace a SSO.
  10. Ze seznamu Deklarace identity vydavatele (iss) vyberte adresu URL, která má v cestě obsaženo /tfp.
  11. Uložte zásadu.
  12. Klikněte na adresu URL v poli Koncový bod metadat pro tuto zásadu.
  13. Zkopírujte hodnotu pole vydavatele a zadejte ji jako hodnotu parametru Policy-Signin-URL v předchozí tabulce.

Konfigurace portálu

Po vytvoření a konfiguraci klienta B2C v Azure, je nutné nakonfigurovat portálu k federaci s AzureAD B2C pomocí protokolu Open ID Connect. Je nutné vytvořit jedinečný název pro federaci do Azure AD B2C — například B2C — a uložit jej jako hodnotu proměnné Federation-Name ve výše uvedené tabulce.

Konfigurace portálu

  1. Přihlaste se ke službě Dynamics 365.
  2. Přejděte do části Portály > Weby.
  3. Vyberte záznam webu, pro který je třeba povolit AzureAD B2C.
  4. Přejděte do části Nastavení webu.
  5. Vytvořte následující nastavení webu:

    • Název: Authentication/OpenIdConnect/[Federation-Name]/Authority

      Hodnota: [Policy-Signin-URL]

    • Název: Authentication/OpenIdConnect/[Federation-Name]/ClientId

      Hodnota: [Application-ID]

    • Název: Authentication/OpenIdConnect/[Federation-Name]/RedirectUri

      Hodnota: [doména portálu]/signin-[Federation-Name]

      Například https://mysite.com/signin-b2c

  6. V rámci podpory federovaného odhlašování vytvořte následující nastavení webu:

    • Název: Authentication/OpenIdConnect/[Federation-Name]/ExternalLogoutEnabled

      Hodnota: true

  7. Chcete-li pevně zakódovat portál do jednoho poskytovatele identit, vytvořte následující nastavení webu:

    • Název: Authentication/Registration/LoginButtonAuthenticationType

      Hodnota: [Policy-Signin-URL]

  8. V rámci podpory obnovení hesla vytvořte požadované nastavení webu popsané zde.

  9. V rámci podpory mapování deklarací identit vytvořte požadované nastavení webu popsané zde.

Úplný seznam souvisejících nastavení webů naleznete zde.

Resetování hesla

Následující nastavení webu jsou vyžadována, pokud chcete mít možnost obnovit heslo pomocí místních účtů Azure AD B2C:

Nastavení webu Popis
Authentication/OpenIdConnect/[Federation-Name/PasswordResetPolicyId Zásady obnovení ID hesla.
Authentication/OpenIdConnect/[Federation-Name]/ValidIssuers Čárkami oddělený seznam vydavatelů, který zahrnuje [Policy-Signin-URL] a vydavatele zásad pro obnovení hesla.

V portálech let vytvořit nebo konfigurovat následující nastavení webu, aby bylo Azure AD B2C podporováno jako poskytovatel identit:

Nastavení webu Popis
Authentication/Registration/ProfileRedirectEnabled Určuje, zda portál může po úspěšném přihlášení přesměrovat uživatele na stránku profilu. Ve výchozím nastavení je vybrána možnost true.
Authentication/Registration/EmailConfirmationEnabled Určuje, zda je vyžadováno ověření e-mailu. Ve výchozím nastavení je vybrána možnost true.
Authentication/Registration/LocalLoginEnabled Určuje, zda je vyžadováno místní přihlášení. Ve výchozím nastavení je vybrána možnost true.
Authentication/Registration/ExternalLoginEnabled Povolí nebo zakáže externí ověřování.
Authentication/Registration/AzureADLoginEnabled Povolí nebo zakáže Azure AD jako externího poskytovatele identit. Ve výchozím nastavení je vybrána možnost true.
Authentication/OpenIdConnect/[Federation-Name]/ExternalLogoutEnabled Povolí nebo zakáže federované odhlášení. Při nastavení na hodnotu true jsou uživatelé při odhlášení z portálu přesměrováni na federované odhlášení. Při nastavení na hodnotu false jsou uživatelé pouze odhlášeni z portálu. Ve výchozím nastavení je vybrána možnost false.
Authentication/LoginTrackingEnabled Povolí nebo zakáže sledování posledního přihlášení uživatele. Pokud je nastavena na hodnotu true, je v poli Poslední úspěšné přihlášení záznamu kontaktu zobrazeno datum a čas. Ve výchozím nastavení je vybrána možnost false.
Authentication/OpenIdConnect/[Federation-Name]/RegistrationEnabled Povolí nebo zakáže požadavek registrace pro existujícího poskytovatele identit. Pokud je nastaveno na hodnotu true, registrace je povolena pro existujícího poskytovatele pouze v případě, že je na hodnotu true nastaveno také nastavení webu Authentication/Registration/Enabled. Ve výchozím nastavení je vybrána možnost true.
Authentication/OpenIdConnect/[Federation-Name]/PostLogoutRedirectUri Určuje adresu URL v rámci portálu pro přesměrování po odhlášení uživatele.

Pokud je registrace pro uživatele zakázána poté, co uživatel uplatnil pozvánku, zobrazte zprávu pomocí následujícího fragmentu kódu obsahu:

Název: Account/Register/RegistrationDisabledMessage

Hodnota: Registrace byla zakázána.

Vlastní nastavení uživatelského rozhraní Azure AD B2C

Azure AD B2C podporuje vlastní nastavení uživatelského rozhraní. Uživatelské rozhraní můžete přizpůsobit pro scénáře registrace a přihlášení.

Krok 1: Vytvoření šablony webu

Přihlaste se k Dynamics 365 a vytvořte webovou šablonu pomocí následujících hodnot:

Název: Vlastní stránka Azure AD B2C

Zdroj: Použijte následující ukázkové zdrojové HTML webové šablony.

<!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"] }}
            </div>
            <div class="col-md-8 col-sm-12 col-xs-12 text-left ">
            </div>   
          </div>
        </div>
      </div>
    </footer>
  </body>
</html>

Krok 2: Vytvoření šablony stánky

Přihlaste se k Dynamics 365 a vytvořte následující šablonu stránky:

  • Název: Vlastní stránka Azure AD B2C
  • Typ: Šablona webu
  • Šablona webu: Vlastní stránka Azure AD B2C
  • Použít záhlaví a zápatí webu: Zrušte zaškrtnutí tohoto políčka

Krok 3: Vytvoření webové stránky

Přihlaste se k Dynamics 365 a vytvořte následující webovou stránku:

  • Název: Přihlášení
  • Nadřazená stránka: Domovská stránka
  • Částečná adresa URL: azure-ad-b2c-sign-in
  • Šablona stránky: Vlastní stránka Azure AD B2C
  • Stav publikování: Publikováno

Krok 4: Vytvoření nastavení webu

Nastavení webu je třeba provést pro konfiguraci CORS, aby Azure AD B2C mohlo požadovat vlastní stránku a vložit uživatelské rozhraní pro přihlášení nebo registraci. Přihlaste se k Dynamics 365 a vytvořte následující nastavení stránky:

Jméno Hodnota
HTTP/Access-Control-Allow-Methods GET, MOŽNOSTI
HTTP/Access-Control-Allow-Origin https://login.microsoftonline.com

Úplný seznam dalších nastavení CORS naleznete v části Podpora protokolu CORS.

Krok 5: Konfigurace řešení Azure

  1. Přihlaste se k Azure Portal.
  2. Přejděte do okna Správa klienta Azure AD B2C.
  3. Přejděte do části Nastavení > Zásady registrace nebo přihlášení. Zobrazí se seznam dostupných zásad.
  4. Vyberte zásadu, kterou chcete upravit.
  5. Vyberte položku Upravit.
  6. Vyberte položku Upravit zásadu > Přizpůsobení uživatelského rozhraní stránky > Sjednocená stránka pro registraci nebo přihlášení
  7. Nastavte položku Použít vlastní stránku na hodnotu Ano.
  8. Nastavte položku Identifikátor URI vlastní stránky na adresu URL webové stránky vlastní stránky Azure AD B2C vytvořené v Dynamics 365 v kroku 3 tohoto postupu. Například https://mydomain.com/azure-ad-b2c-sign-in.
  9. Vyberte položku OK.

Mapování deklarací

Jakmile se uživatel přihlásí, buď poprvé, nebo následně, poskytovatel federovaných identit poskytuje deklarace identit na základě databáze týkající se přihlášení uživatelů. Tyto deklarace jsou konfigurovatelné v poskytovateli identit.

E-mailové deklarace Azure AD B2C

Azure AD B2C odesílá e-mailovou deklaraci jako kolekci. Portál přijímá první e-mail v kolekci jako primární e-mailovou adresu kontaktu.

Deklarace na podporu scénáře registrace

Když je zřízen nový zákazník, který neexistuje v Dynamics 365, příchozí deklarace lze použít k osazení nového záznamu kontaktu, který vytvoří portál. Společné deklarace mohou obsahovat jméno a příjmení, e-mailovou adresu a telefonní číslo, ale jsou konfigurovatelné. Je požadováno následující nastavení webu:

Název: Authentication/OpenIdConnect/[Federation-Name]/RegistrationClaimsMapping

Popis: Seznam logických párů název/deklarace pro použití na hodnoty deklarací mapování na atributy v záznamu kontaktu, který je vytvořen během registrace.

Formát: atribut1=deklarace1,atribut2=deklarace2,atribut3=deklarace3

Například: firstname=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname,lastname=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname,jobtitle=jobTitle

Deklarace na podporu scénáře přihlášení

Data v Dynamics 365 a poskytovateli identit nejsou přímo spojena, takže data nemusí být synchronizována. Portál by měl mít seznam deklarací, které chcete přijímat od všech událostí přihlášení k aktualizaci v Dynamics 365. Tyto deklarace mohou být podmnožinou, nebo se mohou rovnat, deklaracím pocházejícím ze scénáře přihlášení. To je třeba nakonfigurovat samostatně z mapování deklarace přihlášení, protože možná nebudete chtít přepsat některé klíčové atributy portálu. Je požadováno následující nastavení webu:

Název: Authentication/OpenIdConnect/[Federation-Name]/LoginClaimsMapping

Popis: Seznam logických párů název/deklarace pro použití na hodnoty deklarací mapování na atributy v záznamu kontaktu, který je vytvořen po přihlášení.

Formát: atribut1=deklarace1, atribut2=deklarace2, atribut3=deklarace3

Například: firstname=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname,lastname=http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname,jobtitle=jobTitle

Název deklarace je pole TYP DEKLARACE uvedené vedle atributu v deklaracích Aplikace zásad přihlášení.

Povolení automatického přidružení k záznamu kontaktu na základě e-mailu

Zákazníci, kteří mají k záznamům kontaktů přiřazené e-maily, poté spustí web, kde se jejich externí uživatelé budou přihlašovat pomocí Azure AD B2C prostřednictvím mechanismu ověřování e-mailu. Nové přihlášení musí být přiřazeno k existujícímu záznamu kontaktu namísto vytvoření duplicitního záznamu. Tato funkce úspěšně mapuje pouze kontakt, který nemá aktivní identitu, a e-mailová adresa musí být jedinečná (nesouvisí s více záznamy kontaktů). Je požadováno následující nastavení webu:

Název: Authentication/[Protocol]/[Provider]/AllowContactMappingWithEmail

Popis: Určuje, zda jsou kontakty mapovány na příslušný e-mail. Pokud je nastaveno na hodnotu true, toto nastavení přiřadí jedinečný záznam kontaktu k odpovídající e-mailové adrese a poté automaticky přiřadí externího poskytovatele identit ke kontaktu poté, co byl uživatel úspěšně přihlášen. Ve výchozím nastavení je vybrána možnost false.