如何使用联合SSO(SAML2)调用AtTask REST API

时间:2015-04-07 18:04:04

标签: java oauth-2.0 saml saml-2.0 attask

我使用第三方IDP(ADFS)将Attask与SAML集成在一起。我有我的Web应用程序,它也支持SAML并配置相同的IDP。我能够在两个应用程序(Attask和我的应用程序)中使用IDP登录,并能够从我的应用程序和副verca访问Attask应用程序。

现在我必须从我的应用程序在Workfront中创建项目。我可以使用rest API调用使用管理员用户名/密码创建项目。但是当我在SSO的帮助下转到工作台页面时,我无法看到该项目。因为此项目是使用管理员凭据创建的。这是我需要解决的主要问题。

我必须在rest API的帮助下使用当前登录用户创建项目。

Attask是否支持Oauth令牌来访问API?

有人能提出一些好方法。任何帮助将非常感谢!!!

2 个答案:

答案 0 :(得分:2)

目前没有任何workfront API与Oauth一起使用。要进行身份验证,您需要提供用户名/密码,sessionID或apiKey。您最好的方法是添加逻辑以将用户设置为项目所有者。这样项目就会出现。

答案 1 :(得分:1)

支持SSO的问题,我只是解决了从用户创建项目(或任何对象)的问题。 Workfront API中的许多对象将忽略传入的incomingBy或createdBy类型值。例如,如果我尝试将注释附加到项目并传递owner = 123 .. UID,它仍将设置所有者到API的经过身份验证的用户。如果您使用的是API密钥,那么这将是您管理员的用户名。

要解决这个问题,您需要使用一个小技巧以您想要拥有该对象的用户身份登录。事实证明,您可以向API传递用户名和API密钥而不是密码。例如

http://idt.attask-ondemand.com/attask/api/v4.0/login?username=bob.jones@mysite.com&apiKey=6dd3je2u0tpt7lffjg3h6qnl3xzaabjq

这将返回与Bob Jones关联的会话ID。现在,您使用该会话ID创建的任何对象都将来自Bob。在做其他任何事情之前,请记住以API的正确用户身份重新登录。

我使用此代码编写其他用户的更新。