Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
A partir de 1º de maio de 2025, o Azure AD B2C não estará mais disponível para compra para novos clientes. Saiba mais em nossas perguntas frequentes.
Este artigo fornece exemplos para usar as transformações de declarações de data do esquema do Identity Experience Framework no Azure AD B2C (Azure Active Directory B2C). Para obter mais informações, consulte transformações de declarações.
AssertDateTimeIsGreaterThan
Afirma que uma data é posterior a uma segunda data. Determina se a opção rightOperand é maior que a leftOperand. Se sim, gera uma exceção. Confira a Demonstração ao vivo desta transformação de declarações.
| Elemento | TransformationClaimType | Tipo de Dados | Anotações |
|---|---|---|---|
| Reivindicação de entrada | leftOperand | corda | O tipo da primeira declaração, que deve ser posterior à segunda declaração. |
| Reivindicação de entrada | direito operando | corda | Tipo de segunda declaração, que deve ser anterior à primeira declaração. |
| Parâmetro de entrada | AssertIfEqualTo | booleano | Especifica se essa asserção deve gerar um erro se o operando esquerdo for igual ao operando à direita. Valores possíveis: true (padrão) ou false. |
| Parâmetro de entrada | AssertIfRightOperandIsNotPresent | booleano | Especifica se essa asserção deve passar se o operando certo estiver ausente. |
| Parâmetro de entrada | TreatAsEqualIfWithinMillseconds | int | Especifica o número de milissegundos para permitir que entre as duas datas considere os tempos iguais (por exemplo, para considerar a distorção do relógio). |
A transformação de declarações AssertDateTimeIsGreaterThan é sempre executada a partir de um perfil técnico de validação chamado por um perfil técnico autodeclarado. Os metadados de perfil técnico autodeclarado DateTimeGreaterThan controlam a mensagem de erro que o perfil técnico apresenta ao usuário. A mensagem de erro pode ser localizada.
Exemplo de AssertDateTimeIsGreaterThan
O exemplo a seguir compara a currentDateTime declaração com a declaração approvedDateTime . Um erro será gerado se currentDateTime for posterior approvedDateTimea . A transformação trata valores como iguais se estiverem dentro de 5 minutos (30000 milissegundos) de diferença. Ele não gerará um erro se os valores forem iguais porque AssertIfEqualTo está definido como 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>
Observação
No exemplo acima, se você remover o AssertIfEqualTo parâmetro de entrada e for currentDateTime igual aapprovedDateTime, um erro será gerado. O AssertIfEqualTo valor padrão é true.
- Declarações de entrada:
- leftOperand: 2022-01-01T15:00:00
- direitaOperando: 2022-01-22T15:00:00
- Parâmetros de entrada:
- AssertIfEqualTo: falso
- AssertIfRightOperandIsNotPresent: true
- TreatAsEqualIfWithinMillseconds: 300000 (30 segundos)
- Resultado: Erro gerado
Chamar a transformação de declarações
O perfil técnico de validação a seguir Example-AssertDates chama a AssertApprovedDateTimeLaterThanCurrentDateTime transformação de declarações.
<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>
O perfil técnico autodeclarado chama o perfil técnico de validação 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 um DateTime tipo de declaração em um tipo de Date declaração. A transformação declarações remove o formato de hora da data. Confira a Demonstração ao vivo desta transformação de declarações.
| Elemento | TransformationClaimType | Tipo de Dados | Anotações |
|---|---|---|---|
| Reivindicação de entrada | InputClaim | data e hora | O tipo de declaração a ser convertido. |
| Declaração de saída | declaração de saída | data | O tipo de declaração que é produzido depois de invocar esta transformação de declarações. |
Exemplo de ConvertDateTimeToDateClaim
O exemplo a seguir demonstra a conversão da declaração systemDateTime (tipo de dados dateTime) para outra declaração systemDate (tipo de dados de data).
<ClaimsTransformation Id="ConvertToDate" TransformationMethod="ConvertDateTimeToDateClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="systemDate" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Declarações de entrada:
- inputClaim: 2022-01-03T11:34:22.0000000Z
- Declarações de saída:
- saídaReivindicação: 2022-01-03
ConvertDateToDateTimeClaim
Converte um Date tipo de declaração em um tipo de DateTime declaração. A transformação declarações converte o formato de hora e adiciona 12:00:00 à data. Confira a Demonstração ao vivo desta transformação de declarações.
| Elemento | TransformationClaimType | Tipo de Dados | Anotações |
|---|---|---|---|
| Reivindicação de entrada | InputClaim | data | O tipo de declaração a ser convertido. |
| Declaração de saída | declaração de saída | data e hora | O tipo de declaração que é produzido depois de invocar esta transformação de declarações. |
Exemplo de ConvertDateToDateTimeClaim
O exemplo a seguir demonstra a conversão da declaração dateOfBirth (tipo de dados de data) para outra declaração dateOfBirthWithTime (tipo de dados dateTime).
<ClaimsTransformation Id="ConvertToDateTime" TransformationMethod="ConvertDateToDateTimeClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="dateOfBirth" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="dateOfBirthWithTime" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- Declarações de entrada:
- inputClaim: 03/01/2022
- Declarações de saída:
- saídaReivindicação: 2022-01-03T00:00:00.0000000Z
DateTimeComparison
Compara duas datas e determina se a primeira data é posterior, anterior ou igual a outra. O resultado é uma nova declaração booliana com um valor de true ou false. Confira a Demonstração ao vivo desta transformação de declarações.
| Elemento | TransformationClaimType | Tipo de Dados | Anotações |
|---|---|---|---|
| Reivindicação de entrada | firstDateTime | data e hora | A primeira data para comparar se é posterior, anterior ou igual à segunda data. Valor nulo gerará uma exceção. |
| Reivindicação de entrada | secondDateTime | data e hora | A segunda data a ser comparada. O valor nulo é tratado como a data e a hora atuais. |
| Parâmetro de entrada | timeSpanInSeconds | int | Intervalo de data/hora a ser adicionado à primeira data. Valores possíveis: variam de negativo -2.147.483.648 a positivo 2.147.483.647. |
| Parâmetro de entrada | operador | corda | Um dos seguintes valores: same, later thanou earlier than. |
| Declaração de saída | resultado | booleano | A declaração que é produzida após a invocação dessa transformação de declarações. |
Exemplo de DateTimeComparison
Use essa transformação de declarações para determinar se a primeira data mais o timeSpanInSeconds parâmetro é posterior, anterior ou igual a outro. O exemplo a seguir mostra que a primeira data (2022-01-01T00:00:00) mais 90 dias é posterior à segunda 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>
- Declarações de entrada:
- firstDateTime: 2022-01-01T00:00:00.100000Z
- secondDateTime: 2022-03-16T00:00:00.100000Z
- Parâmetros de entrada:
- operador: posterior a
- timeSpanInSeconds: 7776000 (90 dias)
- Declarações de saída:
- resultado: true
ÉTermosDeUsoConsentimentoObrigatório
Determine se um dateTime tipo de declaração é anterior ou maior que uma data específica. O resultado é uma nova declaração booliana com um valor de true ou false. Confira a Demonstração ao vivo desta transformação de declarações.
| Elemento | TransformationClaimType | Tipo de dados | Anotações |
|---|---|---|---|
| Reivindicação de entrada | termsOfUseConsentDateTime | data e hora | O dateTime tipo de declaração para verificar se ele é anterior ou posterior ao termsOfUseTextUpdateDateTime parâmetro de entrada. O valor indefinido retorna true o resultado. |
| Parâmetro de entrada | termsOfUseTextUpdateDateTime | data e hora | O dateTime tipo de declaração para verificar se ele é anterior ou posterior à termsOfUseConsentDateTime declaração de entrada. A parte de hora da data é opcional. |
| Declaração de saída | resultado | booleano | O tipo de declaração produzido após a invocação dessa transformação de declarações. |
Use essa transformação de declarações para determinar se um dateTime tipo de declaração é anterior ou maior que uma data específica. Por exemplo, verifique se um usuário consentiu com a versão mais recente de seus termos de uso (TOU) ou termos de serviço. Para verificar a última vez que um usuário consentiu, armazene a última vez que o usuário aceitou o TOU em um atributo de extensão. Quando a redação do TOU for alterada, atualize o termsOfUseTextUpdateDateTime parâmetro de entrada com o tempo da alteração. Em seguida, chame essa transformação de declarações para comparar as datas. Se a transformação de declarações retornar true, o termsOfUseConsentDateTime valor será anterior ao termsOfUseTextUpdateDateTime valor e você poderá pedir ao usuário para aceitar o TOU atualizado.
<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>
Exemplo de IsTermsOfUseConsentRequired
- Declarações de entrada:
- termsOfUseConsentDateTime: 2020-03-09T09:15:00
- Parâmetros de entrada:
- termsOfUseTextUpdateDateTime: 15/11/2021
- Declarações de saída:
- resultado: true
GetCurrentDateTime
Obtenha a data e a hora utc atuais e adicione o valor a um tipo de declaração. Confira a Demonstração ao vivo desta transformação de declarações.
| Elemento | TransformationClaimType | Tipo de Dados | Anotações |
|---|---|---|---|
| Declaração de saída | currentDateTime | data e hora | O tipo de declaração que é produzido depois de invocar esta transformação de declarações. |
Exemplo de GetCurrentDateTime
O exemplo a seguir mostra como obter os dados e a hora atuais:
<ClaimsTransformation Id="GetSystemDateTime" TransformationMethod="GetCurrentDateTime">
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="systemDateTime" TransformationClaimType="currentDateTime" />
</OutputClaims>
</ClaimsTransformation>
- Declarações de saída:
- currentDateTime: 2022-01-14T11:40:35.0000000Z
Próximas etapas
- Encontre mais amostras de transformação de declarações no repositório GitHub da comunidade do Azure AD B2C