エンタープライズ アプリケーションの SAML トークンで発行された要求のカスタマイズ
Microsoft ID プラットフォームでは、Azure Active Directory (Azure AD) アプリケーション ギャラリー内のほとんどの事前統合済みアプリケーションとカスタム アプリケーションでのシングル サインオン (SSO) がサポートされています。 ユーザーが SAML 2.0 プロトコルを使って Microsoft ID プラットフォーム経由でアプリケーションに対する認証を行うと、Microsoft ID プラットフォームはアプリケーションにトークンを送信します。 アプリケーションはトークンを検証し、ユーザー名とパスワードの入力を求める代わりに、そのトークンを使ってユーザーをサインインさせます。
これらの SAML トークンには、"要求" と呼ばれる、ユーザーに関する情報が含まれています。 要求とは、そのユーザーに発行するトークンの中にあるユーザーに関する ID プロバイダーが提示した情報を指します。 SAML トークンでは、通常、"クレーム" のデータは SAML 属性ステートメントに含まれています。 ユーザーの一意の ID は、通常 SAML サブジェクトで表され、これは名前識別子 (nameID
) とも呼ばれます。
既定では、Microsoft ID プラットフォームにより、ユーザーを一意に識別できる Azure AD のユーザー名 (別名: ユーザー プリンシパル名) を値として持つ NameIdentifier
クレームを含む SAML トークンがアプリケーションに対して発行されます。 また、SAML トークンには、ユーザーのメール アドレスや姓名を含む他のクレームも含まれています。
クレームを表示または編集する
アプリケーションに対して SAML トークンで発行された要求を表示または編集するには、Azure Portal でアプリケーションを開きます。 次に、[属性とクレーム] セクションを開きます。
次の理由で、SAML トークンで発行された要求を編集することが必要な場合もあります。
- アプリケーションで、
NameIdentifier
要求またはnameID
要求が、Azure AD に格納されているユーザー名 (またはユーザー プリンシパル名) 以外のものである必要がある。 - アプリケーションが、別の要求 URI または要求値のセットを必要とするように記述されている。
nameID を編集する
nameID
(名前識別子の値) 要求を編集するには:
[名前識別子の値] ページを開きます。
属性または属性に適用する変換を選択します。 必要に応じて、
nameID
要求の形式を指定できます。
NameID の形式
特定の形式の NameIDPolicy
要素が SAML 要求に含まれている場合、Microsoft ID プラットフォームではその要求の形式が尊重されます。
SAML 要求に NameIDPolicy
要素が含まれていない場合は、ユーザーが指定した形式の nameID
が Microsoft ID プラットフォームによって発行されます。 形式を指定しないと、Microsoft ID プラットフォームでは、選択されたクレーム ソースに関連付けられている既定のソース形式が使われます。 変換の結果が null または無効な値になった場合、Azure AD によって 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 |
オンプレミスの Azure AD から同期された SAM アカウント名。 |
objectid |
Azure AD のユーザーのオブジェクト ID。 |
employeeid |
ユーザーの従業員 ID。 |
Directory extensions |
Azure AD Connect 同期を使用してオンプレミスの Active Directory から同期されたディレクトリ拡張機能。 |
Extension Attributes 1-15 |
Azure AD のスキーマを拡張するために使用されるオンプレミスの拡張機能属性。 |
pairwiseid |
永続的な形式のユーザー識別子。 |
識別子の値について詳しくは、このページで後述するソースごとの有効な ID 値の一覧を示す表を参照してください。
任意の定数 (静的な) 値を、Azure AD で定義されている任意のクレームに割り当てることができます。 次の手順を使用して、定数値を割り当ててください。
クレームを編集するには、Azure portal の [ユーザー属性とクレーム] セクションで [編集] を選びます。
変更する必要があるクレームを選びます。
組織に従って [ソース属性] に引用符を付けずに定数値を入力し、[保存] を選びます。
次の図で示すように定数値が表示されます。
ディレクトリ スキーマ拡張 (プレビュー)
Azure AD で、ディレクトリ スキーマ拡張属性を非条件付き/条件付き属性として構成することもできます。 次の手順を使用して、単一または複数値のディレクトリ スキーマ拡張属性をクレームとして構成します。
クレームを編集するには、Azure portal の [ユーザー属性とクレーム] セクションで [編集] を選びます。
[新しいクレームの追加] を選択するか、既存のクレームを編集します。
アプリケーション ピッカーから、拡張プロパティが定義されているソース アプリケーションを選択します。
[追加] を選択して、選択内容をクレームに追加します。
- [保存] をクリックして、変更をコミットします。
特別なクレームの変換
特別なクレームの変換関数を使用できます。
機能 | 説明 |
---|---|
ExtractMailPrefix() | メール アドレスまたはユーザー プリンシパル名からドメイン サフィックスを除去します。 この関数は、渡されたユーザー名の最初の部分のみを抽出します (例: joe_smith@contoso.com ではなく "joe_smith")。 |
ToLower() | 選択した属性の文字を小文字に変換します。 |
ToUpper() | 選択した属性の文字を大文字に変換します。 |
アプリケーション固有のクレームを追加する
アプリケーション固有の要求を追加するには:
- [ユーザー属性とクレーム] で、[新しいクレームの追加] を選択して [ユーザー クレームの管理] ページを開きます。
- クレームの [名前] を入力します。 値は、SAML 仕様の URI パターンに厳密に従う必要はありません。URI パターンが必要な場合は、 [名前空間] フィールドに追加することができます。
- クレームの値が取得される [ソース] を選択します。 ソース属性のドロップダウンからユーザー属性を選択するか、または要求として生成する前にユーザー属性に変換を適用することができます。
要求の変換
ユーザー属性に変換を適用するには、次の手順を行います。
[要求の管理] で、要求ソースとして [変換] を選択して、 [変換の管理] ページを開きます。
変換ドロップダウンから関数を選択します。 選択した関数に応じて、変換で評価するパラメーターと定数値を指定します。
適切なラジオ ボタンをクリックして、属性のソースを選択します。 ディレクトリ スキーマ拡張ソースは現在プレビュー段階です。
属性名をドロップダウンから選択します。
[ソースを複数値として扱います] は、変換をすべての値または最初の値のみのどちらに適用する必要があるかを示すチェックボックスです。 既定では、変換は複数値クレームの最初の要素にのみ適用されます。このチェックボックスをオンにすると、すべてに適用されます。 このチェックボックスは、複数の値を持つ属性に対してのみ有効になります (例:
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 (入力) : user.email Value: "@contoso.com" Parameter 2 (出力): user.email Parameter 3 (一致しない場合の出力): user.userprincipalname |
EndWith() | 入力が指定した値で終わっている場合、属性または定数を出力します。 一致しない場合は、別の出力を指定できます。 たとえば、ユーザーの従業員 ID が "000" で終わっている場合は従業員 ID を値とするクレームを出力し、それ以外の場合は拡張属性を出力するものとします。 この関数を実行するには、次の値を構成します。 Parameter 1 (入力) : user.employeeid 値: "000" Parameter 2 (出力): user.employeeid Parameter 3 (一致しない場合の出力): user.extensionattribute1 |
StartWith() | 入力が指定した値で始まっている場合、属性または定数を出力します。 一致しない場合は、別の出力を指定できます。 たとえば、国や地域が "US" で始まっている場合はユーザーの従業員 ID を値とするクレームを出力し、それ以外の場合は拡張属性を出力するものとします。 この関数を実行するには、次の値を構成します。 Parameter 1 (入力) : user.country 値: "US" Parameter 2 (出力): user.employeeid Parameter 3 (一致しない場合の出力): 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 (入力): user.employeeid Parameter 2 (出力): user.extensionattribute1 Parameter 3 (一致しない場合の出力): user.employeeid |
IfNotEmpty() | 入力が null または空ではない場合、属性または定数を出力します。 たとえば、特定のユーザーの従業員 ID が空でない場合に、拡張属性に格納されている属性を出力したいとします。 この関数を実行するには、次の値を構成します。 Parameter 1 (入力): user.employeeid Parameter 2 (出力): user.extensionattribute1 |
Substring() - 固定長 (プレビュー) | 指定した位置にある文字から始まる文字列要求の種類の一部が抽出され、指定した文字数が返されます。 SourceClaim - 実行する必要がある変換のクレーム ソース。 StartIndex - このインスタンス内の substring の 0 から始まる開始文字位置。 Length - substring の文字の長さ。 次に例を示します。 sourceClaim - PleaseExtractThisNow StartIndex - 6 Length - 11 出力: ExtractThis |
Substring() - EndOfString (プレビュー) | 指定した位置にある文字から始まる文字列要求の種類の一部が抽出され、指定した開始インデックスから要求の残りが返されます。 SourceClaim - 実行する必要がある変換のクレーム ソース。 StartIndex - このインスタンス内の substring の 0 から始まる開始文字位置。 次に例を示します。 sourceClaim - PleaseExtractThisNow StartIndex - 6 出力: ExtractThisNow |
RegexReplace() (プレビュー) | RegexReplace() 変換は、入力パラメーターとして次を受け入れます。 - パラメーター1:正規表現入力としてのユーザー属性 - ソースを複数値として信頼するオプション ‐正規表現パターン ‐置換パターン。 置換パターンには、正規表現出力グループを指す参照、および追加の入力パラメーターと共に、静的テキスト形式を含めることができます。 RegexReplace() 変換の使用方法の詳細については、この記事で後ほど説明します。 |
他の変換が必要な場合は、Azure AD のフィードバック フォーラムの "SaaS アプリケーション" カテゴリで、アイデアをお送りください。
正規表現ベースのクレーム変換
次の画像は、変換の第 1 レベルの例を示したものです。
次の表では、変換の第 1 レベルに関する情報を示します。 表に示されているアクションは、前の画像のラベルに対応しています。 クレーム変換ブレードを開くには、[編集] を選びます。
アクション | フィールド | 説明 |
---|---|---|
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 番目のレベルに関する情報を示します。 表に示されているアクションは、前の画像のラベルに対応しています。
アクション | フィールド | 説明 |
---|---|---|
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" に選ばれたユーザー属性の値が [正規表現パターン] テキスト ボックスで指定されている正規表現と一致する場合にのみ評価されます。 一致しない場合は、既定のクレーム値がトークンに追加されます。 入力パラメーター値に対して正規表現を検証するには、変換ブレード内でテスト エクスペリエンスを使用できます。 このテスト エクスペリエンスはダミー値でのみ動作します。 追加の入力パラメーターを使うと、実際の値ではなく、パラメーターの名前がテスト結果に追加されます。 テスト セクションにアクセスするには、[テスト変換] を選びます。 |
次の図は、変換のテストの例を示したものです。
次の表では、変換のテストに関する情報を示します。 表に示されているアクションは、前の画像のラベルに対応しています。
アクション | フィールド | 説明 |
---|---|---|
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 制限付きクレーム セットの一部なので、[属性とクレーム] セクションでは追加できません。 回避策として、Azure portal 内の [アプリの登録] を使用して、オプションの要求として追加できます。
[アプリの登録] でアプリケーションを開き、[Token configuration] (トークンの構成) を選んでから、[オプションの要求の追加] を選びます。 [SAML] トークンの種類を選んで、一覧から [UPN] を選び、[追加] をクリックしてトークンにクレームを追加します。
条件に基づいてクレームを出力する
ユーザーの種類とユーザーが属するグループに基づいて、要求のソースを指定することができます。
ユーザーの種類は次のとおりです。
- 任意 - すべてのユーザーが、アプリケーションへのアクセスを許可されます。
- メンバー: テナントのネイティブ メンバー
- すべてのゲスト: ユーザーは、Azure AD の有無にかかわらず、外部の組織から移行します。
- AAD ゲスト: ゲスト ユーザーは、Azure AD を使用する別の組織に属します。
- 外部のゲスト: ゲスト ユーザーは、Azure AD のない外部組織に属します。
ユーザーの種類が役立つのは、クレームのソースが、ゲストとアプリケーションにアクセスする従業員とで異なる場合です。 ユーザーが従業員である場合は NameID を user.email から取得するように指定できます。 ユーザーがゲストの場合は、NameID は user.extensionattribute1 から取得されます。
要求条件を追加するには、次の手順を行います。
- [要求の管理] で、要求条件を展開します。
- ユーザーの種類を選択します。
- ユーザーが属するグループを選択します。 特定のアプリケーションに対するすべての要求で、最大 50 個の一意のグループを選択できます。
- クレームの値が取得される [ソース] を選択します。 ソース属性のドロップダウンからユーザー属性を選択するか、またはユーザー属性に変換を適用することができます。 ディレクトリ スキーマ拡張 (プレビュー) を選択してから、クレームとして出力することもできます。
条件を追加する順序は重要です。 Azure AD はまず、すべての条件をソース Attribute
で評価し、クレームでどの値を出力するかを決定するためにすべての条件をソース Transformation
で評価します。 ソースが同じ条件は、上から下に評価されます。 式と一致する最後の値がクレームに出力されます。 IsNotEmpty
や Contains
などの変換は、制限のように機能します。
たとえば、Britta Simon は Contoso テナントのゲスト ユーザーです。 Britta は、同様に Azure AD を使用する別の組織に属しています。 Fabrikam アプリケーションが次のように構成されている場合、Britta が Fabrikam にサインインしようとすると、Microsoft ID プラットフォームで条件が評価されます。
最初に、Microsoft ID プラットフォームにより、Britta のユーザーの種類がすべてのゲストかどうかが確認されます。 種類が [すべてのゲスト] であるため、Microsoft ID プラットフォームは、クレームのソースを user.extensionattribute1
に割り当てます。 次に、Microsoft ID プラットフォームにより、Britta のユーザーの種類が AAD ゲストかどうかが確認されます。 種類が [すべてのゲスト] であるため、Microsoft ID プラットフォームは、クレームのソースを user.mail
に割り当てます。 最終的に、クレームは Britta の user.mail
の値を使って出力されます。
もう 1 つの例として、Britta Simon がサインインを試み、次の構成が使用される場合について考えてみます。 Azure AD はまず、すべての条件をソース Attribute
で評価します。 Britta のユーザー タイプは AAD ゲストのため、クレームのソースとして user.mail
が割り当てられます。 次に、変換が Azure AD によって評価されます。 Britta はゲストなので、user.extensionattribute1
がクレームの新しいソースです。 Britta は AAD ゲストのため、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 という属性が、Azure Active Directory によって追加されます。 詳細については、「要求のマッピング ポリシーのタイプ」を参照してください。 |