From 091e4e41b928e9af7528c96334acc6306ecf51d0 Mon Sep 17 00:00:00 2001 From: "gorbenko.pavel" Date: Mon, 24 Aug 2026 12:43:38 +0500 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B7=D0=B0=D0=BF=D1=80=D0=B0=D1=88?= =?UTF-8?q?=D0=B8=D0=B2=D0=B0=D1=82=D1=8C=20=D1=82=D0=BE=D0=BA=D0=B5=D0=BD?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20api.tnsu.kz,=20=D0=B0=20=D0=BD=D0=B5=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20Graph?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Токен с aud=graph.microsoft.com api.tnsu.kz отклонял с 401 — он проверяет аудиторию входящего JWT. Меняем scope по умолчанию на App ID URI самого api-tnsu-portal; наш сертификат для него уже авторизован, отдельный client secret не нужен. Co-Authored-By: Claude Opus 5 --- server/src/config.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/server/src/config.ts b/server/src/config.ts index 7dbe230..37fecd7 100644 --- a/server/src/config.ts +++ b/server/src/config.ts @@ -11,7 +11,10 @@ export const config = { clientId: requireEnv('GRAPH_CLIENT_ID'), certPath: requireEnv('GRAPH_CERT_PATH'), keyPath: requireEnv('GRAPH_KEY_PATH'), - scope: process.env.GRAPH_SCOPE ?? 'https://graph.microsoft.com/.default', + // Токен нужен не для Graph напрямую, а для api.tnsu.kz — он сам ходит в + // SharePoint. Это его App ID URI: с graph.microsoft.com/.default api вернёт + // 401, потому что проверяет aud во входящем JWT. + scope: process.env.GRAPH_SCOPE ?? 'api://9232d9e2-9807-4753-808f-07250e5474b0/.default', port: Number(process.env.PORT ?? 3000), sharepointSiteUrl: 'https://tnsukz.sharepoint.com/sites/hrm', sharepointListName: 'Обращения'