公司

Company是Concur中的顶级主体,您将能够代表Company获取访问令牌和刷新令牌,就像您能够获取User一样。目前只有一个授权流可用于为Company获取令牌,即密码授予使用从App Center接收的临时认证令牌。

获取认证令牌

要开始一个公司的身份验证流程,首先必须通过AppCenter的接口获得一个临时的身份验证令牌。AppCenter将请求一个临时的认证令牌,并将其交给合作伙伴,后者随后将使用它密码授予将临时认证令牌交换为公司的完全访问令牌和刷新令牌。

认证令牌仅在12小时内有效。合作伙伴有12小时的时间来交换认证令牌以获得刷新和访问令牌,并且在网络故障的情况下,可以在12小时内多次使用该认证令牌。

下面的认证流程图描述了这种握手:

公司认证流程序列图

公司认证流程序列图

AppCenter将调用这个端点来获取authToken

POST / profile-service / v1 /键/负责人/ < companyId > / authtoken /

示例旋度:

旋度- eappcenter.p12:。- h“concur-correlationid: githbuwiki”-XPOSThttps://us.api.concursolutions.com/profile-service/v1/keys/principals/08BCCA1E-0D4F-4261-9F1B-F778D96617D6/authtoken/
200好了
“状态”“通过”“代码”0“errormsg”""“令牌”“< authToken >”

AppCenter将用户重定向到客户端的认证处理程序URI(连接URL),并传入authToken

301重定向https://client.app.url?idcompany_uuid美元&requestTokenrequest_token美元用户标识user_uuid美元

此时,应该提示用户登录应用程序。如果用户没有帐户,那么用户应该有能力创建一个帐户。对于具有用户读取作用域的应用程序,可以使用user UUID来预填充帐户创建表单。请参见App Center用户体验指南为更多的信息。

客户端应用程序调用Oauth2密码授权,为公司获得访问令牌

的名字 类型 格式 描述
client_id 字符串 UIID Applications client_id由App Management提供
client_secret 字符串 UUID application client_secret由App Management提供
grant_type 字符串 - 指定您希望oauth2服务处理的授权类型。对于密码授予,取值为密码
用户名 字符串 - 指定companyId用于密码授权请求。的id以上。
密码 字符串 - 指定authToken用于密码授权请求。的requestToken以上。
credtype 字符串 - credtype向oauth2表示请求中提交的是哪个凭据集。价值:authtoken

例子

请求

POST /oauth2/v0/token HTTP/1.1 Content-Type: application/x-www-form-urlencoded Host: us.api.concursolutions.com Connection: close Content-Length: 175client_idyour-client_id client_secretyour-client_secret &grant_type密码的用户名< companyId >密码< authtoken > &credtypeauthtoken

响应

成功

HTTP/1.1 200 OK Content-Type: application/json Date: Date -requested Content-Length: 3397 Connection: Close
“expires_in”“3600”“范围”“app_scopes”“token_type”“持票人”“access_token”“access_token”“refresh_token”“refresh_token”“地理位置”“https://us.api.concursolutions.com”

失败

“错误”“invalid_grant”“error_description”“不正确的凭证。请重试”“代码”5

响应代码

HTTP状态码oauth2返回
HTTP状态代码 描述
200 好的-成功呼叫,反应在身体上。
400 坏的请求(错误、error_description代码)
401 未经授权的(错误、error_description代码)
403 被禁止的(错误、error_description代码)
404 没有找到(错误、error_description代码)
500 服务器错误,错误信息在正文中。
503 服务器超时,错误消息在正文。

4xx类错误有一个JSON响应,包含以下字段

“代码”“< >”“错误”“< >错误”“error_description”“< error_description >”
/令牌
代码 错误 描述
5 invalid_grant 不正确的凭证。请重试
10 invalid_grant 帐户被禁用。请联系支持
11 invalid_grant 帐户被禁用。请联系支持
12 invalid_grant 登录否认。请联系支持
13 invalid_grant 登录否认。请联系支持
14 invalid_grant 帐户锁定。请联系支持
16 invalid_request 用户的生活在别处
19 invalid_grant 不正确的凭证。请重试
51 invalid_request 未提供用户名
52 invalid_request 未提供密码
53 invalid_client 该客户端未启用公司
54 invalid_scope 请求的范围超出授予的范围
55 invalid_request 我们不知道这封邮件
56 invalid_request otp没有提供
57 invalid_request channel_type失踪
58 invalid_request channel_handle失踪
59 access_denied 客户禁用
60 invalid_grant 这些不是你想要的拨款
61 invalid_client 客户没有找到
62 invalid_request client_id没有提供
63 invalid_request client_secret没有提供
64 invalid_client 不正确的凭证。请重试
65 invalid_request grant_type没有提供
80 invalid_request 无效的通道类型
81 invalid_request 坏的通道处理
83 invalid_request otp未找到
84 invalid_request 事实验证失败
85 invalid_request otp验证失败
One hundred. invalid_request 后台不知道这个用户名
101 invalid_request 未提供代码
102 invalid_request redirect_uri没有提供
103 invalid_request 代码是坏的或过期的
104 invalid_grant redirect_uri与先前的资助金额不符
105 invalid_grant 这笔拨款不是发给你的!
106 invalid_request refresh_token没有提供
107 invalid_request 应用程序不允许刷新
108 invalid_grant 刷新令牌错误或过期
109 invalid_request loginid没有提供
115 invalid_request 未经身份验证的客户端将不会被颁发令牌!
117 invalid_request Nonce是强制性的response_type
118 invalid_request 显示是无效的
119 invalid_request 提示是无效的
119 invalid_request 提示符必须设置为同意offline_access