AAD B2C: "Claims resolvers" w "GenerateJson" #472
-
|
Hej,
Mój problem: Uproszczone polityki: <ClaimType Id="OAUTH-KVtenant_id">
<DisplayName>query string tenant id</DisplayName>
<DataType>string</DataType>
</ClaimType>
<ClaimType Id="CultureLanguageName">
<DisplayName>user language</DisplayName>
<DataType>string</DataType>
</ClaimType>metadata i output claims próbowałem dodawać w różnych <ClaimsProviders>
<ClaimsProvider>
<DisplayName>Local Account</DisplayName>
<TechnicalProfiles>
<!--Sample: Sign-up self-asserted technical profile without Email verification-->
<TechnicalProfile Id="LocalAccountSignUpWithReadOnlyEmail">
...
<Item Key="IncludeClaimResolvingInClaimsHandling">true</Item>
</Metadata>
...
<OutputClaim ClaimTypeReferenceId="displayName" DefaultValue="unknown" />
<OutputClaim ClaimTypeReferenceId="OAUTH-KVtenant_id" DefaultValue="{OAUTH-KV:tenant_id}" AlwaysUseDefaultValue="true" />
<OutputClaim ClaimTypeReferenceId="CultureLanguageName" PartnerClaimType="{Culture:LanguageName}"
...
</TechnicalProfiles>
</ClaimsProvider>
</ClaimsProviders>claims transformation do generowania jsona <ClaimsTransformations>
<ClaimsTransformation Id="GenerateOtpEmailRequestBody" TransformationMethod="GenerateJson">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="toEmail" />
<InputClaim ClaimTypeReferenceId="otp" TransformationClaimType="templateVariables.otp" />
<InputClaim ClaimTypeReferenceId="OAUTH-KVtenant_id" TransformationClaimType="tenant" />
<InputClaim ClaimTypeReferenceId="CultureLanguageName" TransformationClaimType="language" />
</InputClaims>
<InputParameters>
<InputParameter Id="emailType" DataType="string" Value="SignUp"/>
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="otpEmailRequestBody" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>ale efekt ten sam (log z application insights) "Key": "ClaimsTransformation",
"Value": {
"Values": [
{
"Key": "Id",
"Value": "GenerateOtpEmailRequestBody"
},
{
"Key": "InputClaim",
"Value": {
"PolicyClaimType": "email",
"Value": "krukowskid@github.com"
}
},
{
"Key": "InputClaim",
"Value": {
"PolicyClaimType": "Otp",
"Value": "861313"
}
},
{
"Key": "InputClaim",
"Value": {
"PolicyClaimType": "OAUTH-KVtenant_id",
"Value": "undefined"
}
},
{
"Key": "InputClaim",
"Value": {
"PolicyClaimType": "CultureLanguageName",
"Value": "undefined"
}
}
...jakieś wskazówki jak to skonfigurować poprawnie? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 3 replies
-
|
Tyle już czasu przy tym nie siedziałem, ze dla mnie to niemal czarna magia. Mam tylko jedną sugestie, być może pomocną. Według tej tabelki Claim Resolvery działają bezpośrednio w ClaimsTransformation InputClaims. Po co wiec je przerzucasz przez inne TP? Edit: brakuje też AlwaysUseDefaultValue w tym drugim Resolverze. |
Beta Was this translation helpful? Give feedback.
tak jak w linku pewnie by zadziałało, ale to też dodatkowy technical profile, bo jest:
Blok claims transformation
https://learn.microsoft.com/en-us/azure/active-directory-b2c/claimstransformations
i claims transformation technical profile, które podlinkowałeś
https://learn.microsoft.com/en-us/azure/active-directory-b2c/claims-transformation-technical-profile
udało mi się rozwiązać temat tak: