次の方法で共有


Microsoft Graph の既知の問題

認証

同意ページには、PowerShell と CLI に対応するコマンド ライン アプリが未検証の発行元からのアプリであることが示されています。

回避策

"未確認" メッセージを削除するには、独自のアプリ登録を行い、検証済みの発行元として自分を設定できます。 発行元の検証プロセスを実行し、次のように Microsoft Graph PowerShell SDK でアプリ ID を使用する必要があります。

Connect-MgGraph -AppId "{your-own-app-id}" -Scopes "scope"

特定の状況では、クラウド ソリューション プロバイダー (CSP) アプリの事前同意が一部の顧客テナントで機能しない場合があります。

委任されたアクセス許可を使用するアプリでは、新しい顧客テナントで初めてアプリを使用すると、サインイン後に次のエラーを受信する可能性があります: AADSTS50000: There was an error issuing a token

アプリケーションのアクセス許可を使用するアプリでは、アプリはトークンを取得できますが、Microsoft Graph を呼び出すときに予期せずにアクセス拒否メッセージを受け取ります。

すべての CSP 顧客テナントに対して事前コンデントが機能するように、この問題の解決に取り組んでいます。

回避策

開発とテストのブロックを解除するには、次の回避策を使用します。

注:

これは永続的な解決策ではなく、開発のブロックを解除することのみを目的としています。 この回避策は、問題が修正された後は必要ありません。 この回避策は、修正が実施された後に元に戻す必要はありません。

  1. Azure AD v2 PowerShell セッションを開き、サインイン ウィンドウに管理者の資格情報を入力して顧客テナントに接続します。 AD PowerShell V2 Azureダウンロードしてインストールできます。

    Connect-AzureAd -TenantId {customerTenantIdOrDomainName}
    
  2. Microsoft Graph サービス プリンシパルを作成します。

    New-AzureADServicePrincipal -AppId 00000003-0000-0000-c000-000000000000
    

AZURE AD v2.0 エンドポイントは CSP アプリではサポートされていません

クラウド ソリューション プロバイダー (CSP) アプリは、パートナーが管理する顧客で Microsoft Graph を正常に呼び出すために、Azure AD (v1) エンドポイントからトークンを取得する必要があります。 現在、新しいAzure AD v2.0 エンドポイントを介したトークンの取得はサポートされていません。

予定表

イベントへの大容量ファイル添付時のエラー

委任された権限を持つアプリは、共有または委任されたメールボックスにある Outlook メッセージまたはイベントに大容量ファイルを添付しようとすると HTTP 403 Forbidden を返します。 委任された権限では、メッセージまたはイベントがサインインしているユーザーのメールボックスにある場合にのみ createUploadSession が成功します。

変更通知

チャット スコープ内の Teams アプリのインストール変更通知のアップグレード イベントが配信されない

Teams アプリのインストール変更通知のサブスクリプションが作成されると、スコープがチャットに固有であるか含まれている場合、アップグレード イベント/通知はサブスクライバーに配信されません。

たとえば、顧客が /appCatalogs/teamsApps/{teams-app-id}/installations?$filter=(scopeInfo/scope eq 'groupChat')をサブスクライブした場合、アップグレード/更新イベントの通知は受信されません。 ただし、インストールと削除に関するその他の通知を受け取ります。

別の例: 顧客が /appCatalogs/teamsApps/{teams-app-id}/installationsをサブスクライブした場合、チャット内で特に発生するアップグレード/更新イベントの通知は受信されません。 ただし、他のすべての形式の通知は、チームとユーザーの個人用スコープで受け取ります。 ただし、チャットでは、インストールと削除の通知のみを受け取ります。

回避策

現時点では、この問題の回避策はありません。

顧客の予約

bookingBusinesses のクエリ時のエラー

bookingBusinesses の一覧を取得すると、organizationに複数の Bookings ビジネスがあり、要求を行うアカウントが管理者でない場合、次のエラー コードで失敗します。

{
  "error": {
    "code": "ErrorExceededFindCountLimit",
    "message": "The GetBookingMailboxes request returned too many results. Please specify a query to limit the results."
  }
}

回避策

クエリ パラメーターを含めることで、要求によって返される一連のビジネスを制限できます。例:

GET https://graph.microsoft.com/beta/bookingBusinesses?query=Fabrikam

デルタ クエリ

OData コンテキストが正しく返されない

リレーションシップの追跡では、誤った OData コンテキストが返されることがあります。

デバイスおよびアプリの管理

展開対象ユーザーへのアクセスと更新はサポートされていません

Intune 経由で作成された 展開 リソースの展開対象ユーザーへのアクセスと更新は、現在サポートされていません。

  • 展開対象ユーザーのメンバーの一覧および展開対象ユーザーの除外の一覧が返されます404 Not Found
  • 展開対象ユーザーのメンバーと除外の更新またはID による更新が返されますが202 Accepted、対象ユーザーは更新されません。

グループ

管理者以外のユーザーは、グループの作成時または更新中にグループ所有者として自己を追加できません

管理者以外のユーザーが Create group API、 Update group API、または Upsert グループ API を呼び出し、 owners@odata.bind コレクションの要求本文にユーザー ID を追加すると、"Request には重複する値を持つプロパティが含まれています" というメッセージが表示された 400 Bad Request エラー コードで要求が失敗します。管理者以外のユーザーがグループ所有者として明示的に追加することはできません。

回避策

このエラーの回避策はありません。

既定では、グループの所有者を指定しない場合、グループの 作成 API または Upsert グループ API を使用してセキュリティまたは Microsoft 365 グループを作成している管理者以外のユーザーは、グループの 所有者 コレクションに自動的に追加されます。 他のユーザーをグループの所有者として指定した場合、管理者以外のグループ作成者はセキュリティ グループの 所有者 コレクションに自動的に追加されますが、Microsoft 365 グループには追加されません。 グループの更新中も、ユーザーは 所有者 コレクションに自分自身を追加できません。

GET /groups/{id}/members は v1.0 でサービス プリンシパルを返しません

v1.0 エンドポイントでの List group members API 操作では、現在、クエリ対象グループのメンバーである可能性のあるサービス プリンシパルは返されません。

回避策

回避策として、次のいずれかのオプションを使用します。

ID とアクセス

/subscribedSkus と /domains で特定のクエリ パラメーターを使用しても、期待される結果は返されません

subscribedSkusドメイン エンティティを対象とするクエリ パラメーターの次の使用法では、期待される結果が返されない可能性があります。

  • subscribedSkus またはドメイン エンティティの両方で$searchを使用する
  • ドメイン エンティティでの$top$filterの使用

現時点では、これらのパラメーターは実質的に無視され、クエリは期待される結果を返しません。

回避策

ビジネス プロセスの中断を防ぐために、アプリケーション コードを変更して、 subscribedSkus または ドメイン エンティティを対象とするクエリからこれらのクエリ パラメーターの使用を削除し、クライアント側で検索、上位、フィルターを実行することをお勧めします。

委任されたシナリオでフェデレーション ドメインを構成するには、Directory.AccessAsUser.All アクセス許可が必要です

Create internalDomainFederationUpdate internalDomainFederationDelete internalDomainFederation では、Directory.AccessAsUser.All アクセス許可への同意を付与することが必要になる場合があります。 この要件は、フェデレーション ドメインを管理するためのより詳細な委任されたアクセス許可を提供するまでの一時的な回避策です。

claimsMappingPolicy API では、次のように、LIST /policies/claimsMappingPolicies メソッドと GET /policies/claimsMappingPolicies/{id} メソッドの Policy.Read.All アクセス許可と Policy.ReadWrite.ConditionalAccess アクセス許可の両方への同意が必要になる場合があります。

  • LIST 操作で取得できる claimsMappingPolicy オブジェクトがない場合、このメソッドを呼び出すにはいずれかのアクセス許可で十分です。
  • 取得する claimsMappingPolicy オブジェクトがある場合、アプリは両方のアクセス許可に同意する必要があります。 同意しない場合は、403 Forbidden エラーが返されます。

将来的には、どちらの権限でも両方のメソッドを呼び出すのに十分になります。

現在、conditionalAccessPolicy API には、POST メソッドと PATCH メソッドを呼び出すための Policy.Read.All 権限への同意が必要です。 将来的には、Policy.ReadWrite.ConditionalAccess 権限により、ディレクトリからポリシーを読み取ることができるようになります。

JSON バッチ処理

要求の依存関係が制限されている

個々の要求は、他の個々の要求に依存する場合があります。 現時点では、要求は 1 つの他の要求にのみ依存でき、次の 3 つのパターンのいずれかに従う必要があります。

  • 並列 - 個々の要求では 、dependsOn プロパティの依存関係が示されません。
  • シリアル - すべての個々の要求は、前の個々の要求に依存します。
  • 同じ - dependsOn プロパティに依存関係を示す個々の要求はすべて、同じ依存関係を示します。 注: このパターンを使用して行われた要求は順番に実行されます。

JSON バッチ処理が完成に近づくにつれて、これらの制限は削除されます。

メール

変更できない ID を使用したメッセージ API へのデルタ呼び出し

場合によっては、変更できない ID を使用してメッセージ API に /delta 呼び出しを行うと (たとえば、メッセージがフォルダーの外に移動してから戻されたときなど)、変更通知が表示されない可能性があります。

下書きを作成するためのコメント パラメーターは、メッセージ本文の一部ではありません

返信または転送ドラフトを作成するための コメント パラメーター (createReplycreateReplyAllcreateForward) は、応答メッセージドラフトの本文の一部ではありません。

クエリ パラメーター

エンコードされたアンパサンド (&) 文字のディレクトリ オブジェクトの$searchが失敗する

RFC 3986 および 「クエリ パラメーターのエンコード」で説明されているように、クエリ文字列の予約文字はパーセントエンコードする必要があります。 たとえば、"ハイキング&レクリエーション" のようなグループ名の $search の構文は次のとおりです。

GET https://graph.microsoft.com/v1.0/groups?$search="displayName:Hiking%26Recreation group"

現在、Microsoft Graph は、エンコードされたアンパサンド (&) 文字を含む検索で v1.0 エンドポイントで 400 Bad Request エラー コードを返し、次のエラー メッセージが表示されます: Unrecognized query argument specified: ''.。 ベータ エンドポイントでも同じ要求が成功します。

一部のアプリでは、回避策として v1.0 エンドポイントに 2% エンコードが実装されています。 たとえば、二重パーセントでエンコードされた要求は /users?$search="displayName:Hiking%2526Recreation group"になります。 ただし、これは公式に推奨される回避策ではありません。

回避策

回避策 1:

v1.0 エンドポイントで、適切なパーセント エンコードを使用する場合は、 Prefer 要求ヘッダーを legacySearch=false に設定します。 例:

GET https://graph.microsoft.com/v1.0/groups?$search="displayName:Hiking%26Recreation group"
ConsistencyLevel: eventual
Prefer: legacySearch=false

今後、v1.0 エンドポイントでの動作が修正され、このヘッダーを含める必要はありません。

回避策 2:

v1.0 エンドポイントでの動作が修正されると、2% エンコードに依存しているアプリでは、 Prefer 要求ヘッダーを legacySearch=true に設定して実装を維持することを選択しない限り、破壊的変更が発生する可能性があります。 例:

GET https://graph.microsoft.com/v1.0/groups?$search="displayName:Hiking%2526Recreation group"
ConsistencyLevel: eventual
Prefer: legacySearch=true

クエリ パラメーターにいくつかの制限が適用される

クエリ パラメーターには、次の制限が適用されます:

  • 複数の名前空間はサポートされていません。
  • $refとキャストに対する GET 要求は、ユーザー、グループ、デバイス、サービス プリンシパル、アプリケーションではサポートされていません。
  • @odata.bind はサポートされていません。 つまり、グループの acceptedSenders または rejectedSenders ナビゲーション プロパティを適切に設定することはできません。
  • @odata.id は、最小限のメタデータを使用する場合、非コンテナー ナビゲーション (メッセージなど) には存在しません。
  • $expand ディレクトリ オブジェクトのリレーションシップ:
    • 最大 100 個のオブジェクトを返す /users?$expand=registeredDevicesを除き、最大 20 個のオブジェクトを返します。
    • @odata.nextLink はサポートされていません。
    • 1 レベルを超える展開はサポートされていません。
    • $expand クエリ内の$filter$selectなど、他のクエリ パラメーターの入れ子はサポートされません。
  • $filter:
    • /attachments エンドポイントはフィルターをサポートしていません。 存在する場合、$filter パラメーターは無視されます。
    • ワークロード間のフィルター処理はサポートされていません。
    • in演算子を使用する場合、要求は既定でフィルター句の 15 式に制限されます。または、高度なクエリ機能を使用する場合は URL の長さが 2,048 文字です。
    • eq演算子を使用してフィルター処理する場合、一致する値の上限は 120 文字です。 つまり、 $filter=displayName eq 'value-to-match-max-120-char'。 この制限は、最大 256 文字のディレクトリ オブジェクトの displayName などのプロパティでも適用されます。 高度なクエリを使用する場合、一致した値ではなく 2,048 文字の URL 長に制限が適用されます。
  • $search:
    • フルテキスト検索はメッセージなどのエンティティのサブセットに対してのみ使用できます。
    • ワークロード間検索はサポートされていません。
    • Azure AD B2C テナントでは検索はサポートされていません。
  • $count:
    • Azure AD B2C テナントではサポートされていません。
    • ディレクトリ リソースに対してクエリを実行するときに $count=true クエリ文字列を使用する場合、 @odata.count プロパティはページデータの最初のページにのみ存在します。
  • 要求で指定されたクエリ パラメーターは警告なしで失敗する可能性があります。 これは、サポートされていないクエリ パラメーターと、サポートされていないクエリ パラメーターの組み合わせの場合に当てはまります。

破損したアダプティブ カードを使用して externalConnection を作成すると、503 サービス使用不可応答の後に 409 競合エラーが返されます

Microsoft Graph API を使用して、結果レイアウトのアダプティブ カードが壊れた外部接続を作成すると、最初の呼び出しが失敗し、503 Service Unavailable エラーが発生します。 次に、2 番目の呼び出しは、同じ名前の接続が既に存在することを示す 409 Conflict エラーで失敗します。

最初の要求は 503 応答で失敗しましたが、接続はまだ作成されました。 ただし、アダプティブ カード テンプレートは壊れているため登録されませんでした。

サイトとリスト

フォロー/フォロー解除のサイトが SharePoint と同期していない

Microsoft Graph を使用してフォローしているサイトに対してクエリを実行すると、応答の結果が正しくなく、その結果が SharePoint の次のコンテンツの結果と一致しない可能性があります。

回避策

次の ユーザーとコンテンツ REST API を使用します。

チームワークとコミュニケーション

callRecords participant_v2を一覧表示すると、すべての参加者が返されるわけではありません

エッジ ケースによっては、callRecordparticipants_v2を一覧表示する要求によって、不完全なリストが返される場合があります。

回避策

callRecord の既存の participants プロパティを使用して、参加者の完全なリストを取得できます。

Communications Calling SDK: ボットのグループ化が有効になっているときに Teams クライアントに一貫性のない記録された参加者番号が表示される

ボット アプリケーションを記録してボット グループ化を有効にすると、記録されている Teams クライアントによって表示される参加者の数は正確ではありません。 参加者はグループ化されるため、記録される参加者の表示数は実際の数よりも少なくなります。

回避策

ボットのグループ化を無効にして、正確な数を表示します。

callRecords API は、communicationsIdentitySet のユーザーとしてアプリケーション参加者を表します

callRecord 参加者リソースでは、アプリケーション/ボットの参加者は現在、communicationsApplicationIdentity ではなく communicationsUserIdentity によって表されます。

回避策

callRecord セッションの participantEndpoint リソースでユーザー エージェント headerValue を使用して、アプリケーションの参加者を識別し、アプリケーション ID の詳細を確認します。

通信呼び出し SDK: デルタ 名簿通知モードでのマルチエンドポイント ユース ケースのサポートが見つかりません

同じアプリケーションまたはユーザーが複数のエンドポイントを使用して同じ会議に参加していて、名簿通知モードが差分名簿である場合、Communications SDK によって提供される参加者名簿の更新では、進行中の呼び出しに追加された追加のエンドポイントがキャプチャされない可能性があります。

回避策

名簿のレガシ モードでは、マルチエンドポイントユース ケースがサポートされています。 SDK バージョン 1.2.0.7270 以前を使用します。

通信呼び出し SDK: Webhook メッセージ処理例外: System.Security.Encryptiony.EncryptionException

KB のリリースでは、Communication Calling SDK で開発されたアプリケーションに問題が発生しました。

Microsoft Graph AnswerAsync メソッドは、ボットが着信呼び出しに応答しようとしたときに例外をスローします。 これは、次の Windows 更新プログラムに関連しています。

  • Wk22 - KB5038282
  • Wk19 - KB5038283

詳細については、「 SHA256 ComputeHash started throwing - Microsoft Community」を参照してください。

回避策

SDK の更新されたリリースを保留中の KB をロールバックします。

オンライン会議成果物をエクスポートする API の変更追跡要求は、既に同期されているアイテムを返します

getAllTranscripts または getAllRecordings への変更追跡 (/delta) 要求は、以前の要求で既に同期されている項目返す場合があります。

これは、会議に参加者、メモ、ファイルの追加など、関連しないその他の更新があった場合に発生します。

回避策

応答内のすべての項目について、記録またはトランスクリプトの createdDateTime をチェックし、前の同期タイムスタンプと比較します。 createdDateTime が最後の同期タイムスタンプより前の場合、項目は既に同期されており、無視できます。

オンライン会議成果物をエクスポートする API は、文字起こしが有効になっていない会議の記録を返しません

getAllRecordings API は、文字起こしが有効になっていない会議の記録を返しません。

getAllRecordings または getAllTranscripts API を呼び出すと、エクスポートする項目が増えても、$top フィルターを渡しても@odata.nextLinkが返されないことがあります。

回避策

問題が修正されるまで、クエリ パラメーター $top 渡さないでください。

チーム メンバー API の一覧表示が失敗し、新しく作成されたテナントで 401 エラーが発生する

新しく作成されたテナントが、高度なAzure AD クエリ機能を使用してチーム要求のリスト メンバーを送信すると、HTTP 401 エラーが発生します。

回避策

  1. リスト チーム API を呼び出し、数秒待ちます。
  2. 応答を成功させるには、/teams/{id}/membersとチェックを呼び出します。

複製チーム メソッドには、複製されたチーム内のソース チームのすべての所有者が含まれているわけではありません

複製チーム メソッドを呼び出すときに、ソース チームに複数の所有者が含まれている場合、複製されたチームには 1 人の所有者のみが保持されます。 他の所有者は、新しい複製されたチームのメンバーになります。 新しいチームの所有者として保持される所有者を選択または構成することはできません。

回避策

チームを複製した後に Add members メソッドを使用して、元の所有者をメンバーから所有者に更新します。

チャネルを作成するとエラー応答が返される

チャネルを作成するときに、チャネル名に特殊文字を使用する場合、 Get filesFolder API は 400 Bad Request エラー応答を返します。 チャネルを作成するときは、チャネルの displayName で次のことが行われません。

  • 次のいずれかの特殊文字を含めます: ~ # % & * { } + / \ : < > ? | ' "
  • アンダースコア (_) またはピリオド (.) で始まるか、ピリオド (.) で終了します。

要求 URL に tenants/{cross-tenant-id} が含まれていると、テナント間共有チャネルにアクセスできない

API は teams/{team-id}/incomingChannels を呼び出し、 teams/{team-id}/allChannels チャネルにアクセスし、チャネル オブジェクトに対して他の操作を実行するために使用できる @odata.id プロパティを返します。 @odata.id プロパティから返された URL を呼び出すと、テナント間共有チャネルにアクセスしようとすると、要求は次のエラーで失敗します。

GET /tenants/{tenant-id}/teams/{team-id}/channels/{channel-id}
{
    "error": {
        "code": "BadRequest",
        "message": "TenantId in the optional tenants/{tenantId} segment should match the tenantId(tid) in the token used to call Graph.",
        "innerError": {
            "date": "2022-03-08T07:33:50",
            "request-id": "dff19596-b5b2-421d-97d3-8d4b023263f3",
            "client-request-id": "32ee2cbd-27f8-2441-e3be-477dbe0cedfa"
        }
    }
}

回避策

API を呼び出してテナント間共有チャネルにアクセスする前に、URL から /tenants/{tenant-id} 部分を削除します。

役割によってチーム メンバーをフィルター処理する要求には、パラメーターが必要です

ロールでチーム メンバーをフィルター処理するすべての要求では、 skipToken パラメーターまたは要求内の 上位 パラメーターが必要ですが、両方は必要ありません。 両方のパラメーターが要求で渡された場合、top パラメーターは無視されます。

役割でチーム メンバーをフィルター処理することはできません。

他のフィルター GET /teams/team-id/members?$filter=roles/any(r:r eq 'owner') and displayName eq 'dummy' と共に役割クエリ フィルターが機能しない場合があります。 サーバーが BAD REQUESTで返信する場合があります。

Microsoft Teams クライアントで [会議の詳細メニューの表示] が使用できない

Microsoft Teams クライアントには、クラウド通信 API を使用して作成されたチャネル会議の [ 会議の詳細の表示 ] メニューは表示されません。

Teams UI に秘密度ラベルが表示されない

Teams に適用される秘密度ラベルは、基になる SharePoint サイトと管理 センターの両方で明確に表示できる場合でも、Teams UI には表示されません。

GET 要求への応答でチャット メンバーの一部のプロパティが見つからない可能性がある

特定のインスタンスでは、チャットの個々のメンバーの tenantId/email/displayName プロパティが、 GET /chats/chat-id/members または GET /chats/chat-id/members/membership-id 要求に設定されない場合があります。

拡張メンバーのチャット制限を更新する

この API は、1 つ以上の国内クラウドで異なる方法で動作します。 詳細については、「 各国のクラウドでの実装の違い」を参照してください。 $expand=membersが含まれている場合、この API は、より大きな$top値を指定した場合でも、最大 25 個の項目を返します。

layoutType プロパティは、すべてのチャネルを一覧表示するときに null を返します

現在のベータ リリースでは、 layoutType プロパティは、すべてのチャネルを一覧表示するときに null を返します。

ユーザー

オンライン会議成果物をエクスポートする API は、コンテンツを含まないトランスクリプト URL を返す場合があります

getAllTranscripts API は、文字起こしされた単語がない会議のトランスクリプト コンテンツ URL を返す場合があります。 これらの会議のコンテンツ URL を呼び出すと、エラーが返されます。

回避策

会議が文字起こしされていること、および有効なコンテンツがあるかどうかを確認します。 ある場合は、詳細な調査のために報告してください。 それ以外の場合は、コンテンツ URL を無視します。

showInAddressList プロパティが Microsoft Exchangeと同期していません

Microsoft Graphを使用してユーザーにクエリを実行する場合、showInAddressList プロパティは、Microsoft Exchangeに示されているのと同じ状態を示さない場合があります。 この機能は、Microsoft 365 管理センターを使用して Microsoft Exchangeで直接管理し、Microsoft Graphではこのプロパティを使用しないことをお勧めします。

ユーザーのプロフィール写真へのアクセスが制限されている

ユーザーのプロフィール写真の読み取りと更新は、ユーザーがメールボックスを持っている場合にのみ使用できます。 写真の読み取りまたは更新が失敗すると、この例では次のエラーが発生します。

{
  "error": {
    "code": "ErrorNonExistentMailbox",
    "message": "The SMTP address has no mailbox associated with it."
  }
}

thumbnailPhoto プロパティ (Azure AD Graph API (現在廃止中) または AD Connect 同期を使用して保存されていた写真は、ユーザー リソースの Microsoft Graph 写真プロパティからアクセスできなくなります。

microsoft Graph API の profilePhoto リソースを使用したユーザーの写真の管理は、現在、Azure AD B2C テナントではサポートされていません。