この記事では、ユーザーの代わりに Microsoft Managed Desktop API にプログラムでアクセスするためのアプリケーションを作成する方法について説明します。
API アクセスには OAuth2.0 認証が必要です。 詳細については、「 OAuth 2.0 承認コード フロー」を参照してください。
サービスを構成し、アクセス トークンを取得するには:
- Microsoft Entra アプリケーションを作成して登録します。
- アプリで Microsoft Managed Desktop のアクセス許可を構成します。
- 管理者の同意を取得する。
- このアプリケーションを使用してアクセス トークンを取得します。
- トークンを使用して Microsoft Managed Desktop API にアクセスします。
アプリを作成する
Microsoft ID プラットフォーム エンドポイントで認証するには、まず Azure アプリ登録ポータルでアプリを登録する必要があります。
Microsoft Managed Desktop API を独自の ID で呼び出すサービスの場合は、アプリを Web プラットフォームに登録し、次の値をコピーする必要があります。
- Azure アプリ登録ポータルが割り当てたアプリケーション ID。
- クライアント (アプリケーション) シークレット。パスワードか、公開鍵や秘密鍵のペア (証明書) のいずれか。
- トークンの応答を受け取るためのサービスのリダイレクト URL。
Azure アプリ登録ポータルを使用してアプリを構成する手順については、「アプリを登録する」を参照してください。
OAuth 2.0 クライアント資格情報付与フローを使用すると、アプリは、Microsoft Entra IDによって割り当てられたアプリケーション ID と、ポータルを使用して作成したクライアント シークレットを使用して、Microsoft ID プラットフォーム エンドポイントで直接認証されます。
アクセス許可を構成する
Azure アプリ登録ポータルでアプリの委任されたアクセス許可を構成するには:
- アプリケーションの [API のアクセス許可] ページで、[Organization が使用する API にアクセス許可を追加する] 種類 [モダン ワークプレース顧客 API] を選択 [モダン ワークプレース顧客 API] を選択します。
- [ MWaaSDevice.Read] > [委任されたアクセス許可] を選択し、[ アクセス許可の追加] を選択します。
- Azure アプリ登録ポータルでアプリに対して委任された追加のアクセス許可を構成するには、アプリケーションの API アクセス許可ページで、[アクセス許可の追加] を選択>[Microsoft Graph] を選択します。
- [委任されたアクセス許可] を選択>offline_accessと openid を選択し、[アクセス許可の追加] を選択します。
アクセス トークンを取得する
OAuth 2.0 クライアント資格情報の付与フローでは、アプリの登録時に保存したアプリケーション ID とクライアント シークレットの値を使用して、Microsoft ID プラットフォーム/token
のエンドポイントからアクセス トークンを直接要求します。
OAuth 2.0 承認コード フローのアクセス トークンを取得する最初の手順は、ユーザーを Microsoft ID プラットフォーム /authorize
エンドポイントにリダイレクトすることです。 Microsoft Entra IDは、ユーザーにサインインし、アプリが要求するアクセス許可に対する同意を要求します。 承認コード付与フローでは、同意が取得されると、Microsoft Entra IDはアクセス トークンのMicrosoft ID プラットフォーム/トークン エンドポイントで引き換えることができるauthorization_code
をアプリに返します。
承認要求
OAuth 2.0 クライアント資格情報の付与フローでは、アプリの登録時に保存したアプリケーション ID とクライアント シークレットの値を使用して、Microsoft ID プラットフォーム/token
のエンドポイントからアクセス トークンを直接要求します。
https://login.microsoftonline.com/{tenantId}/oauth2/authorize
パラメーター | 条件 | 説明 |
---|---|---|
tenantId | 必須 | テナントのMicrosoft Entra ID。 |
client_id | 必須 | アプリを登録したときに割り当てられたアプリケーション ID。 |
範囲 | 必須 | 以下を含める必要があります。 openid offline_access https://mwaas-services-customerapi-prod.azurewebsites.net/.default |
grant_type | 必須 |
client_credential である必要があります。 |
response_type | 必須 | コードである必要があります。 |
redirect_uri | 推奨 | 認証応答をアプリで送受信できるアプリの redirect_uri 。 これは、アプリ登録ポータルで登録した redirect_uris のいずれかと完全に一致している必要があります。 |
承認応答
ユーザーがアプリが要求したアクセス許可に同意した場合、応答には code パラメーターに承認コードが含まれます。
トークン要求
ユーザーがアプリが要求したアクセス許可に同意した場合、応答には code パラメーターに承認コードが含まれます。
https://login.microsoftonline.com/{tenantId}/oauth2/token
パラメーター | 条件 | 説明 |
---|---|---|
tenantId | 必須 | テナントのMicrosoft Entra ID。 |
client_id | 必須 | アプリを登録したときに割り当てられたアプリケーション ID。 |
範囲 | 必須 | にする必要があります。 |
client_secret | 必須 | アプリ登録ポータルでアプリ用に生成したクライアント シークレット。 |
grant_type | 必須 |
authorization_code である必要があります。 |
コード | 必須 | 承認要求の一部として取得された承認コード。 |
トークンの応答
成功した JSON 応答は次のようになります。
{
"token_type": "Bearer",
"expires_in": "3599",
"access_token": "access_token"
}
パラメーター | 説明 |
---|---|
access_token | 要求されたアクセス トークン。 アプリでは、API の呼び出しでこのトークンを使用できます。 |
token_type | ベアラーである必要があります。 |
expires_in | アクセス トークンの有効期間 (秒単位)。 |
トークンを使用して Microsoft Managed Desktop API にアクセスする
- 使用する API を選択します。
- 送信する http 要求の承認ヘッダーを "Bearer {token}" に設定します (ベアラーは承認スキームです)。