Megosztás a következőn keresztül:


Egyéni e-mail-ellenőrzés a Mailjettel

Mielőtt hozzákezdene, a Szabályzattípus kiválasztása választóval válassza ki a beállított szabályzat típusát. Az Azure Active Directory B2C két módszert kínál annak meghatározására, hogy a felhasználók hogyan használják az alkalmazásokat: előre definiált felhasználói folyamatokon vagy teljesen konfigurálható egyéni szabályzatokon keresztül. A cikkben szereplő lépések különbözőek az egyes metódusok esetében.

Egyéni e-maileket az Azure Active Directory B2C-ben (Azure AD B2C) használva testre szabott e-maileket küldhet az alkalmazások használatára regisztráló felhasználóknak. A Mailjet külső e-mail-szolgáltató használatával használhatja saját e-mail-sablonját és Feladó: cím és tárgy, valamint a honosítás és az egyéni egyszeri jelszó (OTP) beállításait.

Ez a funkció csak egyéni szabályzatokhoz érhető el. A beállítási lépésekhez válassza az egyéni szabályzatot az előző választóban.

Az egyéni e-mail-ellenőrzéshez külső e-mail-szolgáltató , például Mailjet, SendGrid vagy SparkPost, egyéni REST API vagy HTTP-alapú e-mail-szolgáltató (a sajátját is beleértve) kell használnia. Ez a cikk a Mailjetet használó megoldás beállítását ismerteti.

Mailjet-fiók létrehozása

Ha még nem rendelkezik ilyen fiókkal, először állítson be egy Mailjet-fiókot (az Azure-ügyfelek 6000 e-mail zárolását oldhatják fel 200 e-mail/nap korlát mellett).

  1. Kövesse a Mailjet-fiók létrehozása beállítási utasításait.
  2. Az e-mailek küldéséhez regisztrálja és érvényesítse feladója e-mail-címét vagy tartományát.
  3. Lépjen az API Kulcskezelés lapjára. Jegyezze fel az API-kulcsot és a titkos kulcsot egy későbbi lépésben való használatra. A fiók létrehozásakor mindkét kulcs automatikusan létrejön.

Fontos

A Mailjet lehetővé teszi az ügyfelek számára, hogy megosztott IP-címről és dedikált IP-címekről küldjenek e-maileket. Dedikált IP-címek használata esetén az IP-címek bemelegítésével megfelelően kell felépítenie a saját hírnevét. További információ: Hogyan bemelegíti az IP-címemet?.

Azure AD B2C szabályzatkulcs létrehozása

Ezután tárolja a Mailjet API-kulcsot egy Azure AD B2C-szabályzatkulcsban a szabályzatok hivatkozásához.

  1. Jelentkezzen be az Azure Portalra.
  2. Ha több bérlőhöz is hozzáfér, a felső menüben válassza a Gépház ikont az Azure AD B2C-bérlőre való váltáshoz a Címtárak + előfizetések menüből.
  3. Válassza az Összes szolgáltatást az Azure Portal bal felső sarkában, majd keresse meg és válassza az Azure AD B2C-t.
  4. Az Áttekintés lapon válassza az Identity Experience Framework lehetőséget.
  5. Válassza a Házirendkulcsok lehetőséget, majd válassza a Hozzáadás lehetőséget.
  6. A Beállítások beállításnál válassza a Manuális lehetőséget.
  7. Adja meg a szabályzatkulcs nevét. For example, MailjetApiKey. A rendszer automatikusan hozzáadja az előtagot B2C_1A_ a kulcs nevéhez.
  8. A Titkos kód mezőbe írja be a korábban rögzített Mailjet API-kulcsot .
  9. Kulcshasználat esetén válassza az Aláírás lehetőséget.
  10. Select Create.
  11. Válassza a Házirendkulcsok lehetőséget, majd válassza a Hozzáadás lehetőséget.
  12. A Beállítások beállításnál válassza a Manuális lehetőséget.
  13. Adja meg a szabályzatkulcs nevét. For example, MailjetSecretKey. A rendszer automatikusan hozzáadja az előtagot B2C_1A_ a kulcs nevéhez.
  14. A Titkos kód mezőbe írja be a korábban rögzített Mailjet titkos kulcsát .
  15. Kulcshasználat esetén válassza az Aláírás lehetőséget.
  16. Select Create.

Mailjet-sablon létrehozása

Ha létrehoz egy Mailjet-fiókot, és egy Azure AD B2C-szabályzatkulcsban tárolt Mailjet API-kulcsot, hozzon létre egy Mailjet dinamikus tranzakciós sablont.

  1. A Mailjet webhelyen nyissa meg a tranzakciós sablonok lapot, és válassza az Új sablon létrehozása lehetőséget.

  2. Válassza a Html kódolásával lehetőséget, majd az alapoktól válassza a Kód lehetőséget.

  3. Adjon meg egy egyedi sablonnevet, például Verification email, majd válassza a Létrehozás lehetőséget.

  4. A HTML-szerkesztőben illessze be a következő HTML-sablont, vagy használja a sajátját. {{var:email:""}} A {{var:otp:""}} rendszer dinamikusan lecseréli a paramétereket az egyszeri jelszóértékre és a felhasználói e-mail-címre.

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en"><head id="Head1">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Contoso demo account email verification code</title><meta name="ROBOTS" content="NOINDEX, NOFOLLOW">
       <!-- Template B O365 -->
       <style>
           table td {border-collapse:collapse;margin:0;padding:0;}
       </style>
    </head>
    <body dir="ltr" lang="en">
       <table width="100%" cellpadding="0" cellspacing="0" border="0" dir="ltr" lang="en">
            <tr>
               <td valign="top" width="50%"></td>
               <td valign="top">
                  <!-- Email Header -->
                  <table width="640" cellpadding="0" cellspacing="0" border="0" dir="ltr" lang="en" style="border-left:1px solid #e3e3e3;border-right: 1px solid #e3e3e3;">
                   <tr style="background-color: #0072C6;">
                       <td width="1" style="background:#0072C6; border-top:1px solid #e3e3e3;"></td>
                       <td width="24" style="border-top:1px solid #e3e3e3;border-bottom:1px solid #e3e3e3;">&nbsp;</td>
                       <td width="310" valign="middle" style="border-top:1px solid #e3e3e3; border-bottom:1px solid #e3e3e3;padding:12px 0;">
                           <h1 style="line-height:20pt;font-family:Segoe UI Light; font-size:18pt; color:#ffffff; font-weight:normal;">
                            <span id="HeaderPlaceholder_UserVerificationEmailHeader"><font color="#FFFFFF">Verify your email address</font></span>
                           </h1>
                       </td>
                       <td width="24" style="border-top: 1px solid #e3e3e3;border-bottom: 1px solid #e3e3e3;">&nbsp;</td>
                   </tr>
                  </table>
                  <!-- Email Content -->
                  <table width="640" cellpadding="0" cellspacing="0" border="0" dir="ltr" lang="en">
                   <tr>
                       <td width="1" style="background:#e3e3e3;"></td>
                       <td width="24">&nbsp;</td>
                       <td id="PageBody" width="640" valign="top" colspan="2" style="border-bottom:1px solid #e3e3e3;padding:10px 0 20px;border-bottom-style:hidden;">
                           <table cellpadding="0" cellspacing="0" border="0">
                               <tr>
                                   <td width="630" style="font-size:10pt; line-height:13pt; color:#000;">
                                       <table cellpadding="0" cellspacing="0" border="0" width="100%" style="" dir="ltr" lang="en">
                                           <tr>
                                               <td>
    
       <div style="font-family:'Segoe UI', Tahoma, sans-serif; font-size:14px; color:#333;">
           <span id="BodyPlaceholder_UserVerificationEmailBodySentence1">Thanks for verifying your {{var:email:""}} account!</span>
       </div>
       <br>
       <div style="font-family:'Segoe UI', Tahoma, sans-serif; font-size:14px; color:#333; font-weight: bold">
           <span id="BodyPlaceholder_UserVerificationEmailBodySentence2">Your code is: {{var:otp:""}}</span>
       </div>
       <br>
       <br>
    
                                                   <div style="font-family:'Segoe UI', Tahoma, sans-serif; font-size:14px; color:#333;">
                                                   Sincerely,
                                                   </div>
                                                   <div style="font-family:'Segoe UI', Tahoma, sans-serif; font-size:14px; font-style:italic; color:#333;">
                                                       Contoso
                                                   </div>
                                               </td>
                                           </tr>
                                       </table>
                                   </td>
                               </tr>
                           </table>
    
                       </td>
    
                       <td width="1">&nbsp;</td>
                       <td width="1"></td>
                       <td width="1">&nbsp;</td>
                       <td width="1" valign="top"></td>
                       <td width="29">&nbsp;</td>
                       <td width="1" style="background:#e3e3e3;"></td>
                   </tr>
                   <tr>
                       <td width="1" style="background:#e3e3e3; border-bottom:1px solid #e3e3e3;"></td>
                       <td width="24" style="border-bottom:1px solid #e3e3e3;">&nbsp;</td>
                       <td id="PageFooterContainer" width="585" valign="top" colspan="6" style="border-bottom:1px solid #e3e3e3;padding:0px;">
    
                       </td>
    
                       <td width="29" style="border-bottom:1px solid #e3e3e3;">&nbsp;</td>
                       <td width="1" style="background:#e3e3e3; border-bottom:1px solid #e3e3e3;"></td>
                   </tr>
                  </table>
    
               </td>
               <td valign="top" width="50%"></td>
           </tr>
       </table>
    </body>
    </html>
    
  5. Bontsa ki a tárgy szerkesztése a bal felső sarokban

    1. A Tárgy mezőben adja meg a tárgy alapértelmezett értékét. A Mailjet akkor használja ezt az értéket, ha az API nem tartalmaz tárgyparamétert.
    2. A Név mezőbe írja be a vállalat nevét.
    3. A Cím mezőben válassza ki az e-mail-címét
    4. Válassza a Mentés parancsot.
  6. A jobb felső sarokban válassza a Közzététel mentése & lehetőséget, majd igen, tegye közzé a módosításokat

  7. Jegyezze fel egy későbbi lépésben használatra létrehozott sablon sablonazonosítóját . Ezt az azonosítót a jogcímátalakítás hozzáadásakor adja meg.

Fontos

A következő lépések bemutatják, hogyan hozhatja létre egyéni szabályzat XML-fájljait. Javasoljuk, hogy a GitHubon elérhető egyéni e-mail-ellenőrzési egyéni szabályzatmintát használja. DisplayControl_TrustFrameworkExtensions.xmlalapfájlként használjaTrustFrameworkExtensions.xml, ezért ügyeljen arra, TrustFrameworkLocalization.xml TrustFrameworkExtensions.xml hogy a házirendbe belefoglalja TrustFrameworkBase.xmla SocialAndLocalAccounts kezdőcsomagból származó fájlokat.

Azure AD B2C-jogcímtípusok hozzáadása

A szabályzatban adja hozzá a következő jogcímtípusokat a <ClaimsSchema> benne lévő <BuildingBlocks>elemhez.

Ezek a jogcímtípusok szükségesek az e-mail-cím egyszeri jelszó (OTP) kóddal történő létrehozásához és ellenőrzéséhez.

<!--
<BuildingBlocks>
  <ClaimsSchema> -->
    <ClaimType Id="Otp">
      <DisplayName>Secondary One-time password</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    <ClaimType Id="emailRequestBody">
      <DisplayName>Mailjet request body</DisplayName>
      <DataType>string</DataType>
    </ClaimType>
    <ClaimType Id="VerificationCode">
      <DisplayName>Secondary Verification Code</DisplayName>
      <DataType>string</DataType>
      <UserHelpText>Enter your email verification code</UserHelpText>
      <UserInputType>TextBox</UserInputType>
    </ClaimType>
  <!-- 
  </ClaimsSchema>
</BuildingBlocks> -->

A jogcímátalakítás hozzáadása

Ezután szüksége lesz egy jogcímátalakításra egy JSON-sztring jogcímének kimenetéhez, amely a Mailjetnek küldött kérés törzse lesz.

A JSON-objektum struktúráját az InputParameters és az InputClaims TransformationClaimTypes pontjegyzetében szereplő azonosítók határozzák meg. A pont jelölésében szereplő számok tömbökre utalnak. Az értékek az InputClaims értékeiből és az InputParameters "Érték" tulajdonságaiból származnak. További információ a JSON-jogcímek átalakításáról: JSON-jogcímátalakítások.

Adja hozzá a következő jogcímátalakítást a következő elemhez a <ClaimsTransformations> következőben <BuildingBlocks>: Végezze el a következő frissítéseket a jogcím-átalakítási XML-fájlban:

  • Frissítse az Messages.0.TemplateID InputParameter értéket a Mailjet-sablon létrehozása korábban létrehozott Mailjet tranzakciós sablon azonosítójával.
  • Frissítse a Messages.0.From.Email cím értékét. Érvényes e-mail-címmel megakadályozhatja, hogy az ellenőrző e-mail levélszemétként legyen megjelölve.
  • Frissítse a tárgysor bemeneti paraméterének Messages.0.Subject értékét a szervezetnek megfelelő tárgysorra.
<!-- 
<BuildingBlocks>
  <ClaimsTransformations> -->
    <ClaimsTransformation Id="GenerateEmailRequestBody" TransformationMethod="GenerateJson">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="Messages.0.To.0.Email" />
        <InputClaim ClaimTypeReferenceId="otp" TransformationClaimType="Messages.0.Variables.otp" />
        <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="Messages.0.Variables.email" />
      </InputClaims>
      <InputParameters>
        <!-- Update the template_id value with the ID of your Mailjet template. -->
        <InputParameter Id="Messages.0.TemplateID" DataType="int" Value="1234567"/>
        <InputParameter Id="Messages.0.TemplateLanguage" DataType="boolean" Value="true"/>

        <!-- Update with an email appropriate for your organization. -->
        <InputParameter Id="Messages.0.From.Email" DataType="string" Value="my_email@mydomain.com"/>

        <!-- Update with a subject line appropriate for your organization. -->
        <InputParameter Id="Messages.0.Subject" DataType="string" Value="Contoso account email verification code"/>
      </InputParameters>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="emailRequestBody" TransformationClaimType="outputClaim"/>
      </OutputClaims>
    </ClaimsTransformation>
  <!--
  </ClaimsTransformations>
</BuildingBlocks> -->

DataUri-tartalomdefiníció hozzáadása

A jogcímátalakítások <BuildingBlocks>alatt adja hozzá a következő ContentDefinitiont a 2.1.2-es adat URI-ra való hivatkozáshoz:

<!--
<BuildingBlocks> -->
  <ContentDefinitions>
   <ContentDefinition Id="api.localaccountsignup">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2</DataUri>
    </ContentDefinition>
    <ContentDefinition Id="api.localaccountpasswordreset">
      <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2</DataUri>
    </ContentDefinition>
  </ContentDefinitions>
<!--
</BuildingBlocks> -->

DisplayControl létrehozása

Az ellenőrző megjelenítési vezérlővel ellenőrizheti az e-mail-címet a felhasználónak küldött ellenőrző kóddal.

Ez a példamegjelenítési vezérlő a következőre van konfigurálva:

  1. Gyűjtse össze a email cím jogcímtípusát a felhasználótól.

  2. SendCode A művelettel hozzon létre egy OTP-kódot, és küldjön egy e-mailt az OTP-kóddal a felhasználónak.

    Send verification code email action

  3. Várja meg, amíg a felhasználó megadja a verificationCode jogcímtípust a felhasználónak küldött kóddal.

  4. Adja vissza azt az email önazonos műszaki profilt, amely hivatkozik erre a megjelenítési vezérlőre.

A tartalomdefiníciók alatt adja <BuildingBlocks>hozzá a következő, VerificationControl típusú DisplayControlt a szabályzathoz.

<!--
<BuildingBlocks> -->
  <DisplayControls>
    <DisplayControl Id="emailVerificationControl" UserInterfaceControlType="VerificationControl">
      <DisplayClaims>
        <DisplayClaim ClaimTypeReferenceId="email" Required="true" />
        <DisplayClaim ClaimTypeReferenceId="verificationCode" ControlClaimType="VerificationCode" Required="true" />
      </DisplayClaims>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="email" />
      </OutputClaims>
      <Actions>
        <Action Id="SendCode">
          <ValidationClaimsExchange>
            <ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="GenerateOtp" />
            <ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="SendOtp" />
          </ValidationClaimsExchange>
        </Action>
        <Action Id="VerifyCode">
          <ValidationClaimsExchange>
            <ValidationClaimsExchangeTechnicalProfile TechnicalProfileReferenceId="VerifyOtp" />
          </ValidationClaimsExchange>
        </Action>
      </Actions>
    </DisplayControl>
  </DisplayControls>
<!--
</BuildingBlocks> -->

OTP technikai profilok hozzáadása

A GenerateOtp technikai profil létrehoz egy kódot az e-mail-címhez. A VerifyOtp technikai profil ellenőrzi az e-mail-címhez társított kódot. Módosíthatja a formátum konfigurációját és az egyszeri jelszó lejáratát. Az OTP technikai profiljaival kapcsolatos további információkért lásd az egyszeri jelszó technikai profiljának definiálása című témakört.

Megjegyzés:

A Web.TPEngine.Providers.OneTimePasswordProtocolProvider protokoll által létrehozott OTP-kódok a böngésző munkamenetéhez vannak kötve. Ez azt jelenti, hogy a felhasználó egyedi OTP-kódokat hozhat létre különböző böngésző munkamenetekben, amelyek mindegyike érvényes a megfelelő munkamenetekre. Ezzel szemben a beépített e-mail-szolgáltató által létrehozott OTP-kód független a böngésző munkamenetétől, így ha egy felhasználó új OTP-kódot hoz létre egy új böngésző munkamenetben, az felülírja a korábbi OTP-kódot.

Adja hozzá a következő technikai profilokat az <ClaimsProviders> elemhez.

<!--
<ClaimsProviders> -->
  <ClaimsProvider>
    <DisplayName>One time password technical profiles</DisplayName>
    <TechnicalProfiles>
      <TechnicalProfile Id="GenerateOtp">
        <DisplayName>Generate one time password</DisplayName>
        <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
        <Metadata>
          <Item Key="Operation">GenerateCode</Item>
          <Item Key="CodeExpirationInSeconds">600</Item>
          <Item Key="CodeLength">6</Item>
          <Item Key="CharacterSet">0-9</Item>
          <Item Key="NumRetryAttempts">5</Item>
          <Item Key="NumCodeGenerationAttempts">10</Item>
          <Item Key="ReuseSameCode">false</Item>
        </Metadata>
        <InputClaims>
          <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="identifier" />
        </InputClaims>
        <OutputClaims>
          <OutputClaim ClaimTypeReferenceId="otp" PartnerClaimType="otpGenerated" />
        </OutputClaims>
      </TechnicalProfile>

      <TechnicalProfile Id="VerifyOtp">
        <DisplayName>Verify one time password</DisplayName>
        <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.OneTimePasswordProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
        <Metadata>
          <Item Key="Operation">VerifyCode</Item>
        </Metadata>
        <InputClaims>
          <InputClaim ClaimTypeReferenceId="email" PartnerClaimType="identifier" />
          <InputClaim ClaimTypeReferenceId="verificationCode" PartnerClaimType="otpToVerify" />
        </InputClaims>
      </TechnicalProfile>
     </TechnicalProfiles>
  </ClaimsProvider>
<!--
</ClaimsProviders> -->

REST API technikai profil hozzáadása

Ez a REST API technikai profil létrehozza az e-mail-tartalmat (Mailjet formátummal). A RESTful technikai profilokról további információt a RESTful műszaki profil definiálása című témakörben talál.

Az OTP technikai profiljaihoz hasonlóan adja hozzá az alábbi technikai profilokat az <ClaimsProviders> elemhez.

<ClaimsProvider>
  <DisplayName>RestfulProvider</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="sendOtp">
      <DisplayName>Use email API to send the code to the user</DisplayName>
      <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.RestfulProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
      <Metadata>
        <Item Key="ServiceUrl">https://api.mailjet.com/v3.1/send</Item>
        <Item Key="AuthenticationType">Basic</Item>
        <Item Key="SendClaimsIn">Body</Item>
        <Item Key="ClaimUsedForRequestPayload">emailRequestBody</Item>
      </Metadata>
      <CryptographicKeys>
        <Key Id="BasicAuthenticationUsername" StorageReferenceId="B2C_1A_MailjetApiKey" />
        <Key Id="BasicAuthenticationPassword" StorageReferenceId="B2C_1A_MailjetSecretKey" />
      </CryptographicKeys>
      <InputClaimsTransformations>
        <InputClaimsTransformation ReferenceId="GenerateEmailRequestBody" />
      </InputClaimsTransformations>
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="emailRequestBody" />
      </InputClaims>
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

Hivatkozás készítése a DisplayControlra

Az utolsó lépésben adjon hozzá egy hivatkozást a létrehozott DisplayControlhoz. Felülbírálja az alapszabályzatban konfigurált meglévő LocalAccountSignUpWithLogonEmail és LocalAccountDiscoveryUsingEmailAddress önaláért technikai profilokat az alábbi XML-kódrészlettel. Ha az Azure AD B2C-szabályzat egy korábbi verzióját használta, ezek a technikai profilok DisplayClaims a DisplayControl.

További információkért tekintse meg az önérvényesített műszaki profilt és a DisplayControlt.

<ClaimsProvider>
  <DisplayName>Local Account</DisplayName>
  <TechnicalProfiles>
    <TechnicalProfile Id="LocalAccountSignUpWithLogonEmail">
      <DisplayClaims>
        <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
        <DisplayClaim ClaimTypeReferenceId="displayName" Required="true" />
        <DisplayClaim ClaimTypeReferenceId="givenName" Required="true" />
        <DisplayClaim ClaimTypeReferenceId="surName" Required="true" />
        <DisplayClaim ClaimTypeReferenceId="newPassword" Required="true" />
        <DisplayClaim ClaimTypeReferenceId="reenterPassword" Required="true" />
      </DisplayClaims>
    </TechnicalProfile>
    <TechnicalProfile Id="LocalAccountDiscoveryUsingEmailAddress">
      <DisplayClaims>
        <DisplayClaim DisplayControlReferenceId="emailVerificationControl" />
      </DisplayClaims>
    </TechnicalProfile>
  </TechnicalProfiles>
</ClaimsProvider>

[Nem kötelező] Az e-mail honosítása

Az e-mail honosításához honosított sztringeket kell küldenie a Mailjetnek vagy az e-mail-szolgáltatónak. Honosíthatja például az e-mail tárgyát, törzsét, kódüzenetét vagy aláírását. Ehhez a GetLocalizedStringsTransformation jogcímátalakítással honosított sztringeket másolhat jogcímtípusokba. A GenerateEmailRequestBody JSON hasznos adatait generáló jogcímátalakítás a honosított sztringeket tartalmazó bemeneti jogcímeket használja.

  1. A szabályzatban adja meg a következő sztring jogcímeket: tárgy, üzenet, codeIntro és aláírás.

  2. GetLocalizedStringsTransformation jogcímátalakítás definiálása honosított sztringértékek helyettesítéséhez az 1. lépésben szereplő jogcímekre.

  3. Módosítsa a jogcímátalakítást GenerateEmailRequestBody úgy, hogy bemeneti jogcímeket használjon az alábbi XML-kódrészlettel.

  4. Frissítse a Mailjet-sablont, hogy dinamikus paramétereket használjon az Azure AD B2C által honosított összes sztring helyett.

    <ClaimsTransformation Id="GetLocalizedStringsForEmail" TransformationMethod="GetLocalizedStringsTransformation">
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="subject" TransformationClaimType="email_subject" />
        <OutputClaim ClaimTypeReferenceId="message" TransformationClaimType="email_message" />
        <OutputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="email_code" />
        <OutputClaim ClaimTypeReferenceId="signature" TransformationClaimType="email_signature" />
      </OutputClaims>
    </ClaimsTransformation>
    <ClaimsTransformation Id="GenerateEmailRequestBody" TransformationMethod="GenerateJson">
      <InputClaims>
        <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="Messages.0.To.0.Email" />
        <InputClaim ClaimTypeReferenceId="subject" TransformationClaimType="Messages.0.Subject" />
        <InputClaim ClaimTypeReferenceId="otp" TransformationClaimType="Messages.0.Variables.otp" />
        <InputClaim ClaimTypeReferenceId="email" TransformationClaimType="Messages.0.Variables.email" />
        <InputClaim ClaimTypeReferenceId="message" TransformationClaimType="Messages.0.Variables.otpmessage" />
        <InputClaim ClaimTypeReferenceId="codeIntro" TransformationClaimType="Messages.0.Variables.otpcodeIntro" />
        <InputClaim ClaimTypeReferenceId="signature" TransformationClaimType="Messages.0.Variables.otpsignature" />
      </InputClaims>
      <InputParameters>
        <!-- Update the template_id value with the ID of your Mailjet template. -->
        <InputParameter Id="Messages.0.TemplateID" DataType="int" Value="1234567"/>
        <InputParameter Id="Messages.0.TemplateLanguage" DataType="boolean" Value="true"/>
    
        <!-- Update with an email appropriate for your organization. -->
        <InputParameter Id="Messages.0.From.Email" DataType="string" Value="my_email@mydomain.com"/>
      </InputParameters>
      <OutputClaims>
        <OutputClaim ClaimTypeReferenceId="emailRequestBody" TransformationClaimType="outputClaim"/>
      </OutputClaims>
    </ClaimsTransformation>
    
  5. Adja hozzá a következő honosítási elemet.

    <!--
    <BuildingBlocks> -->
      <Localization Enabled="true">
        <SupportedLanguages DefaultLanguage="en" MergeBehavior="ReplaceAll">
          <SupportedLanguage>en</SupportedLanguage>
          <SupportedLanguage>es</SupportedLanguage>
        </SupportedLanguages>
        <LocalizedResources Id="api.custom-email.en">
          <LocalizedStrings>
            <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Contoso account email verification code</LocalizedString>
            <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Thanks for validating the account</LocalizedString>
            <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Your code is</LocalizedString>
            <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sincerely</LocalizedString>
          </LocalizedStrings>
        </LocalizedResources>
        <LocalizedResources Id="api.custom-email.es">
          <LocalizedStrings>
            <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_subject">Código de verificación del correo electrónico de la cuenta de Contoso</LocalizedString>
            <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_message">Gracias por comprobar la cuenta de </LocalizedString>
            <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_code">Su código es</LocalizedString>
            <LocalizedString ElementType="GetLocalizedStringsTransformationClaimType" StringId="email_signature">Sinceramente</LocalizedString>
          </LocalizedStrings>
        </LocalizedResources>
      </Localization>
    <!--
    </BuildingBlocks> -->
    
  6. A ContentDefinitions elem frissítésével hivatkozásokat adhat a LocalizedResources elemekhez .

    <!--
    <BuildingBlocks> -->
      <ContentDefinitions>
        <ContentDefinition Id="api.localaccountsignup">
          <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2</DataUri>
          <LocalizedResourcesReferences MergeBehavior="Prepend">
            <LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.custom-email.en" />
            <LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.custom-email.es" />
          </LocalizedResourcesReferences>
        </ContentDefinition>
        <ContentDefinition Id="api.localaccountpasswordreset">
          <DataUri>urn:com:microsoft:aad:b2c:elements:contract:selfasserted:2.1.2</DataUri>
          <LocalizedResourcesReferences MergeBehavior="Prepend">
            <LocalizedResourcesReference Language="en" LocalizedResourcesReferenceId="api.custom-email.en" />
            <LocalizedResourcesReference Language="es" LocalizedResourcesReferenceId="api.custom-email.es" />
          </LocalizedResourcesReferences>
        </ContentDefinition>
      </ContentDefinitions>
    <!--
    </BuildingBlocks> -->
    
  7. Végül adja hozzá a következő bemeneti jogcímek átalakítását a LocalAccountSignUpWithLogonEmail műszaki profilokhoz LocalAccountDiscoveryUsingEmailAddress .

    <InputClaimsTransformations>
      <InputClaimsTransformation ReferenceId="GetLocalizedStringsForEmail" />
    </InputClaimsTransformations>
    

[Nem kötelező] A felhasználói felület honosítása

A Honosítás elem lehetővé teszi több területi beállítás vagy nyelv támogatását a házirendben a felhasználói folyamatokhoz. A házirendek honosítási támogatása lehetővé teszi, hogy nyelvspecifikus sztringeket biztosítson mind az Ellenőrzés megjelenítési vezérlő felhasználói felület elemeihez, mind az Egyszeri jelszó hibaüzenetekhez. Adja hozzá a következő LocalizedString parancsot a LocalizedResource-hoz.

<LocalizedResources Id="api.custom-email.en">
  <LocalizedStrings>
    ...
    <!-- Display control UI elements-->
    <LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="intro_msg">Verification is necessary. Please click Send button.</LocalizedString>
    <LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="success_send_code_msg">Verification code has been sent to your inbox. Please copy it to the input box below.</LocalizedString>
    <LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="failure_send_code_msg">We are having trouble verifying your email address. Please enter a valid email address and try again.</LocalizedString>
    <LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="success_verify_code_msg">E-mail address verified. You can now continue.</LocalizedString>
    <LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="failure_verify_code_msg">We are having trouble verifying your email address. Please try again.</LocalizedString>
    <LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="but_send_code">Send verification code</LocalizedString>
    <LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="but_verify_code">Verify code</LocalizedString>
    <LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="but_send_new_code">Send new code</LocalizedString>
    <LocalizedString ElementType="DisplayControl" ElementId="emailVerificationControl" StringId="but_change_claims">Change e-mail</LocalizedString>
    <!-- Claims-->
    <LocalizedString ElementType="ClaimType" ElementId="emailVerificationCode" StringId="DisplayName">Verification Code</LocalizedString>
    <LocalizedString ElementType="ClaimType" ElementId="emailVerificationCode" StringId="UserHelpText">Verification code received in the email.</LocalizedString>
    <LocalizedString ElementType="ClaimType" ElementId="emailVerificationCode" StringId="AdminHelpText">Verification code received in the email.</LocalizedString>
    <LocalizedString ElementType="ClaimType" ElementId="email" StringId="DisplayName">Email</LocalizedString>
    <!-- Email validation error messages-->
    <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfSessionDoesNotExist">You have exceeded the maximum time allowed.</LocalizedString>
    <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfMaxRetryAttempted">You have exceeded the number of retries allowed.</LocalizedString>
    <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfMaxNumberOfCodeGenerated">You have exceeded the number of code generation attempts allowed.</LocalizedString>
    <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfInvalidCode">You have entered the wrong code.</LocalizedString>
    <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfSessionConflict">Cannot verify the code, please try again later.</LocalizedString>
    <LocalizedString ElementType="ErrorMessage" StringId="UserMessageIfVerificationFailedRetryAllowed">The verification has failed, please try again.</LocalizedString>
  </LocalizedStrings>
</LocalizedResources>

Következő lépések