Я работаю над текущим проектом, в котором мы уже используем Identity Server для аутентификации. Здесь мы используем токен доступа для доступа к API-интерфейсу microsoft Graph для получения собраний, изображений профиля и прочего.
Теперь мы хотим выполнить интеграцию с новым API Outlook 365 для чтения и в будущем задач записи.
Я пытаюсь получить задачи Outlook из Outlook restapi, используя уже существующий доступ:
{
"aud": "https://graph.microsoft.com",
"iss": "https://sts.windows.net/17e18230-55e1-4f60-8262-5c67e2b2ab11/",
"iat": 1145153145,
"nbf": 1491225024,
"exp": 1491258924,
"acr": "1",
"aio": "QSQA8/8DAFFFInSl+iIfvSXhA95NqTYRmKugpaLdvffNkba0L8N5x0U=",
"amr": [
"pwd"
],
"app_displayname": "AwesomeApp.Dev",
"appid": "0c2fgc75-f2ee-fas5-ae9f-fasd2s5d523fs",
"appidacr": "1",
"family_name": "Jesper Krægpøth Ryder",
"given_name": "Joshua",
"ipaddr": "208.67.222.222",
"name": "Joshua Jesper Krægpøth Ryder",
"oid": "a4586g1-d0215-3226-ar05-125463gasrqw5",
"platf": "3",
"puid": "654wf84yu3s1g6",
"scp": "Calendars.Read Calendars.Read.Shared Calendars.ReadWrite Directory.Read.All Files.ReadWrite Group.Read.All Mail.ReadWrite Mail.Send Tasks.Read User.Read User.ReadBasic.All User.ReadWrite",
"sub": "0s_x0JhaNb1QLpIM2Hldx7pSVkrpTgXKe4QPXXiRguQ",
"tid": "15e18430-54e9-4f60-8821-5c85e2b2ab77",
"unique_name": "[email protected]",
"upn": "[email protected]",
"uti": "65a2gasdrfasda_fasfa54153",
"ver": "1.0"
}
https://outlook.office.com/api/v2.0/me/tasks
Сообщение об ошибке:
Content-Length →0
Date →Tue, 04 Jul 2017 08:35:21 GMT
Server →Microsoft-IIS/10.0
WWW-Authenticate →Bearer client_id="00000002-0000-0ff1-ce00-000000000000",
trusted_issuers="00000001-0000-0000-c000-000000000000@*",
token_types="app_asserted_user_v1 service_asserted_app_v1",
authorization_uri="https://login.windows.net/common/oauth2/authorize",
error="invalid_token",Basic Realm="",Basic Realm="",Basic Realm=""
X-BEServer →HE1PR0901MB1194
X-BackEndHttpStatus →401, 401
X-CalculatedBETarget →HE1PR0901MB1194.eurprd09.prod.outlook.com
X-CalculatedFETarget →HE1P190CU001.internal.outlook.com
X-DiagInfo →HE1PR0901MB1194
X-FEProxyInfo →HE1P190CA0005.EURP190.PROD.OUTLOOK.COM
X-FEServer →HE1P190CA0005, HE1PR0201CA0031
X-MSEdge-Ref →Ref A: C32D029EF8F84E68BF6327901BBED14F Ref B: HEL01EDGE0307
Ref C: Tue Jul 4 01:35:21 2017 PST
X-Powered-By →ASP.NET
request-id →2266567a-dd67-48f0-b3b4-72cfb5ee6b42
x-ms-diagnostics →2000003;reason="The audience claim value is invalid
'https://graph.microsoft.com'.";error_category="invalid_resource"
На сервере идентификации мы используем промежуточное программное обеспечение для обработки наших областей следующим образом:
app.UseMicrosoftAccountAuthentication(new MicrosoftAccountOptions
{
AuthenticationScheme = "Microsoft",
DisplayName = "Microsoft",
SignInScheme = cookieScheme,
ClientId = Configuration.GetValue<string>("ExternalKeys:SecretMicrosoftClientId"),
ClientSecret = Configuration.GetValue<string>("ExternalKeys:SecretMicrosoftClientSecret"),
CallbackPath = new PathString("/signin-microsoft"),
Scope =
{
"offline_access",
"Calendars.Read",
"Calendars.Read.Shared",
"https://outlook.office.com/tasks.read"
},
SaveTokens = true,
});
Когда мы пытаемся войти в систему, мы получаем запрос с дополнительным требованием доступа к Задачам. Значит, у нас должен быть доступ к API задач.
Кто-нибудь еще пробовал использовать как Microsoft Graph API, так и новый Outlook 365 Rest API?