Skip to main content

自动登出

本节介绍如何在 Backstage 中设置自动注销机制,以备组织需要。

摘要

自动注销功能是 Backstage 的一项可选附加安全功能,用于在预先配置的闲置时间结束后自动注销用户。 这项功能有助于有效降低通过放弃会话进行未经授权访问所带来的风险,尤其是在共享设备的情况下。

自动注销机制会主动跟踪用户的活动,如鼠标移动、点击、按键和敲击。 如果系统检测到在设定的时间跨度(空闲超时)内没有任何活动,就会使用户会话失效,并重定向到登录页面。非活动用户是指没有在Backstage应用程序上执行任何操作,或者已经登录但浏览器中没有打开Backstage标签页。

如果您的应用程序需要遵守组织内部的政策,而这些政策可能要求在特定的闲置时间后自动注销,那么这项功能就特别有用。

看起来就是这样:

Auto logout Preview

快速启动

要启用和配置自动注销,您需要添加<AutoLogout>组件到Backstage的实例入口点,该入口点位于App.tsx.

添加方法如下:

import { AutoLogout } from '@backstage/core-components';

// ... App.tsx contents

export default app.createRoot(
<>
// ...
<AutoLogout />
<AppRouter>
<Root>{routes}</Root>
</AppRouter>
// ...
</>,
);

配置

您可以通过调整可用的<AutoLogout>属性

<AutoLogout
idleTimeoutMinutes={30}
useWorkerTimers={false}
logoutIfDisconnected={false}
/>

如果您希望为部署在基础架构上的每个 Backstage 实例设置不同的设置,您可以利用您的app-config并放置一些配置属性:

auth:
autologout:
enabled: true

请注意,在app-config的道具优先。<AutoLogout/>这些是可用的设置:

配置键 | 组件属性 | 描述 | 允许值 | 默认值 | | ----------------------------------------- | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | --------------------------- | | | |auth.autologout.enabled|enabled| 启用/禁用自动注销功能。true/false| 默认为启用 (true) | |auth.autologout.idleTimeoutMinutes|idleTimeoutMinutes| 设置用户注销后的空闲时间(分钟)。>= 0.5分钟60| |auth.autologout.promptBeforeIdleSeconds|promptBeforeIdleSeconds| 确定空闲状态前出现提示的时间(秒)。 值为 0 时将禁用提示。 该值必须小于idleTimeoutMinutes. |>= 0秒数10| |auth.autologout.useWorkerTimers|useWorkerTimers| 启用或禁用 Node 的工作线程定时器,而不是主线程定时器。 如果浏览器终止了非活动标签页中的定时器(如自动注销时使用的定时器),这将非常有用。 如果浏览器不兼容,请尝试将此设置为 false。true/false|true| |auth.autologout.logoutIfDisconnected|logoutIfDisconnected| 启用/禁用断开连接的用户的自动注销。 断开连接的用户是指已登录但浏览器中没有打开任何活动 Backstage 标签的用户。 如果启用,这些用户将在以下情况后自动注销idleTimeoutMinutes. |true/false|true|