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 | Sì | 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 | Sì | Codice di verifica CAPTCHA. |
Attestazioni di output
L'elemento OutputClaims contiene un elenco di attestazioni restituite dal profilo tecnico CAPTCHA.
ClaimReferenceId | Richiesto | Descrizione |
---|---|---|
challengeId | Sì | Identificatore univoco per il codice di verifica CAPTCHA. |
challengeString | Sì | Codice di verifica CAPTCHA. |
azureregion | Sì | Area del servizio che gestisce la richiesta di verifica CAPTCHA. |
Metadati UFX
Attributo | Richiesto | Descrizione |
---|---|---|
Operation | Sì | Il valore deve essere GetChallenge. |
Marchio | Sì | 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 | Sì | Identificatore univoco per CAPTCHA usato per la verifica della sessione. Popolato dalla chiamata GetChallenge . |
captchaEntered | Sì | Codice di verifica immesso dall'utente nella casella di testo challenge nell'interfaccia utente. |
azureregion | Sì | 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 | Sì | 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 | Sì | Identificatore univoco per CAPTCHA usato per la verifica della sessione. |
isCaptchaSolved | Sì | Flag che indica se la richiesta CAPTCHA è stata risolta correttamente. |
reason | Sì | Usato per comunicare all'utente se il tentativo di risolvere la sfida ha esito positivo o negativo. |
Metadati UFX
Attributo | Richiesto | Descrizione |
---|---|---|
Operation | Sì | Il valore deve essere VerifyChallenge. |
Marchio | Sì | 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>