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

現在 Azure Active Directory では、Azure AD アプリ ギャラリーの事前統合済みアプリケーション、カスタム アプリケーションを含め、ほとんどのエンタープライズ アプリケーションでシングル サインオンをサポートしています。Today Azure Active Directory 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 用語で「要求」とは、そのユーザーに発行するトークンの中にあるユーザーに関する ID プロバイダーが提示した情報を指します。In identity-speak, 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 Active Directory は、アプリケーションに対して、Azure AD でのユーザーのユーザー名 (ユーザー プリンシパル名とも呼ばれます) を値に持つ NameIdentifier 要求を含む SAML トークンを発行します。By default, Azure Active Directory 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 Active Directory に格納されているユーザー名 (ユーザー プリンシパル名) 以外の何かであることを必要とする方法で、アプリケーションがデプロイされている。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 Active Directory.

既定の要求値のすべてを編集できます。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, click on the User Identifier drop down in the User Attributes section. この操作によって、複数のオプションがある次のダイアログが表示されます。This action provides a dialog with several different options:


ドロップダウンで [user.mail] を選んで、NameIdentifier 要求をディレクトリ内のユーザーのメール アドレスに設定します。In the drop-down, select user.mail to set the NameIdentifier claim to be the user’s email address in the directory. オンプレミスの Azure AD から同期されているユーザーの SAM アカウント名に設定する場合は、[user.onpremisessamaccountname] を選びます。Or, select user.onpremisessamaccountname to set to the user’s SAM Account Name that has been synced from on-premises Azure AD.

特殊な ExtractMailPrefix() 関数を使って、メール アドレス、SAM アカウント名、またはユーザー プリンシパル名から、ドメイン サフィックスを削除することもできます。You can also use the special ExtractMailPrefix() function to remove 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() 関数も追加されています。We have now also added the join() function to join the verified domain with the user identifier value. [ユーザー識別子] で join() 関数を選ぶときは、最初にメール アドレスやユーザー プリンシパル名などのユーザー識別子を選び、2 番目のドロップダウン リストで検証済みのドメインを選びます。when you select the join() function in the User Identifier First select the user identifier as like email address or user principal name and then in the second drop-down select your verified domain. 検証済みドメインでメール アドレスを選ぶと、Azure AD は最初の値からユーザー名を抽出し (joe_smith@contoso.com から joe_smith)、それに contoso.onmicrosoft.com を追加します。If you select the email address with the verified domain, then Azure AD extracts the username from the first value joe_smith from joe_smith@contoso.com and appends it with contoso.onmicrosoft.com. 次の例を参照してください。See the following example:


要求の追加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="faa9b-153">要求の種類 (URI)</span><span class="sxs-lookup"><span data-stu-id="faa9b-153">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="faa9b-154">http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier[MR1]</span><span class="sxs-lookup"><span data-stu-id="faa9b-154">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