Condividi tramite


Definire un profilo tecnico CAPTCHA in un criterio personalizzato di Azure Active Directory B2C

Nota

In Azure Active Directory B2C i criteri personalizzati sono stati progettati principalmente per far fronte a scenari complessi. Per la maggior parte degli scenari, è consigliabile usare i flussi utente predefiniti. In caso contrario, vedere Introduzione ai criteri personalizzati in Active Directory B2C.

Un test di turing pubblico completamente automatizzato per comunicare profili tecnici computer e umani (CAPTCHA) consente ad Azure Active Directory B2C (Azure AD B2C) di prevenire attacchi automatizzati. Il profilo tecnico CAPTCHA di Azure AD B2C supporta sia i tipi di problemi audio che visivi CAPTCHA.

Protocollo

L'attributo Nome dell'elemento Protocollo deve essere impostato su Proprietary. L'attributo del gestore deve contenere il nome completo dell'assembly del gestore di protocollo usato da Azure AD B2C, per CAPTCHA: Web.TPEngine.Providers.CaptchaProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null

Nota

Questa funzionalità è disponibile in anteprima pubblica

L'esempio seguente illustra un profilo tecnico autocertificato per l'iscrizione alla posta elettronica:

<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" />

Operazioni del profilo tecnico CAPTCHA

Le operazioni del profilo tecnico CAPTCHA hanno due operazioni:

  • L'operazione Get challenge genera la stringa di codice CAPTCHA, quindi la visualizza nell'interfaccia utente usando un controllo di visualizzazione CAPTCHA. La visualizzazione include una casella di testo di input. Questa operazione indirizza l'utente all'input dei caratteri visualizzati o ascoltati nella casella di testo di input. L'utente può passare dai tipi di verifica visiva a quello audio in base alle esigenze.

  • Verificare che l'operazione di codice verifichi l'input dei caratteri da parte dell'utente.

Ottieni una sfida

La prima operazione genera la stringa di codice CAPTCHA, quindi la visualizza nell'interfaccia utente.

Attestazioni di input

L'elemento InputClaims contiene un elenco di attestazioni da inviare al servizio CAPTCHA di Azure AD B2C.

ClaimReferenceId Richiesto Descrizione
challengeType No Tipo di verifica CAPTCHA, Audio o Visual (impostazione predefinita).
azureregion Area del servizio che gestisce la richiesta di verifica CAPTCHA.

Visualizzare le attestazioni

L'elemento DisplayClaims contiene un elenco di attestazioni da presentare sullo schermo per consentire all'utente di visualizzare. Ad esempio, l'utente viene presentato con il codice di verifica CAPTCHA da leggere.

ClaimReferenceId Richiesto Descrizione
challengeString Codice di verifica CAPTCHA.

Attestazioni di output

L'elemento OutputClaims contiene un elenco di attestazioni restituite dal profilo tecnico CAPTCHA.

ClaimReferenceId Richiesto Descrizione
challengeId Identificatore univoco per il codice di verifica CAPTCHA.
challengeString Codice di verifica CAPTCHA.
azureregion Area del servizio che gestisce la richiesta di verifica CAPTCHA.

Metadati UFX

Attributo Richiesto Descrizione
Operation Il valore deve essere GetChallenge.
Marchio Il valore deve essere HIP.

Esempio: Generare codice CAPTCHA

L'esempio seguente illustra un profilo tecnico CAPTCHA usato per generare un codice:

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

Verificare la richiesta di verifica

La seconda operazione verifica la richiesta CAPTCHA.

Attestazioni di input

L'elemento InputClaims contiene un elenco di attestazioni da inviare al servizio CAPTCHA di Azure AD B2C.

ClaimReferenceId Richiesto Descrizione
challengeType No Tipo di verifica CAPTCHA, Audio o Visual (impostazione predefinita).
challengeId Identificatore univoco per CAPTCHA usato per la verifica della sessione. Popolato dalla chiamata GetChallenge .
captchaEntered Codice di verifica immesso dall'utente nella casella di testo challenge nell'interfaccia utente.
azureregion Area del servizio che gestisce la richiesta di verifica CAPTCHA. Popolato dalla chiamata GetChallenge .

Visualizzare le attestazioni

L'elemento DisplayClaims contiene un elenco di attestazioni da presentare sullo schermo per raccogliere un input dall'utente.

ClaimReferenceId Richiesto Descrizione
captchaEntered Codice di verifica CAPTCHA immesso dall'utente.

Attestazioni di output

L'elemento OutputClaims contiene un elenco di attestazioni restituite dal profilo tecnico captcha.

ClaimReferenceId Richiesto Descrizione
challengeId Identificatore univoco per CAPTCHA usato per la verifica della sessione.
isCaptchaSolved Flag che indica se la richiesta CAPTCHA è stata risolta correttamente.
reason Usato per comunicare all'utente se il tentativo di risolvere la sfida ha esito positivo o negativo.

Metadati UFX

Attributo Richiesto Descrizione
Operation Il valore deve essere VerifyChallenge.
Marchio Il valore deve essere HIP.

Esempio: Verificare il codice CAPTCHA

L'esempio seguente mostra un profilo tecnico CAPTCHA usato per verificare un codice 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>

Passaggi successivi