OneLogin访问令牌请求不起作用(未授权)

问题描述 投票:0回答:1

我只是设置了一个OneLogin帐户,并希望根据文档中的curl从命令行进行基本测试

https://developers.onelogin.com/api-docs/1/getting-started/working-with-api-credentials

https://developers.onelogin.com/api-docs/1/oauth20-tokens/generate-tokens-2

尽管curl命令有许多排列,但我还是“未经授权”。让我从上面第二个链接中的文档中包含的curl命令开始。我这样做:

curl 'https://api.us.onelogin.com/auth/oauth2/v2/token' \
-X POST \
-H "Authorization: client_id:144a1200f765fc67f1e, client_secret:d2dc92524169ee2" \
-H "Content-Type: application/json" \
-d '{
  "grant_type":"client_credentials"
}'

(包含假的client_id和client_secret,以便您可以看到他们在我的通话中采用的形式,即空格,编码等)

响应:

{"status":{"error":true,"code":401,"type":"Unauthorized","message":"Authentication Failure"}}

所以我尝试了所有我能想到的“授权”系列。以下是我尝试过的一些示例:

# base64 encode just the client_id and the client_secret (i.e., separately encoded and independent)
Authorization: client_id:zODU1NjYwOTRiZjYwOWFiOWJiZDQ1NGZjNg==, client_secret:WIxY2NjZWJjNWJlZDJlZDdiYmFiMDZiYTkyNzY3M2IxZQ==
# result: unauthorized

# base64 encode "Basic <client_id:client_secret>"
Authorization: Basic NjllZTIxZGRjOWU5YjFjY2NlYmM1YmVkMmVkN2JiYWIwNmJhOTI3NjczYjFl
# result: unauthorized

# use Basic without base64 encoding id and secret
Authorization: Basic 094bf609ab9bbd454fc6:c5bed2ed7bbab06ba927673b1e
# result: unauthorized

最后......这里是凭证页面的图像,以证明我确实在适当的位置创建了id和秘密。

screenshot of my OneLogin credentials redacted

credentials onelogin
1个回答
0
投票

我很尴尬地给出了这个答案的解决方案,除了通过猜测,没有任何人可以正确回答这个问题。

我在工作流程的早期意外地交换了client_id和client_secret,并且从未回过头来仔细检查它们......或者至少如果我仔细检查它们,我会两次犯同样的错误。

我最好猜测我交换它们的原因是它们在文档和API中出现在一个订单(client_id,client_secret)中,并且它们在OneLogin UI(client_secret,client_id)中以相反的顺序出现。你可以在我的OP中看到这个。

正确的curl命令是我在答案中给出的第一个...纯文本客户端ID和秘密(不是base64编码)。这里再次供参考:

curl 'https://api.us.onelogin.com/auth/oauth2/v2/token' \
-X POST \
-H "Authorization: client_id:bed2ed7bbab06ba927673b1e, client_secret:385566094bf609ab9bbd454fc6" \
-H "Content-Type: application/json" \
-d '{
  "grant_type":"client_credentials"
}'
© www.soinside.com 2019 - 2024. All rights reserved.