Microsoft Graph を呼び出すためのアクセス トークンの取得Get access tokens to call Microsoft Graph

Microsoft Graph を呼び出すために、アプリは Microsoft のクラウド ID サービス Azure Active Directory (Azure AD) からアクセス トークンを取得する必要があります。アクセス トークンには、アプリとアプリに付与されているアクセス許可に関する情報 (要求) が含まれています (このアクセス許可は、Microsoft Graph を通じて利用できるリソースと API に対応するものです)。アクセス トークンを取得するためには、アプリを Azure AD で認証できるようにすることと、そのアプリが必要とする Microsoft Graph リソースへのアクセスをユーザーまたは管理者が承認することが必要です。To call Microsoft Graph, your app must acquire an access token from Azure Active Directory (Azure AD), Microsoft's cloud identity service. The access token contains information (or claims) about your app and the permissions it has for the resources and APIs available through Microsoft Graph. To get an access token, your app must be able to authenticate with Azure AD and be authorized by either a user or an administrator for access to the Microsoft Graph resources it needs.

ここでは、アクセス トークンと Azure AD の概要、およびアプリでアクセス トークンを取得する方法について説明します。トークンを取得するためのアプリと Azure AD との統合について既に詳しく理解している場合は、「次の手順」までスキップして、Microsoft Graph に固有の情報とサンプルを参照してください。This topic provides an overview of access tokens, Azure AD, and how your app can get access tokens. If you are already familiar with integrating an app with Azure AD to get tokens, then you can skip ahead to Next Steps for information and samples specific to Microsoft Graph.

重要: 条件付きアクセス ポリシーの Microsoft Graph への適用方法は変更されています。Important: How conditional access policies apply to Microsoft Graph is changing. 条件付きアクセス ポリシーが構成されるシナリオを処理するよう、アプリケーションを更新する必要があります。Applications need to be updated to handle scenarios where conditional access policies are configured. 詳細およびガイダンスについては、「Azure Active Directory の条件付きアクセスについての開発者ガイド」を参照してください。For more information and guidance, see Developer Guidance for Azure Active Directory Conditional Access.

アクセス トークンの内容と使用方法についてWhat is an access token and how do I use it?

Azure AD から発行されるアクセス トークンは、Base 64 でエンコードされた JSON Web トークン (JWT) です。これに含まれている情報 (要求) は、呼び出し元の検証と、呼び出し元が要求している操作を実行するための適切なアクセス許可が付与されていることの確認のために、Azure AD によって保護されている Web API (Microsoft Graph など) が使用します。Microsoft Graph の呼び出し時には、アクセス トークンを不透明なものとして扱うことができます。アクセス トークンは、常にトランスポート層セキュリティ (HTTPS) などのセキュリティで保護されたチャネルを通じて送信する必要があります。Access tokens issued by Azure AD are base 64 encoded JSON Web Tokens (JWT). They contain information (claims) that web APIs secured by Azure AD, like Microsoft Graph, use to validate the caller and to ensure that the caller has the proper permissions to perform the operation they're requesting. When calling Microsoft Graph, you can treat access tokens as opaque. You should always transmit access tokens over a secure channel, such as transport layer security (HTTPS).

次に、Azure AD アクセス トークンの例を示します。Here's an example of an Azure AD access token:

EwAoA8l6BAAU7p9QDpi/D7xJLwsTgCg3TskyTaQAAXu71AU9f4aS4rOK5xoO/SU5HZKSXtCsDe0Pj7uSc5Ug008qTI+a9M1tBeKoTs7tHzhJNSKgk7pm5e8d3oGWXX5shyOG3cKSqgfwuNDnmmPDNDivwmi9kmKqWIC9OQRf8InpYXH7NdUYNwN+jljffvNTewdZz42VPrvqoMH7hSxiG7A1h8leOv4F3Ek/oeJX6U8nnL9nJ5pHLVuPWD0aNnTPTJD8Y4oQTp5zLhDIIfaJCaGcQperULVF7K6yX8MhHxIBwek418rKIp11om0SWBXOYSGOM0rNNN59qNiKwLNK+MPUf7ObcRBN5I5vg8jB7IMoz66jrNmT2uiWCyI8MmYDZgAACPoaZ9REyqke+AE1/x1ZX0w7OamUexKF8YGZiw+cDpT/BP1GsONnwI4a8M7HsBtDgZPRd6/Hfqlq3HE2xLuhYX8bAc1MUr0gP9KuH6HDQNlIV4KaRZWxyRo1wmKHOF5G5wTHrtxg8tnXylMc1PKOtaXIU4JJZ1l4x/7FwhPmg9M86PBPWr5zwUj2CVXC7wWlL/6M89Mlh8yXESMO3AIuAmEMKjqauPrgi9hAdI2oqnLZWCRL9gcHBida1y0DTXQhcwMv1ORrk65VFHtVgYAegrxu3NDoJiDyVaPZxDwTYRGjPII3va8GALAMVy5xou2ikzRvJjW7Gm3XoaqJCTCExN4m5i/Dqc81Gr4uT7OaeypYTUjnwCh7aMhsOTDJehefzjXhlkn//2eik+NivKx/BTJBEdT6MR97Wh/ns/VcK7QTmbjwbU2cwLngT7Ylq+uzhx54R9JMaSLhnw+/nIrcVkG77Hi3neShKeZmnl5DC9PuwIbtNvVge3Q+V0ws2zsL3z7ndz4tTMYFdvR/XbrnbEErTDLWrV6Lc3JHQMs0bYUyTBg5dThwCiuZ1evaT6BlMMLuSCVxdBGzXTBcvGwihFzZbyNoX+52DS5x+RbIEvd6KWOpQ6Ni+1GAawHDdNUiQTQFXRxLSHfc9fh7hE4qcD7PqHGsykYj7A0XqHCjbKKgWSkcAg==

Microsoft Graph を呼び出す場合は、アクセス トークンをベララー トークンとして HTTP 要求の Authorization ヘッダーに添付します。その例として、サインインしているユーザーのプロファイル情報を返す呼び出しを示します (読みやすくするために、アクセス トークンは切り詰められています)。To call Microsoft Graph, you attach the access token as a Bearer token to the Authorization header in an HTTP request. For example, here's a call that returns the profile information of the signed-in user (the access token has been truncated for readability):

HTTP/1.1
Authorization: Bearer EwAoA8l6BAAU ... 7PqHGsykYj7A0XqHCjbKKgWSkcAg==
Host: graph.microsoft.com`
GET https://graph.microsoft.com/v1.0/me/

Microsoft Graph のアクセス許可とはWhat are Microsoft Graph permissions?

Microsoft Graph は、制御対象のリソースに対して、きめ細かい豊富なアクセス許可のセットを公開しています。このアクセス許可は文字列として表現され、アプリに Microsoft Graph のリソース (ユーザー、グループ、ユーザー メールなど) へのアクセスを許可します。次に例を示します。Microsoft Graph exposes a rich set of granular permissions over the resources it controls. These permissions are expressed as strings and grant apps access to Microsoft Graph resources like users, groups, user mail, etc. For example:

  • User.Read は、サインインしているユーザーのプロファイルをアプリで読み取れるようにします。User.Read allows an app to read the profile of the signed-in user.
  • Mail.Send は、サインインしているユーザーの代わりにアプリでメールを送信できるようにします。Mail.Send allows an app to send mail on behalf of the signed-in user.

アクセス許可には 2 つの種類があります。There are two types of permissions:

  • 委任されたアクセス許可は、ユーザーの存在によって実行するアプリに使用します。ユーザーの特権は、ユーザーの代わりに Microsoft Graph を呼び出すアプリに委任されます。このようなアクセス許可の多くはユーザーが同意できますが、管理者の同意が必要になるものもあります。Delegated permissions are used by apps that run with a user present. The user's privileges are delegated to the app which makes calls on behalf of the user to Microsoft Graph. Many of these permissions can be consented to by a user, but others require administrator consent.
  • アプリケーションのアクセス許可は、ユーザーなしで実行するアプリに使用します。これに該当するものは、アプリに組織内で広範な特権を付与することが多く、常に管理者の同意が必要になります。Application permissions are used by apps that run without a user. These often grant an app broad privileges within an organization and always require the consent of an administrator.

Microsoft Graph のアクセス許可の完全なリスト、および委任されたアクセス許可とアプリケーションのアクセス許可の相違点については、「アクセス許可のリファレンス」を参照してください。For a complete list of Microsoft Graph permissions, as well as the differences between delegated and application permissions, see the Permissions reference.

アプリのアクセス トークンを取得する場所Where does my app get an access token?

アプリは、Microsoft のクラウド ID サービス Azure Active Directory (Azure AD) からアクセス トークンを取得します。アクセス トークンを取得するために、アプリは OAuth 2.0 と OpenID Connect 1.0 の仕様で定義されている業界標準のプロトコルを使用して、HTTP 要求および応答を Azure AD と交換します。このプロトコルにより、Azure AD での安全な認証とアクセス トークンの取得にアプリが使用する Azure AD エンドポイントとエンドポイントとの交換 (認証フロー) 記述します。Your app gets access tokens from Azure Active Directory (Azure AD), Microsoft's cloud identity service. To get an access token, your app exchanges HTTP requests and responses with Azure AD using industry-standard protocols defined in the OAuth 2.0 and OpenID Connect 1.0 specifications. These protocols describe the Azure AD endpoints and exchanges with them -- or authentication flows -- that your app uses to securely authenticate with Azure AD and get access tokens.

非常に単純なレベルでは、アプリはアクセス トークンを取得するために、次に示すエンドポイントと HTTP 要求を交換します。On a very simple level, to get an access token, your app exchanges HTTP requests with the following endpoints:

  • /authorize エンドポイントは、Azure AD での認証とアプリが必要とするアクセス許可への同意を得るために、アプリがユーザーを転送できるエンドポイントです。The /authorize endpoint, where your app can send a user to authenticate with Azure AD and consent to the permissions your app needs.
  • /token エンドポイントは、ユーザーの同意が得られたアプリがアクセス トークンを取得できるエンドポイントです。The /token endpoint where your app can get an access token once user consent has been granted.

(注 : これらの定義は固定されたものではありません。アプリが使用するプロトコルによって、/authorize エンドポイントから直接アクセス トークンを取得することも、/token エンドポイントで直接認証することもあります)。(Note: These definitions are not rigid. Depending on the protocol your app uses, it may get access tokens directly from the /authorize endpoint or it may authenticate directly with the /token endpoint.)

次に、Azure AD v2.0 で公開されている 1 セットの /authorize エンドポイントと /token エンドポイントの例を示します。Here's an example of one set of the /authorize and /token endpoints exposed by Azure AD v2.0:

https://login.microsoftonline.com/common/oauth2/v2.0/authorize
https://login.microsoftonline.com/common/oauth2/v2.0/token

Azure AD は、Azure AD と Azure AD v2.0 の 2 つのエンドポイントのセットを公開しています。これらの主な相違点は、Azure AD エンドポイントが職場または学校アカウント (Azure AD テナントに関連付けられたアカウント) のみをサポートし、Azure AD v2.0 が Microsoft アカウント (Live.com アカウントや outlook.com アカウントなど) もサポートしていることです。そのため、Azure AD エンドポイントを使用する場合は、アプリの対象が組織のみになりますが、Azure AD v2.0 の場合は対象が消費者と組織の両方になります。Azure AD exposes two sets of endpoints, Azure AD and Azure AD v2.0. The main difference between them is that Azure AD endpoint supports only work or school accounts (that is, accounts that are associated with an Azure AD tenant), while Azure AD v2.0 also supports Microsoft accounts like Live.com or outlook.com accounts. This means that if you use the Azure AD endpoint, your app can target only organizations, but with Azure AD v2.0 it can target both consumers and organizations.

Azure AD エンドポイントから得られるトークンは、Azure AD v2.0 エンドポイントから得られるトークンとの互換性がありません。そのため、実稼働に向けたアプリの作成を始める前に、どちらかのエンドポイントに決定しておく必要があります。Azure AD v2.0 エンドポイントのほうが新しく、機能の追加が続けられているため、いくつかの重要な制限があります。この制限は、実稼働のアプリに使用するエンドポイントを判断する際に考慮に入れる必要があります。詳細については、「Azure AD エンドポイントか Azure AD v2.0 エンドポイントかを決定する」を参照してください。Tokens from the Azure AD endpoint are not interchangeable with those from the Azure AD v2.0 endpoint, so before you begin work on an app for production, you must choose between the endpoints. Because the Azure AD v2.0 endpoint is newer and features are still being added, there are some important limitations that you need to factor into your decision about which endpoint to use for your app in production. For more information, see Deciding between the Azure AD and Azure AD v2.0 endpoints.

OAuth 2.0 と OpenID Connect の相違点についてWhat's the difference between OAuth 2.0 and OpenID Connect?

OAuth 2.0 は、認証プロトコルの 1 つです。これにより、アプリがアクセス トークンを取得する方法を定義します。つまり、Azure AD で直接認証してアクセス トークンを取得するか、Azure AD での認証とアプリが要求するアクセス許可の同意を得るためにユーザーをリダイレクトしてアクセス トークンを取得するかを定義します。最初のケースでは、アプリは、それ自体として Microsoft Graph の呼び出しに使用できるアクセス トークンを取得します。2 番目のケースでは、アプリは、ユーザーの代わりに Microsoft Graph の呼び出しに使用できるアクセス トークンを取得します。ただし、OAuth 2.0 の場合、アプリはユーザーに関する情報 (ユーザーがどのように Azure AD で認証されたかに関する情報) を受け取りません。OAuth 2.0 のフローは、多くの場合、既にユーザーの ID がわかっているモバイルやネイティブ アプリで使用されます。または、ユーザーの代わりではなく、アプリ自体の ID で Microsoft Graph を呼び出すバックグラウンド サービスやデーモンなどのアプリで使用されます。OAuth 2.0 is an authorization protocol. It defines how your app can get access tokens by authenticating directly with Azure AD or by redirecting a user to authenticate with Azure AD and consent to the permissions your app requests. In the first case, your app gets an access token that it can use to call Microsoft Graph as itself. In second case, your app gets an access token that it can use to call Microsoft Graph on behalf of a user. With OAuth 2.0, however, your app does not receive any information about the user or how they were authenticated by Azure AD. OAuth 2.0 flows are most often used by mobile or native apps, which already know the identity of the user; or by apps like background services or daemons, which call Microsoft Graph under their own identity and not on behalf of a user.

OpenID Connect は、OAuth 2.0 を拡張することで ID 層を提供しています。OpenID Connect の場合、アプリはアクセス トークンに加えて、ID トークンも Azure AD から取得できます。OpenID Connect の ID トークンには、ユーザーの ID と、そのユーザーが認証された方法および認証された場所についての要求が含まれています。OpenID Connect のフローは、通常、シングル ページ アプリ (SPA) を含む Web アプリで使用されます。このようなアプリは、アクセス トークンを要求したユーザーに応じて動作をカスタマイズする際に ID トークンを使用できます。また、多くの場合、Azure AD へのユーザーのサインインを外部に委託してシングル サインオン (SSO) のようなエクスペリエンスを可能にします。OpenID Connect extends OAuth 2.0 to provide an identity layer. With OpenID Connect, in addition to an access token, your app can also get an id token from Azure AD. OpenID Connect id tokens contain claims about the user's identity and details about how and where they were authenticated. OpenID Connect flows are typically used by web apps, including single page apps (SPAs). These apps can use the id token to customize their behavior for the user they've requested an access token for, and, in many cases, will outsource sign-in of their users to Azure AD and enable experiences like Single Sign-on (SSO).

Microsoft Graph を呼び出せるアプリの種類についてWhat kind of apps can I call Microsoft Graph from?

Microsoft Graph は、次に示す種類のアプリから呼び出せます。You can call Microsoft Graph from the following kinds of apps:

  • ネイティブ アプリ: デスクトップ、タブレット、携帯電話などのデバイス上で実行するアプリ。こうしたアプリは、ユーザー プレゼンテーションに iOS、Android、Windows などのデバイスにネイティブなオペレーティング システム (OS) を使用し、ユーザーの代わりに Microsoft Graph を呼び出します。Native apps: Apps that run on a device such as a desktop, tablet, or mobile phone. These apps use the operating system (OS) native to the device like iOS, Android, or Windows for user presentation and to make calls to Microsoft Graph on behalf of a user.
  • Web アプリ: サーバー上で実行し、ユーザー エージェント (通常は Web ブラウザー) を通じてサインインしているユーザーと対話するアプリ。プレゼンテーション層のほとんどはサーバーで処理され、Microsoft Graph への呼び出しはユーザーの代わりにサーバー側で実行されます。Web apps: Apps that run on a server and interact with the signed-in user through a user-agent, usually a web browser. Most of the presentation layer is handled on the server, and calls to Microsoft Graph are made from the server-side on behalf of a user.
  • シングル ページ アプリ (SPA): ブラウザーのクライアント側スクリプトで大部分のプレゼンテーション層を処理する上質なユーザー エクスペリエンスを備えた Web アプリケーション。Microsoft Graph の呼び出しは、クライアント側のスクリプト (AJAX などのテクノロジと Angular.js などのフレームワークを使用) から実行します。ユーザーの代わりに呼び出しが実行されます。Single Page Apps (SPA): Web apps with rich user experiences that handle much of the presentation layer through client-side scripting in the browser. Calls to Microsoft Graph are made from client-side script using technologies like AJAX and frameworks like Angular.js. Calls are made on behalf of a user.
  • バックグラウンド サービス/デーモン: ユーザーの存在なしでサーバー上で実行し、独自の ID で Microsoft Graph を呼び出すバックグラウンド サービスとデーモン。Background Services/Daemons: Background services and daemons that run on a server without the presence of a user and make calls to Microsoft Graph under their own identity.
  • Web API: クライアント アプリは、ユーザーの代わりに Web API (Azure AD でセキュリティ保護された API) を呼び出して、この API が Microsoft Graph を呼び出すます。Azure AD エンドポイントでサポートされています。Azure AD v2.0 エンドポイントについては、クライアントと Web API が同じアプリケーション ID を持つ場合にのみサポートされます (たとえば、Web API バック エンドを呼び出すネイティブ アプリなど)。Web APIs: A client app calls a web API (secured by Azure AD), which then calls Microsoft Graph, all on behalf of a user. Supported by the Azure AD endpoint. For the Azure AD v2.0 endpoint, only supported if the client and the web API have the same Application ID; for example, a native app that calls a web API back end.

アプリで Azure AD および Microsoft Graph と対話する方法How do I get my app talking to Azure AD and Microsoft Graph?

アプリで Azure AD からトークンを取得するには、まず、そのアプリを登録しておく必要があります。Azure AD v2.0 エンドポイントの場合は、アプリの登録に Microsoft アプリ登録ポータルを使用します。Azure AD エンドポイントの場合は、Azure ポータルを使用します。この登録では、アプリと Azure AD を統合して、アプリがトークンを取得する位置と ID を設定します。その内容は次のとおりです。Before your app can get a token from Azure AD, it must be registered. For the Azure AD v2.0 endpoint, you use the Microsoft App Registration Portal to register your app. For the Azure AD endpoint, you use the Azure portal. Registration integrates your app with Azure AD and establishes the coordinates and identifiers that it uses to get tokens. These are:

  • アプリケーション ID:Azure AD によって割り当てられる一意識別子。Application ID: A unique identifier assigned by Azure AD.
  • リダイレクト URI/URL: アプリが Azure AD からの応答を受け取る 1 つ以上のエンドポイント (ネイティブ アプリとモバイル アプリの場合は、Azure AD によって割り当てられる URI になります)。Redirect URI/URL: One or more endpoints at which your app will receive responses from Azure AD. (For native and mobile apps this is a URI assigned by Azure AD.)
  • アプリケーション シークレット: アプリが Azure AD での認証に使用するパスワードまたは公開鍵/秘密鍵のペア (ネイティブ アプリまたはモバイル アプリの場合は不要です)。Application Secret: A password or a public/private key pair that your app uses to authenticate with Azure AD. (Not needed for native or mobile apps.)

Azure AD エンドポイントを使用するアプリの場合は、Microsoft Graph のアクセス許可を事前構成しておく必要もあります。これは、アプリの登録時に必要になります。Azure AD v2.0 エンドポイントを使用するアプリの場合は、アクセス許可の事前構成が必要なことも不要なこともあります。For apps that use the Azure AD endpoint, you'll also pre-configure the Microsoft Graph permissions that your app needs during registration. For apps that use the Azure AD v2.0 endpoint, you may or may not need to pre-configure permissions.

登録時には構成済みのプロパティが通信で使用されます。たとえば、次に示すトークン要求の場合、client_idアプリケーション IDredirect_uri はアプリの登録済リダイレクト URI の 1 つ、client_secretアプリケーション シークレットです。The properties configured during registration are used on the wire. For example, in the following token request: client_id is the Application ID, redirect_uri is one of your app's registered Redirect URIs, and client_secret is the Application Secret.

// Line breaks for legibility only

POST /common/oauth2/v2.0/token HTTP/1.1
Host: https://login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&scope=user.read%20mail.read
&code=OAAABAAAAiL9Kn2Z27UubvWFPbm0gLWQJVzCTE9UkP3pSx1aXxUjq3n8b2JRLk4OxVXr...
&redirect_uri=http%3A%2F%2Flocalhost%2Fmyapp%2F
&grant_type=authorization_code
&client_secret=JqQX2PNo9bpM0uEihUPzyrh    // NOTE: Only required for web apps

利用可能な認証ライブラリについてAre there authentication libraries available?

ほとんどの開発者と同じように、Azure AD との対話式操作を管理するために、認証ライブラリを使用することになります。認証ライブラリは、開発者からプロトコルの詳細の多く (検証、Cookie の処理、トークンのキャッシュ、安全な接続の維持など) を取り除き、アプリの開発に集中できるようにします。Microsoft は、Azure AD エンドポイントと Azure AD v2.0 エンドポイントの両方に対応したオープン ソースのクライアント ライブラリとサーバー ミドルウェアを公開しています。Like most developers, you will probably use authentication libraries to manage your interactions with Azure AD. Authentication libraries abstract many protocol details, like validation, cookie handling, token caching, and maintaining secure connections, away from the developer and let you focus your development on your app. Microsoft publishes open source client libraries and server middleware for both the Azure AD and Azure AD v2.0 endpoints.

Azure AD v2.0 エンドポイント: For the Azure AD v2.0 endpoint:

  • Microsoft Authentication Library (MSAL) クライアント ライブラリは、.NET、JavaScript、Android、および Objective-c で利用できます。すべてのプラットフォームが実稼働対応のプレビューであり、大きな変更が導入されていますが、Microsoft によりアップグレードの経路が保証されています。Microsoft Authentication Library (MSAL) client libraries are available for .NET, JavaScript, Android, and Objective-c. All platforms are in production-supported preview, and, in the event breaking changes are introduced, Microsoft guarantees a path to upgrade.
  • Microsoft のサーバー ミドルウェアは、.NET コアと ASP.NET (OWIN OpenID Connect および OAuth)、および Node.js (Microsoft Azure AD Passport.js) で利用できます。Server middleware from Microsoft is available for .NET core and ASP.NET (OWIN OpenID Connect and OAuth) and for Node.js (Microsoft Azure AD Passport.js).
  • v2.0 エンドポイントには、多数のサード パーティ製認証ライブラリとの互換性があります。The v2.0 endpoint is compatible with many third-party authentication libraries.

Microsoft クライアント ライブラリ、Microsoft サーバー ミドルウェア、および互換性のあるサード パーティ製ライブラリの完全なリストについては、「Azure Active Directory v2.0 認証ライブラリ」を参照してください。For a complete list of Microsoft client libraries, Microsoft server middleware, and compatible third-party libraries, see Azure Active Directory v2.0 authentication libraries.

Azure AD エンドポイント: For the Azure AD endpoint:

  • Active Directory Authentication Library (ADAL) クライアント ライブラリは、より多くのプラットフォームで使用できます。Active Directory Authentication Library (ADAL) client libraries are available on a slightly larger number of platforms.
  • Microsoft によるサーバー ミドルウェアは、.NET コアと ASP.NET、および Node.js で使用できます。Server middleware from Microsoft is available for .NET core and ASP.NET, as well as Node.js.

Microsoft クライアント ライブラリとサーバー ミドルウェアの完全なリストについては、「Azure Active Directory 認証ライブラリ」を参照してください。For a complete list of Microsoft client libraries and server middleware, see Azure Active Directory Authentication Libraries.

Azure AD エンドポイントか Azure AD v2.0 エンドポイントかを決定するDeciding between the Azure AD and Azure AD v2.0 endpoints

Azure AD は、2 つのエンドポイントのセット Azure AD と Azure AD v2.0 を公開しています。Microsoft Graph を呼び出す際に使用するアクセス トークンは、このエンドポイントで取得できます。それぞれのエンドポイントから受け取ったトークンには、互換性がありません。Microsoft Graph のサンプルを実行する場合や機能を調べる場合には、Azure AD エンドポイントを選択しておけば特に問題はありません。ただし、実稼働アプリの開発を始める場合は、まず、目的のシナリオに最適なエンドポイントがどちらになるかを決定する必要があります。次に、この決定の際に役立つ一般的なガイドラインのいくつかを示しますが、最新の包括的な情報については、Azure Active Directory ドキュメントの「v2.0 エンドポイントの使用が適しているかどうかを判断するには」を参照する必要があります。Azure AD exposes two sets of endpoints, Azure AD and Azure AD v2.0, where you can get access tokens to use when you call Microsoft Graph. Tokens received from each endpoint are not interchangeable. To run samples or explore the functionality of Microsoft Graph, your choice of Azure AD endpoints is not critical. However, before you begin development on a production app, you need to decide which endpoint makes the best sense for your scenario. The following discussion provides some general guidelines that you can use to help make your decision, but for the most current and comprehensive information you must see Should I use the v2.0 endpoint? in the Azure Active Directory documentation.

Azure AD と Azure AD v2.0 の主な相違点は次のとおりです。The main difference between Azure AD and Azure AD v2.0 is that:

  • Azure AD は、職場または学校アカウントのみをサポートします。このアカウントは、Azure AD テナントに関連付けられているものです。これは、アプリの対象が組織のみになることを意味します。Azure AD supports only work or school accounts; that is, accounts that are associated with an Azure AD tenant. This means that your app can target only organizations.
  • Azure AD v2.0 は、職場と学校アカウントと、Microsoft アカウント (live.com アカウントや outlook.com アカウントなど) の両方をサポートします。これは、アプリの対象が v2.0 エンドポイントを使用する消費者と組織の両方になることを意味します。Azure AD v2.0 supports both work and school accounts and Microsoft accounts like live.com or outlook.com accounts. This means that your app can target both consumers and organizations using the v2.0 endpoint.

Azure AD v2.0 いくつかの追加的な利点があります。次に例を示します。There are some additional advantages with Azure AD v2.0. For example:

  • アプリでは、複数のプラットフォームに 1 つのアプリケーション ID を使用できます。これにより、開発者と管理者は、アプリの管理が簡単になります。Your app can use a single Application ID for multiple platforms. This simplifies app management for both developers and administrators.
  • 動的同意と増分同意をサポートしています。この機能により、アプリは、ユーザーに同意を求める要求とアプリに必要な機能を組み合わせて、実行時に追加のアクセス許可を要求できるようになります。これにより、最初のサインイン時にアクセス許可の長大なリストに同意を求めるものよりも快適なエクスペリエンスをユーザーに提供できます。Support for dynamic and incremental consent. With this feature your app can request additional permissions during runtime, pairing the request for the user's consent with the functionality that requires it. This provides a much more comfortable experience for users than having to consent to a long list of permissions when they sign-in for the first time.

Azure AD v2.0 は Azure AD よりも新しく、機能の追加が続けられているため、v2.0 エンドポイントにはいくつかの制限があります。エンドポイントを決定する際には、この制限を考慮に入れる必要があります。次に例を示します。Because Azure AD v2.0 is newer than Azure AD and features are still being added, there are some limitations with the v2.0 endpoint that you need to factor into your decision. For example:

  • 一部の機能は、まだ v2.0 では完全に実装されていません。たとえば、エンタープライズのお客様がモバイル セキュリティ機能 (デバイスへの条件付きアクセスなど) をオンにすると、アプリが動作しなくなることがあります。Some features may not yet be fully implemented in v2.0. For example, your app might not work if your enterprise customer turns on enterprise mobility security features like conditional device access.
  • クラウド ソリューション プロバイダー アプリは呼び出せません。You cannot call Cloud Solution provider apps.
  • フェデレーション テナントの統合 Windows 認証はサポートされていません。このため、フェデレーション Azure AD テナントのユーザーは、オンプレミスの Active Directory インスタンスでの自動認証ができなくなります。ユーザーは、自分の資格情報を再入力する必要があります。Windows integrated authentication for federated tenants is not supported. This means that users of federated Azure AD tenants cannot silently authenticate with their on-premises Active Directory instance. They will have to re-enter their credentials.

Azure AD v2.0 エンドポイントと Azure AD エンドポイントの相違点の詳細については、「v2.0 エンドポイントの変更点」を参照してください。For more information about differences between the Azure AD v2.0 endpoint and the Azure AD endpoint, see What's different about the v2.0 endpoint?.

重要Important

実稼働用のアプリを開発するときには、使用するエンドポイントを決定する前に、v2.0 エンドポイントの使用が適しているかどうかに関する記事を参照してください。Before you make a decision about which endpoint to use when developing an app for production, see Should I use the v2.0 endpoint?.

次のステップNext steps

アプリの登録が済むと、開始準備は完了です。After you've registered your app, you're ready to get started!

  • ユーザーの代わりに Microsoft Graph を呼び出すアプリのアクセス トークンを取得する簡単な手順については、「ユーザーの代わりにアクセスを取得」を参照してください。For quick steps on getting an access token for apps that call Microsoft Graph on behalf of a user, see Get access on behalf of users.
  • ユーザーなしで Microsoft Graph を呼び出すアプリのアクセス トークンを取得する簡単な手順については、「ユーザーなしでアクセスを取得」を参照してください。For quick steps on getting an access token for apps that call Microsoft Graph without a user, see Get access without a user.
  • Microsoft Graph で使用可能なアクセス許可を確認する場合は、「アクセス許可」を参照してください。To see the permissions that you can use with Microsoft Graph, see Permissions.
  • Microsoft Graph によるパートナー管理型顧客データへのアクセスについて Microsoft クラウド ソリューション プロバイダーに興味がある場合は、「アプリケーション アクセスの管理 (CSP)」を参照してください。If you're a Microsoft Cloud Solution provider interested in accessing partner-managed customer data through Microsoft Graph, see Manage app access (CSPs).

コードの作成準備が整ったら、次に示すリソースを使用できるようになります。これらのリソースは、Azure AD による認証と承認をアプリに実装する際に役立ちます。If you're ready to jump into code, you can use the following resources to help you implement authentication and authorization with Azure AD in your app.

Microsoft Graph のトレーニングとサンプルMicrosoft Graph training and samples

すぐに使い始めることができるように、さまざまなプラットフォーム上で API を認証して使用する方法を示した、一連のトレーニング モジュールとその他のリソースを作成しました。To help you get started quickly, we’ve created a series of training modules and other resources that show you how to authenticate and use the API on a variety of platforms.

  • 概要のページで、お好みのプラットフォーム向けのライブラリ、サンプル、トレーニング コンテンツなどのリソースを見つけてください。Use the Get started page to find the libraries, samples, training content, and other resources for your favorite platform.
  • お使いのプラットフォーム向けに構成済みのサンプルをすぐに実行するには、「Microsoft Graph のクイック スタート」を参照してください。To get running quickly with a preconfigured sample for your platform, see the Microsoft Graph Quick Start.
  • GitHub では Microsoft Graph サンプルを公開しています。See our Microsoft Graph samples on GitHub.

Azure Active Directory のサンプルとドキュメントAzure Active Directory samples and documentation

Azure AD のドキュメントには、特に Azure AD での認証と承認に焦点を合わせた記事とサンプルが含まれています。The Azure AD documentation contains articles and samples that specifically focus on authentication and authorization with Azure AD.

Azure AD v2.0 エンドポイント: For the Azure AD v2.0 endpoint:

  • 最も簡単な開始地点は、Azure AD v2.0 エンドポイントのドキュメントです。この記事には、概要、プロトコルに関するドキュメント、および各種プラットフォームに対応している入門記事へのリンクが記載されています。これらすべてのリンクは、開発するアプリの種類ごとに編成されています。The easiest place to start is in the Azure AD v2.0 endpoint documentation. This article contains links to overviews, protocol documentation and getting started articles for different platforms all organized by the type of app you're developing.
  • クライアントまたはサーバー認証ライブラリごとのサンプルについては、「Azure Active Directory v2.0 認証ライブラリ」を参照してください。For samples listed by client or server authentication library, see Azure Active Directory v2.0 Authentication Libraries.
  • また、プラットフォームごとの Azure AD サンプルは、「Azure のコード サンプル」で見つかります。Or you can explore Azure AD samples by platform in the Azure Code gallery. Note: you cannot qualify your search by endpoint version. 注意: エンドポイントのバージョンを検索条件にすることはできません。Note: you cannot qualify your search by endpoint version.

Azure AD エンドポイント: For the Azure AD endpoint:

  • 最も簡単な開始地点は、「開発者のための Azure Active Directory」です。この記事には、概要、プロトコルに関するドキュメント、および各種プラットフォームに対応した入門記事へのリンクが記載されています。これらのリンクは、開発するアプリの種類ごとに編成されています。The easiest place to start is in the Azure AD Developer's guide overview. This article contains links to overviews, protocol documentation, and getting started articles for different platforms organized by the type of app you're developing.
  • クライアントまたはサーバーの認証ライブラリごとのサンプルのリストについては、「Azure Active Directory 認証ライブラリ」を参照してください。For samples listed by client or server authentication library, see Azure Active Directory Authentication Libraries.
  • アプリの種類およびプラットフォームごとのサンプルのリストは、「Azure Active Directory のコード例」を参照してください。For samples listed by app type and platform, see Azure Active Directory Code Samples.
  • また、プラットフォームごとの Azure AD サンプルは、「Azure のコード サンプル」で見つかります。注意: エンドポイントのバージョンを検索条件にすることはできません。Or you can explore Azure AD samples by platform in the Azure Code gallery. Note: you cannot qualify your search by endpoint version.

関連項目See also