一般要求変換
この記事では、Azure Active Directory B2C (Azure AD B2C) カスタム ポリシーの一般的な要求変換の使用例を示します。 詳細については、「ClaimsTransformations」を参照してください。
CopyClaim
要求の値を別の要求へコピーします。 どちらの要求も、同じ型から派生している必要があります。 この要求変換のライブ デモをご覧ください。
要素 | TransformationClaimType | データ型 | Notes |
---|---|---|---|
InputClaim | inputClaim | string、int | コピーする要求の種類。 |
OutputClaim | outputClaim | string、int | この要求変換が呼び出された後に生成される要求。 |
この要求変換を使用して、文字列または数値の要求から別の要求に値をコピーします。 次の例では、externalEmail 要求の値を電子メール要求にコピーします。
<ClaimsTransformation Id="CopyEmailAddress" TransformationMethod="CopyClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="externalEmail" TransformationClaimType="inputClaim"/>
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>
CopyClaim の例
- 入力要求:
- inputClaim: bob@contoso.com
- 出力要求:
- outputClaim: bob@contoso.com
DoesClaimExist
入力要求が存在するかどうかを確認し、それに応じて出力要求を true
または false
に設定します。 この要求変換のライブ デモをご覧ください。
要素 | TransformationClaimType | データ型 | Notes |
---|---|---|---|
InputClaim | inputClaim | Any | 存在を確認する必要のある入力要求。 |
OutputClaim | outputClaim | boolean | この要求変換が呼び出された後に生成される要求。 |
DoesClaimExist の例
この要求変換を使用して、要求が存在するかどうか、または何らかの値が含まれているかどうかをチェックします。 戻り値はブール値であり、それによって、要求が存在するかどうかが示されます。 次の例では、電子メール アドレスが存在するかどうかを確認します。
<ClaimsTransformation Id="CheckIfEmailPresent" TransformationMethod="DoesClaimExist">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="inputClaim" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isEmailPresent" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- 入力要求:
- inputClaim: someone@contoso.com
- 出力要求:
- outputClaim: true
ハッシュ インデックス
salt と secret を使用して、提供されたプレーン テキストをハッシュします。 使用されるハッシュ アルゴリズムは SHA-256 です。 この要求変換のライブ デモをご覧ください。
要素 | TransformationClaimType | データ型 | Notes |
---|---|---|---|
InputClaim | plaintext | string | 暗号化される入力要求。 |
InputClaim | salt | string | salt パラメーター。
CreateRandomString 要求変換を使用して、ランダムな値を作成できます。 |
InputParameter | randomizerSecret | string | 既存の Azure AD B2C ポリシー キーをポイントします。 新しいポリシー キーを作成するには、Azure AD B2C テナントの [管理] で、 [Identity Experience Framework] を選択します。 [ポリシー キー] を選択して、テナント内で使用できるキーを確認します。 [追加] を選択します。 [オプション] には [手動] を選択します。 名前を指定します (プレフィックス B2C_1A_ が自動的に追加される場合があります)。 [シークレット] テキスト ボックスに、使用するシークレットを入力します (1234567890 など)。 [キー使用法] には [署名] を選択します。 [作成] を選択します |
OutputClaim | hash | string | この要求変換が呼び出された後に生成される要求。
plaintext inputClaim で構成されている要求。 |
ハッシュの例
次の例は、メール アドレスをハッシュする方法を示しています。 この要求変換では、値をハッシュする前にメール アドレスにソルトが追加されます。 この要求変換を呼び出すには、値を mySalt
要求に設定します。
<ClaimsTransformation Id="HashPasswordWithEmail" TransformationMethod="Hash">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="plaintext" />
<InputClaim ClaimTypeReferenceId="mySalt" TransformationClaimType="salt" />
</InputClaims>
<InputParameters>
<InputParameter Id="randomizerSecret" DataType="string" Value="B2C_1A_AccountTransformSecret" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="hashedEmail" TransformationClaimType="hash" />
</OutputClaims>
</ClaimsTransformation>
- 入力要求:
- plaintext: someone@contoso.com
- salt: 487624568
- randomizerSecret: B2C_1A_AccountTransformSecret
- 出力要求:
- outputClaim: CdMNb/KTEfsWzh9MR1kQGRZCKjuxGMWhA5YQNihzV6U=
次の手順
- その他の要求変換のサンプルについては、Azure AD B2C コミュニティの GitHub リポジトリをご覧ください