Adobe I/O IMS 图书馆的 OAuth 支持
OAuth2( SUSI) 符号创建插件 aio-lib-ims。 。 。 .
此插件意在结合 aio-lib-ims 扩展此功能, 支持基于 3- leged OAuth2 的浏览器认证 SUSI 流量。 。 。 .
关于Adobe I/O CLI IMS插件的一般设置,请参考 aio-lib-ims。 。 。 .
3-leged OAuth2需要与浏览器进行交互,因为接收授权代码的初始认证步骤可能涉及基于浏览器的多个步骤. 例如,IMS企业一体化可能涉及进一步转向第三方进行实际认证.
工作流量 :
- 生成4字节的随机密码
- 创建本地主机网络服务器, 在端口号监听
- Adobe I/O 运行时的网络动作在浏览器中打开,通过此密码,本地主机网络服务器端口号,客户端 id,以及作为查询参数的IMS范围
- Adobe I/O 运行时网络动作将重定向到IMS的授权端点,其范围,客户端 ID 和 a 页:1 符号为
state属性( 来源于 id、 客户端 id、 范围和 localhost 端口) 作为查询参数传递 - 当用户被认证或发生出错时,IMS端点将重定向到 Adobe I/O 运行时的网络动作
login-success路径 - 如果认证成功, Adobe I/O Runtime 网络动作将重定向到指定端口的本地主机网络服务器( 来源于
state并转发state财务报告和审定财务报表code作为查询参数的本地主机网络服务器调用属性 - Localhost网络服务器将把授权代码传递到库中,库会调用一个IMS端点,以交换授权代码作为访问令牌并刷新令牌
- 如果认证不成功, Adobe I/O Runtime 网络动作将在网页浏览器中报告错误消息
Adobe I/O 运行时函数( 目前用于测试) 即将到来 .
配置
添加数据 oauth2 语境 .aio 当前工作目录中的文件(项目文件夹),下 ims数字 :
{
ims: {
contexts: {
oauth2: {
client_id: "YOUR_CLIENT_ID",
client_secret: "YOUR_CLIENT_SECRET",
scope: "YOUR_IMS_SCOPE"
}
}
}
}
上下文可以被命名为任何东西( 这里 ) oauth2 为上下文名称所选择.
客户身份
客户端ID( 在开发者控制台中称为 OAuth2 证书) 必须允许 Adobe I/O 运行时动作的 login-success 路径作为重定向 URL。 为此,它应该被配置为OAuth2证书在开发者控制台中的重定向URI模式之一,其值:
https://aio-login\.adobeioruntime\.net/api/v1/web/default/applogin/login-success
请注意, URL 中点的回击是非常重要的, 因为这个值必须是有效的正则表达式 .
例如如下截图编辑证书所示:

环境变量
| 变量 | 说明 | 默认 |
|---|---|---|
AIO_IMS_LOCAL_LOGIN_PORT | 本地登录服务器的端口号 。 对需要转发特定端口的 Docker 环境有用 。 必须是有效的数字; 返回到 0 (OS指定)如果未设置或无效. | 0 |
例如运行 aio login 在端口转发的多克容器内:
export LOCAL_LOGIN_PORT=8080
docker run --rm -it -p ${LOCAL_LOGIN_PORT}:${LOCAL_LOGIN_PORT} -e AIO_IMS_LOCAL_LOGIN_PORT=${LOCAL_LOGIN_PORT} node:24-slim sh -c "npm install -g @adobe/aio-cli && bash"
捐款
欢迎捐款! 读取 贡献指南 更多信息.
许可证发放
这个项目根据Apache V2许可证获得许可. 见 自由主义 更多信息.