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

How to call AtTask REST API with Federated SSO (SAML2)

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

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

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

A​​ttask 是否支持 Oauth 令牌访问 API?

谁能推荐一些好的方法。任何帮助将不胜感激!!!

NO workfront API 目前不适用于 Oauth。要进行身份验证,您需要提供 username/password、sessionID 或 apiKey。您最好的方法是添加逻辑以将用户设置为项目所有者。这样项目就会显示出来。

暂且不提 SSO 问题,我只是想解决您对从用户创建项目(或任何对象)的担忧。 Workfront API 中的许多对象将简单地忽略传入的 enteredBy 或 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

这将 return 一个与 Bob Jones 关联的会话 ID。现在,您使用该会话 ID 创建的任何对象都将来自 Bob。请记住在执行任何其他操作之前以 API 的正确用户身份重新登录。

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