From 859147c5070c29281ac9432a130e89a3f94545a7 Mon Sep 17 00:00:00 2001 From: Yoel Hor Date: Thu, 10 Feb 2022 12:00:53 +0200 Subject: [PATCH] Claims resolver and fix to the date readme file --- claims-resolver/CR_Context.xml | 120 ++++++++++++ claims-resolver/CR_Culture.xml | 96 ++++++++++ claims-resolver/CR_OIDC.xml | 152 +++++++++++++++ claims-resolver/CR_OIDC_claim_resolvers.xml | 177 ------------------ claims-resolver/CR_Policy.xml | 96 ++++++++++ claims-resolver/CR_SAML.xml | 164 ++++++++++++++++ claims-resolver/CR_SAML_claim_resolvers.xml | 197 -------------------- claims-resolver/readme.md | 61 ++++++ claims-transformation/date/readme.md | 12 +- media/policy.png | Bin 0 -> 1946 bytes 10 files changed, 695 insertions(+), 380 deletions(-) create mode 100644 claims-resolver/CR_Context.xml create mode 100644 claims-resolver/CR_Culture.xml create mode 100644 claims-resolver/CR_OIDC.xml delete mode 100644 claims-resolver/CR_OIDC_claim_resolvers.xml create mode 100644 claims-resolver/CR_Policy.xml create mode 100644 claims-resolver/CR_SAML.xml delete mode 100644 claims-resolver/CR_SAML_claim_resolvers.xml create mode 100644 claims-resolver/readme.md create mode 100644 media/policy.png diff --git a/claims-resolver/CR_Context.xml b/claims-resolver/CR_Context.xml new file mode 100644 index 0000000..79e7f6f --- /dev/null +++ b/claims-resolver/CR_Context.xml @@ -0,0 +1,120 @@ + + + + + yourtenant.onmicrosoft.com + B2C_1A_TrustFrameworkExtensions + + + + + + {Context:BuildNumber} + string + Readonly + + + {Context:CorrelationId} + string + Readonly + + + {Context:DateTimeInUtc} + string + Readonly + + + {Context:DeploymentMode} + string + Readonly + + + {Context:IPAddress} + string + Readonly + + + {Context:KMSI} + string + Readonly + + + {Context:HostName} + string + Readonly + + + + + + + Unit tests + + + Unit test + + + api.selfasserted + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PolicyProfile + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/claims-resolver/CR_Culture.xml b/claims-resolver/CR_Culture.xml new file mode 100644 index 0000000..106353e --- /dev/null +++ b/claims-resolver/CR_Culture.xml @@ -0,0 +1,96 @@ + + + + + yourtenant.onmicrosoft.com + B2C_1A_TrustFrameworkExtensions + + + + + + {Culture:LanguageName} + string + Readonly + + + {Culture:LCID} + string + Readonly + + + {Culture:RegionName} + string + Readonly + + + {Culture:RFC5646} + string + Readonly + + + + + + + Unit tests + + + Unit test + + + api.selfasserted + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PolicyProfile + + + + + + + + + + + + + + \ No newline at end of file diff --git a/claims-resolver/CR_OIDC.xml b/claims-resolver/CR_OIDC.xml new file mode 100644 index 0000000..8f3a8a4 --- /dev/null +++ b/claims-resolver/CR_OIDC.xml @@ -0,0 +1,152 @@ + + + + + yourtenant.onmicrosoft.com + B2C_1A_TrustFrameworkExtensions + + + + + + {OIDC:AuthenticationContextReferences} + string + Readonly + + + {OIDC:ClientId} + string + Readonly + + + {OIDC:DomainHint} + string + Readonly + + + {OIDC:LoginHint} + string + Readonly + + + {OIDC:MaxAge} + string + Readonly + + + {OIDC:Nonce} + string + Readonly + + + {OIDC:Prompt} + string + Readonly + + + {OIDC:Resource} + string + Readonly + + + {OIDC:scope} + string + Readonly + + + {OIDC:state} + string + Readonly + + + {OIDC:RedirectUri} + string + Readonly + + + + + + + Unit tests + + + Unit test + + + api.selfasserted + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PolicyProfile + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/claims-resolver/CR_OIDC_claim_resolvers.xml b/claims-resolver/CR_OIDC_claim_resolvers.xml deleted file mode 100644 index 2d5bdff..0000000 --- a/claims-resolver/CR_OIDC_claim_resolvers.xml +++ /dev/null @@ -1,177 +0,0 @@ - - - - - yourtenant.onmicrosoft.com - B2C_1A_TrustFrameworkExtensions - - - - - - {Culture:LanguageName} - string - - - {Culture:LCID} - string - - - {Culture:RegionName} - string - - - {Culture:RFC5646} - string - - - {Policy:PolicyId} - string - - - {Policy:RelyingPartyTenantId} - string - - - {Policy:TenantObjectId} - string - - - {Policy:TrustFrameworkTenantId} - string - - - {Context:BuildNumber} - string - - - {Context:CorrelationId} - string - - - {Context:DateTimeInUtc} - string - - - {Context:DeploymentMode} - string - - - {Context:IPAddress} - string - - - {service:te} - string - - - {CONTEXT:KMSI} - string - - - {CONTEXT:HostName} - string - - - - - {OIDC:AuthenticationContextReferences} - string - - - {OIDC:ClientId} - string - - - {OIDC:DomainHint} - string - - - {OIDC:LoginHint} - string - - - {OIDC:MaxAge} - string - - - {OIDC:Nonce} - string - - - {OIDC:Prompt} - string - - - {OIDC:Resource} - string - - - {OIDC:scope} - string - - - {OIDC:state} - string - - - {OIDC:RedirectUri} - string - - - - - - - - - - - - - - - - PolicyProfile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/claims-resolver/CR_Policy.xml b/claims-resolver/CR_Policy.xml new file mode 100644 index 0000000..c19ff8e --- /dev/null +++ b/claims-resolver/CR_Policy.xml @@ -0,0 +1,96 @@ + + + + + yourtenant.onmicrosoft.com + B2C_1A_TrustFrameworkExtensions + + + + + + {Policy:PolicyId} + string + Readonly + + + {Policy:RelyingPartyTenantId} + string + Readonly + + + {Policy:TenantObjectId} + string + Readonly + + + {Policy:TrustFrameworkTenantId} + string + Readonly + + + + + + + Unit tests + + + Unit test + + + api.selfasserted + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PolicyProfile + + + + + + + + + + + + + + \ No newline at end of file diff --git a/claims-resolver/CR_SAML.xml b/claims-resolver/CR_SAML.xml new file mode 100644 index 0000000..64ed4ed --- /dev/null +++ b/claims-resolver/CR_SAML.xml @@ -0,0 +1,164 @@ + + + + + yourtenant.onmicrosoft.com + B2C_1A_TrustFrameworkExtensions + + + + + + {SAML:AuthnContextClassReferences} + string + Readonly + + + {SAML:NameIdPolicyFormat} + string + Readonly + + + {SAML:Issuer} + string + Readonly + + + {SAML:AllowCreate} + string + Readonly + + + {SAML:ForceAuthn} + string + Readonly + + + {SAML:ProviderName} + string + Readonly + + + {SAML:RelayState} + string + Readonly + + + {SAML:Subject} + string + Readonly + + + {SAML:Binding} + string + Readonly + + + + + + + Unit tests + + + Unit test + + + api.selfasserted + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Token Issuer + + + + + Token Issuer + + SAML2 + + https://issuerUriMyAppExpects + + + + + + + + + + + + + Session Management Provider + + + + + + + + + + + + + + + + + + + + + + PolicyProfile + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/claims-resolver/CR_SAML_claim_resolvers.xml b/claims-resolver/CR_SAML_claim_resolvers.xml deleted file mode 100644 index e7fceb4..0000000 --- a/claims-resolver/CR_SAML_claim_resolvers.xml +++ /dev/null @@ -1,197 +0,0 @@ - - - - - yourtenant.onmicrosoft.com - B2C_1A_TrustFrameworkExtensions - - - - - - {Culture:LanguageName} - string - - - {Culture:LCID} - string - - - {Culture:RegionName} - string - - - {Culture:RFC5646} - string - - - {Policy:PolicyId} - string - - - {Policy:RelyingPartyTenantId} - string - - - {Policy:TenantObjectId} - string - - - {Policy:TrustFrameworkTenantId} - string - - - {Context:BuildNumber} - string - - - {Context:CorrelationId} - string - - - {Context:DateTimeInUtc} - string - - - {Context:DeploymentMode} - string - - - {Context:IPAddress} - string - - - {service:te} - string - - - {CONTEXT:KMSI} - string - - - {CONTEXT:HostName} - string - - - - - {SAML:AuthnContextClassReferences} - string - - - {SAML:NameIdPolicyFormat} - string - - - {SAML:Issuer} - string - - - {SAML:AllowCreate} - string - - - {SAML:ForceAuthn} - string - - - {SAML:ProviderName} - string - - - {SAML:RelayState} - string - - - {SAML:Subject} - string - - - {SAML:Binding} - string - - - - - - - Token Issuer - - - - - Token Issuer - - SAML2 - - https://issuerUriMyAppExpects - - - - - - - - - - - - - Session Management Provider - - - - - - - - - - - - - - - - - PolicyProfile - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/claims-resolver/readme.md b/claims-resolver/readme.md new file mode 100644 index 0000000..b96a7fe --- /dev/null +++ b/claims-resolver/readme.md @@ -0,0 +1,61 @@ +# Claim resolvers + +This folder contains unit tests for Azure AD B2C claim resolvers. For more information, check out the [About claim resolvers in Azure Active Directory B2C custom policies](https://docs.microsoft.com/azure/active-directory-b2c/claim-resolver-overview) article. + +## Context + +Demonstrates how to use the contextual claim resolvers of the authorization request. The unit test defines the **ExperimentalTechnicalProfile** [self-asserted](https://docs.microsoft.com/azure/active-directory-b2c/self-asserted-technical-profile) technical profile with the following: + +- `IncludeClaimResolvingInClaimsHandling` metadata is set to `true`. +- `InputClaim` sets the `DefaultValue` to the claim resolver, and also sets the `AlwaysUseDefaultValue` to `true`. +- `OutputClaim` renders the claims on the screen and returns them back to the next orchestration step. + +![live demo](../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CR_Context/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../media/policy.png) [Policy](CR_Context.xml)   ![documentation](../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/claim-resolver-overview#context) + +## Culture + +Demonstrates how to use the culture claim resolvers with information about the language used in the authorization request. The unit test defines the **ExperimentalTechnicalProfile** [self-asserted](https://docs.microsoft.com/azure/active-directory-b2c/self-asserted-technical-profile) technical profile with the following: + +- `IncludeClaimResolvingInClaimsHandling` metadata is set to `true`. +- `InputClaim` sets the `DefaultValue` to the claim resolver, and also sets the `AlwaysUseDefaultValue` to `true`. +- `OutputClaim` renders the claims on the screen and returns them back to the next orchestration step. + +![live demo](../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CR_Culture/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../media/policy.png) [Policy](CR_Culture.xml)   ![documentation](../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/claim-resolver-overview#culture) + +## Policy + +Demonstrates how to use the policy claim resolvers with information about the policy used in the authorization request. The unit test defines the **ExperimentalTechnicalProfile** [self-asserted](https://docs.microsoft.com/azure/active-directory-b2c/self-asserted-technical-profile) technical profile with the following: + +- `IncludeClaimResolvingInClaimsHandling` metadata is set to `true`. +- `InputClaim` sets the `DefaultValue` to the claim resolver, and also sets the `AlwaysUseDefaultValue` to `true`. +- `OutputClaim` renders the claims on the screen and returns them back to the next orchestration step. + +![live demo](../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CR_Policy/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../media/policy.png) [Policy](CR_Policy.xml)   ![documentation](../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/claim-resolver-overview#policy) + +## OpenID Connect relying party application + +Demonstrates how to use the OIDC claim resolvers with information about the OpenID Connect authorization request. The unit test defines the **ExperimentalTechnicalProfile** [self-asserted](https://docs.microsoft.com/azure/active-directory-b2c/self-asserted-technical-profile) technical profile with the following: + +- `IncludeClaimResolvingInClaimsHandling` metadata is set to `true`. +- `InputClaim` sets the `DefaultValue` to the claim resolver, and also sets the `AlwaysUseDefaultValue` to `true`. +- `OutputClaim` renders the claims on the screen and returns them back to the next orchestration step. + +![live demo](../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CR_OIDC/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login&login_hint=someone@contoso.com&domain_hint=facebook.com&acr_values=mfa&max_age=1234)   ![Quick deploy](../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../media/policy.png) [Policy](CR_OIDC.xml)   ![documentation](../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/claim-resolver-overview#openid-connect) + +## SAML Service provider + +Demonstrates how to use the SAML claim resolvers with information about the SAML authorization request. The unit test defines the **ExperimentalTechnicalProfile** [self-asserted](https://docs.microsoft.com/azure/active-directory-b2c/self-asserted-technical-profile) technical profile with the following: + +- `IncludeClaimResolvingInClaimsHandling` metadata is set to `true`. +- `InputClaim` sets the `DefaultValue` to the claim resolver, and also sets the `AlwaysUseDefaultValue` to `true`. +- `OutputClaim` renders the claims on the screen and returns them back to the next orchestration step. + +![live demo](../media/demo.png) [Live demo](https://samltestapp2.azurewebsites.net/SP)   ![Quick deploy](../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../media/policy.png) [Policy](CR_SAML.xml)   ![documentation](../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/claim-resolver-overview#saml) + +### Use the SAML Service provider live demo + +Use our [SAML test application](https://b2ciefsetupapp.azurewebsites.net/) to test this policy. In the SAML test app provide the following information: + +- **Tenant Name**: `b2clivedemo` +- **B2C Policy**: `B2C_1A_CR_SAML` +- **Issuer**: `https://b2clivedemo.onmicrosoft.com/samlapp` \ No newline at end of file diff --git a/claims-transformation/date/readme.md b/claims-transformation/date/readme.md index a8ed52d..863070c 100644 --- a/claims-transformation/date/readme.md +++ b/claims-transformation/date/readme.md @@ -12,7 +12,7 @@ The unit test defines the following elements: - **ExperimentalValidation** - [claims transformation](https://docs.microsoft.com/azure/active-directory-b2c/claims-transformation-technical-profile) type of [validation technical profile](https://docs.microsoft.com/azure/active-directory-b2c/validation-technical-profile). This validation technical profile invokes the **AssertDates** claims transformation, which runs the assertion. - **AssertDates** claims transformation - the unit test. -![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_AssertDateTimeIsGreaterThan/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![documentation](../../media/doc.png) [documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#assertdatetimeisgreaterthan) +![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_AssertDateTimeIsGreaterThan/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../../media/policy.png) [Policy](CT_AssertDateTimeIsGreaterThan.xml)   ![documentation](../../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#assertdatetimeisgreaterthan) ## ConvertDateTimeToDateClaim @@ -24,7 +24,7 @@ The unit test defines the following elements: - **GetSystemDateTime** claims transformation - Set default value to the `dateTimeClaims` claim using [GetCurrentDateTime](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#getcurrentdatetime) claims transformation. - **ConvertToDate** claims transformation - the unit test. -![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_ConvertDateTimeToDateClaim/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![documentation](../../media/doc.png) [documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#convertdatetimetodateclaim) +![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_ConvertDateTimeToDateClaim/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../../media/policy.png) [Policy](CT_ConvertDateTimeToDateClaim.xml)   ![documentation](../../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#convertdatetimetodateclaim) ## ConvertDateToDateTimeClaim @@ -35,7 +35,7 @@ The unit test defines the following elements: - **ExperimentalTechnicalProfile** - [self-asserted](https://docs.microsoft.com/azure/active-directory-b2c/self-asserted-technical-profile) technical profile. This technical profile renders the `dateClaim` claim with default value (you can change the value). Then it calls the **ConvertToDateTime** output claims transformation to convert the date to dateTime. - **ConvertToDateTime** claims transformation - the unit test. -![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_ConvertDateToDateTimeClaim/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![documentation](../../media/doc.png) [documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#convertdatetodatetimeclaim) +![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_ConvertDateToDateTimeClaim/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../../media/policy.png) [Policy](CT_ConvertDateToDateTimeClaim.xml)   ![documentation](../../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#convertdatetodatetimeclaim) ## DateTimeComparison @@ -47,7 +47,7 @@ The unit test defines the following elements: - **ResultTechnicalProfile** - [self-asserted](https://docs.microsoft.com/azure/active-directory-b2c/self-asserted-technical-profile) technical profile. This technical profile shows the `result` of this unit test. - **CompareDates** claims transformation - the unit test. -![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_DateTimeComparison/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![documentation](../../media/doc.png) [documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#datetimecomparison) +![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_DateTimeComparison/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../../media/policy.png) [Policy](CT_DateTimeComparison.xml)   ![documentation](../../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#datetimecomparison) ## GetCurrentDateTime @@ -58,7 +58,7 @@ The unit test defines the following elements: - **ExperimentalTechnicalProfile** - [self-asserted](https://docs.microsoft.com/azure/active-directory-b2c/self-asserted-technical-profile) technical profile. This technical profile first calls the **GetResult** input claims transformation. Then, shows the `result` claim with the current date time. - **GetResult** claims transformation - the unit test. -![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_GetCurrentDateTime/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![documentation](../../media/doc.png) [documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#getcurrentdatetime) +![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_GetCurrentDateTime/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../../media/policy.png) [Policy](CT_GetCurrentDateTime.xml)   ![documentation](../../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#getcurrentdatetime) ## IsTermsOfUseConsentRequired @@ -70,4 +70,4 @@ The unit test defines the following elements: - **ResultTechnicalProfile** - [self-asserted](https://docs.microsoft.com/azure/active-directory-b2c/self-asserted-technical-profile) technical profile. This technical profile shows the `result` of this unit test. - **CompareDates** claims transformation - the unit test. The `2022-01-15T00:00:00` date is configure in this claims transformation. -![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_IsTermsOfUseConsentRequired/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![documentation](../../media/doc.png) [documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#istermsofuseconsentrequired) +![live demo](../../media/demo.png) [Live demo](https://b2clivedemo.b2clogin.com/b2clivedemo.onmicrosoft.com/B2C_1A_CT_IsTermsOfUseConsentRequired/oauth2/v2.0/authorize?client_id=cfaf887b-a9db-4b44-ac47-5efff4e2902c&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=id_token&prompt=login)   ![Quick deploy](../../media/deploy.png) [Quick deploy](https://b2ciefsetupapp.azurewebsites.net/)   ![policy](../../media/policy.png) [Policy](CT_IsTermsOfUseConsentRequired.xml)   ![documentation](../../media/doc.png) [Documentation](https://docs.microsoft.com/azure/active-directory-b2c/date-transformations#istermsofuseconsentrequired) diff --git a/media/policy.png b/media/policy.png new file mode 100644 index 0000000000000000000000000000000000000000..184f5adcdf02705a6b032d7b0e320f1c3e098954 GIT binary patch literal 1946 zcmV;L2W9w)P)BE1ZQLxAY_vg;$?V;oX(lt{{G@3qJ`_O^!KmPq;Qw2}Cn0L9?Tam?khm;cmfj@-EE=vY<#k5o0f^m&*sM6pBI0EL{uRZtU4R5Z z`^X8`V)zNfJ8YaF;u6EP09P2E5Ad?jnUOMxUqvh^s*L``+lU9}BlcPZ2XpY-jyyG} zttleQMaed+noc9ry@UIIwng1*#M^^UkFzj+6yF25_LnMhmf?pGpH<}CbcnAmX|u%; z|7E#p3GpKUUAw%6atiT2#A8)^yd3Cssj4^8z$>TJnP(8+gLrkpJj%xIMEtceUz`ec zeo~wa<_{hK;NmJRuzL3+9o0iVC08s$)vACv7|KExH6jmbd4gn8^0FkllzkRT6fd|P0n zrwSVAXrbt(XrcJk;OyVRDf#{Yw^VBW$m{6QFhZvPBk<6w!tZERBfJcLd1$M3&)TehHS09YRtkN(Z(GDi^F2;vKBX;HY+Q*UEnTqUvgh@A9J5aYSek}G;8j! zqp=F+X_rylpF&#LEj%b>g+0Q~5^H*5N-?MwSLAe5T{?GXqX;9WfX;*4pXw6&V*io?m|<6;W0GAb4f<-njQ>$>Q>9MPr@ zwU=n+0I+*9IKpp9{{0u*d8K7@p9VPmCp-6AwmA>rtOL;dXv;Q$XXCx^0IWWyc=l3w zC&Xgk0yx!!!@*Zi8qcdA>-AfBZYACT*nGWS|NH%Vee(m<-vGFv{{#Oecnig2*2@3@ z061k>NoGw=04e|g00;m9hiL!=000010000Q0000000N)_00aO40096102H7D00aO4 z0096102BZK005B{(#HS*0|QA!K~y*ql~dbG6k!zq&Ft*X-ey}ZRfyzjNnR7mUAllza%hE0b4y*!~!BFH!^rd zQUcEbF~5iw;vcW>;loZ2AxXf{aS1NUodwUtHx!cNKeK;PkJ4B@R^0BQ9IdN7uS9*|wG1RX$L(WI}@fd?Tkx&k&`SK^G{UMhhRrhsp^sb0nG+*GhA zJ>#&Q2EmZA1uCu{a>L3zNk7Yc3=q=PrO7{g7+pe#YRs%>9t`Yp8hB1S)YiB-zjRA3f=;=c|}~RlW?A%%vVyq`WoFBZuKJ;bZLKG zO=d8JT%0wSCX2Z`P`5A(H(Hoo^$41ZmF>2$zq|N1E1C~(Co+a zj(TcX5*yTnXr&z~s?+UvD^Q9n7a<=b^i5&P>odPF8{akZI9e$pT;ZUi03Wx~_`Ht~ zQ@}^jdfi74I7f!prk8c%Acu#i>kzGSYA*UL%%! zSZGFW9r0-y^#tAE>DlM1orw5o!-~)|WOtc{Y@RZ0uc77?adUbJZ`Nh))=}%iP+Mb( z!lIl-&?&%56H$VmAyc>n-V}`KE;o7gE_Vhbrqa>mvYLW1!jz$IX*jR}pIk|3nlm+S gxU?lU80<{907*qoM6N<$f