API 安全

本文档描述了 M3 应用程序编程接口 (API) 身份验证和安全模型。它还提供了关于如何配置和设置环境以通过 API 进行访问的建议。

简介

API 是 M3 程序的接口,允许外部应用程序执行交易,以上传或下载特定数据、激活某些流程等。

可以使用两种不同的技术来实现与 M3 API 的交互。传统方式是通过客户端零件按照专有协议运行套接字通信,但现在已引入了通过 Web 服务的通信。Web 服务允许 HTTP/HTTPS 通信和 Rest 协议。

客户端零件通过开放信道通信,在内部网络内优先使用。Java 版本的客户端接口还支持通过证书的 SSL 通信和身份验证。不能在多租户云上下文中使用客户端零件通信。

Web 服务的 HTTP 部分同样通过开放通道通信。HTTP 仅适用于内部网络,而如果需要从外部源进行访问,则应使用 HTTPS。在多租户云上下文中,HTTPS 是必需的。

M3 API 实现

使用 M3 API 技术访问 M3 软件时,用户凭据必须与初始登录一致。

在所有 API 程序中,用户只能访问他们有权访问的公司。不同应用程序领域中的不同 API 程序还对现场级别以及分厂、仓库等有限制。

通过 M3 API,默认情况下用户可以访问每个 API 程序和每项交易,可能不会优先使用此方法 - 但是可以限制用户使用 API 程序及其交易。

M3 BE 提供以下方法来管理 M3 API 的安全性:

  • 按交易授权 - 功能。连接 API 授权 (SES005)
  • 按角色授权 - 功能。按角色连接授权 (SES400)API 交易。连接安全选项 (SES405)

用户身份验证

M3 用户通过平台机制进行用户身份验证。用户还必须使用程序 (MNS150) 在 M3 中进行注册。

有关 M3 API 的用户配置文件有两种类型。使用的类型主要根据客户端应用程序的设计方式。

  • 用户可以从其工作站使用客户端应用程序,这些应用程序可直接访问 M3 应用程序服务器。他们通常使用 M3 应用程序凭据登录。
  • 用户从中间服务器(如 Web 服务器)访问客户端应用程序,并且不会登录 M3 应用程序服务器。相反,应用程序使用为此目的专门创建的共享用户配置文件进行登录。这种应用程序的示例是 M3 WebShop 或 M3 API SOAP 服务器。

对 M3 用户的验证是通过他们使用的平台的机制。必须以适用于 M3 用户的常规方式来定义使用 M3 API 的用户配置文件。

如果可能,应定义服务器应用程序使用的共享用户配置文件,使得他们无法使用接口登录应用程序服务器。

(SES005) 中的按交易授权

可以将每个用户有权使用的程序和交易限制为交易级别。用于此目的的程序是功能。连接 API 授权 (SES005)

(MNS090) 中的系统设置

通过在系统设置。打开 (MNS090) 中为参数“API 安全”选择备选项 1 -“通过授权控制安全”来激活按交易授权的 API 安全。

选择备选项 1 时,必须在 (SES005) 中添加授权使用 API 交易的用户。如果 (SES005) 中不存在用户条目,则将该 API 交易视为被拒绝。

在 SES005 中连接授权

功能。连接 API 授权 (SES005) 中,添加需要 M3 API 交易使用权限的用户。在授权模式下运行时的默认行为是不允许任何 API 或交易。

可以指定允许用户使用的特定程序和交易。您可以将程序和交易都设置为提示检索其值。为了简化输入,可以检索当前程序的所有交易,然后删除不相关的交易。

也可以通过为某个用户指定值 *ALL 来允许程序中的所有交易。此外,可以通过在程序级别指定 *ALL 来允许用户访问所有程序和所有交易。

对 API 使用按角色授权的安全性

用于功能的基于角色的安全模型也可以用于 API 程序(例如 CRS610MI)等同于功能(例如,客户。打开 (CRS610))的 API 交易。每项 API 交易都分配有一个安全选项,该选项等同于功能选项。用于此目的的程序为 (SES400) 和 (SES405)。

通过在系统设置。打开 (MNS090) 中为参数“API 安全”选择备选项 2 -“通过角色控制安全”,将为 API 激活通过按角色授权控制的安全。

注意

必须先在 (SES405) 中生成每个 API 交易和默认安全选项,然后才能选择此备选项。对于所有用户,不存在的交易或 (SES405) 中具有空白安全选项的交易将被视为受限制并被拒绝。

(SES405) 中的安全选项

每个 API 交易都必须连接到 API 交易。连接安全选项 (SES405) 中的一个安全选项。所有现有 API 程序和交易的记录和安全选项由 (SES405) 中的功能键 F18 =“生成标准”生成。安全选项根据交易名称设置为默认值,与功能中使用的标准选项(1-6)等效。这些选项可以稍后进行人工更改。该程序根据租户进行设置。

F18 稍后也可用于使用新的 API 交易和默认安全选项更新程序。

下表显示了如何根据交易名称设置安全选项:

安全选项 API 交易名称以下列内容开头
1 添加、创建、Crt
2 更改、Chg、更新、Upd
3 复制、Cpy
4 删除、Del、Dlt
5 获取、列表、Lst、搜索、选择、Sel
6 打印、Prt
注意

为无法根据名称识别默认安全选项的所有交易都提供了安全选项 2。

下表显示了根据交易类型为 CRS610MI(客户界面)设置的默认安全选项的示例。

安全选项 API 交易 描述
1 添加 创建新的客户记录
1 AddAddress 创建新的客户地址
1 AddText 为客户添加文本
2 CheckPIN 检查客户号和 PIN
2 ChgAddress 修改客户地址数据
2 ChgBasicData 修改客户基本数据
3 复制 复制现有的客户记录
4 删除 删除客户记录
4 DeleteAddress 删除客户地址记录
2 EXPORTSMS 导出到 SMS
5 GetAddress 检索客户地址数据
5 GetBasicData 检索客户基本数据
5 LstAddresses 列出客户地址相关信息

稍后,如果要为已实施的新 API 程序或交易设置安全性,请在“程序”字段中指定新 API 程序的名称,然后按 Enter 键。然后,使用空白安全选项在表 CMNSMI (SES405) 中创建 API 的任何新交易。可以人工键入选项,或者使用“默认选项”按钮或功能键 F14 =“默认选项”来接受系统默认选项。只有具有空白安全选项的 API 交易才使用 F14 进行更新。

以下是 API 交易的有效安全选项:

  • 选项 00-99 可人工设置。
  • 选项 00 不需要任何授权,并视为对所有用户开放。
  • 选项“**”由 (SES405) 中的功能键 F14 或 F18 进行设置,不受安全保护,确保 M3 可运行。此安全选项无法进行更改。
注意

如果 (MNS090) 中的参数“API 安全”设置为 2-“通过角色控制安全”,则对于所有用户,具有空白安全选项或未在 (SES405) 中列出的 API 交易将被视为受限制并被拒绝。

(SES400) 中的按角色授权

对于 API 程序、角色、公司和分部应该有效的安全选项 (1-99) 是在功能。按角色连接授权 (SES400) 中以与功能相同的方式定义的。对于 API 程序,可以使用相关选项 11 =“API 交易安全性”打开 (SES405)。(SES400) 中的设置结果可以在每个用户的授权。显示 (SES401) 中进行查看。

(SES400) 和 (SES405) 中安全选项之间的连接的示例如下所示:

创建了名为“显示”的角色,该角色应该仅适用于显示或列出 API 程序记录的交易。在 (SES400) 中,为 API 程序创建记录,并选中安全选项 5 的复选框。然后,确保 (SES405) 中 API 程序的显示和列表交易连接到安全选项 05。

(MNS110) 中的功能

功能。打开 (MNS110) 中的参数“需要授权”用于确定 (SES401) 中是否需要条目,以允许用户访问 API 程序。

如果此参数应设置为“1”,请在 B 屏幕的“功能”字段中输入 API 程序的名称,然后选择“创建”。在 E 屏幕上,选择“功能类别”= API -“API 程序”,然后选中“需要授权”复选框并按 Enter 键。

下表显示用户是否有权运行 API 交易,具体取决于 (MNS110) 中 (SES401) 和 (SES405) 内设定的参数设置。

参数“需要授权”设置为 0:

在 (SES401) 中针对用户/程序记录 (SES405) 中的 API 交易和已连接的安全选项 有权运行 API 交易的用户
不允许
是 - 选项空白 不允许
是 - 任何选项 00-99 允许
是 - 允许使用选项 5 不允许
是 - 允许使用选项 5 是 - 选项空白 不允许
是 - 允许使用选项 5 是 - 选项 02 不允许
是 - 允许使用选项 5 是 - 选项 05 允许

参数“需要授权”设置为 1:

在 (SES401) 中针对用户/程序记录 (SES405) 中的 API 交易和已连接的安全选项 有权运行 API 交易的用户
不允许
是 - 选项空白 不允许
是 - 选项 05 不允许
是 - 允许使用选项 5 不允许
是 - 允许使用选项 5 是 - 选项空白 不允许
是 - 允许使用选项 5 是 - 选项 02 不允许
是 - 允许使用选项 5 是 - 选项 05 允许