本文討論在進行與使用者登錄活動或用戶註冊詳細信息相關的 Microsoft Graph API 調用時發生的錯誤。
癥狀
您執行以下 Microsoft Graph API 呼叫之一:
GET https://graph.microsoft.com/v1.0/auditLogs/signIns
GET https://graph.microsoft.com/v1.0/users?$select=displayName,userPrincipalName,signInActivity
GET https://graph.microsoft.com/v1.0/reports/UserRegistrationDetails
執行呼叫後,您會收到類似於以下文字的錯誤回應:
'error': {
'code': 'Authentication\_RequestFromNonPremiumTenantOrB2CTenant',
'message': 'Neither tenant is B2C or tenant doesn't have premium license',
'innerError': {
'date': '2021-03-04T07:53:51',
'request-id': 'a0a074e6-xxx-c511669fa420',
'client-request-id': 'a0a074e6-xxx-c511669fa420'
}
}
解決方法
方案 1:查詢使用者登錄活動
- 確保目標租戶具有 Entra ID Premium P1 或 P2 許可證。 在 Azure 門戶中,轉到 Microsoft Entra ID,選擇 “概述”,然後檢查 “許可證 ”值。 有關詳細資訊,請參閱 註冊 Microsoft Entra ID P1 或 P2 版本。
- 驗證是否已向 Microsoft Graph 訪問令牌授予
AuditLog.Read.All
和Directory.Read.All
許可權。
場景 2:查詢憑證用戶註冊詳情
- 確保目標租戶具有 Entra ID Premium P1 或 P2 許可證。
- 請驗證 Microsoft Graph 訪問令牌是否已被授予
Reports.Read.All
許可權。 - 驗證應用程式的身份驗證使用者或服務主體是否處於以下必需的管理角色之一:
- 報表閱讀器
- 安全讀取器
- 安全性系統管理員
- 全球閱讀器
- 全域管理員
詳細資訊
如果僅使用 AuditLog.Read.All 許可權配置應用程式,則可能會間歇性地發生此錯誤。 這是預期行為,因為需要 Directory.Read.All 許可權來檢索租戶許可資訊(如果尚未緩存)。 為避免此錯誤,請確保同時包含這兩個許可權。