如果已启用单点登录,请使用 StorageGRID API(Entra ID)
如果有"已配置并启用单点登录(SSO)"并将 Entra ID 用作 SSO 提供程序,则可以使用两个示例脚本获取对网格管理 API 或租户管理 API 有效的身份验证令牌。
如果启用了 Entra ID 单点登录,请登录到 API
如果您使用 Entra ID 作为 SSO 身份提供商,则适用以下说明
-
您知道属于 StorageGRID 用户组的联合用户的 SSO 电子邮件地址和密码。
-
如果要访问租户管理 API,则需要知道租户帐户 ID。
可以使用以下示例脚本获取身份验证令牌:
-
The
storagegrid-ssoauth-azure.pyPython 脚本 -
The
storagegrid-ssoauth-azure.jsNode.js 脚本
这两个脚本都位于 StorageGRID 安装文件目录中(RHEL 为 (./rpms,Ubuntu 或 Debian 为 ./debs,VMware 为 ./vsphere)。
要使用 Entra ID 编写自己的 API 集成,请参见 storagegrid-ssoauth-azure.py 脚本。Python 脚本直接向 StorageGRID 发出两个请求(首先获取 SAMLRequest,然后获取授权令牌),并调用 Node.js 脚本与 Entra ID 交互以执行 SSO 操作。
SSO 操作可以使用一系列 API 请求执行,但这样做并不简单。Puppeteer Node.js 模块用于抓取 Entra ID SSO 接口。
如果您遇到 URL 编码问题,则可能会看到错误: Unsupported SAML version。
-
安装所需的依赖项,如下:
-
安装 Node.js(请参见 "https://nodejs.org/en/download/")。
-
安装所需的 Node.js 模块(puppeteer 和 jsdom):
npm install -g <module>
-
-
将 Python 脚本传递给 Python 解释器以运行脚本。
然后,Python 脚本将调用相应的 Node.js 脚本来执行 Entra ID SSO 交互。
-
出现提示时,输入以下参数的值(或使用参数传入):
-
用于登录到 Entra ID 的 SSO 电子邮件地址
-
StorageGRID 的地址
-
租户帐户 ID(如果要访问租户管理 API)
-
-
出现提示时,请输入密码,并准备好在收到请求时向 Entra ID 提供 MFA 授权。

该脚本假设 MFA 是使用 Microsoft Authenticator 完成的。您可能需要修改脚本以支持其他形式的 MFA(例如输入在短信中收到的代码)。 StorageGRID 授权令牌在输出中提供。您现在可以将令牌用于其他请求,类似于在未使用 SSO 的情况下使用 API 的方式。