Azure 入口網站的 AD B2C 提供者設定

Azure Active Directory (Azure AD) 支援員工或內部驗證的 Office 365 和 Dynamics 365 服務。 Azure Active Directory B2C 是該驗證模型的擴充功能,可讓外部客戶透過本機認證和各種常見的社交身分識別提供者同盟,進行登入。

入口網站負責人可以設定入口網站接受 Azure AD B2C 作為身分識別提供者。 Azure AD B2C 支援同盟的 Open ID Connect。

在將 Azure AD B2C 設為您入口網站的身分識別提供者時,將會產生日後您可在設定入口網站時使用的多個值。 您無法將這些數值記在下表中。 設定入口網站時,請以您在此記下的值取代變數名稱。

變數名稱 描述
Application-Name 代表入口網站作為信賴憑證者的應用程式名稱
Application-ID 與在 Azure Active Directory B2C 中建立之應用程式關聯的應用程式識別碼。
Policy-Signin-URL 在中繼資料端點中定義的簽發者 (iss) URL。
Federation-Name 識別如「B2C」等同盟提供者類型的唯一名稱。 此名稱將在對群組組態設定的網站設定名稱中用於此特定提供者。

將 Azure AD B2C 作為您入口網站的身分識別提供者使用

  1. 登入您的 Azure 入口網站
  2. 建立 Azure AD B2C 用戶.
  3. 選取最左邊瀏覽列上的 Azure AD B2C
  4. 建立 Azure 應用程式

    備註

    [允許隱含流程] 欄位必須選擇 [],並在 [回覆 URL] 欄位中指定您的入口網站 URL。 [回覆 URL] 欄位中的值必須是 [portal domain]/signin-[Federation-Name] 格式。

  5. 複製應用程式名稱,並將此名稱作為前一表格中 [Application-Name] 的值輸入。

  6. 複製應用程式識別碼,並將此名稱作為前一表格中 [Application-ID] 的值輸入。
  7. 建立註冊或登入原則
  8. 選取原則,然後選取 [編輯]。
  9. 選取 [權杖、工作階段和 SSO 組態]。
  10. 從 [簽發者 (iss) 宣告] 清單,選取其路徑有 /tfp 的 URL。
  11. 儲存原則。
  12. 按一下 [此原則的中繼資料端點] 欄位中的 URL。
  13. 複製簽發者欄位的值,並將此值作為前一表格中 Policy-Signin-URL 的值輸入。

入口網站設定

建立並設定 Azure 中的 B2C 用戶後,您必須設定您的入口網站,以使用 Open ID Connect 通訊協定與 Azure AD B2C 同盟。 您必須為 Azure AD B2C 的同盟建立唯一的名稱—例如,B2C—並作為上一表格中 Federation-Name 變數的值儲存。

設定您的入口網站

  1. 登入 Dynamics 365。
  2. 移至 [入口網站s] > [網站]。
  3. 選取需要啟用之 Azure AD B2C 的網站記錄。
  4. 移至 [網站設定]。
  5. 建立下列網站設定:

    • 名稱:Authentication/OpenIdConnect/[Federation-Name]/Authority

      :[Policy-Signin-URL]

    • 名稱:Authentication/OpenIdConnect/[Federation-Name]/ClientId

      :[Application-ID]

    • 名稱:Authentication/OpenIdConnect/[Federation-Name]/RedirectUri

      :[portal domain]/signin-[Federation-Name]

      例如,https://mysite.com/signin-b2c

  6. 若要支援同盟登出,請建立以下網站設定:

    • 名稱:Authentication/OpenIdConnect/[Federation-Name]/ExternalLogoutEnabled

      :true

  7. 若要將您的入口網以硬式編碼的方式加入單一身分識別提供者,請建立以下網站設定:

    • 名稱:/Authentication/Registration/LoginButtonAuthenticationType

      :[Policy-Signin-URL]

  8. 若要支援密碼重設,請建立如 這裡 所述的所需網站設定。

  9. 若要支援宣告對應,請建立如 這裡 所述的所需網站設定。

如需相關網站設定清單,請參閱 這裡

密碼重設

如果您想要支援 Azure AD B2C 本機帳戶的密碼重設,需要下列網站設定。

網站設定 描述
Authentication/OpenIdConnect/[Federation-Name/PasswordResetPolicyId 密碼重設原則的 ID。
Authentication/OpenIdConnect/[Federation-Name]/ValidIssuers 包括 [Policy-Signin-URL] 和密碼重設簽發者的簽發者逗號分隔清單。

您可以在入口網站進行下列網站設定,以支援 Azure AD B2C 作為身分識別提供者:

網站設定 描述
Authentication/Registration/ProfileRedirectEnabled 指定入口網站是否可以在成功登入後,將使用者重新導向至設定檔頁面。 預設值為 true。
Authentication/Registration/EmailConfirmationEnabled 指定是否需要電子郵件驗證。 預設值為 true。
Authentication/Registration/LocalLoginEnabled 指定是否需要本機登入。 預設值為 true。
Authentication/Registration/ExternalLoginEnabled 啟用或停用外部驗證。
Authentication/Registration/AzureADLoginEnabled 啟用或停用 AzureAD 作為外部身分識別提供者。 預設值為 true。
Authentication/OpenIdConnect/[Federation-Name]/ExternalLogoutEnabled 啟用或停用同盟登出。 如果設為 true 時,使用者會在從入口網站登出時重新導向至同盟登出使用者體驗。 設為 false 時,使用者只會從入口網站登出。 預設值為 false。
Authentication/LoginTrackingEnabled 啟用或停用追蹤使用者上一次的登入。 設為 true 時,日期和時間會在連絡人記錄上的 [上次成功登入時間] 欄位顯示。 預設值為 false。
Authentication/OpenIdConnect/[Federation-Name]/RegistrationEnabled 啟用或停用現有身分識別提供者的註冊需求。 設為 true 時,只有在網站設定 Authentication/Registration/Enabled 設為 true 時,才需要啟用現有提供者的註冊。 預設值為 true。
Authentication/OpenIdConnect/[Federation-Name]/PostLogoutRedirectUri 指定使用者登出後要重新導向至的入口網站內 URL。

如果讚使用者已兌換邀請後停用使用者的註冊,請使用下列內容片段顯示訊息:

名稱:Account/Register/RegistrationDisabledMessage

:註冊已遭到停用。

自訂 Azure AD B2C 使用者介面

Azure AD B2C 支援使用者介面自訂。 您可以自訂註冊和登入案例的使用者體驗。

步驟 1:建立 Web 範本

登入 Dynamics 365 並使用下列值建立 Web 範本:

名稱:Azure AD B2C 自訂頁面

來源:使用下列範例 Web 範本來源 HTML。

<!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>

步驟 2:建立頁面範本

登入 Dynamics 365 並建立下列頁面範本:

  • 名稱:Azure AD B2C 自訂頁面
  • 類型:Web 範本
  • Web 範本:AzureAD B2C 自訂頁面
  • 使用網站頁首與頁尾:清除此核取方塊

步驟 3:建立網頁

登入 Dynamics 365 並建立下列網頁:

  • 名稱:登入
  • 上層 頁面:首頁
  • 部分 Url:azure-ad-b2c-sign-in
  • 頁面範本:AzureAD B2C 自訂頁面
  • 發行狀態:已發行

步驟 4:建立網站設定

需要以網站設定配置跨原始來源資源共用 (CORS),才可讓 Azure AD B2C 要求自訂頁面並插入登入或註冊使用者介面。 登入 Dynamics 365 並建立下列網站設定:

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

如需其他 CORS 設定的完整清單,請參閱 CORS 通訊協定支援

步驟 5:Azure 設定

  1. 登入您的 Azure 入口網站。
  2. 瀏覽至 Azure AD B2C 用戶管理 刀鋒視窗。
  3. 瀏覽至 [設定] > [註冊或登入原則]。 隨即顯示可用的原則清單。
  4. 選取您想編輯的原則。
  5. 選取 [編輯]。
  6. 選取 [編輯原則] > [頁面 UI 自訂] > [整合註冊或登入頁面]
  7. 將 [使用自訂頁面] 設為 []。
  8. 將 [自訂頁面 URI] 設為在本程序步驟 3 中 Dynamics 365 內所建立 Azure AD B2C 自訂頁面網頁的 URL。 例如:https://mydomain.com/azure-ad-b2c-sign-in
  9. 選取 [確定]。

宣告對應

使用者第一次或日後登入時,同盟的身分識別提供者會根據其相關的使用者登入資料庫宣告。 這些宣告可在身分識別提供者內設定。

AzureAD B2C 電子郵件宣告

AzureAD B2C 將電子郵件宣告作為集合傳送。 入口網站將集合內的第一封電子郵件作為連絡人的主要電子郵件接受。

支援註冊案例的宣告

佈建不存在於 Dynamics 365 的新客戶時,可以使用輸入宣告植入入口網站將建立的新連絡人記錄。 常見宣告可以包括姓氏和名字、電子郵件地址及電話號碼,但可以進行設定。 需使用下列網站設定:

名稱:Authentication/OpenIdConnect/[Federation-Name]/RegistrationClaimsMapping

描述:邏輯名稱/宣告組清單,用於將宣告值對應至註冊時所建立之連絡人記錄的屬性。

格式:attribute1=claim1,attribute2=claim2,attribute3=claim3

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

支援登入案例的宣告

Dynamics 365 和身分識別提供者的資料不會值直接連結,因此資料可能不會同步。 入口網站應具有您要接受來自於任何登入事件的宣告清單,以在 Dynamics 365 更新。 這些宣告可以是來自於登入案例的宣告子集合,或等於這些宣告。 由於您可能不想要覆寫某些主要的入口網站屬性,因此可以跟登入宣告對應分開設定。 需使用下列網站設定:

名稱:Authentication/OpenIdConnect/[Federation-Name]/LoginClaimsMapping

描述:邏輯名稱/宣告組清單,用於將宣告值對應至登入後所建立之連絡人記錄的屬性。

格式:attribute1=claim1,attribute2=claim2,attribute3=claim3

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

宣告名稱是列於登入原則應用程式宣告旁的 [CLAIM TYPE] 欄位。

允許自動關聯至電子郵件上的連絡人記錄

連絡人記錄已關聯電子郵件的客戶然後啟動網站。其外部使用者可在網站中透過電子郵件驗證機制,使用 Azure AD B2C 登入。 新的登入應與現有連絡人記錄關聯,而不是建立重複記錄。 此功能只會成功對應無使用中身分識別的連絡人,且電子郵件地址必須是唯一的 (未關聯多筆連絡人記錄)。 需使用下列網站設定:

名稱:Authentication/[Protocol]/[Provider]/AllowContactMappingWithEmail

描述:指定連絡人是否要對應至相對的電子郵件。 設為 true 時,此設定會將唯一的連絡人記錄關聯至相符的電子郵件位址,然後在使用者已成功登入後,自動指派外部身分識別提供者給連絡人。 預設值為 false。