小平保护
Ping保护模块打算与ForgeRock JavaScript SDK一起被使用,为我们现有的ForgeRock SDK客户提供Ping保护功能.
总体设计
服务器一侧有两个组件,客户端一侧有两个组件来启用这个功能. 你需要有以下内容:
- ForgeRock身份云(aka ID Cloud)平台或最新的ForgeRock访问管理(aka AM)
- 启用有保护的 Ping One 租户
- 在 ID Cloud 或 AM 中配置的 Ping 保护服务
- 带适当保护节点的行程/树木
- 客户端应用程序
@forgerock/javascript-sdk财务报告和审定财务报表@forgerock/ping-protect已安装模块
客户端应用程序快速启动
安装两个模块及其最新版本:
npm install @forgerock/javascript-sdk @forgerock/ping-protect
pnpm add @forgerock/javascript-sdk @forgerock/ping-protect
平保护模块的两个主要职责是初始化剖面和数据收集以及完成并准备为服务器所收集的数据. 你可以找到两种方法 PIProtect 模块 @forgerock/ping-protect 模块.
PIProtect.start()PIProtect.getData()
这个 start 方法可以在应用程序启动时或当收到时调用 PingOneProtectInitializeCallback 从服务器调用。 我们建议你打电话 start 以尽可能多地收集更准确的数据.
打电话时 start,您有许多不同的选项来配置数据是什么以及如何收集。 这些设置中最重要和最需要的是 envId。所有其他设置都是可选的.
import { PIProtect } from '@forgerock/ping-protect';
// Call early in your application startup
PIProtect.start({ envId: '02fb1243-189a-4bc7-9d6c-a919edf6447' });
或者,您可以推迟初始化,直到您通过特殊调用从服务器收到指令: PingOneProtectInitializeCallback要做到这一点,你会打电话给 start 当回调值出现在行程中时.
import { PIProtect } from '@forgerock/ping-protect';
if (step.getCallbacksOfType('PingOneProtectInitializeCallback')) {
try {
// Asynchronous call
await PIProtect.start({ envId: '02fb1243-189a-4bc7-9d6c-a919edf6447' });
} catch (err) {
// handle error
}
}
你打给 FRAuth.next 初始化后的方法,使用户在行程中前进.
FRAuth.next(step);
在旅途的某个时刻,为了收集尽可能多的数据, 尽可能晚,你会遇到 PingOneProtectEvaluationCallback。这是当你叫 getData 用于包装已收集的供服务器评估的方法.
import { PIProtect } from '@forgerock/ping-protect';
let data;
if (step.getCallbacksOfType('PingOneProtectEvaluationCallback')) {
try {
// Asynchronous call
data = await PIProtect.getData();
} catch (err) {
// handle error
}
}
既然我们有数据,就把它放在回调器上 以便在我们呼叫时发送到服务器 next。 。 。 .
callback.setData(data);
FRAuth.next(step);
处理错误
当您在初始化或评估中遇到错误时, 请使用 setClientError 方法。 将信件设置在调用符上是它是如何被发送到服务器的 FRAuth.next 方法调用.
if (step.getCallbacksOfType('PingOneProtectInitializeCallback')) {
const callback = step.getCallbackOfType('PingOneProtectInitializeCallback');
try {
// Asynchronous call
await PIProtect.start({ envId: '02fb1243-189a-4bc7-9d6c-a919edf6447' });
} catch (err) {
callback.setClientError(err.message);
}
}
评价步骤也采用类似的程序.
let data;
if (step.getCallbacksOfType('PingOneProtectEvaluationCallback')) {
const callback = step.getCallbackOfType('PingOneProtectEvaluationCallback');
try {
// Asynchronous call
data = await PIProtect.getData();
} catch (err) {
callback.setClientError(err.message);
}
}
完整 API
// PIProtect class methods
PIProtect.start();
PIProtect.getData();
PIProtect.pauseBehavioralData();
PIProtect.resumeBehavioralData();
// PingOneProtectInitializeCallback class methods
callback.getConfig();
callback.setClientError();
// PingOneProtectEvaluationCallback class methods
callback.setData();
callback.setClientError();
callback.getPauseBehavioralData();