Skip to content

Commit

Permalink
Integer CTs
Browse files Browse the repository at this point in the history
  • Loading branch information
yoelhor committed Feb 14, 2022
1 parent a95c607 commit e53d9f1
Show file tree
Hide file tree
Showing 6 changed files with 943 additions and 194 deletions.
85 changes: 0 additions & 85 deletions claims-transformation/CT_AdjustNumber.xml

This file was deleted.

104 changes: 0 additions & 104 deletions claims-transformation/CT_AssertNumber.xml

This file was deleted.

185 changes: 185 additions & 0 deletions claims-transformation/integer/CT_AdjustNumber.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TrustFrameworkPolicy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.microsoft.com/online/cpim/schemas/2013/06" PolicySchemaVersion="0.3.0.0"
TenantId="yourtenant.onmicrosoft.com"
PolicyId="B2C_1A_CT_AdjustNumber"
PublicPolicyUri="http://yourtenant.onmicrosoft.com/B2C_1A_CT_AdjustNumber">

<BasePolicy>
<TenantId>yourtenant.onmicrosoft.com</TenantId>
<PolicyId>B2C_1A_TrustFrameworkExtensions</PolicyId>
</BasePolicy>

<BuildingBlocks>
<ClaimsSchema>
<ClaimType Id="int1">
<DisplayName>Int 1</DisplayName>
<DataType>int</DataType>
<UserInputType>TextBox</UserInputType>
<Restriction>
<Pattern RegularExpression="\d" HelpText="Only numbers" />
</Restriction>
</ClaimType>
<ClaimType Id="typeOfTransformation">
<DisplayName>Select the type of transformation</DisplayName>
<DataType>string</DataType>
<UserInputType>DropdownSingleSelect</UserInputType>
<Restriction>
<Enumeration Text="Increment" Value="increment" SelectByDefault="true" />
<Enumeration Text="Decrement" Value="decrement" />
</Restriction>
</ClaimType>
<ClaimType Id="result">
<DisplayName>The result of this claims transformation (result)</DisplayName>
<DataType>int</DataType>
<UserInputType>Readonly</UserInputType>
</ClaimType>
</ClaimsSchema>

<ClaimsTransformations>
<ClaimsTransformation Id="increaseInt" TransformationMethod="AdjustNumber">
<InputClaims>
<InputClaim ClaimTypeReferenceId="int1" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="Operator" DataType="string" Value="INCREMENT" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="result" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
<ClaimsTransformation Id="decreaseInt" TransformationMethod="AdjustNumber">
<InputClaims>
<InputClaim ClaimTypeReferenceId="int1" TransformationClaimType="inputClaim" />
</InputClaims>
<InputParameters>
<InputParameter Id="Operator" DataType="string" Value="decrement" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="result" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
</ClaimsTransformations>
</BuildingBlocks>

<ClaimsProviders>
<ClaimsProvider>
<DisplayName>Unit tests</DisplayName>
<TechnicalProfiles>
<!--Experimental technical profile (first page)-->
<TechnicalProfile Id="ExperimentalTechnicalProfile">
<DisplayName>Unit test</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>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="int1" DefaultValue="9" AlwaysUseDefaultValue="true" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="int1" Required="true" />
<OutputClaim ClaimTypeReferenceId="typeOfTransformation" Required="true" />
<OutputClaim ClaimTypeReferenceId="result" />
</OutputClaims>
<ValidationTechnicalProfiles>
<ValidationTechnicalProfile ReferenceId="ExperimentalValidation-Increment">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="true">
<Value>typeOfTransformation</Value>
<Value>decrement</Value>
<Action>SkipThisValidationTechnicalProfile</Action>
</Precondition>
</Preconditions>
</ValidationTechnicalProfile>

<ValidationTechnicalProfile ReferenceId="ExperimentalValidation-Decrement">
<Preconditions>
<Precondition Type="ClaimEquals" ExecuteActionsIf="true">
<Value>typeOfTransformation</Value>
<Value>increment</Value>
<Action>SkipThisValidationTechnicalProfile</Action>
</Precondition>
</Preconditions>
</ValidationTechnicalProfile>

</ValidationTechnicalProfiles>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

<!--Validation technical profile-->
<TechnicalProfile Id="ExperimentalValidation-Increment">
<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="result" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="increaseInt" />
</OutputClaimsTransformations>
</TechnicalProfile>

<!--Validation technical profile-->
<TechnicalProfile Id="ExperimentalValidation-Decrement">
<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="result" />
</OutputClaims>
<OutputClaimsTransformations>
<OutputClaimsTransformation ReferenceId="decreaseInt" />
</OutputClaimsTransformations>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>

<!--Result technical profile (last page)-->
<TechnicalProfile Id="ResultTechnicalProfile">
<DisplayName>Unit test</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>
</Metadata>
<InputClaims>
<InputClaim ClaimTypeReferenceId="result" />
</InputClaims>
<DisplayClaims>
<DisplayClaim ClaimTypeReferenceId="result" />
</DisplayClaims>
<UseTechnicalProfileForSessionManagement ReferenceId="SM-Noop" />
</TechnicalProfile>
</TechnicalProfiles>
</ClaimsProvider>
</ClaimsProviders>

<UserJourneys>
<UserJourney Id="UnitTestJourney">
<OrchestrationSteps>
<OrchestrationStep Order="1" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="ExperimentalTechnicalProfile" TechnicalProfileReferenceId="ExperimentalTechnicalProfile" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="2" Type="ClaimsExchange">
<ClaimsExchanges>
<ClaimsExchange Id="ResultTechnicalProfile" TechnicalProfileReferenceId="ResultTechnicalProfile" />
</ClaimsExchanges>
</OrchestrationStep>
<OrchestrationStep Order="3" Type="SendClaims" CpimIssuerTechnicalProfileReferenceId="JwtIssuer" />
</OrchestrationSteps>
</UserJourney>
</UserJourneys>

<RelyingParty>
<DefaultUserJourney ReferenceId="UnitTestJourney" />
<TechnicalProfile Id="PolicyProfile">
<DisplayName>PolicyProfile</DisplayName>
<Protocol Name="OpenIdConnect" />
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="objectId" PartnerClaimType="sub" DefaultValue="1234" />
<OutputClaim ClaimTypeReferenceId="tenantId" AlwaysUseDefaultValue="true" DefaultValue="{Policy:TenantObjectId}" />

<!-- Unit test claims-->
<OutputClaim ClaimTypeReferenceId="int1" />
</OutputClaims>
<SubjectNamingInfo ClaimType="sub" />
</TechnicalProfile>
</RelyingParty>
</TrustFrameworkPolicy>
Loading

0 comments on commit e53d9f1

Please sign in to comment.