StringCollection 要求変換
この記事では、Azure Active Directory B2C (Azure AD B2C) の Identity Experience Framework スキーマの文字列コレクション要求変換の使用例を示します。 詳細については、「要求変換」をご覧ください。
AddItemToStringCollection
新しい一意の値 「stringCollection」の要求に文字列要求を追加します。 この要求変換のライブ デモをご覧ください。
要素 | TransformationClaimType | データ型 | Notes |
---|---|---|---|
InputClaim | 要素 | string | 出力要求に追加される ClaimType。 |
InputClaim | collection | stringCollection | 出力要求に追加される文字列コレクション。 コレクションに項目が含まれる場合、要求変換によって項目がコピーされ、出力コレクション要求の最後に項目が追加されます。 |
OutputClaim | collection | stringCollection | この ClaimType は、要求変換が呼び出された後に生成され、入力パラメータに指定された値で呼び出されます。 |
この要求変換を使用して、新しい stringCollection または既存の stringCollection に文字列を追加します。 通常、これは AAD-UserWriteUsingAlternativeSecurityId 技術プロファイルで使用されます。 新しいソーシャル アカウントが作成される前に、CreateOtherMailsFromEmail 要求変換によって ClaimType が読み取られ、otherMails ClaimType に値が追加されます。
AddItemToStringCollection の例
次の要求変換によって、email ClaimType が otherMails ClaimType に追加されます。
<ClaimsTransformation Id="CreateOtherMailsFromEmail" TransformationMethod="AddItemToStringCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="email" TransformationClaimType="item" />
<InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</OutputClaims>
</ClaimsTransformation>
- 入力要求:
- collection: ["someone@outlook.com"]
- item: "admin@contoso.com"
- 出力要求:
- collection: ["someone@outlook.com", "admin@contoso.com"]
AddParameterToStringCollection
新しい一意の値「stringCollection claim」に文字列パラメータを追加します。 この要求変換のライブ デモをご覧ください。
要素 | TransformationClaimType | データ型 | Notes |
---|---|---|---|
InputClaim | collection | stringCollection | 出力要求に追加される文字列コレクション。 コレクションに項目が含まれる場合、要求変換によって項目がコピーされ、出力コレクション要求の最後に項目が追加されます。 |
InputParameter | 要素 | string | 出力要求に追加される値。 |
OutputClaim | collection | stringCollection | この要求変換が呼び出された後に生成される ClaimType は、入力パラメーターに指定された値で呼び出されています。 |
AddParameterToStringCollection の例
次の例では、定数の電子メール アドレス (admin@contoso.com) を otherMails 要求に追加します。
<ClaimsTransformation Id="SetCompanyEmail" TransformationMethod="AddParameterToStringCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</InputClaims>
<InputParameters>
<InputParameter Id="item" DataType="string" Value="admin@contoso.com" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</OutputClaims>
</ClaimsTransformation>
- 入力要求:
- collection: ["someone@outlook.com"]
- 入力パラメーター
- item: "admin@contoso.com"
- 出力要求:
- collection: ["someone@outlook.com", "admin@contoso.com"]
GetSingleItemFromStringCollection
指定された文字列コレクションから最初の項目を取得します。 この要求変換のライブ デモをご覧ください。
要素 | TransformationClaimType | データ型 | Notes |
---|---|---|---|
InputClaim | collection | stringCollection | 項目を取得する要求変換で使用される ClaimTypes。 |
OutputClaim | extractedItem | string | この ClaimsTransformation が呼び出された後に生成される ClaimTypes。 コレクション内の最初の項目 |
GetSingleItemFromStringCollection の例
次の例では、otherMails 要求が読み取られ、最初の項目が email 要求に返されます。
<ClaimsTransformation Id="CreateEmailFromOtherMails" TransformationMethod="GetSingleItemFromStringCollection">
<InputClaims>
<InputClaim ClaimTypeReferenceId="otherMails" TransformationClaimType="collection" />
</InputClaims>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="email" TransformationClaimType="extractedItem" />
</OutputClaims>
</ClaimsTransformation>
- 入力要求:
- collection: ["someone@outlook.com", "someone@contoso.com"]
- 出力要求:
- extractedItem: "someone@outlook.com"
StringCollectionContains
StringCollection 要求の種類に要素が含まれているかどうかをチェックします。 この要求変換のライブ デモをご覧ください。
要素 | TransformationClaimType | データ型 | Notes |
---|---|---|---|
InputClaim | inputClaim | stringCollection | 検索対象の要求。 |
InputParameter | item | string | 検索する値。 |
InputParameter | ignoreCase | string | この比較が比較対象の文字列の大文字と小文字を無視するかどうかを指定します。 |
OutputClaim | outputClaim | boolean | この ClaimsTransformation が呼び出された後に生成される ClaimType。 コレクションにこのような文字列が含まれているかどうかを示すブール値のインジケーター |
StringCollectionContains の例
次の例では、roles
stringCollection 要求の種類に admin の値が含まれているかどうかをチェックしています。
<ClaimsTransformation Id="IsAdmin" TransformationMethod="StringCollectionContains">
<InputClaims>
<InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="inputClaim"/>
</InputClaims>
<InputParameters>
<InputParameter Id="item" DataType="string" Value="Admin"/>
<InputParameter Id="ignoreCase" DataType="string" Value="true"/>
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="isAdmin" TransformationClaimType="outputClaim"/>
</OutputClaims>
</ClaimsTransformation>
- 入力要求:
- inputClaim: ["reader", "author", "admin"]
- 入力パラメーター:
- 項目:"Admin"
- ignoreCase: "true"
- 出力要求:
- outputClaim: "true"
StringCollectionContainsClaim
StringCollection 要求の種類に要求の値が含まれているかどうかをチェックします。 この要求変換のライブ デモをご覧ください。
要素 | TransformationClaimType | データ型 | Notes |
---|---|---|---|
InputClaim | collection | stringCollection | 検索対象の要求。 |
InputClaim | item | string | 検索する値を含む要求の種類。 |
InputParameter | ignoreCase | string | この比較が比較対象の文字列の大文字と小文字を無視するかどうかを指定します。 |
OutputClaim | outputClaim | boolean | この ClaimsTransformation が呼び出された後に生成される ClaimType。 コレクションにこのような文字列が含まれているかどうかを示すブール値のインジケーター |
StringCollectionContainsClaim の例
次の例では、roles
stringCollection 要求の種類に role
の要求の値が含まれているかどうかをチェックしています。
<ClaimsTransformation Id="HasRequiredRole" TransformationMethod="StringCollectionContainsClaim">
<InputClaims>
<InputClaim ClaimTypeReferenceId="roles" TransformationClaimType="collection" />
<InputClaim ClaimTypeReferenceId="role" TransformationClaimType="item" />
</InputClaims>
<InputParameters>
<InputParameter Id="ignoreCase" DataType="string" Value="true" />
</InputParameters>
<OutputClaims>
<OutputClaim ClaimTypeReferenceId="hasAccess" TransformationClaimType="outputClaim" />
</OutputClaims>
</ClaimsTransformation>
- 入力要求:
- collection: ["reader", "author", "admin"]
- 項目:"Admin"
- 入力パラメーター:
- ignoreCase: "true"
- 出力要求:
- outputClaim: "true"
次の手順
- その他の要求変換のサンプルについては、Azure AD B2C コミュニティの GitHub リポジトリをご覧ください