MIP SDK 中的身份验证是通过扩展 mip::AuthDelegate 类来实现你偏好的身份验证方法来执行的。 mip::AuthDelegate 包含:
mip::AuthDelegate::OAuth2Challenge- 用于管理 OAuth2 颁发机构信息并提供给客户端应用程序的类。mip::AuthDelegate::OAuth2Token- 用于管理 OAuth2 访问令牌的获取(从客户端应用程序)和令牌存储的类。mip::AuthDelegate::AcquireOAuth2Token()- 一种纯虚拟的功能,这种功能的实现决定了获取访问令牌的方法。 SDK 发起调用后,它会获取访问令牌,然后将访问令牌返回给 SDK 的身份验证逻辑。
mip::AuthDelegate::AcquireOAuth2Token 接受以下参数并返回一个布尔值,指示令牌获取是否成功:
mip::Identity:要进行身份验证的用户或服务的标识(如果已知)。mip::AuthDelegate::OAuth2Challenge:接受四个参数:authority、resource、claims 和 scopes。 “颁发机构”是将对其生成令牌的服务。 “资源”是我们尝试访问的服务。 调用时,SDK 负责将这些参数传递到代理人。 Claims 是保护服务要求的特定标签声明。 “范围”是访问资源所需的 Microsoft Entra 权限范围。mip::AuthDelegate::OAuth2Token:令牌结果将写入此对象。 加载引擎时,SDK 将使用它。 除身份验证实现外,不应在任何地方获取或设置此值。
重要提示:应用程序不直接调用 AcquireOAuth2Token。 需要时将由 SDK 调用此函数。
后续步骤
为简便起见,这些示例演示了代理人将通过调用外部脚本来实现令牌的获取。 可将此脚本替换为任何其他类型的脚本、开放源代码 OAuth2 库或自定义 OAuth2 库。