我们有由 Kendo UI 和后端 .NET Web 服务构建的混合移动应用程序。来自 UI 的所有调用都是通过 ajax 进行的。现在我们需要将应用程序集成到 OKTA 以进行用户身份验证,但不确定如何直接从 Web 服务调用从 OKTA 获取 SAML 令牌。
我们已经使用 Windows 身份框架实现了从 Web 服务调用 ADFS(活动端点)以获取 SAML 令牌,并且它可以工作。
如果有人可以分享经验或指出解决方案,将不胜感激!
您可以使用以下序列来获取 SAML 断言:
1)您可以使用 /api/v1/authn 建立获取会话令牌。这将需要用户凭据。示例请求如下所示:
{
"username": "john.doe@foo.com",
"password": "myPa$$word",
"relayState": "/myapp/some/deep/link/i/want/to/return/to",
"options": {
"multiOptionalFactorEnroll": false,
"warnBeforePasswordExpired": false
}
}
响应将返回一个 sessionToken 值。
2) 现在使用该值作为输入,您可以使用 /api/v1/sessions?additionalFields=cookieToken 返回一个 cookieToken
请求将如下所示:
{
"sessionToken": "1234123DGSABDaSDBasdbaasbdasdb-ABCDEAERasdlzxk"
}
响应将包含一个 cookieToken 值
3) 现在您可以使用会触发 SAML 的应用 SSO URL - 并在末尾附加一次性 cookietoken 以获取 SAML 断言。如果您将此 URL 粘贴到浏览器中,它实际上会将您登录到启用 SAML 的应用程序。
示例 URL 为: