0

我们有由 Kendo UI 和后端 .NET Web 服务构建的混合移动应用程序。来自 UI 的所有调用都是通过 ajax 进行的。现在我们需要将应用程序集成到 OKTA 以进行用户身份验证,但不确定如何直接从 Web 服务调用从 OKTA 获取 SAML 令牌。

我们已经使用 Windows 身份框架实现了从 Web 服务调用 ADFS(活动端点)以获取 SAML 令牌,并且它可以工作。

如果有人可以分享经验或指出解决方案,将不胜感激!

4

1 回答 1

0

您可以使用以下序列来获取 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 为:

https://myorg.okta.com/home/salesforce/0oa31deg4ABCDEFGHIJ/46?onetimetoken=1234123DGSABDaSDBasdbasbdasdb-ABCDEAERasdlzxk

于 2016-03-25T22:04:49.070 回答