セキュリティ トークンSecurity tokens

一元化された ID プロバイダーは、世界中にいるユーザーが必ずしも企業のネットワークからサインインするわけではないアプリにとって特に役立ちます。A centralized identity provider is especially useful for apps that have users located around the globe who don't necessarily sign in from the enterprise's network. Microsoft ID プラットフォームではユーザーを認証し、セキュリティ トークン (アクセス トークンリフレッシュトークンID トークンなど) を提供します。The Microsoft identity platform authenticates users and provides security tokens, such as access tokens, refresh tokens, and ID tokens. セキュリティ トークンを使用すると、クライアント アプリケーションは、リソース サーバー上の保護されたリソースにアクセスできます。Security tokens allow a client application to access protected resources on a resource server.

アクセス トークン:アクセス トークンは、OAuth 2.0 フローの一部として承認サーバーによって発行されるセキュリティ トークンです。Access token: An access token is a security token that's issued by an authorization server as part of an OAuth 2.0 flow. これには、そのトークンの対象となるユーザーとリソースに関する情報が含まれています。It contains information about the user and the resource for which the token is intended. この情報を使用すると、Web API やその他の保護されたリソースにアクセスできます。The information can be used to access web APIs and other protected resources. アクセス トークンは、クライアント アプリにアクセス権を付与するためにリソースによって検証されます。Access tokens are validated by resources to grant access to a client app. Microsoft ID プラットフォームがアクセス トークンを発行する方法の詳細については、アクセス トークンに関するページを参照してください。To learn more about how the Microsoft identity platform issues access tokens, see Access tokens.

リフレッシュトークン: アクセス トークンは短時間しか有効でないため、承認サーバーでは、アクセス トークンが発行されると同時にリフレッシュトークンを発行する場合があります。Refresh token: Because access tokens are valid for only a short period of time, authorization servers will sometimes issue a refresh token at the same time the access token is issued. クライアント アプリケーションでは、必要に応じて、このリフレッシュトークンを新しいアクセス トークンに交換できます。The client application can then exchange this refresh token for a new access token when needed. Microsoft ID プラットフォームがリフレッシュトークンを使用してアクセス許可を取り消す方法の詳細については、「トークンの失効」を参照してください。To learn more about how the Microsoft identity platform uses refresh tokens to revoke permissions, see Token revocation.

ID トークン: ID トークンは、OpenID Connect フローの一部としてクライアント アプリケーションに送信されます。ID token: ID tokens are sent to the client application as part of an OpenID Connect flow. これらは、アクセス トークンの代わりに、またはアクセス トークンと共に送信できます。They can be sent alongside or instead of an access token. ID トークンは、ユーザーを認証するためにクライアントによって使用されます。ID tokens are used by the client to authenticate the user. Microsoft ID プラットフォームが ID トークンを発行する方法の詳細については、ID トークンに関するページを参照してください。To learn more about how the Microsoft identity platform issues ID tokens, see ID tokens.

注意

この記事では、OAuth2 プロトコルと OpenID Connect プロトコルで使用されるセキュリティ トークンについて説明します。This article discusses security tokens used by the OAuth2 and OpenID Connect protocols. 多くのエンタープライズ アプリケーションは、SAML を使用してユーザーを認証します。Many enterprise applications use SAML to authenticate users. SAML アサーションについては、Azure Active Directory SAML トークンのリファレンスに関するページを参照してください。For information on SAML assertions, see Azure Active Directory SAML token reference.

セキュリティ トークンを検証するValidate security tokens

トークンの検証は、そのトークンが生成されたアプリ、ユーザーをサインインさせた Web アプリ、または呼び出される Web API に任されています。It's up to the app for which the token was generated, the web app that signed in the user, or the web API being called to validate the token. トークンは、秘密キーを使用して承認サーバーによって署名されます。The token is signed by the authorization server with a private key. 承認サーバーでは、対応する公開キーを発行します。The authorization server publishes the corresponding public key. トークンを検証するために、アプリでは、承認サーバーの公開キーを使用して署名を検証することによって、その署名が秘密キーを使用して作成されたことを検証します。To validate a token, the app verifies the signature by using the authorization server public key to validate that the signature was created using the private key.

トークンは、限られた時間だけ有効になります。Tokens are valid for only a limited amount of time. 通常、承認サーバーでは、次のようなトークンのペアを提供します。Usually, the authorization server provides a pair of tokens, such as:

  • アクセス トークン。これは、アプリケーションまたは保護されたリソースにアクセスします。An access token, which accesses the application or protected resource.
  • リフレッシュトークン。これは、アクセス トークンが有効期限に近づいたとき、そのアクセス トークンを更新するために使用されます。A refresh token, which is used to refresh the access token when the access token is close to expiring.

アクセス トークンは、Authorization ヘッダーのベアラー トークンとして Web API に渡されます。Access tokens are passed to a web API as the bearer token in the Authorization header. アプリでは、承認サーバーにリフレッシュトークンを提供できます。An app can provide a refresh token to the authorization server. アプリへのユーザー アクセスが取り消されなかった場合、そのアプリには新しいアクセス トークンと新しいリフレッシュトークンが返されます。If the user access to the app wasn't revoked, it will get back a new access token and a new refresh token. ユーザーが退職する場合、この方法を使用して対処します。This is how the scenario of someone leaving the enterprise is handled. 承認サーバーでは、リフレッシュトークンを受信した場合、ユーザーが承認されなくなっていると別の有効なアクセス トークンを発行しません。When the authorization server receives the refresh token, it won't issue another valid access token if the user is no longer authorized.

JSON Web トークンと要求JSON Web Tokens and claims

Microsoft ID プラットフォームでは、要求 を含む JSON Web トークン (JWT) としてセキュリティ トークンを実装します。The Microsoft identity platform implements security tokens as JSON Web Tokens (JWTs) that contain claims. JWT はセキュリティ トークンとして使用されるため、この認証形式は JWT 認証 と呼ばれることがあります。Since JWTs are used as security tokens, this form of authentication is sometimes called JWT authentication.

要求では、一方のエンティティ (クライアント アプリケーション、リソース所有者など) に関するアサーションが、もう一方のエンティティ (リソース サーバーなど) に渡されます。A claim provides assertions about one entity, such as a client application or resource owner, to another entity, such as a resource server. 要求は、JWT 要求または JSON Web トークン要求と呼ばれることもあります。A claim might also be referred to as a JWT claim or a JSON Web Token claim.

要求は、トークン サブジェクトに関するファクトを中継する名前または値のペアです。Claims are name or value pairs that relay facts about the token subject. たとえば、ある要求に、承認サーバーによって認証されたセキュリティ プリンシパルに関するファクトが含まれていることがあります。For example, a claim might contain facts about the security principal that was authenticated by the authorization server. 特定のトークン内に存在する要求は、トークンの種類、サブジェクトを認証するために使用される資格情報の種類、アプリケーション構成など、多くのものによって異なります。The claims present in a specific token depend on many things, such as the type of token, the type of credential used to authenticate the subject, and the application configuration.

アプリケーションでは、次のようなさまざまなタスクのために要求を使用できます。Applications can use claims for various tasks, such as to:

  • トークンを検証する。Validate the token.
  • トークン サブジェクトのテナントを識別する。Identify the token subject's tenant.
  • ユーザー情報を表示する。Display user information.
  • サブジェクトの承認を判定する。Determine the subject's authorization.

要求は、次のような情報を提供するキーと値のペアで構成されます。A claim consists of key-value pairs that provide information such as the:

  • トークンを生成したセキュリティ トークン サーバー。Security Token Server that generated the token.
  • トークンが生成された日付。Date when the token was generated.
  • サブジェクト (ユーザーなど、デーモンを除く)。Subject (such as the user--except for daemons).
  • 対象ユーザー。これは、トークンが生成されたアプリです。Audience, which is the app for which the token was generated.
  • トークンを要求したアプリ (クライアント)。App (the client) that asked for the token. Web アプリの場合、このアプリは対象ユーザーと同じである可能性があります。In the case of web apps, this app might be the same as the audience.

Microsoft ID プラットフォームがトークンと要求の情報を実装する方法の詳細については、アクセス トークンおよびID トークンに関するページを参照してください。To learn more about how the Microsoft identity platform implements tokens and claim information, see Access tokens and ID tokens.

各フローがトークンとコードを生成する方法How each flow emits tokens and codes

クライアントの構築方法に応じて、Microsoft ID プラットフォームでサポートされている認証フローの 1 つ (または複数) を使用できます。Depending on how your client is built, it can use one (or several) of the authentication flows supported by the Microsoft identity platform. これらのフローでは、さまざまなトークン (ID トークン、リフレッシュトークン、アクセス トークン) と承認コードを生成できます。These flows can produce various tokens (ID tokens, refresh tokens, access tokens) and authorization codes. これらには、それ自体を機能させるための別のトークンが必要です。They require different tokens to make them work. 次の表は、その概要を示しています。This table provides an overview.

FlowFlow 必要Requires ID トークンID token アクセス トークンAccess token リフレッシュトークンRefresh token Authorization code (承認コード)Authorization code
承認コード フローAuthorization code flow xx xx xx xx
暗黙的なフローImplicit flow xx xx
ハイブリッド OIDC フローHybrid OIDC flow xx xx
リフレッシュトークンの使用Refresh token redemption リフレッシュトークンRefresh token xx xx xx
On-Behalf-Of フローOn-behalf-of flow アクセス トークンAccess token xx xx xx
クライアントの資格情報Client credentials x (アプリのみ)x (App only)

暗黙モードで発行されたトークンは、URL 経由でブラウザーに戻される (ここで、response_modequery または fragment) ため、長さに制限があります。Tokens issued via the implicit mode have a length limitation because they're passed back to the browser via the URL, where response_mode is query or fragment. 一部のブラウザーは、ブラウザー バーに表示できる URL のサイズに制限があるため、それが長すぎると失敗します。Some browsers have a limit on the size of the URL that can be put in the browser bar and fail when it's too long. その結果、これらのトークンに groups または wids 要求はありません。As a result, these tokens don't have groups or wids claims.

次のステップNext steps

Microsoft ID プラットフォームでの認証と承認の詳細については、次の記事を参照してください。For more information about authentication and authorization in the Microsoft identity platform, see the following articles: