SuperAPI AI 工具集

ping-orchestration-ios-davinci-sdk

安全与审计

查看项目

更新于 10-16 10:51

技能介绍

Ping Orchestration iOS SDK (DaVinci) 技能用于在 iOS 应用中加入基于 PingOne DaVinci 的认证流程。它采用 SwiftUI、Combine 和 MVVM 模式,通过 Ping Orchestration iOS SDK 的 DaVinci 模块对接 PingOne DaVinci 编排服务器。

用途: 该技能可在 iOS 应用中搭建完整的认证流程。适用于从零构建一个带主题的示例应用,也适用于把认证集成到已有的 SwiftUI 应用中。

主要能力:

  • 配置 DaVinci 实例(OIDC 模块,含 discovery 端点、clientId、scopes、redirectUri)。
  • 使用 @Published 属性与 @MainActor 进行 MVVM 状态管理。
  • 用 SwiftUI 视图动态渲染 collector 节点。
  • 处理核心 collector:文本、密码、提交、流程、标签、单选、多选、电话号码、设备注册、设备认证。
  • 处理可选 collector:社交登录(IdpCollector,需 PingExternalIdP)、FIDO2/Passkey(需 PingFido)、PingOne Protect(需 PingProtect)。
  • 通过 ValidatedCollector 协议与 ValidationViewModel 进行表单校验。
  • 处理 ContinueNode、SuccessNode、FailureNode、ErrorNode 节点,ErrorNode 可通过 continueNode() 重新渲染之前的表单。
  • 会话管理与 OIDC token 交换,支持登出。

使用方式:

  1. 通过 Swift Package Manager 添加 Ping iOS SDK:包地址为 https://github.com/ForgeRock/ping-ios-sdk,版本 from "1.3.0"。必需产品包括 PingDavinci、PingOidc、PingOrchestrate;可选产品包括 PingExternalIdP、PingExternalIdPGoogle、PingExternalIdPFacebook、PingExternalIdPApple、PingProtect、PingFido、PingBrowser。
  2. 在 Info.plist 中注册 OAuth 2.0 重定向所需的 URL scheme,例如 myapp。
  3. 生成任何文件前先收集必需参数:clientId、discoveryEndpoint、scopes(默认 openid email profile)、redirectUri(默认 myapp://callback)。校验规则:discoveryEndpoint 必须以 /.well-known/openid-configuration 结尾;clientId 非空;redirectUri 需符合 <scheme>://<path> 且 scheme 与 Info.plist 一致;scopes 若不含 openid 应自动补上并提示。
  4. 依次创建 DavinciViewModel.swift(配置 DaVinci 实例)、ValidationViewModel.swift、DavinciView.swift、ContinueNodeView.swift 以及各 collector 的 SwiftUI 视图。
  5. 在 @main 中用 @StateObject 创建 ViewModel 并接入 DavinciView。
  6. 可用脚手架脚本 scripts/scaffold_auth.sh 复制模板,例如:./scripts/scaffold_auth.sh --target-dir MyApp/Sources。

适用场景:

  • 构建完整的示例 iOS 应用,演示 Ping Orchestration iOS SDK 与 PingOne DaVinci 的集成,包含导航、样式化视图、用户信息、access token 展示;需生成 Xcode 项目结构、Package.swift 依赖、Info.plist 条目与所有视图组件。
  • 在已有 SwiftUI 应用中集成 SDK,仅生成 SDK 集成文件(DavinciViewModel、collector 视图、DavinciView、工具视图)并指导接入现有导航与布局。

限制与注意事项:

  • 最低 iOS 版本 16.0,建议使用最新版 Xcode。
  • DaVinci 使用 PingOne 作为编排服务器(非 PingAM/AIC),使用 Collectors 而非 Callbacks,使用 DaVinci 类而非 Journey 类,API 表面不同。
  • 常见错误包括 URL scheme 不匹配、缺少 openid scope、未处理某 collector 类型、误用 Journey 代替 DaVinci、存在 Submittable 时未隐藏默认 Next 按钮、未通过 .environmentObject() 注入 ValidationViewModel、未填充 collector 值就调用 node.next()、未处理 ErrorNode 的 continueNode()。
  • 收费、价格、具体效果等信息暂未提供。

相关技能:ping-quickstart(平台检测与 Ping Identity 入门)、ping-orchestration-ios-journey-sdk(使用 Journey 模块的 iOS 认证,用于 PingOne AIC/PingAM)。