Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在不使用浏览器的情况下从.NETWeb服务代码中从OKTA获取SAML令牌?_.net_Saml_Okta - Fatal编程技术网

如何在不使用浏览器的情况下从.NETWeb服务代码中从OKTA获取SAML令牌?

如何在不使用浏览器的情况下从.NETWeb服务代码中从OKTA获取SAML令牌?,.net,saml,okta,.net,Saml,Okta,我们有由剑道UI和后端.NET web服务构建的混合移动应用程序。来自UI的所有调用都是通过ajax进行的。现在我们需要将应用程序集成到OKTA以进行用户身份验证,但不确定如何直接从web服务调用从OKTA获取SAML令牌 我们已经使用windows identity framework从web服务实现了对ADFS(活动端点)的调用,以获取SAML令牌,并且它可以正常工作 如果有人能分享经验或指出解决方案,我们将不胜感激 您可以使用以下序列获得SAML断言: 1) 您可以使用/api/v1/au

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

我们已经使用windows identity framework从web服务实现了对ADFS(活动端点)的调用,以获取SAML令牌,并且它可以正常工作


如果有人能分享经验或指出解决方案,我们将不胜感激

您可以使用以下序列获得SAML断言:

1) 您可以使用/api/v1/authn来建立和获取sessiontoken。这将需要用户凭据。示例请求如下所示:

{
  "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为:


我尝试使用这种方法对SharePoint服务器进行身份验证,但当我调用/api/v1/sessions?additionalFields=cookieToken端点并从/api/v1/authn返回sessionToken时,响应总是403-禁止[“无效会话”],即,{“错误代码”:“E0000005”,“错误摘要”:“无效会话”,“错误链接”:“E0000005”,“errorId:“oaew0udr2ElRfCnZvBFt075SA”,“errorCauses:[]}我用Java完成了这项工作。您可以在