Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
A partire dal 1° maggio 2025, Azure AD B2C non sarà più disponibile per l'acquisto per i nuovi clienti. Altre informazioni sono disponibili nelle domande frequenti.
Questo articolo fornisce esempi per l'uso delle trasformazioni delle attestazioni di data dello schema di Identity Experience Framework in Azure Active Directory B2C (Azure AD B2C). Per altre informazioni, vedere Trasformazioni delle attestazioni.
AssertDateTimeIsGreaterThan
Asserisce che una data è successiva a una seconda data. Determina se è rightOperand
maggiore di leftOperand
. In caso affermativo, genera un'eccezione. Vedere la demo live di questa trasformazione delle attestazioni.
Elemento | TransformationClaimType | Tipo di dati | Note |
---|---|---|---|
InputClaim | leftOperando | corda | Tipo di prima attestazione, che deve essere successivo alla seconda attestazione. |
InputClaim | destraOperando | corda | Tipo di seconda attestazione, che deve essere precedente alla prima attestazione. |
Parametro di Input | AsserzioneSeUguale a | booleano | Specifica se l'asserzione deve generare un errore se l'operando sinistro è uguale all'operando destro. I valori possibili sono: true (impostazione predefinita) o false . |
Parametro di Input | AssertIfRightOperandIsNotPresent | booleano | Specifica se l'asserzione deve passare se manca l'operando destro. |
Parametro di Input | TreatAsEqualIfWithinMillseconds | Int | Specifica il numero di millisecondi da consentire tra le due date di considerare l'ora uguale ,ad esempio per tenere conto dell'asimmetria dell'orologio. |
La trasformazione delle attestazioni AssertDateTimeIsGreaterThan viene sempre eseguita da un profilo tecnico di convalida chiamato da un profilo tecnico autocertificato. I metadati del profilo tecnico autocertivi DateTimeGreaterThan controllano il messaggio di errore che il profilo tecnico presenta all'utente. I messaggi di errore possono essere localizzati.
Esempio di AssertDateTimeIsGreaterThan
Nell'esempio seguente viene confrontata l'attestazione currentDateTime
con l'attestazione approvedDateTime
. Viene generato un errore se currentDateTime
è successivo a approvedDateTime
. La trasformazione considera i valori uguali se sono entro 5 minuti (30000 millisecondi). Non genererà un errore se i valori sono uguali perché AssertIfEqualTo
è impostato su false
.
<ClaimsTransformation Id="AssertApprovedDateTimeLaterThanCurrentDateTime" TransformationMethod="AssertDateTimeIsGreaterThan">
<InputClaims>
<InputClaim ClaimTypeReferenceId="approvedDateTime" TransformationClaimType="leftOperand" />
<InputClaim ClaimTypeReferenceId="currentDateTime" TransformationClaimType="rightOperand" />
</InputClaims>
<InputParameters>
<InputParameter Id="AssertIfEqualTo" DataType="boolean" Value="false" />
<InputParameter Id="AssertIfRightOperandIsNotPresent" DataType="boolean" Value="true" />
<InputParameter Id="TreatAsEqualIfWithinMillseconds" DataType="int" Value="300000" />
</InputParameters>
</ClaimsTransformation>
Annotazioni
Nell'esempio precedente, se si rimuove il AssertIfEqualTo
parametro di input e è currentDateTime
uguale aapprovedDateTime
, verrà generato un errore. Il AssertIfEqualTo
valore predefinito è true
.
- Attestazioni di input:
- a sinistraOperando: 2022-01-01T15:00:00
- destraOperando: 2022-01-22T15:00:00
- Parametri di input:
- AssertIfEqualTo: false
- AssertIfRightOperandIsNotPresent: vero
- TreatAsEqualIfWithinMillseconds: 300000 (30 secondi)
- Risultato: errore generato
Chiamare la trasformazione delle attestazioni
Il profilo tecnico di convalida seguente Example-AssertDates
chiama la AssertApprovedDateTimeLaterThanCurrentDateTime
trasformazione delle attestazioni.
<TechnicalProfile Id="Example-AssertDates">
<DisplayName>Unit test</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.ClaimsTransformationProtocolProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="ComparisonResult" DefaultValue="false" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="AssertDates" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
Il profilo tecnico autocertificato chiama il profilo tecnico di convalida Example-AssertDates
.
<TechnicalProfile Id="SelfAsserted-AssertDateTimeIsGreaterThan">
<DisplayName>User ID signup</DisplayName>
<Protocol Name="Proprietary" Handler="Web.TPEngine.Providers.SelfAssertedAttributeProvider, Web.TPEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" />
<Metadata>
<Item Key="ContentDefinitionReferenceId">api.selfasserted</Item>
<Item Key="DateTimeGreaterThan">Custom error message if the provided right operand is greater than the right operand.</Item>
</Metadata>
...
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="ClaimsTransformation-AssertDateTimeIsGreaterThan" />
</ValidationTechnicalProfiles>
</TechnicalProfile>
ConvertDateTimeToDateClaim
Converte un DateTime
tipo di attestazione in un Date
tipo di attestazione. La trasformazione delle attestazioni rimuove il formato dell'ora dalla data. Vedere la demo live di questa trasformazione delle attestazioni.
Elemento | TransformationClaimType | Tipo di dati | Note |
---|---|---|---|
InputClaim | inputClaim | data e ora | Tipo di attestazione da convertire. |
Attestazione di produzione | Richiesta di uscita | dattero | Tipo di attestazione generato dopo la chiamata di questa trasformazione delle attestazioni. |
Esempio di ConvertDateTimeToDateClaim
Nell'esempio seguente viene illustrata la conversione dell'attestazione systemDateTime
(tipo di dati dateTime) in un'altra attestazione systemDate
(tipo di dati date).
<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Attestazioni di input:
- inputClaim: 2022-01-03T11:34:22.0000000Z
- Attestazioni di output:
- reclamo: 2022-01-03
ConvertDateToDateTimeClaim
Converte un Date
tipo di attestazione in un DateTime
tipo di attestazione. La trasformazione delle attestazioni converte il formato ora e aggiunge 12:00:00 am alla data. Vedere la demo live di questa trasformazione delle attestazioni.
Elemento | TransformationClaimType | Tipo di dati | Note |
---|---|---|---|
InputClaim | inputClaim | dattero | Tipo di attestazione da convertire. |
Attestazione di produzione | Richiesta di uscita | data e ora | Tipo di attestazione generato dopo la chiamata di questa trasformazione delle attestazioni. |
Esempio di ConvertDateToDateTimeClaim
Nell'esempio seguente viene illustrata la conversione dell'attestazione dateOfBirth
(tipo di dati date) in un'altra attestazione dateOfBirthWithTime
(tipo di dati dateTime).
<ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Attestazioni di input:
- inputClaim: 2022-01-03
- Attestazioni di output:
- Richiesta di uscita: 2022-01-03T00:00:00.00000000Z
DateTimeComparison
Confronta due date e determina se la prima data è successiva, precedente o uguale a un'altra. Il risultato è una nuova attestazione booleana con un valore pari true
a o false
. Vedere la demo live di questa trasformazione delle attestazioni.
Elemento | TransformationClaimType | Tipo di dati | Note |
---|---|---|---|
InputClaim | firstDateTime | data e ora | La prima data da confrontare se è successiva, precedente o uguale alla seconda data. I valori Null generano un'eccezione. |
InputClaim | secondDateTime | data e ora | Seconda data da confrontare. Il valore Null viene considerato come data e ora correnti. |
Parametro di Input | timeSpanInSeconds | Int | Intervallo di tempo da aggiungere alla prima data. Valori possibili: intervallo compreso tra -2.147.483.648 e positivo 2.147.483.647. |
Parametro di Input | operatore | corda | Uno dei valori seguenti: same , later than o earlier than . |
Attestazione di produzione | risultato | booleano | Attestazione generata dopo che è stata richiamata la trasformazione delle attestazioni. |
Esempio di DateTimeComparison
Utilizzare questa trasformazione delle attestazioni per determinare se la prima data più il timeSpanInSeconds
parametro è successivo, precedente o uguale a un altro. L'esempio seguente mostra che la prima data (2022-01-01T00:00:00) più 90 giorni è successiva alla seconda data (2022-03-16T00:00:00).
<ClaimsTransformation Id="CompareLastTOSAcceptedWithCurrentDateTime" TransformationMethod="DateTimeComparison">
<InputClaims>
<InputClaim ClaimTypeReferenceId="extension_LastTOSAccepted" TransformationClaimType="secondDateTime" />
<InputClaim ClaimTypeReferenceId="currentDateTime" TransformationClaimType="firstDateTime" />
</InputClaims>
<InputParameters>
<InputParameter Id="operator" DataType="string" Value="later than" />
<InputParameter Id="timeSpanInSeconds" DataType="int" Value="7776000" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isLastTOSAcceptedGreaterThanNow" TransformationClaimType="result" />
</OutputClaims>
</ClaimsTransformation>
- Attestazioni di input:
- firstDateTime: 2022-01-01T00:00:00.100000Z
- secondDateTime: 2022-03-16T00:00:00.100000Z
- Parametri di input:
- operatore: più tardi di
- timeSpanInSeconds: 7776000 (90 giorni)
- Attestazioni di output:
- risultato: true
ÈTermsOfUseConsentRequired
Determinare se un dateTime
tipo di attestazione è precedente o maggiore di una data specifica. Il risultato è una nuova attestazione booleana con un valore pari true
a o false
. Vedere la demo live di questa trasformazione delle attestazioni.
Elemento | TransformationClaimType | Tipo di dati | Note |
---|---|---|---|
InputClaim | termsOfUseConsentDateTime | data e ora | Tipo dateTime di attestazione per verificare se è precedente o successivo al termsOfUseTextUpdateDateTime parametro di input. Il valore non definito restituisce true il risultato. |
Parametro di Input | termsOfUseTextUpdateDateTime | data e ora | Tipo dateTime di attestazione per verificare se è precedente o successivo all'attestazione termsOfUseConsentDateTime di input. La parte relativa all'ora della data è facoltativa. |
Attestazione di produzione | risultato | booleano | Tipo di attestazione generato dopo la chiamata di questa trasformazione delle attestazioni. |
Utilizzare questa trasformazione delle attestazioni per determinare se un dateTime
tipo di attestazione è precedente o maggiore di una data specifica. Ad esempio, controllare se un utente ha acconsentito alla versione più recente delle condizioni per l'utilizzo (TOU) o condizioni per l'utilizzo. Per controllare l'ultima volta che un utente ha acconsentito, archiviare l'ultima volta che l'utente ha accettato l'oggetto TOU in un attributo di estensione. Quando la parola tou viene modificata, aggiornare il termsOfUseTextUpdateDateTime
parametro di input con l'ora della modifica. Chiamare quindi questa trasformazione delle attestazioni per confrontare le date. Se la trasformazione delle attestazioni restituisce true
, il termsOfUseConsentDateTime
valore è precedente al termsOfUseTextUpdateDateTime
valore ed è possibile chiedere all'utente di accettare l'oggetto TOU aggiornato.
<ClaimsTransformation Id="IsTermsOfUseConsentRequired" TransformationMethod="IsTermsOfUseConsentRequired">
<InputClaims>
<InputClaim ClaimTypeReferenceId="extension_termsOfUseConsentDateTime" TransformationClaimType="termsOfUseConsentDateTime" />
</InputClaims>
<InputParameters>
<InputParameter Id="termsOfUseTextUpdateDateTime" DataType="dateTime" Value="2021-11-15T00:00:00" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="termsOfUseConsentRequired" TransformationClaimType="result" />
</OutputClaims>
</ClaimsTransformation>
Esempio isTermsOfUseConsentRequired
- Attestazioni di input:
- termsOfUseConsentDateTime: 2020-03-09T09:15:00
- Parametri di input:
- termsOfUseTextUpdateDateTime: 2021-11-15
- Attestazioni di output:
- risultato: true
GetCurrentDateTime
Ottenere la data e l'ora UTC correnti e aggiungere il valore a un tipo di attestazione. Vedere la demo live di questa trasformazione delle attestazioni.
Elemento | TransformationClaimType | Tipo di dati | Note |
---|---|---|---|
Attestazione di produzione | currentDateTime | data e ora | Tipo di attestazione generato dopo la chiamata di questa trasformazione delle attestazioni. |
Esempio di GetCurrentDateTime
L'esempio seguente illustra come ottenere i dati e l'ora correnti:
<ClaimsTransformation Id="GetSystemDateTime" TransformationMethod="GetCurrentDateTime">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="currentDateTime" />
</OutputClaims>
</ClaimsTransformation>
- Attestazioni di output:
- currentDateTime: 2022-01-14T11:40:35.0000000Z
Passaggi successivi
- Altri esempi di trasformazione delle attestazioni sono disponibili nel repository GitHub della community di Azure AD B2C