Microsoft ID プラットフォームと OAuth 2.0 クライアント資格情報フローMicrosoft identity platform and the OAuth 2.0 client credentials flow

適用対象:Applies to:
  • Microsoft ID プラットフォーム エンドポイントMicrosoft identity platform endpoint

RFC 6749 に明記されている OAuth 2.0 クライアント資格情報の許可は、2 本足の OAuth とも呼ばれ、アプリケーションの ID を使用した Web ホストのリソースへのアクセスに使用できます。You can use the OAuth 2.0 client credentials grant specified in RFC 6749, sometimes called two-legged OAuth, to access web-hosted resources by using the identity of an application. この種類の許可は、バックグラウンドでの実行が必要なサーバー間の相互作用に使用され、ユーザーとの即時の相互動作は必要ありません。This type of grant is commonly used for server-to-server interactions that must run in the background, without immediate interaction with a user. これらのアプリケーションは、 "デーモン" または "サービス アカウント" と呼ばれます。These types of applications are often referred to as daemons or service accounts.

OAuth 2.0 クライアント資格情報付与フローでは、Web サービス (Confidential クライアント) が別の Web サービスを呼び出すときに、ユーザーを偽装する代わりに、独自の資格情報を使用して認証することができます。The OAuth 2.0 client credentials grant flow permits a web service (confidential client) to use its own credentials, instead of impersonating a user, to authenticate when calling another web service. このシナリオでは、クライアントは通常、中間層の Web サービス、デーモン サービス、または Web サイトです。In this scenario, the client is typically a middle-tier web service, a daemon service, or a web site. 高いレベルの保証では、Microsoft ID プラットフォームにより、呼び出し元サービスが、資格情報として (共有シークレットではなく) 証明書を使用することもできます。For a higher level of assurance, the Microsoft identity platform also allows the calling service to use a certificate (instead of a shared secret) as a credential.

注意

Microsoft ID プラットフォームのエンドポイントでは、すべての Azure AD シナリオや機能をサポートしているわけではありません。The Microsoft identity platform endpoint doesn't support all Azure AD scenarios and features. Microsoft ID プラットフォームのエンドポイントを使用する必要があるかどうかを判断するには、Microsoft ID プラットフォームの制限事項に関する記事を参照してください。To determine whether you should use the Microsoft identity platform endpoint, read about Microsoft identity platform limitations.

より一般的な 3 本足の OAuth では、特定のユーザーに代わり、クライアント アプリケーションにリソースへのアクセス許可が付与されます。In the more typical three-legged OAuth, a client application is granted permission to access a resource on behalf of a specific user. 通常、同意プロセス中に、アクセス許可はユーザーからアプリケーションに委任されます。The permission is delegated from the user to the application, usually during the consent process. ただし、クライアント資格情報 (two-legged OAuth) フローでは、アクセス許可はアプリケーション自体に直接付与されます。However, in the client credentials (two-legged OAuth) flow, permissions are granted directly to the application itself. アプリがリソースにトークンを提示する場合、リソースでは、ユーザーではなくアプリ自体がアクション実行の承認を行います。When the app presents a token to a resource, the resource enforces that the app itself has authorization to perform an action and not the user.

プロトコルのダイアグラムProtocol diagram

全体的なクライアント資格情報フローは、次の図のようになります。The entire client credentials flow looks similar to the following diagram. それぞれの手順については、この記事で後述します。We describe each of the steps later in this article.

クライアント資格情報フローを示す図

直接承認を取得するGet direct authorization

アプリは通常、次の 2 つの方法のいずれかで、直接承認を受信してリソースにアクセスします。An app typically receives direct authorization to access a resource in one of two ways:

これらの 2 つの方法は、Azure AD で最も一般的であり、クライアント資格情報フローを実行するクライアントとリソースに対して推奨されています。These two methods are the most common in Azure AD and we recommend them for clients and resources that perform the client credentials flow. リソースは、他の方法でそのクライアントを承認することもできます。A resource can also choose to authorize its clients in other ways. 各リソース サーバーでは、そのアプリケーションに最も適した方法を選択できます。Each resource server can choose the method that makes the most sense for its application.

アクセス制御リストAccess control lists

リソース プロバイダーは、アプリケーション (クライアント) ID 一覧に基づいて承認チェックを適用する場合があります。この一覧はリソース プロバイダーによって認識され、一定レベルのアクセス許可が付与されます。A resource provider might enforce an authorization check based on a list of application (client) IDs that it knows and grants a specific level of access to. リソースは Microsoft ID プラットフォーム エンドポイントからトークンを受け取るときに、トークンをデコードし、appidiss の要求からクライアント アプリケーション ID を抽出できます。When the resource receives a token from the Microsoft identity platform endpoint, it can decode the token and extract the client's application ID from the appid and iss claims. その後、リソースは、保持しているアクセス制御リスト (ACL) とアプリケーションを比較します。Then it compares the application against an access control list (ACL) that it maintains. ACL の粒度と方法は、リソース間で大幅に異なる場合があります。The ACL's granularity and method might vary substantially between resources.

一般的なユース ケースでは、ACL を使用して Web アプリケーションまたは Web API のテストを実行します。A common use case is to use an ACL to run tests for a web application or for a web API. Web API は、特定のクライアントに完全なアクセス許可のサブセットのみを与える可能性があります。The web API might grant only a subset of full permissions to a specific client. API でエンドツーエンド テストを実行するには、Microsoft ID プラットフォーム エンドポイントからトークンを取得し、次にそれらを API に送信する必要があるテスト クライアントを作成します。To run end-to-end tests on the API, create a test client that acquires tokens from the Microsoft identity platform endpoint and then sends them to the API. API は、API のすべての機能にフル アクセスを持つテスト クライアントのアプリケーション ID が ACL にあるかどうかを確認します。The API then checks the ACL for the test client's application ID for full access to the API's entire functionality. この種類の ACL を使用する場合、必ず呼び出し元の appid 値を検証するだけでなく、トークンの iss 値が信頼されていることも検証します。If you use this kind of ACL, be sure to validate not only the caller's appid value but also validate that the iss value of the token is trusted.

この種類の承認は、デーモンおよび個人の Microsoft アカウントを持つコンシューマー ユーザーが所有するデータにアクセスする必要があるサービス アカウントに共通しています。This type of authorization is common for daemons and service accounts that need to access data owned by consumer users who have personal Microsoft accounts. 組織が所有するデータでは、アプリケーションのアクセス許可を介して必要な承認を取得することをお勧めします。For data owned by organizations, we recommend that you get the necessary authorization through application permissions.

アプリケーションのアクセス許可Application permissions

ACL を使用する代わりに、API を使用してアプリケーションのアクセス許可のセットを公開することができます。Instead of using ACLs, you can use APIs to expose a set of application permissions. アプリケーションのアクセス許可は、組織の管理者によってアプリケーションに付与され、その組織と従業員が所有するデータにアクセスする場合にのみ使用されます。An application permission is granted to an application by an organization's administrator, and can be used only to access data owned by that organization and its employees. たとえば、Microsoft Graph は次の操作を行うアクセス許可を公開しています:For example, Microsoft Graph exposes several application permissions to do the following:

  • すべてのメールボックスのメールの読み取りRead mail in all mailboxes
  • すべてのメールボックスのメールの読み書きRead and write mail in all mailboxes
  • 任意のユーザーとしてのメールの送信Send mail as any user
  • ディレクトリ データの読み取りRead directory data

アプリケーションのアクセス許可の詳細については、Microsoft Graph を参照してください。For more information about application permissions, go to Microsoft Graph.

アプリケーションのアクセス許可をアプリで使用するには、以降のセクションで説明する手順に従います。To use application permissions in your app, follow the steps discussed in the next sections.

アプリケーション登録ポータルでアクセス許可を要求するRequest the permissions in the app registration portal

  1. 新しいアプリの登録 (プレビュー) エクスペリエンスによって、アプリを登録し、作成します。Register and create an app through the new App registrations (Preview) experience.
  2. アプリの登録 (プレビュー) エクスペリエンスで、アプリケーションに移動します。Go to your application in the App registrations (Preview) experience. トークンを要求するには少なくとも 1 つのクライアント シークレットが必要なため、 [証明書とシークレット] セクションに移動し、新しいクライアント シークレットを追加します。Navigate to the Certificates & secrets section, and add a new client secret, because you'll need at least one client secret to request a token.
  3. [API のアクセス許可] セクションを見つけて、アプリに必要な [アプリケーションのアクセス許可] を追加します。Locate the API permissions section, and then add the application permissions that your app requires.
  4. アプリの登録を保存します。Save the app registration.

通常、アプリケーションのアクセス許可を使用するアプリケーションを構築する場合は、アプリ側に管理者がアプリのアクセス許可を承認するページまたはビューが必要です。Typically, when you build an application that uses application permissions, the app requires a page or view on which the admin approves the app's permissions. このページは、アプリのサインイン フローやアプリの設定の一部にするか、専用の "接続" フローにすることができます。This page can be part of the app's sign-in flow, part of the app's settings, or it can be a dedicated "connect" flow. 多くの場合、職場または学校の Microsoft アカウントでユーザーがサインインした後にのみ、”接続" ビューが表示されます。In many cases, it makes sense for the app to show this "connect" view only after a user has signed in with a work or school Microsoft account.

ユーザーをアプリにサインインさせると、アクセス許可の承認をユーザーに依頼する前に、ユーザーが所属する組織を識別できます。If you sign the user into your app, you can identify the organization to which the user belongs to before you ask the user to approve the application permissions. 必須ではありませんが、ユーザーに向けたより直観的なエクスペリエンスの作成に役立ちます。Although not strictly necessary, it can help you create a more intuitive experience for your users. ユーザーをサインインさせるには、Microsoft ID プラットフォーム プロトコルのチュートリアルに従ってください。To sign the user in, follow our Microsoft identity platform protocol tutorials.

ディレクトリ管理者にアクセス許可を要求するRequest the permissions from a directory admin

組織の管理者にアクセス許可を要求する準備ができたら、Microsoft ID プラットフォームの管理者の同意エンドポイントにユーザーをリダイレクトできます。When you're ready to request permissions from the organization's admin, you can redirect the user to the Microsoft identity platform admin consent endpoint.

ヒント

を必ず置き換えてください)。Try executing this request in Postman! (最良の結果を得るには、ご自身のアプリ ID を使用してください。チュートリアル アプリケーションでは有用なアクセス許可は要求されません。)Postman でこの要求を実行してみる(Use your own app ID for best results - the tutorial application won't request useful permissions.) Try running this request in Postman

// Line breaks are for legibility only.

GET https://login.microsoftonline.com/{tenant}/adminconsent?
client_id=6731de76-14a6-49ae-97bc-6eba6914391e
&state=12345
&redirect_uri=http://localhost/myapp/permissions
// Pro tip: Try pasting the following request in a browser.
https://login.microsoftonline.com/common/adminconsent?client_id=6731de76-14a6-49ae-97bc-6eba6914391e&state=12345&redirect_uri=http://localhost/myapp/permissions
パラメーターParameter 条件Condition 説明Description
tenant 必須Required アクセス許可を要求するディレクトリ テナント。The directory tenant that you want to request permission from. これは GUID またはフレンドリ名の形式で指定できます。This can be in GUID or friendly name format. ユーザーが所属するテナントがわからず、任意のテナントでサインインを行う場合は、common を使用します。If you don't know which tenant the user belongs to and you want to let them sign in with any tenant, use common.
client_id 必須Required Azure portal の [アプリの登録] エクスペリエンスでアプリに割り当てられたアプリケーション (クライアント) IDThe Application (client) ID that the Azure portal – App registrations experience assigned to your app.
redirect_uri 必須Required 処理するアプリの応答の送信先となるリダイレクト URI。The redirect URI where you want the response to be sent for your app to handle. ポータルで登録したリダイレクト URI のいずれかと完全に一致させる必要があります (ただし、URL エンコードが必要であり、またその他のパスのセグメントがある場合があります)。It must exactly match one of the redirect URIs that you registered in the portal, except that it must be URL encoded, and it can have additional path segments.
state 推奨Recommended トークンの応答でも返される要求に含まれる値。A value that's included in the request that's also returned in the token response. 任意の文字列を指定することができます。It can be a string of any content that you want. この状態は、認証要求の前にアプリ内でユーザーの状態 (表示中のページやビューなど) に関する情報をエンコードする目的に使用されます。The state is used to encode information about the user's state in the app before the authentication request occurred, such as the page or view they were on.

現時点で、Azure AD では、テナント管理者のみがサインインして、要求を完了することができます。At this point, Azure AD enforces that only a tenant administrator can sign into complete the request. 管理者は、アプリケーション登録ポータルでユーザーがアプリに要求したすべての直接のアプリケーション アクセス許可への承認を求められます。The administrator will be asked to approve all the direct application permissions that you have requested for your app in the app registration portal.

成功応答Successful response

管理者がアプリケーションにアクセス許可を承認すると、成功応答は次のようになります。If the admin approves the permissions for your application, the successful response looks like this:

GET http://localhost/myapp/permissions?tenant=a8990e1f-ff32-408a-9f8e-78d3b9139b95&state=state=12345&admin_consent=True
パラメーターParameter 説明Description
tenant アプリケーションが要求したアクセス許可を GUID 形式で付与するディレクトリ テナント。The directory tenant that granted your application the permissions that it requested, in GUID format.
state 要求に含まれ、かつトークンの応答として返される値。A value that is included in the request that also is returned in the token response. 任意の文字列を指定することができます。It can be a string of any content that you want. この状態は、認証要求の前にアプリ内でユーザーの状態 (表示中のページやビューなど) に関する情報をエンコードする目的に使用されます。The state is used to encode information about the user's state in the app before the authentication request occurred, such as the page or view they were on.
admin_consent True に設定します。Set to True.
エラー応答Error response

管理者がアプリケーションにアクセス許可を承認しない場合、失敗した応答は次のようになります。If the admin does not approve the permissions for your application, the failed response looks like this:

GET http://localhost/myapp/permissions?error=permission_denied&error_description=The+admin+canceled+the+request
パラメーターParameter 説明Description
error エラーの種類を分類したりエラーに対処したりする際に使用できるエラー コード文字列。An error code string that you can use to classify types of errors, and which you can use to react to errors.
error_description エラーの根本的な原因を特定しやすいように記述した具体的なエラー メッセージ。A specific error message that can help you identify the root cause of an error.

エンドポイントをプロビジョニングしたアプリから成功応答を受信した後に、アプリは要求した直接のアプリケーション アクセス許可を獲得しています。After you've received a successful response from the app provisioning endpoint, your app has gained the direct application permissions that it requested. これで、必要なリソースのトークンを要求することができます。Now you can request a token for the resource that you want.

トークンを取得するGet a token

アプリケーションに必要な承認を獲得後、API のアクセス トークンの取得を開始します。After you've acquired the necessary authorization for your application, proceed with acquiring access tokens for APIs. クライアント資格情報の許可を使用してトークンを取得するには、次のように /token Microsoft ID プラットフォーム エンドポイントに POST 要求を送信します。To get a token by using the client credentials grant, send a POST request to the /token Microsoft identity platform endpoint:

ヒント

を必ず置き換えてください)。Try executing this request in Postman! (最良の結果を得るには、ご自身のアプリ ID を使用してください。チュートリアル アプリケーションでは有用なアクセス許可は要求されません。)Postman でこの要求を実行してみる(Use your own app ID for best results - the tutorial application won't request useful permissions.) Try running this request in Postman

最初のケース:共有シークレットを使ったアクセス トークン要求First case: Access token request with a shared secret

POST /{tenant}/oauth2/v2.0/token HTTP/1.1           //Line breaks for clarity
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

client_id=535fb089-9ff3-47b6-9bfb-4f1264799865
&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
&client_secret=qWgdYAmab0YSkuL1qKv5bPX
&grant_type=client_credentials
// Replace {tenant} with your tenant! 
curl -X POST -H "Content-Type: application/x-www-form-urlencoded" -d 'client_id=535fb089-9ff3-47b6-9bfb-4f1264799865&scope=https%3A%2F%2Fgraph.microsoft.com%2F.default&client_secret=qWgdYAmab0YSkuL1qKv5bPX&grant_type=client_credentials' 'https://login.microsoftonline.com/{tenant}/oauth2/v2.0/token'
パラメーターParameter 条件Condition 説明Description
tenant 必須Required GUID またはドメイン名形式で示すディレクトリ テナント。これに対してアプリケーションが動作する予定です。The directory tenant the application plans to operate against, in GUID or domain-name format.
client_id 必須Required お使いのアプリに割り当てられたアプリケーション ID。The application ID that's assigned to your app. アプリを登録したポータルで、この情報を確認できます。You can find this information in the portal where you registered your app.
scope 必須Required この要求の scope パラメーターに渡される値は、.default サフィックスが付いた目的のリソースのリソース識別子 (アプリケーション ID URI) である必要があります。The value passed for the scope parameter in this request should be the resource identifier (application ID URI) of the resource you want, affixed with the .default suffix. Microsoft Graph の場合は、値は https://graph.microsoft.com/.default です。For the Microsoft Graph example, the value is https://graph.microsoft.com/.default.
この値は、アプリ用に構成したすべての直接のアプリケーション アクセス許可のうち、目的のリソースに関連付けられたトークンを発行するように、Microsoft ID プラットフォーム エンドポイントに命じます。This value tells the Microsoft identity platform endpoint that of all the direct application permissions you have configured for your app, the endpoint should issue a token for the ones associated with the resource you want to use. /.default スコープの詳細については、同意に関するドキュメントを参照してください。To learn more about the /.default scope, see the consent documentation.
client_secret 必須Required アプリケーション登録ポータルでアプリ用に生成したクライアント シークレット。The client secret that you generated for your app in the app registration portal. クライアント シークレットは、送信前に URL エンコードされる必要があります。The client secret must be URL-encoded before being sent.
grant_type 必須Required client_credentials に設定する必要があります。Must be set to client_credentials.

2 番目のケース:証明書を使ったアクセス トークン要求Second case: Access token request with a certificate

POST /{tenant}/oauth2/v2.0/token HTTP/1.1               // Line breaks for clarity
Host: login.microsoftonline.com
Content-Type: application/x-www-form-urlencoded

scope=https%3A%2F%2Fgraph.microsoft.com%2F.default
&client_id=97e0a5b7-d745-40b6-94fe-5f77d35c6e05
&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer
&client_assertion=eyJhbGciOiJSUzI1NiIsIng1dCI6Imd4OHRHeXN5amNScUtqRlBuZDdSRnd2d1pJMCJ9.eyJ{a lot of characters here}M8U3bSUKKJDEg
&grant_type=client_credentials
パラメーターParameter 条件Condition 説明Description
tenant 必須Required GUID またはドメイン名形式で示すディレクトリ テナント。これに対してアプリケーションが動作する予定です。The directory tenant the application plans to operate against, in GUID or domain-name format.
client_id 必須Required お使いのアプリに割り当てられるアプリケーション (クライアント) ID。The application (client) ID that's assigned to your app.
scope 必須Required この要求の scope パラメーターに渡される値は、.default サフィックスが付いた目的のリソースのリソース識別子 (アプリケーション ID URI) である必要があります。The value passed for the scope parameter in this request should be the resource identifier (application ID URI) of the resource you want, affixed with the .default suffix. Microsoft Graph の場合は、値は https://graph.microsoft.com/.default です。For the Microsoft Graph example, the value is https://graph.microsoft.com/.default.
この値は、アプリ用に構成したすべての直接のアプリケーション アクセス許可のうち、目的のリソースに関連付けられたトークンを発行するように、Microsoft ID プラットフォーム エンドポイントに命じます。This value informs the Microsoft identity platform endpoint that of all the direct application permissions you have configured for your app, it should issue a token for the ones associated with the resource you want to use. /.default スコープの詳細については、同意に関するドキュメントを参照してください。To learn more about the /.default scope, see the consent documentation.
client_assertion_type 必須Required この値は urn:ietf:params:oauth:client-assertion-type:jwt-bearer に設定する必要があります。The value must be set to urn:ietf:params:oauth:client-assertion-type:jwt-bearer.
client_assertion 必須Required 作成する必要があるアサーション (JSON Web トークン) です。このアサーションは、アプリケーションの資格情報として登録した証明書で署名する必要があります。An assertion (a JSON web token) that you need to create and sign with the certificate you registered as credentials for your application. 証明書の登録方法とアサーションの形式の詳細については、証明書資格情報に関する記事を参照してください。Read about certificate credentials to learn how to register your certificate and the format of the assertion.
grant_type 必須Required client_credentials に設定する必要があります。Must be set to client_credentials.

パラメーターは、共有シークレットによる要求のパラメーターとほぼ同じであることに注意してください。唯一異なるのは、client_secret パラメーターが、client_assertion_type と client_assertion の 2 つのパラメーターに置き換えられている点です。Notice that the parameters are almost the same as in the case of the request by shared secret except that the client_secret parameter is replaced by two parameters: a client_assertion_type and client_assertion.

成功応答Successful response

成功応答は次のようになります。A successful response looks like this:

{
  "token_type": "Bearer",
  "expires_in": 3599,
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik1uQ19WWmNBVGZNNXBP..."
}
パラメーターParameter 説明Description
access_token 要求されたアクセス トークン。The requested access token. アプリはこのトークンを使用して、保護されたリソース (Web API など) に対し、認証することができます。The app can use this token to authenticate to the secured resource, such as to a Web API.
token_type トークン タイプ値を指定します。Indicates the token type value. Microsoft ID プラットフォームでサポートされる種類は bearer のみです。The only type that Microsoft identity platform supports is bearer.
expires_in アクセス トークンが有効な時間 (秒単位)。The amount of time that an access token is valid (in seconds).

エラー応答Error response

エラーの場合の応答は次のようになります。An error response looks like this:

{
  "error": "invalid_scope",
  "error_description": "AADSTS70011: The provided value for the input parameter 'scope' is not valid. The scope https://foo.microsoft.com/.default is not valid.\r\nTrace ID: 255d1aef-8c98-452f-ac51-23d051240864\r\nCorrelation ID: fb3d2015-bc17-4bb9-bb85-30c5cf1aaaa7\r\nTimestamp: 2016-01-09 02:02:12Z",
  "error_codes": [
    70011
  ],
  "timestamp": "2016-01-09 02:02:12Z",
  "trace_id": "255d1aef-8c98-452f-ac51-23d051240864",
  "correlation_id": "fb3d2015-bc17-4bb9-bb85-30c5cf1aaaa7"
}
パラメーターParameter 説明Description
error 発生したエラーの種類を分類したりエラーに対処したりする際に使用できるエラー コード文字列。An error code string that you can use to classify types of errors that occur, and to react to errors.
error_description 認証エラーの根本的な原因を特定しやすいように記述した具体的なエラー メッセージ。A specific error message that might help you identify the root cause of an authentication error.
error_codes STS 固有のエラー コードの一覧。診断に役立つ可能性がある。A list of STS-specific error codes that might help with diagnostics.
timestamp エラーが発生した時刻。The time when the error occurred.
trace_id 診断に役立つ、要求の一意の識別子。A unique identifier for the request to help with diagnostics.
correlation_id コンポーネント間での診断に役立つ、要求の一意の識別子。A unique identifier for the request to help with diagnostics across components.

トークンを使用するUse a token

トークンを獲得したら、そのトークンを使用してリソースへの要求を作成します。Now that you've acquired a token, use the token to make requests to the resource. トークンの有効期限が切れたときは、/token エンドポイントへの要求を繰り返し、新しいアクセス トークンを取得します。When the token expires, repeat the request to the /token endpoint to acquire a fresh access token.

GET /v1.0/me/messages
Host: https://graph.microsoft.com
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Ik5HVEZ2ZEstZnl0aEV1Q...
// Pro tip: Try the following command! (Replace the token with your own.)
curl -X GET -H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbG...." 'https://graph.microsoft.com/v1.0/me/messages'

コード サンプルとその他のドキュメントCode samples and other documentation

Microsoft 認証ライブラリのクライアントの資格情報の概要に関するドキュメントを参照してください。Read the client credentials overview documentation from the Microsoft Authentication Library

サンプルSample プラットフォームPlatform 説明Description
active-directory-dotnetcore-daemon-v2active-directory-dotnetcore-daemon-v2 .NET Core 2.1 コンソール.NET Core 2.1 Console ユーザーの代理ではなく、アプリケーションの ID を使用して Microsoft Graph へのクエリを実行するテナントのユーザーを表示する単純な .NET Core アプリケーション。A simple .NET Core application that displays the users of a tenant querying the Microsoft Graph using the identity of the application, instead of on behalf of a user. このサンプルは、認証に証明書を使用するバリエーションも示しています。The sample also illustrates the variation using certificates for authentication.
active-directory-dotnet-daemon-v2active-directory-dotnet-daemon-v2 ASP.NET MVCASP.NET MVC ユーザーの代理ではなく、アプリケーションの ID を使用して Microsoft Graph のデータを同期する Web アプリケーション。A web application that syncs data from the Microsoft Graph using the identity of the application, instead of on behalf of a user.