方法: エンタープライズ アプリケーションの SAML トークンで発行された要求のカスタマイズHow to: Customize claims issued in the SAML token for enterprise applications

現在 Azure Active Directory (Azure AD) では、Azure AD アプリ ギャラリーの事前統合済みアプリケーション、カスタム アプリケーションを含め、ほとんどのエンタープライズ アプリケーションでシングル サインオンをサポートしています。Today Azure Active Directory (Azure AD) supports single sign on with most enterprise applications, including both applications pre-integrated in the Azure AD app gallery as well as custom applications. ユーザーが Azure AD によって SAML 2.0 プロトコルを使ってアプリケーションに対して認証されると、Azure AD は、アプリケーションにトークンを送信します (HTTP POST 経由)。When a user authenticates to an application through Azure AD using the SAML 2.0 protocol, Azure AD sends a token to the application (via an HTTP POST). その後、アプリケーションがトークンを検証し、ユーザー名とパスワードの入力を求める代わりに、検証済みのトークンを使用してユーザーをログオンします。And then, the application validates and uses the token to log the user in instead of prompting for a username and password. これらの SAML トークンには、「要求」と呼ばれる、ユーザーに関する情報が含まれています。These SAML tokens contain pieces of information about the user known as "claims".

要求とは、そのユーザーに発行するトークンの中にあるユーザーに関する ID プロバイダーが提示した情報を指します。A claim is information that an identity provider states about a user inside the token they issue for that user. SAML トークンでは、通常、このデータは SAML 属性ステートメントに含まれています。In SAML token, this data is typically contained in the SAML Attribute Statement. ユーザーの一意の ID は通常、名前識別子とも呼ばれる SAML サブジェクトで表されます。The user’s unique ID is typically represented in the SAML Subject also called as Name Identifier.

既定では、Azure AD は、アプリケーションに対して、Azure AD でのユーザーのユーザー名 (ユーザー プリンシパル名とも呼ばれます) を値に持つ NameIdentifier 要求を含む SAML トークンを発行します。By default, Azure AD issues a SAML token to your application that contains a NameIdentifier claim, with a value of the user’s username (AKA user principal name) in Azure AD. この値によって、ユーザーを一意に識別できます。this value can uniquely identify the user. また、SAML トークンには、ユーザーの電子メール アドレス、姓名を含むその他の要求も含まれています。The SAML token also contains additional claims containing the user’s email address, first name, and last name.

アプリケーションに対して SAML トークンで発行された要求を表示または編集するには、Azure Portal でアプリケーションを開きます。To view or edit the claims issued in the SAML token to the application, open the application in Azure portal. その後、アプリケーションの [ユーザー属性] セクションの [その他のすべてのユーザー属性を表示および編集する] チェック ボックスをオンにします。Then select the View and edit all other user attributes checkbox in the User Attributes section of the application.

[ユーザー属性] セクション

SAML トークンで発行された要求を編集する必要がある理由は、2 つ考えられます。There are two possible reasons why you might need to edit the claims issued in the SAML token:

  • アプリケーションが、別の要求 URI または要求値のセットを必要とするように記述されている。The application has been written to require a different set of claim URIs or claim values.
  • NameIdentifier 要求が、Azure AD に格納されているユーザー名 (ユーザー プリンシパル名) 以外の何かであることを必要とする方法で、アプリケーションがデプロイされている。The application has been deployed in a way that requires the NameIdentifier claim to be something other than the username (AKA user principal name) stored in Azure AD.

既定の要求値のすべてを編集できます。You can edit any of the default claim values. SAML トークン属性のテーブルで要求の行を選びます。Select the claim row in the SAML token attributes table. [属性の編集] セクションが開き、要求の名前、値、および要求に関連付けられている名前空間を編集できます。This opens the Edit Attribute section and then you can edit claim name, value, and namespace associated with the claim.

ユーザー属性の編集

コンテキスト メニューを使って、要求 (NameIdentifier 以外) を削除することもできます。メニューを開くには、[...] アイコンをクリックします。You can also remove claims (other than NameIdentifier) using the context menu, which opens by clicking on the ... icon. [属性の追加] ボタンを使って、新しい要求を追加することもできます。You can also add new claims using the Add attribute button.

ユーザー属性の編集

NameIdentifier 要求の編集Editing the NameIdentifier claim

異なるユーザー名を使ってデプロイされたアプリケーションの問題を解決するには、[ユーザー属性] セクションの [ユーザー識別子] ドロップダウンを選択します。To solve the problem where the application has been deployed using a different username, select on the User Identifier drop down in the User Attributes section. この操作によって、複数のオプションがある次のダイアログが表示されます。This action provides a dialog with several different options:

ユーザー属性の編集

属性Attributes

NameIdentifier (または NameID) 要求の必要なソースを選択します。Select the desired source for the NameIdentifier (or NameID) claim. 次のオプションから選択できます。You can select from the following options.

NameName 説明Description
電子メールEmail ユーザーのメール アドレスThe email address of the user
userprincipalNameuserprincipalName ユーザーのユーザー プリンシパル名 (UPN)The user principal name (UPN) of the user
onpremisessamaccountonpremisessamaccount オンプレミスの Azure AD から同期された SAM アカウント名SAM account name that has been synced from on-premises Azure AD
objectIDobjectID Azure AD でのユーザーの objectIDThe objectID of the user in Azure AD
EmployeeIDEmployeeID ユーザーの EmployeeIDThe EmployeeID of the user
ディレクトリ拡張機能Directory extensions Azure AD Connect 同期を使用してオンプレミスの Active Directory から同期されたディレクトリ拡張機能Directory extensions synced from on-premises Active Directory using Azure AD Connect Sync
拡張属性 1 ~ 15Extension Attributes 1-15 Azure AD のスキーマを拡張するために使用されるオンプレミスの 拡張機能属性On-premises extension attributes used to extend the Azure AD schema

変換Transformations

特別な要求変換関数を使用することもできます。You can also use the special claims transformations functions.

関数Function 説明Description
ExtractMailPrefix()ExtractMailPrefix() メール アドレス、SAM アカウント名、またはユーザー プリンシパル名からドメイン サフィックスを除去します。Removes the domain suffix from either the email address, SAM account name, or the user principal name. これにより、渡されたユーザー名の最初の部分のみが抽出されます (例: joe_smith@contoso.com ではなく "joe_smith" のみ)。This extracts only the first part of the user name being passed through (for example, "joe_smith" instead of joe_smith@contoso.com).
join()join() 属性を検証済みドメインと結合します。Joins an attribute with a verified domain. 選択したユーザー ID 値にドメインが含まれる場合、ユーザー名が抽出されて、選択された検証済みドメインが追加されます。If the selected user identifier value has a domain, it will extract the username to append the selected verified domain. たとえば、ユーザー ID 値としてメール アドレス (joe_smith@contoso.com) を選択し、検証済みドメインとして contoso.onmicrosoft.com を選択した場合、結果は joe_smith@contoso.onmicrosoft.com になります。For example, if you select the email (joe_smith@contoso.com) as the user identifier value and select contoso.onmicrosoft.com as the verified domain, this will result in joe_smith@contoso.onmicrosoft.com.
ToLower()ToLower() 選択した属性の文字を小文字に変換します。Converts the characters of the selected attribute into lowercase characters.
ToUpper()ToUpper() 選択した属性の文字を大文字に変換します。Converts the characters of the selected attribute into uppercase characters.

要求の追加Adding claims

要求を追加する場合は、属性の名前を指定できます (SAML 仕様とは異なり、URI パターンに厳密に従う必要はありません)。When adding a claim, you can specify the attribute name (which doesn’t strictly need to follow a URI pattern as per the SAML spec). ユーザー属性には、ディレクトリに格納されている値を設定します。Set the value to any user attribute that is stored in the directory.

ユーザー属性の追加

たとえば、ユーザーが所属している組織の部署 (営業部など) を要求として送信する必要があるとします。For example, you need to send the department that the user belongs to in their organization as a claim (such as, Sales). アプリケーションで予期されているように要求名を入力し、値として [user.department] を選びます。Enter the claim name as expected by the application, and then select user.department as the value.

注意

特定のユーザーに対し、選択された属性に格納されている値がない場合、その要求はトークンで発行されません。If for a given user there is no value stored for a selected attribute, then that claim is not being issued in the token.

ヒント

user.onpremisesecurityidentifieruser.onpremisesamaccountname は、Azure AD Connect ツールを使ってオンプレミスの Active Directory のユーザー データを同期する場合にのみサポートされます。The user.onpremisesecurityidentifier and user.onpremisesamaccountname are only supported when synchronizing user data from on-premises Active Directory using the Azure AD Connect tool.

制限付き要求Restricted claims

SAML には制限付きの要求がいくつかあります。There are some restricted claims in SAML. これらの要求を追加すると、Azure AD は要求を送信しません。If you add these claims, then Azure AD will not send these claims. SAML の制限付き要求は次のとおりです。Following are the SAML restricted claim set:

| <span data-ttu-id="ac766-177">要求の種類 (URI)</span><span class="sxs-lookup"><span data-stu-id="ac766-177">Claim type (URI)</span></span> |
| ------------------- |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/expiration |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/expired |
| http://schemas.microsoft.com/identity/claims/accesstoken |
| http://schemas.microsoft.com/identity/claims/openid2_id |
| http://schemas.microsoft.com/identity/claims/identityprovider |
| http://schemas.microsoft.com/identity/claims/objectidentifier |
| http://schemas.microsoft.com/identity/claims/puid |
| <span data-ttu-id="ac766-178">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier[MR1]</span><span class="sxs-lookup"><span data-stu-id="ac766-178">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier[MR1]</span></span> |
| http://schemas.microsoft.com/identity/claims/tenantid |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstant |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationmethod |
| http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/identityprovider |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/groups |
| http://schemas.microsoft.com/claims/groups.link |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/role |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/wids |
| http://schemas.microsoft.com/2014/09/devicecontext/claims/iscompliant |
| http://schemas.microsoft.com/2014/02/devicecontext/claims/isknown |
| http://schemas.microsoft.com/2012/01/devicecontext/claims/ismanaged |
| http://schemas.microsoft.com/2014/03/psso |
| http://schemas.microsoft.com/claims/authnmethodsreferences |
| http://schemas.xmlsoap.org/ws/2009/09/identity/claims/actor |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/samlissuername |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/confirmationkey |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountname |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/primarygroupsid |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/primarysid |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authorizationdecision |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authentication |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarygroupsid |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlyprimarysid |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/denyonlywindowsdevicegroup |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsdeviceclaim |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsdevicegroup |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsfqbnversion |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/windowssubauthority |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsuserclaim |
| 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/groupsid |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/spn |
| http://schemas.microsoft.com/ws/2008/06/identity/claims/ispersistent |
| http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier |
| http://schemas.microsoft.com/identity/claims/scope |

次の手順Next steps