使用JWT流配置和使用贵组织的自定义OAuth 2应用程序
要与Workfront集成并允许您的客户端应用程序代表用户与Workfront进行通信,您必须:
- 创建OAuth2应用程序
- 创建公钥证书
- 创建JSON Web令牌(JWT)
创建OAuth2应用程序
有关创建OAuth2应用程序的说明,请参阅为Workfront集成创建OAuth2应用程序中的使用服务器身份验证(JWT流)创建OAuth2应用程序
NOTE
您一次最多可以拥有10个OAuth2应用程序。
创建公钥证书
JWT必须经过签名并进行base-64编码以包含在访问请求中。 JWT库提供了用于执行这些任务的功能。
必须使用数字签名证书的私钥对令牌进行签名。 如果这样做,您可以使用任何关联证书的私钥来签署您的JWT。
使用的算法是RS256(使用SHA-256的RSA签名)。 这是一种非对称算法,使用公钥/私钥对。 身份提供者具有用于生成签名的私钥(密钥),并且JWT的消费者获得用于验证签名的公钥。
若要生成公钥,请执行以下操作中的 一个。
-
打开MacOS/Linux终端并执行以下命令,然后使用Workfront中OAuth2应用程序设置中的 添加公钥 按钮上传
certificate_pub.crt
。code language-none openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout private.key -out certificate_pub.crt
-
在Workfront中的OAuth2应用程序设置中使用 生成公钥/私钥对 按钮来生成RSA。
创建JSON Web令牌
用于服务帐户身份验证的JSON Web令牌需要一组特定的声明,必须使用有效的数字签名证书进行签名。 我们建议您使用其中一个公开可用的库或工具来构建JWT。
下表包含配置JWT令牌时可能需要的字段相关信息。
交换JWT以检索访问令牌
-
发送POST请求到:
code language-none https://yourdomain.my.workfront.com/integrations/oauth2/api/v1/jwt/exchange
-
请求正文应包含URL编码的参数,以及您的客户端ID、客户端密钥和JWT:
code language-none client_id={client_id_value}&client_secret={client_secret_value}&jwt_token={base64_encoded_JWT}
recommendation-more-help
5f00cc6b-2202-40d6-bcd0-3ee0c2316b43