091e4e41b9
Токен с aud=graph.microsoft.com api.tnsu.kz отклонял с 401 — он проверяет аудиторию входящего JWT. Меняем scope по умолчанию на App ID URI самого api-tnsu-portal; наш сертификат для него уже авторизован, отдельный client secret не нужен. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
22 lines
932 B
TypeScript
22 lines
932 B
TypeScript
function requireEnv(name: string): string {
|
||
const value = process.env[name];
|
||
if (!value) {
|
||
throw new Error(`Не задана переменная окружения ${name}`);
|
||
}
|
||
return value;
|
||
}
|
||
|
||
export const config = {
|
||
tenantId: requireEnv('GRAPH_TENANT_ID'),
|
||
clientId: requireEnv('GRAPH_CLIENT_ID'),
|
||
certPath: requireEnv('GRAPH_CERT_PATH'),
|
||
keyPath: requireEnv('GRAPH_KEY_PATH'),
|
||
// Токен нужен не для 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: 'Обращения'
|
||
};
|