要求のマッピング ポリシーの種類
Azure AD では、ポリシー オブジェクトは、組織の個々のアプリケーションまたはすべてのアプリケーションに適用される規則のセットを表します。 それぞれのポリシーの種類は、割り当てられているオブジェクトに適用されるプロパティのセットを含む一意の構造体を持ちます。
要求のマッピング ポリシーは、ポリシー オブジェクトの一種であり、これで、特定のアプリケーションに対して発行されたトークンに出力される要求を変更します。
要求セット
トークンで使用する方法とタイミングを定義する要求のセットがあります。
要求セット | 説明 |
---|---|
コア要求セット | ポリシーに関係なく、すべてのトークンに提示されます。 また、この要求は制限付きと見なされ、変更できません。 |
基本要求セット | コア要求セットの他にトークンに対して既定で出力される要求が含まれます。 要求のマッピング ポリシーを使用して、基本要求を省略したり変更したりすることができます。 |
制限付き要求セット | ポリシーを使用して変更することはできません。 データ ソースを変更できず、要求を生成するときに変換が適用されません。 |
このセクションのリスト*は次の通りです:
表 1:JSON Web トークン (JWT) 制限付き要求セット
注意
"xms_" で始まる要求は制限されます。
要求の種類 (名前) |
---|
. |
_claim_names |
_claim_sources |
aai |
access_token |
account_type |
acct |
acr |
acrs |
actor |
ageGroup |
aio |
altsecid |
amr |
app_chain |
app_displayname |
app_res |
appctx |
appctxsender |
appid |
appidacr |
at_hash |
auth_time |
azp |
azpacr |
c_hash |
ca_enf |
ca_policy_result |
capolids_latebind |
capolids |
cc |
cnf |
code |
controls_auds |
controls |
credential_keys |
ctry |
deviceid |
domain_dns_name |
domain_netbios_name |
e_exp |
endpoint |
enfpolids |
expires_on |
fido_auth_data |
fwd_appidacr |
fwd |
graph |
group_sids |
groups |
hasgroups |
haswids |
home_oid |
home_puid |
home_tid |
identityprovider |
idp |
idtyp |
in_corp |
instance |
inviteTicket |
ipaddr |
isbrowserhostedapp |
isViral |
login_hint |
mam_compliance_url |
mam_enrollment_url |
mam_terms_of_use_url |
mdm_compliance_url |
mdm_enrollment_url |
mdm_terms_of_use_url |
msproxy |
nameid |
nickname |
nonce |
oid |
on_prem_id |
onprem_sam_account_name |
onprem_sid |
openid2_id |
origin_header |
platf |
polids |
pop_jwk |
preferred_username |
primary_sid |
prov_data |
puid |
pwd_exp |
pwd_url |
rdp_bt |
refresh_token_issued_on |
refreshtoken |
rh |
roles |
rt_type |
scp |
secaud |
sid |
sid |
signin_state |
source_anchor |
src1 |
src2 |
sub |
target_deviceid |
tbid |
tbidv2 |
tenant_ctry |
tenant_display_name |
tenant_region_scope |
tenant_region_sub_scope |
thumbnail_photo |
tid |
tokenAutologonEnabled |
trustedfordelegation |
ttr |
unique_name |
upn |
user_setting_sync_url |
uti |
ver |
verified_primary_email |
verified_secondary_email |
vnet |
wamcompat_client_info |
wamcompat_id_token |
wamcompat_scopes |
wids |
xcb2b_rclient |
xcb2b_rcloud |
xcb2b_rtenant |
ztdid |
表 2:SAML 制限付き要求セット
次の表*に、制限付き要求*セット内で既定の SAML* クレーム*を示します。
要求の種類 (URI) |
---|
http://schemas.microsoft.com/2012/01/devicecontext/claims/ismanaged |
http://schemas.microsoft.com/2014/02/devicecontext/claims/isknown |
http://schemas.microsoft.com/2014/03/psso |
http://schemas.microsoft.com/2014/09/devicecontext/claims/iscompliant |
http://schemas.microsoft.com/claims/authnmethodsreferences |
http://schemas.microsoft.com/claims/groups.link |
http://schemas.microsoft.com/identity/claims/accesstoken |
http://schemas.microsoft.com/identity/claims/acct |
http://schemas.microsoft.com/identity/claims/agegroup |
http://schemas.microsoft.com/identity/claims/aio |
http://schemas.microsoft.com/identity/claims/identityprovider |
http://schemas.microsoft.com/identity/claims/objectidentifier |
http://schemas.microsoft.com/identity/claims/openid2_id |
http://schemas.microsoft.com/identity/claims/puid |
http://schemas.microsoft.com/identity/claims/tenantid |
http://schemas.microsoft.com/identity/claims/xms_et |
http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant |
http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod |
http://schemas.microsoft.com/ws/2008/06/identity/claims/expiration |
http://schemas.microsoft.com/ws/2008/06/identity/claims/groups |
http://schemas.microsoft.com/ws/2008/06/identity/claims/role |
http://schemas.microsoft.com/ws/2008/06/identity/claims/wids |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier |
http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname |
http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid |
http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname |
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn |
http://schemas.microsoft.com/ws/2008/06/identity/claims/role |
これらの要求*は既定では*制限されますが、AcceptMappedClaims プロパティ*の設定をtrue
アプリ マニフェスト*内に行うか、カスタム署名キー*を持っている場合は制限されません:
http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname
http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid
http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname
これらの要求*は既定では*制限されますが、カスタム署名キー*がある場合 は制限されません:
http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn
http://schemas.microsoft.com/ws/2008/06/identity/claims/role
要求のマッピング ポリシーのプロパティ
出力される要求内容とデータの送信元を制御するには、要求のマッピング ポリシーのプロパティを使用します。 ポリシーが設定されていない場合は、アプリケーションが受信するように選んだコア要求セット、基本要求セット、省略可能な要求を含むトークンが発行されます。
注意
コア要求セット内の要求については、このプロパティの設定に関係なく、すべてのトークンに提示されます。
Include 基本要求セット
文字列: IncludeBasicClaimSet
データ型: ブール値 (True または False)
概要: このプロパティは、基本要求セットが、このポリシーの影響を受けるトークンに含まれるかどうかを判断します。
- True に設定されている場合、基本要求セット内のすべての要求が、ポリシーの影響を受けるトークンに出力されます。
- False に設定されている場合、基本要求セット内の要求は、同じポリシーの要求スキーマ プロパティに個別に追加されない限り、トークンに追加されません。
要求スキーマ
文字列: ClaimsSchema
データ型: 1 つ以上の要求スキーマ エントリを含む JSON BLOB
概要: このプロパティは、基本要求セットやコア要求セットのほか、ポリシーの影響を受けるトークンにどの要求を提示するかを定義します。 このプロパティで定義されている要求スキーマ エントリごとに、特定の情報が必要です。 データのソース (Value、Source/ID ペア、またはSource/ExtensionID ペア) と、どの要求としてデータを出力するか (要求の種類) を指定します。
要求スキーマ エントリ要素
値: 値要素では、静的な値が、要求に出力されるデータとして定義されます。
SAMLNameFormat: SAML 名形式プロパティは、この要求の "NameFormat" 属性の値を指定します。 存在する場合、使用可能な値は次のとおりです。
- urn:oasis:names:tc:SAML:2.0:attrname-format:unspecified
- urn:oasis:names:tc:SAML:2.0:attrname-format:uri
- urn:oasis:names:tc:SAML:2.0:attrname-format:basic
ソース/ID ペア: ソース要素と ID 要素では、要求内のデータのソースが定義されます。
Source/ExtensionID ペア: Source と ExtensionID 要素は、要求内のデータのソースであるディレクトリ拡張属性を定義します。 詳細については、「要求でディレクトリ拡張属性を使用する」を参照してください。
ソース要素を次のいずれかの値に設定します。
- "user":要求のデータは、ユーザー オブジェクトのプロパティです。
- "application":要求のデータは、アプリケーション (クライアント) のサービス プリンシパルのプロパティです。
- "resource":要求のデータは、リソースのサービス プリンシパルのプロパティです。
- "audience":要求のデータは、トークン (クライアントかリソースのいずれかのサービス プリンシパル) の対象ユーザーであるサービス プリンシパルのプロパティです。
- "company":要求のデータは、リソース テナントの会社のオブジェクトのプロパティです。
- "transformation":要求のデータは、要求からの変換です (この記事の後述の「要求の変換」セクションを参照してください)。
ソースが transformation の場合、TransformationID 要素も、この要求の定義に含める必要があります。
ID 要素により、ソースのどのプロパティが要求の値を提供するかが特定されます。 次の表は、ソースの各値に対して有効な ID の値を示しています。
警告
現在、ユーザー オブジェクトで利用可能な複数値要求のソースは、AADConnect から同期された複数値の拡張属性のみです。 その他のプロパティ (OtherMails、タグなど) は複数値ではありますが、ソースとして選択されたときに生成される値は 1 つだけです。
表 3:ソースごとに有効な ID 値
source | id | 説明 |
---|---|---|
User | surname | surname |
User | givenname | 名 |
User | displayName | 表示名 |
User | objectid | ObjectID |
User | 電子メール アドレス | |
User | userprincipalname | ユーザー プリンシパル名 |
User | department | 部署 |
User | onpremisessamaccountname | オンプレミスの SAM のアカウント名 |
User | netbiosname | NetBios 名 |
User | dnsdomainname | DNS ドメイン名 |
User | onpremisesecurityidentifier | オンプレミスのセキュリティ ID |
User | companyname | 組織名 |
User | streetaddress | 番地 |
User | postalcode | 郵便番号 |
User | preferredlanguage | 優先言語 |
User | onpremisesuserprincipalname | オンプレミスの UPN |
User | mailNickname | メールのニックネーム |
User | extensionattribute1 | 拡張属性 1 |
User | extensionattribute2 | 拡張属性 2 |
User | extensionattribute3 | 拡張属性 3 |
User | extensionattribute4 | 拡張属性 4 |
User | extensionattribute5 | 拡張属性 5 |
User | extensionattribute6 | 拡張属性 6 |
User | extensionattribute7 | 拡張属性 7 |
User | extensionattribute8 | 拡張属性 8 |
User | extensionattribute9 | 拡張属性 9 |
User | extensionattribute10 | 拡張属性 10 |
User | extensionattribute11 | 拡張属性 11 |
User | extensionattribute12 | 拡張属性 12 |
User | extensionattribute13 | 拡張属性 13 |
User | extensionattribute14 | 拡張属性 14 |
User | extensionattribute15 | 拡張属性 15 |
User | othermail | その他のメール |
User | country | 国/リージョン |
User | city | City |
User | state | State |
User | jobtitle | 役職 |
User | employeeid | 従業員 ID |
User | facsimiletelephonenumber | ファックスの電話番号 |
User | assignedroles | ユーザーに割り当てられたアプリ ロールの一覧 |
ユーザー | accountEnabled | アカウント*は有効です |
ユーザー | consentprovidedforminor | 未成年者に対する同意 |
ユーザー | createddatetime | 作成日時 |
ユーザー | creationtype | 作成タイプ* |
ユーザー | lastpasswordchangedatetime | 前回のパスワード*変更日時 |
ユーザー | mobilephone | 携帯電話 |
ユーザー | officelocation | 事業所所在地 |
ユーザー | onpremisesdomainname | オンプレミスのドメイン名 |
ユーザー | onpremisesimmutableid | オンプレミスのイミュータブルな ID |
ユーザー | onpremisessyncenabled | オンプレミスの同期が有効 |
ユーザー | preferreddatalocation | 優先されるデータの場所 |
ユーザー | proxyaddresses | proxy-Addresses |
ユーザー | usertype | ユーザーの種類 |
ユーザー | telephonenumber | 勤務先電話番号/事務所の電話番号 |
アプリケーション、リソース、対象ユーザー | displayName | 表示名 |
アプリケーション、リソース、対象ユーザー | objectid | ObjectID |
アプリケーション、リソース、対象ユーザー | tags | サービス プリンシパル タグ |
[会社] | tenantcountry | テナントの国/リージョン |
TransformationID: TransformationID 要素は、ソース要素が "transformation" に設定されている場合にのみ指定する必要があります。
- この要素は、この要求のデータを生成する方法を定義する、ClaimsTransformation プロパティの変換エントリの ID 要素と一致する必要があります。
要求の種類:JwtClaimType 要素と SamlClaimType 要素は、この要求スキーマ エントリが、どの要求を参照するかを定義します。
- JwtClaimType には、JWT に出力する要求の名前を含める必要があります。
- SamlClaimType には、SAML トークンに出力する要求の URI を含める必要があります。
- onPremisesUserPrincipalName 属性: 代替 ID を使用する場合、オンプレミスの userPrincipalName 属性は Azure AD の onPremisesUserPrincipalName 属性と同期されます。 この属性は、代替 ID が構成されている場合にのみ使用できます。
注意
制限付き要求セット内の要求の名前と URI を、要求の種類の要素に使用することはできません。 詳細については、この記事の後述の「例外と制限事項」セクションを参照してください。
グループ フィルター
文字列: GroupFilter
データ型: JSON BLOB
概要: このプロパティを使用して、グループ要求に含めるユーザーのグループにフィルターを適用します。 これは、トークン サイズを減らす便利な方法です。
MatchOn:MatchOn プロパティは、フィルターを適用するグループ属性を識別します。
MatchOn プロパティは、次のいずれかの値に設定します。
- "displayname": グループの表示名。
- "samaccountname": オンプレミスの SAM アカウント名
Type:Type プロパティは、MatchOn プロパティによって選択された属性に適用するフィルターのタイプを選択します。
Type プロパティは、次のいずれかの値に設定します。
- "prefix": 指定された Value プロパティで MatchOn プロパティが始まるグループを含めます。
- "suffix": 指定された Value プロパティで MatchOn プロパティが終わるグループを含めます。
- "contains": 指定された Value プロパティが MatchOn プロパティに含まれるグループを含めます。
要求の変換
文字列: ClaimsTransformation
データ型: 1 つ以上の変換エントリを含む JSON BLOB
概要: このプロパティを使用して、共通の変換をソース データに適用し、要求スキーマで指定された要求の出力データを生成します。
ID: ID 要素を使用して、TransformationID 要求スキーマ エントリのこの変換エントリを参照します。 この値は、このポリシー内の変換エントリごとに一意である必要があります。
TransformationMethod: TransformationMethod 要素は、要求のデータを生成するときに実行される操作を特定します。
選択した方法に基づいて、一連の入力と出力が想定されます。 InputClaims 要素、InputParameters 要素、OutputClaims 要素を使用して入出力を定義します。
表 4:変換方法と想定される入出力
TransformationMethod | 想定される入力 | 想定される出力 | 説明 |
---|---|---|---|
Join | string1, string2, separator | outputClaim | 入力文字列の間に区切り記号を使用して、その文字列を結合します。 例: string1:"foo@bar.com" , string2:"sandbox" , separator:"." の結果は outputClaim:"foo@bar.com.sandbox" になります |
ExtractMailPrefix | 電子メールまたは UPN | 抽出された文字列 | ExtensionAttributes 1-15、または UPN やユーザーのメール アドレス値 (johndoe@contoso.com など) を格納するその他の任意のディレクトリ拡張。 メール アドレスのローカル部分を抽出します。 例: mail:"foo@bar.com" の結果は outputClaim:"foo" になります。 @ 記号がない場合、元の入力文字列がそのまま返されます。 |
InputClaims: InputClaims 要素を使用して、要求スキーマ エントリから変換にデータを渡します。 ClaimTypeReferenceId、TransformationClaimType、TreatAsMultiValue という 3 つの属性があります
- ClaimTypeReferenceId は要求スキーマ エントリの ID 要素と結合され、該当する入力要求を検索します。
- TransformationClaimType は、この入力に一意の名前を指定するときに使用されます。 この名前は、変換方法に対する想定される入力のいずれかと一致する必要があります。
- TreatAsMultiValue は、変換をすべての値に適用するか、最初の値のみに適用するかを示すブール値フラグです。 既定では、変換は複数値要求の最初の要素にのみ適用されます。この値を true に設定にすると、すべての要素に確実に適用されます。 ProxyAddresses とグループは、複数の値として扱う可能性が高い入力要求の 2 つの例です。
InputParameters: InputParameters 要素を使用して、定数値を変換に渡します。 この要素には 2 つの属性があります。Value と ID です。
- Value は、渡される実際の定数値です。
- ID は、入力に一意の名前を指定するときに使用されます。 この名前は、変換方法に対する想定される入力のいずれかと一致する必要があります。
OutputClaims: OutputClaims 要素を使用して、変換によって生成されたデータを保持し、そのデータを要求スキーマ エントリに関連付けます。 この要素には 2 つの属性があります。ClaimTypeReferenceId と TransformationClaimType です。
- ClaimTypeReferenceId は要求スキーマ エントリの ID と結合され、該当する出力要求を検索します。
- TransformationClaimType は、出力に一意の名前を指定するときに使用されます。 この名前は、変換方法に対する想定される出力のいずれかと一致する必要があります。
例外と制限事項
SAML NameID と UPN: NameID と UPN の値のソース属性と、許可される要求変換には、制限があります。 表 5 と表 6 を参照して、使用できる値を確認してください。
表 5:SAML NameID のデータ ソースとして許可されている属性
source | id | 説明 |
---|---|---|
User | 電子メール アドレス | |
User | userprincipalname | ユーザー プリンシパル名 |
User | onpremisessamaccountname | オンプレミスの Sam のアカウント名 |
User | employeeid | 従業員 ID |
User | telephonenumber | 勤務先電話番号/事務所の電話番号 |
User | extensionattribute1 | 拡張属性 1 |
User | extensionattribute2 | 拡張属性 2 |
User | extensionattribute3 | 拡張属性 3 |
User | extensionattribute4 | 拡張属性 4 |
User | extensionattribute5 | 拡張属性 5 |
User | extensionattribute6 | 拡張属性 6 |
User | extensionattribute7 | 拡張属性 7 |
User | extensionattribute8 | 拡張属性 8 |
User | extensionattribute9 | 拡張属性 9 |
User | extensionattribute10 | 拡張属性 10 |
User | extensionattribute11 | 拡張属性 11 |
User | extensionattribute12 | 拡張属性 12 |
User | extensionattribute13 | 拡張属性 13 |
User | extensionattribute14 | 拡張属性 14 |
User | extensionattribute15 | 拡張属性 15 |
表 6:SAML NameID の許可されている変換方法
TransformationMethod | 制限 |
---|---|
ExtractMailPrefix | なし |
Join | 結合されているサフィックスは、リソース テナントの確認済みドメインである必要があります。 |
アプリケーション ID 付きの発行者
文字列: issuerWithApplicationId
データ型: ブール値 (True または False)
概要: このプロパティを使用すると、発行者の要求にアプリケーション ID を追加できます。 同じアプリケーションの複数のインスタンスが、各インスタンスで一意の要求値を持っていることを確認します。 アプリケーションのカスタム署名キーが構成されていない場合、この設定は無視されます。
True
に設定した場合、ポリシーの影響を受けるトークンの発行者の要求にアプリケーション ID が追加されます。False
に設定した場合、ポリシーの影響を受けるトークンの発行者の要求にアプリケーション ID が追加されません。 (既定値)。
対象ユーザーのオーバーライド
文字列: audienceOverride
データ型: 文字列
概要: このプロパティを使用すると、アプリケーションに送信される対象ユーザーの要求をオーバーライドできます。 指定した値は有効な絶対 URI である必要があります。 アプリケーションのカスタム署名キーが構成されていない場合、この設定は無視されます。
次の手順
- PowerShell を使用して、テナント内の特定のアプリケーションのトークンに出力される要求をカスタマイズする方法については、「方法: テナント内の特定のアプリのトークンに出力される要求をカスタマイズする」を参照してください
- SAML トークンで発行された要求を Azure portal でカスタマイズする方法については、「方法: エンタープライズ アプリケーションの SAML トークンで発行された要求のカスタマイズ」を参照してください。
- 拡張属性の詳細については、「要求でディレクトリ拡張属性を使用する」をご覧ください。