Во-первых, если IdP поддерживает и SAML 2.0, и OIDC (OpenID Connect), лучшим решением для mvcapp будет использование SAML 2.0, а для одностраничного приложения - OIDC. Или, может быть, оба приложения используют OIDC.
В качестве альтернативы, я думаю, что решение состоит в том, чтобы пользователь OIDC защищал одиночное приложение, а не просто JWT, где на самом деле API также стал IdP. Поскольку API действует как IdP, API должен поддерживать сессию пользователей, но невозможно использовать куки.
OIDC поддерживает сеанс пользователя и выходит из системы с помощью OpenID Connect Session Management . Этот стандарт также поддерживает Уведомление об изменении состояния сеанса , когда клиент singlepageapp может вызвать API IDP для проверки, активен ли пользовательский сеанс в JWT.