SAML トークン クレームをカスタマイズする
Microsoft ID プラットフォームでは、アプリケーション ギャラリー内のほとんどの事前統合済みアプリケーションとカスタム アプリケーションでのシングル サインオン (SSO) がサポートされています。 ユーザーが SAML 2.0 プロトコルを使って Microsoft ID プラットフォーム経由でアプリケーションに対する認証を行うと、トークンがアプリケーションに送信されます。 アプリケーションはトークンを検証し、ユーザー名とパスワードの入力を求める代わりに、そのトークンを使ってユーザーをサインインさせます。
これらの SAML トークンには、"要求" と呼ばれる、ユーザーに関する情報が含まれています。 要求とは、そのユーザーに発行するトークンの中にあるユーザーに関する ID プロバイダーが提示した情報を指します。 SAML トークンでは、通常、"クレーム" のデータは SAML 属性ステートメントに含まれています。 ユーザーの一意な ID は、通常 SAML サブジェクトで表され、これは名前識別子 (nameID
) とも呼ばれます。
既定では、Microsoft ID プラットフォームにより、そのユーザーのユーザー名 (別名: ユーザー プリンシパル名) を値として持つ要求を含む SAML トークンがアプリケーションに対して発行され、これによってユーザーを一意に識別することができます。 また、SAML トークンには、ユーザーのメール アドレスや姓名を含む他のクレームも含まれています。
クレームを表示または編集する
アプリケーションに対して SAML トークンで発行されたクレームを表示または編集するには:
- クラウド アプリケーション管理者以上として Microsoft Entra 管理センターにサインインします。
- [ID]>[アプリケーション]>[エンタープライズ アプリケーション]>[すべてのアプリケーション] に移動します。
- アプリケーションを選択し、左側のメニューで [シングル サインオン] を選択し、[属性とクレーム] セクションで [編集] を選択します。
次の理由で、SAML トークンで発行された要求を編集することが必要な場合もあります。
- アプリケーションは、
NameIdentifier
またはnameID
要求が、ユーザー名 (またはユーザー プリンシパル名) 以外のものであることを要求します。 - アプリケーションが、別の要求 URI または要求値のセットを必要とするように記述されている。
nameID
を編集します
名前識別子の値要求を編集するには次のようにします。
- [名前識別子の値] ページを開きます。
- 属性または属性に適用する変換を選択します。 必要に応じて、
nameID
要求の形式を指定できます。
NameID の形式
特定の形式の NameIDPolicy
要素が SAML 要求に含まれている場合、Microsoft ID プラットフォームではその要求の形式が尊重されます。
SAML 要求に NameIDPolicy
要素が含まれていない場合は、ユーザーが指定した形式の nameID
が Microsoft ID プラットフォームによって発行されます。 形式を指定しないと、Microsoft ID プラットフォームでは、選択されたクレーム ソースに関連付けられている既定のソース形式が使われます。 変換の結果が null または無効な値になった場合、Microsoft Entra ID によって、nameID
内の永続的なペアワイズ識別子が送信されます。
[名前識別子の形式の選択] ドロップダウンで、次の表のオプションのいずれかを選びます。
nameID 形式 |
説明 |
---|---|
[Default] | Microsoft ID プラットフォームでは既定のソース形式が使われます。 |
永続的 | Microsoft Identity プラットフォームでは、Persistent を nameID 形式として使用します。 |
電子メール アドレス | Microsoft Identity プラットフォームでは、EmailAddress を nameID 形式として使用します。 |
未指定 | Microsoft Identity プラットフォームでは、Unspecified を nameID 形式として使用します。 |
Windows ドメインの修飾名 | Microsoft Identity プラットフォームでは、WindowsDomainQualifiedName 形式を使用します。 |
一時的な nameID
もサポートされていますが、ドロップダウンでは選択できず、また、Azure 側で構成できません。 NameIDPolicy
属性について詳しくは、「シングル サインオンの SAML プロトコル」をご覧ください。
属性
ヒント
この記事の手順は、開始するポータルによって若干異なる場合があります。
NameIdentifier
(または nameID
) 要求の必要なソースを選択します。 次の表のオプションから選択できます。
名前 | 説明 |
---|---|
Email |
ユーザーのメール アドレス。 |
userprincipalName |
ユーザーのユーザー プリンシパル名 (UPN)。 |
onpremisessamaccountname |
オンプレミスの Microsoft Entra ID から同期された SAM アカウント名。 |
objectid |
Microsoft Entra ID のユーザーのオブジェクト ID。 |
employeeid |
ユーザーの従業員 ID。 |
Directory extensions |
Microsoft Entra Connect 同期を使ってオンプレミスの Active Directory から同期されたディレクトリ拡張機能。 |
Extension Attributes 1-15 |
Microsoft Entra のスキーマを拡張するために使われるオンプレミスの拡張機能属性。 |
pairwiseid |
永続的な形式のユーザー識別子。 |
識別子の値について詳しくは、このページで後述するソースごとの有効な ID 値の一覧を示す表を参照してください。
任意の (静的な) 定数値を、任意の要求に割り当てることができます。 次の手順を使用して、定数値を割り当ててください。
- [属性とクレーム] ブレードで、変更する必要があるクレームを選択します。
- 組織に従って [ソース属性] に引用符を付けずに定数値を入力し、[保存] を選びます。 定数値が表示されます。
ディレクトリ スキーマ拡張機能
ディレクトリ スキーマ拡張属性を非条件付き、または条件付き属性として構成することもできます。 次の手順を使用して、単一または複数値のディレクトリ スキーマ拡張属性をクレームとして構成します。
- [属性とクレーム] ブレードで、[新しいクレームの追加] を選択するか、既存のクレームを編集します。
- アプリケーション ピッカーから、拡張プロパティが定義されているソース アプリケーションを選択します。
- [追加] を選択して、選択内容をクレームに追加します。
- [保存] をクリックして、変更をコミットします。
特別なクレームの変換
特別なクレームの変換関数を使用できます。
機能 | 説明 |
---|---|
ExtractMailPrefix() | メール アドレスまたはユーザー プリンシパル名からドメイン サフィックスを除去します。 この関数は、渡されたユーザー名の最初の部分のみを抽出します (例: joe_smith@contoso.com ではなく "joe_smith")。 |
ToLower() | 選択した属性の文字を小文字に変換します。 |
ToUpper() | 選択した属性の文字を大文字に変換します。 |
アプリケーション固有のクレームを追加する
アプリケーション固有の要求を追加するには:
- [属性とクレーム] ブレードで、[新しいクレームの追加] を選択して、[ユーザー クレームの管理] ページを開きます。
- クレームの [名前] を入力します。 値は、SAML 仕様の URI パターンに厳密に従う必要はありません。URI パターンが必要な場合は、 [名前空間] フィールドに追加することができます。
- クレームの値が取得される [ソース] を選択します。 ソース属性のドロップダウンからユーザー属性を選択するか、または要求として生成する前にユーザー属性に変換を適用することができます。
グループ要求を追加する
グループ要求は、アプリまたはサービス プロバイダーによってリソースにアクセスする認可の決定を行うために使用されます。 グループ要求を追加するには:
- [アプリの登録] に移動しグループ要求を追加するアプリを選択します。
- [Add groups claim](グループの要求の追加) を選択します。
- トークンに含めるグループの種類を選択します。 セキュリティ グループ、ディレクトリ グループ、または特定のアプリケーションに割り当てられたグループを追加できます。
- グループ要求に含める値を選択し、[追加] を選択します。
要求の変換
ユーザー属性に変換を適用するには、次の手順を行います。
- [要求の管理] で、要求ソースとして [変換] を選択して、 [変換の管理] ページを開きます。
- 変換ドロップダウンから関数を選択します。 選択した関数に応じて、変換で評価するパラメーターと定数値を指定します。
- 適切なラジオ ボタンをクリックして、属性のソースを選択します。
- 属性名をドロップダウンから選択します。
- [ソースを複数値として扱います] は、変換をすべての値または最初の値のみのどちらに適用する必要があるかを示すチェックボックスです。 既定では、変換は複数値クレームの最初の要素にのみ適用されます。このチェックボックスをオンにすると、すべてに適用されます。 このチェックボックスは、複数の値を持つ属性に対してのみ有効になります (例:
user.proxyaddresses
)。 - 複数の変換を適用するには、[変換の追加] を選びます。 要求には、最大 2 つの変換を適用できます。 たとえば、最初に
user.mail
のメール プレフィックスを抽出できます。 次に、文字列を大文字にします。
次の関数を使用して、要求を変換できます。
機能 | 説明 |
---|---|
ExtractMailPrefix() | メール アドレスまたはユーザー プリンシパル名からドメイン サフィックスを除去します。 この関数は、処理されているユーザー名の最初の部分のみを抽出します。 たとえば、joe_smith@contoso.com の代わりに joe_smith となります。 |
Join() | 2 つの属性を結合することで、新しい値を作成します。 必要に応じて、2 つの属性の間に区切り記号を使用できます。 nameID 要求の変換で、変換の入力にドメイン部分がある場合、Join() 関数は特定の動作をします。 入力からドメイン部分を削除した後、区切り記号および選択されたパラメーターを結合します。 たとえば、変換の入力が joe_smith@contoso.com 、区切り記号が @ 、パラメーターが fabrikam.com の場合、この入力の組み合わせでは joe_smith@fabrikam.com という結果になります。 |
ToLowercase() | 選択した属性の文字を小文字に変換します。 |
ToUppercase() | 選択した属性の文字を大文字に変換します。 |
Contains() | 入力が指定した値と一致する場合、属性または定数を出力します。 一致しない場合は、別の出力を指定できます。 たとえば、値がユーザーのメール アドレスで、そこに @contoso.com というドメインが含まれる場合、そのクレームは出力し、それ以外の場合はユーザーのプリンシパル名を出力したいとします。 この関数を実行するには、次の値を構成します。Parameter 1(input): user.email 、Value: "@contoso.com" 、Parameter 2 (output): user.email 、Parameter 3 (output if there's no match): user.userprincipalname 。 |
EndWith() | 入力が指定した値で終わっている場合、属性または定数を出力します。 一致しない場合は、別の出力を指定できます。 たとえば、ユーザーの従業員 ID が 000 で終わっている場合は従業員 ID を値とする要求を出力し、それ以外の場合は拡張属性を出力したいものとします。 この関数を実行するには、次の値を構成します。Parameter 1(input): user.employeeid 、Value: "000" 、Parameter 2 (output): user.employeeid 、Parameter 3 (output if there's no match): user.extensionattribute1 。 |
StartWith() | 入力が指定した値で始まっている場合、属性または定数を出力します。 一致しない場合は、別の出力を指定できます。 たとえば、国またはリージョンが US で始まっている場合はユーザーの従業員 ID を値とする要求を出力し、それ以外の場合は拡張属性を出力したいものとします。 この関数を実行するには、次の値を構成します。Parameter 1(input): user.country 、Value: "US" 、Parameter 2 (output): user.employeeid 、Parameter 3 (output if there's no match): user.extensionattribute1 |
Extract() - 一致の後 | 指定した値との一致より後の部分文字列を返します。 たとえば、入力の値が Finance_BSimon で、一致する値が Finance_ の場合、クレームの出力は BSimon です。 |
Extract() - 一致の前 | 指定した値との一致より前の部分文字列を返します。 たとえば、入力の値が BSimon_US で、一致する値が _US の場合、クレームの出力は BSimon です。 |
Extract() - 一致の間 | 指定した値との一致より前の部分文字列を返します。 たとえば、入力の値が Finance_BSimon_US 、1 番目の一致する値が Finance_ 、2 番目の一致する値が _US の場合、クレームの出力は BSimon です。 |
ExtractAlpha() - プレフィックス | 文字列のプレフィックスのアルファベット部分を返します。 たとえば、入力の値が BSimon_123 の場合、BSimon が返されます。 |
ExtractAlpha() - サフィックス | 文字列のサフィックスのアルファベット部分を返します。 たとえば、入力の値が 123_Simon の場合、Simon が返されます。 |
ExtractNumeric() - プレフィックス | 文字列のプレフィックスの数字部分を返します。 たとえば、入力の値が 123_BSimon の場合、123 が返されます。 |
ExtractNumeric() - サフィックス | 文字列のサフィックスの数字部分を返します。 たとえば、入力の値が BSimon_123 の場合、123 が返されます。 |
IfEmpty() | 入力が null または空の場合、属性または定数を出力します。 たとえば、ユーザーの従業員 ID が空の場合に、拡張属性に格納されている属性を出力したいとします。 この関数を実行するには、次の値を構成します。Parameter 1(input): user.employeeid 、Parameter 2 (output): user.extensionattribute1 、Parameter 3 (output if there's no match): user.employeeid 。 |
IfNotEmpty() | 入力が null または空ではない場合、属性または定数を出力します。 たとえば、ユーザーの従業員 ID が空でない場合に、拡張属性に格納されている属性を出力したいとします。 この関数を実行するには、次の値を構成します。Parameter 1(input): user.employeeid 、Parameter 2 (output): user.extensionattribute1 。 |
Substring() - 固定長 | 指定した位置にある文字から始まる文字列要求の種類の一部が抽出され、指定した文字数が返されます。 sourceClaim は実行する必要がある変換の要求ソースです。 StartIndex はこのインスタンス内の部分文字列の 0 から始まる開始文字位置です。 Length は部分文字列の文字列長です。 たとえば、sourceClaim - PleaseExtractThisNow 、StartIndex - 6 、Length - 11 は ExtractThis という出力を生成します。 |
Substring() - EndOfString | 指定した位置にある文字から始まる文字列要求の種類の一部が抽出され、指定した開始インデックスから要求の残りが返されます。 sourceClaim は実行する必要がある変換の要求ソースです。 StartIndex はこのインスタンス内の部分文字列の 0 から始まる開始文字位置です。 たとえば、sourceClaim - PleaseExtractThisNow 、StartIndex - 6 は ExtractThisNow という出力を生成します。 |
RegexReplace() | 正規表現ベースの要求変換の詳細については、次のセクションを参照してください。 |
正規表現ベースのクレーム変換
次の画像は、変換の第 1 レベルの例を示したものです。
次の表に示すアクションは、変換の最初のレベルに関する情報を提供し、前の画像のラベルに対応しています。 クレーム変換ブレードを開くには、[編集] を選びます。
アクション | フィールド | Description |
---|---|---|
1 |
Transformation |
クレーム変換に正規表現ベースのクレーム変換メソッドを使うには、[変換] オプションから RegexReplace() オプションを選びます。 |
2 |
Parameter 1 |
正規表現変換の入力。 たとえば、admin@fabrikam.com のようなユーザー メール アドレスを含む user.mail。 |
3 |
Treat source as multivalued |
一部の入力ユーザー属性は、複数値のユーザー属性になれます。 選んだユーザー属性で複数の値がサポートされている場合やユーザーが変換に複数値を使う場合は、[ソースを複数値として扱います] をオンにする必要があります。 オンにした場合は、すべての値が正規表現の照合に使われ、オフにした場合は、最初の値のみが使われます。 |
4 |
Regex pattern |
"パラメーター 1" として選ばれたユーザー属性の値に対して評価される正規表現。 たとえば、ユーザーのメール アドレスからユーザーの別名を抽出する正規表現は、(?'domain'^.*?)(?i)(\@fabrikam\.com)$ と表されます。 |
5 |
Add additional parameter |
複数のユーザー属性を変換に使用できます。 その場合、属性の値は正規表現の変換出力とマージされます。 最大 5 つの追加パラメーターがサポートされています。 |
6 |
Replacement pattern |
置換パターンは、正規表現の結果に対するプレースホルダーを含むテキスト テンプレートです。 {group-name} のように、すべてのグループ名を中かっこで囲む必要があります。 たとえば、管理者は他のドメイン名 (例: xyz.com ) と共にユーザーの別名を使い、国名をそれとマージしたいとします。 このケースでは、置換パターンは {country}.{domain}@xyz.com になります。{country} は入力パラメーターの値であり、{domain} は正規表現の評価からのグループ出力です。 このようなケースでは、予想される結果は US.swmal@xyz.com になります。 |
次の画像は、変換の 2 番目のレベルの例を示したものです。
次の表では、変換の 2 番目のレベルに関する情報を示します。 表に示されているアクションは、前の画像のラベルに対応しています。
アクション | フィールド | Description |
---|---|---|
1 |
Transformation |
正規表現ベースのクレーム変換は、第 1 の変換に限定されず、第 2 レベルの変換としても使用できます。 その他のいかなる変換方法も、最初の変換として使用できます。 |
2 |
Parameter 1 |
RegexReplace() が第 2 レベルの変換として選ばれている場合、第 1 レベルの変換の出力が第 2 レベルの変換の入力として使わされます。 変換を適用するには、第 2 レベルの正規表現式が、第 1 の変換の出力と一致する必要があります。 |
3 |
Regex pattern |
正規表現パターンは第 2 レベルの変換の正規表現です。 |
4 |
Parameter input |
第 2 レベルの変換に対するユーザー属性の入力。 |
5 |
Parameter input |
パラメーターが不要になった場合、管理者は選んだ入力パラメーターを削除できます。 |
6 |
Replacement pattern |
置換パターンは、正規表現の結果グループ名、入力パラメーター グループ名、静的テキスト値のプレースホルダーを含むテキスト テンプレートです。 {group-name} のように、すべてのグループ名を中かっこで囲む必要があります。 たとえば、管理者は他のドメイン名 (例: xyz.com ) と共にユーザーの別名を使い、国名をそれとマージしたいとします。 このケースでは、置換パターンは {country}.{domain}@xyz.com になります。{country} は入力パラメーターの値であり、{domain} は正規表現の評価からのグループ出力です。 このようなケースでは、予想される結果は US.swmal@xyz.com になります。 |
7 |
Test transformation |
RegexReplace() 変換は、"パラメーター 1" に選ばれたユーザー属性の値が [正規表現パターン] テキスト ボックスで指定されている正規表現と一致する場合にのみ評価されます。 一致しない場合は、既定のクレーム値がトークンに追加されます。 入力パラメーター値に対して正規表現を検証するには、変換ブレード内でテスト エクスペリエンスを使用できます。 このテスト エクスペリエンスはダミー値でのみ動作します。 追加の入力パラメーターを使うと、実際の値ではなく、パラメーターの名前がテスト結果に追加されます。 テスト セクションにアクセスするには、[テスト変換] を選びます。 |
次の図は、変換のテストの例を示したものです。
次の表では、変換のテストに関する情報を示します。 表に示されているアクションは、前の画像のラベルに対応しています。
アクション | フィールド | Description |
---|---|---|
1 |
Test transformation |
[閉じる] または [X] ボタンを選ぶと、テスト セクションが非表示になり、[テスト変換] ボタンがブレードに再びレンダリングされます。 |
2 |
Test regex input |
正規表現テストの評価に使われる入力を受け入れます。 正規表現ベースのクレーム変換が第 2 レベルの変換として構成されている場合、第 1 の変換の予想される出力を値として指定します。 |
3 |
Run test |
テスト正規表現の入力を指定し、正規表現パターン、置換パターン、入力パラメーターを構成したら、[テストの実行] を選んで式を評価できます。 |
4 |
Test transformation result |
評価が成功した場合、テスト変換の出力が [テスト変換の結果] ラベルに対してレンダリングされます。 |
5 |
Remove transformation |
第 2 レベルの変換は、[変換を削除する] を選ぶことで削除できます。 |
6 |
Specify output if no match |
正規表現と一致しない "パラメーター 1" に対して正規表現の入力値が構成されている場合、変換はスキップされます。 このようなケースでは、代替ユーザー属性を構成できます。[一致しない場合は出力を指定する] をオンにすると、それがクレームのトークンに追加されます。 |
7 |
Parameter 3 |
一致するものがなく、[一致しない場合は出力を指定する] がオンになっているときに、代替ユーザー属性を返す必要がある場合は、ドロップダウンを使って代替ユーザー属性を選択できます。 このドロップダウンは、[パラメーター 3 (一致しない場合は出力)] に対して使用できます。 |
8 |
Summary |
ブレードの下部には、簡単なテキストで変換の意味を説明するフォーマットの概要が表示されます。 |
9 |
Add |
変換の構成設定を検証したら、[追加] を選んでクレーム ポリシーにそれを保存できます。 [要求の管理] ブレードで、[保存] を選択して変更内容を保存します。 |
RegexReplace() 変換は、グループ要求変換でも使用できます。
RegexReplace() 変換の検証
[追加] または [テストの実行] を選んだ後で次の状況が発生すると、問題に関する詳細情報を提供するメッセージが表示されます。
- 重複するユーザー属性を持つ入力パラメーターは許可されません。
- 使われていない入力パラメーターが見つかりました。 定義された入力パラメーターは、置換パターン テキストでそれぞれ使用される必要があります。
- 指定されたテスト正規表現入力が、指定された正規表現と一致しません。
- 置換パターンへのグループのソースが見つかりません。
SAML トークンへの UPN 要求の追加
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
要求は、SAML 制限付き要求セットの一部です。 カスタム署名キーが構成されている場合は、[属性と要求] セクションで追加できます。
カスタム署名キーが構成されていない場合は、「 SAML 制限付き要求セット」を参照してください。 Azure portal 内の [アプリの登録] を使用して、オプションの要求として追加できます。
[アプリの登録] でアプリケーションを開き、[Token configuration] (トークンの構成) を選んでから、[オプションの要求の追加] を選びます。 [SAML] トークンの種類を選んで、一覧から [UPN] を選び、[追加] をクリックしてトークンにクレームを追加します。
[属性と要求] セクションでカスタマイズを行うと、[アプリの登録] でオプションの要求を上書きできます。
条件に基づいてクレームを出力する
ユーザーの種類とユーザーが属するグループに基づいて、要求のソースを指定することができます。
ユーザーの種類は次のとおりです。
- 任意 - すべてのユーザーが、アプリケーションへのアクセスを許可されます。
- メンバー: テナントのネイティブ メンバー
- すべてのゲスト: Microsoft Entra ID の有無に関係なく、ユーザーは外部組織から引き継がれます。
- Microsoft Entra ゲスト: ゲスト ユーザーは、Microsoft Entra ID を使用する別の組織に属しています。
- 外部のゲスト: ゲスト ユーザーは、Microsoft Entra ID のない外部組織に属します。
ユーザーの種類が役立つのは、クレームのソースが、ゲストとアプリケーションにアクセスする従業員とで異なる場合です。 ユーザーが従業員である場合は NameID を user.email から取得するように指定できます。 ユーザーがゲストの場合は、NameID は user.extensionattribute1 から取得されます。
要求条件を追加するには、次の手順を行います。
- [要求の管理] で、要求条件を展開します。
- ユーザーの種類を選択します。
- ユーザーが属するグループを選択します。 特定のアプリケーションに対するすべての要求で、最大 50 個の一意のグループを選択できます。
- クレームの値が取得される [ソース] を選択します。 ソース属性のドロップダウンからユーザー属性を選択するか、またはユーザー属性に変換を適用することができます。 ディレクトリ スキーマ拡張機能を選択してから、クレームとして出力することもできます。
条件を追加する順序は重要です。 Microsoft Entra はまず、すべての条件をソース Attribute
で評価し、クレームでどの値を出力するかを決定するためにすべての条件をソース Transformation
で評価します。 ソースが同じ条件は、上から下に評価されます。 式と一致する最後の値がクレームに出力されます。 IsNotEmpty
や Contains
などの変換は、制限のように機能します。
たとえば、Britta Simon は Contoso テナントのゲスト ユーザーです。 Britta は、同様に Microsoft Entra ID を使用する別の組織に属しています。 Fabrikam アプリケーションが次のように構成されている場合、Britta が Fabrikam にサインインしようとすると、Microsoft ID プラットフォームで条件が評価されます。
最初に、Microsoft ID プラットフォームにより、Britta のユーザーの種類がすべてのゲストかどうかが確認されます。 種類が [すべてのゲスト] であるため、Microsoft ID プラットフォームは、クレームのソースを user.extensionattribute1
に割り当てます。 次に、Microsoft ID プラットフォームでは、Britta のユーザーの種類が Microsoft Entra ゲストかどうかを確認します。 種類が [すべてのゲスト] であるため、Microsoft ID プラットフォームは、クレームのソースを user.mail
に割り当てます。 最終的に、クレームは Britta の user.mail
の値を使って出力されます。
もう 1 つの例として、Britta Simon がサインインを試み、次の構成が使用される場合について考えてみます。 すべての条件は、最初に Attribute
のソースを使用して評価されます。 Britta のユーザーの種類は Microsoft Entra ゲストであるため、クレームのソースとして user.mail
が割り当てられます。 次に、変換が評価されます。 Britta はゲストなので、user.extensionattribute1
がクレームの新しいソースです。 Britta は Microsoft Entra ゲストに登録されているため、user.othermail
はこのクレームの新しいソースになりました。 最終的に、クレームは Britta の user.othermail
の値を使って出力されます。
最後の例として、Britta の user.othermail
が構成されていない場合、または空の場合にどうなるかを考えます。 どちらの場合も、条件の入力は無視され、クレームは代わりに user.extensionattribute1
にフォールバックします。
SAML クレームの詳細オプション
SAML2.0 アプリケーションで OIDC トークンと同じクレームを公開するように、クレームの詳細オプションを構成できます。また、SAML2.0 と OIDC の両方の応答トークンで同じクレーム使用するアプリケーションの場合は、その逆に構成できます。
クレームの詳細オプションは、[要求の管理] ブレードの [Advanced SAML Claims Options] (クレームの詳細オプション) の下にあるボックスをオンにすることで構成できます。
次の表は、アプリケーション用に構成できる他の詳細オプションの一覧です。
オプション | 説明 |
---|---|
発行者にアプリケーション ID を付加する | 発行者の要求にアプリケーション ID を自動的に追加します。 このオプションでは、同じアプリケーションのインスタンスが複数ある場合に、各インスタンスに対して一意の要求値が保証されます。 アプリケーションのカスタム署名キーが構成されていない場合、この設定は無視されます。 |
対象ユーザーのクレームをオーバーライドする | アプリケーションに送信された対象ユーザーのクレームのオーバーライドを許可します。 指定した値は有効な絶対 URI である必要があります。 アプリケーションのカスタム署名キーが構成されていない場合、この設定は無視されます。 |
属性名の形式を含める | 選んだ場合、アプリケーションの制限付き、コア、オプションのクレームに対する名前の形式を記述する NameFormat という属性が、Microsoft Entra ID によって追加されます。 詳細については、「要求のマッピング ポリシーのタイプ」を参照してください。 |