Sdílet prostřednictvím


Definování technického profilu CAPTCHA ve vlastních zásadách Azure Active Directory B2C

Poznámka:

V Azure Active Directory B2C jsou vlastní zásady navržené především pro řešení složitých scénářů. Ve většině scénářů doporučujeme používat integrované toky uživatelů. Pokud jste to neudělali, přečtěte si informace o úvodním balíčku vlastních zásad v tématu Začínáme s vlastními zásadami ve službě Active Directory B2C.

Technické profily CAPTCHA (Computer and Human Apart) umožňují službě Azure Active Directory B2C (Azure AD B2C) zabránit automatizovaným útokům. Technický profil CAPTCHA v Azure AD B2C podporuje typy problémů SE zvukem i vizuály CAPTCHA.

Protokol

Atribut Name elementu Protocol musí být nastaven na Proprietary. Atribut obslužné rutiny musí obsahovat plně kvalifikovaný název sestavení obslužné rutiny protokolu, které používá Azure AD B2C pro CAPTCHA: Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Poznámka:

Tato funkce je ve verzi Public Preview.

Následující příklad ukazuje samoobslužný technický profil pro registraci e-mailu:

<TechnicalProfile Id="HIP-GetChallenge">
  <DisplayName>Email signup</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

Operace technického profilu CAPTCHA

Operace technického profilu CAPTCHA mají dva operace:

  • Operace získání výzvy vygeneruje řetězec kódu CAPTCHA a pak ho zobrazí v uživatelském rozhraní pomocí ovládacího prvku zobrazení CAPTCHA. Zobrazení obsahuje vstupní textové pole. Tato operace nasměruje uživatele, aby zadal znaky, které vidí nebo uslyší do vstupního textového pole. Uživatel může podle potřeby přepínat mezi typy vizuálních a zvukových výzev.

  • Ověřte, že operace kódu ověřuje znaky zadané uživatelem.

Získání výzvy

První operace vygeneruje řetězec kódu CAPTCHA a pak ho zobrazí v uživatelském rozhraní.

Vstupní deklarace identity

Element InputClaims obsahuje seznam deklarací identity, které se mají odeslat do služby CAPTCHA služby Azure AD B2C.

ClaimReferenceId Požadováno Popis
challengeType No Typ výzvy CAPTCHA, zvuk nebo vizuál (výchozí).
azureregion Ano Oblast služby, která obsluhuje požadavek na výzvu CAPTCHA.

Zobrazení deklarací identity

Element DisplayClaims obsahuje seznam deklarací identity, které se zobrazí na obrazovce, aby uživatel viděl. Uživateli se například zobrazí kód výzvy CAPTCHA ke čtení.

ClaimReferenceId Požadováno Popis
challengeString Ano Kód výzvy CAPTCHA.

Výstupní deklarace identity

OutputClaims element obsahuje seznam deklarací identity vrácených technickým profilem CAPTCHA.

ClaimReferenceId Požadováno Popis
challengeId Ano Jedinečný identifikátor kódu výzvy CAPTCHA.
challengeString Ano Kód výzvy CAPTCHA.
azureregion Ano Oblast služby, která obsluhuje požadavek na výzvu CAPTCHA.

Metadata

Atribut Požadováno Popis
Operace Ano Hodnota musí být GetChallenge.
Značka Ano Hodnota musí být HIP.

Příklad: Vygenerování kódu CAPTCHA

Následující příklad ukazuje technický profil CAPTCHA, který použijete k vygenerování kódu:

<TechnicalProfile Id="HIP-GetChallenge">
  <DisplayName>GetChallenge</DisplayName>
  <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />

  <Metadata>
    <Item Key="Operation">GetChallenge</Item>
    <Item Key="Brand">HIP</Item>
  </Metadata>

  <InputClaims>
    <InputClaim ClaimTypeReferenceId="challengeType" />
  </InputClaims>

  <DisplayClaims>
    <DisplayClaim ClaimTypeReferenceId="challengeString" />
  </DisplayClaims>

  <OutputClaims>
    <OutputClaim ClaimTypeReferenceId="challengeId" />
    <OutputClaim ClaimTypeReferenceId="challengeString" PartnerClaimType="ChallengeString" />
    <OutputClaim ClaimTypeReferenceId="azureregion" />
  </OutputClaims>

</TechnicalProfile>

Ověření výzvy

Druhá operace ověřuje výzvu CAPTCHA.

Vstupní deklarace identity

Element InputClaims obsahuje seznam deklarací identity, které se mají odeslat do služby CAPTCHA služby Azure AD B2C.

ClaimReferenceId Požadováno Popis
challengeType No Typ výzvy CAPTCHA, zvuk nebo vizuál (výchozí).
challengeId Ano Jedinečný identifikátor CAPTCHA použitý k ověření relace. Naplněno z volání GetChallenge .
captchaEntered Ano Kód výzvy, který uživatel zadá do textového pole výzvy v uživatelském rozhraní.
azureregion Ano Oblast služby, která obsluhuje požadavek na výzvu CAPTCHA. Naplněno z volání GetChallenge .

Zobrazení deklarací identity

Prvek DisplayClaims obsahuje seznam deklarací identity, které se mají zobrazit na obrazovce pro shromažďování vstupu od uživatele.

ClaimReferenceId Požadováno Popis
captchaEntered Ano Kód výzvy CAPTCHA zadaný uživatelem

Výstupní deklarace identity

OutputClaims element obsahuje seznam deklarací identity vrácených technickým profilem captcha.

ClaimReferenceId Požadováno Popis
challengeId Ano Jedinečný identifikátor CAPTCHA použitý k ověření relace.
isCaptchaSolved Ano Příznak označující, jestli se výzva CAPTCHA úspěšně vyřešila.
reason Ano Používá se ke komunikaci s uživatelem bez ohledu na to, jestli je pokus o vyřešení výzvy úspěšný nebo ne.

Metadata

Atribut Požadováno Popis
Operace Ano Hodnota musí být VerifyChallenge.
Značka Ano Hodnota musí být HIP.

Příklad: Ověření kódu CAPTCHA

Následující příklad ukazuje technický profil CAPTCHA, který používáte k ověření kódu CAPTCHA:

  <TechnicalProfile Id="HIP-VerifyChallenge">
    <DisplayName>Verify Code</DisplayName>
    <Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
    <Metadata>
      <Item Key="Brand">HIP</Item>
      <Item Key="Operation">VerifyChallenge</Item>
    </Metadata>

    <InputClaims>
      <InputClaim ClaimTypeReferenceId="challengeType" DefaultValue="Visual" />
      <InputClaim ClaimTypeReferenceId="challengeId" />
      <InputClaim ClaimTypeReferenceId="captchaEntered" PartnerClaimType="inputSolution" Required="true" />
      <InputClaim ClaimTypeReferenceId="azureregion" />
    </InputClaims>

    <DisplayClaims>
      <DisplayClaim ClaimTypeReferenceId="captchaEntered" />
    </DisplayClaims>

    <OutputClaims>
      <OutputClaim ClaimTypeReferenceId="challengeId" />
      <OutputClaim ClaimTypeReferenceId="isCaptchaSolved" PartnerClaimType="solved" />
      <OutputClaim ClaimTypeReferenceId="reason" PartnerClaimType="reason" />
    </OutputClaims>

  </TechnicalProfile>

Další kroky