APIリクエストを認証するにはどうすればよいですか?



image avatar

Dwight Bussman

Zendesk Customer Care

編集日時:2025年4月22日


2

0

20件のコメント

Hi Paolo,

First, I need to emphasize that “I don't want to ask users about their passwords”.
I want to show some Zendesk content in my web app based on users' authorization status.

 

If I go with Oauth2, I will need to ask user's password, this is the example from Oauth2 Password grant type

curl https://{subdomain}.zendesk.com/oauth/tokens \
  -H "Content-Type: application/json" \
  -d '{"grant_type": "password", "client_id": "{your_client_id}", 
    "client_secret": "{your_client_secret}", "scope": "read",
    "username": "{zendesk_username}", "password": "{zendesk_password}"}' \
  -X POST

 

If I go with Making API requests on behalf of end users, I also need password from the user.

curl https://{subdomain}.zendesk.com/api/v2/oauth/tokens.json \
-H "Content-Type: application/json" \
-d '{"token": {"client_id": "your_client_id", "scopes": ["impersonate", "write"]}}' \
-X POST -v -u {email_address}:{password}

 

Either way I need users' passwords to do it, is there a way I can do it without requesting their passwords?
 

0


Hi Glenn,
 
If you need the actual user's password, unfortunately, there is no way on getting this unless you ask them. In addition, it is not recommended to have your end user's password as this may arise security concerns. Can you please explain further the purpose of why the actual user password is needed, and the an OAuth or a token is not sufficient?
 
Best,
Paolo | Technical Support Engineer | Zendesk

0


Hi all

I have similar concern with Ramy Ben Aroya' s comment here

I want to show some Zendesk content in my web app. As far as I know, I can do it either through Oauth2 or by making a request on behalf of an user, but eventually I will need end users' passwords, is there a way I can do it without having to request their passwords?

0


Hi All,

I ran into the same issues described by some people. Here's my working solution: 

I enconded the credentials mentioned on the dokumention '{email_address}/token:{api_token}'

with UTF-8

$Base64AuthInfo = "{email_address}/token:{api_token}"
$Base64AuthInfo = [convert]::ToBase64String([text.encoding]::UTF8.GetBytes($Base64AuthInfo))

My previous attempt encoding with unicode did not work. 

$Base64AuthInfo = "{email_address}/token:{api_token}"
$Base64AuthInfo = [convert]::ToBase64String([text.encoding]::Unicode.GetBytes($Base64AuthInfo))

 

Maybe a mention of that could be usefull inside the API documentation. 

 

Cheers!!

Benedikt

2


Hi All!

If you are working on macOS, I recommend that you follow the tip given by Nick Bolton.  I tried to create the base64 code using the -i option of the base64 comman, but it kept adding an extra character to the end of encoded output.

Cheers!!

Dermot

0


Hi Felipe,

Yes, you can use SSO for your end users. Please refer to Providing multiple sign-in options for team members and end users.

-1


Hello, SSO authentication works to customer's side?
We don't have our customer's zendesk password.

0


I'm sure it is something I'm doing wrong but I have been over and over that article and am not seeing what I have done wrong.  I'll contact support.  Also I can curl using the email/token:tokeninfo so it has to do with my encoding of the email/token:tokeninfo.

0


Hi 5410209777818

After doing that encoding are you passing the encoded value in as a Basic Authorization header as documented here: https://developer.zendesk.com/api-reference/introduction/security-and-auth/#basic-authentication 

Authorization: Basic {base64-encoded-string}

If that doesn't help sort things out for you, I recommend contacting our support team to look into logs for your specific account.

0


Hi!  I'm trying to use Azure Logic Apps to Authentic for a POC but I keep getting 401  Couldn't authenticate you.  

I've encoded my username/token:aaaa via powershell this way but I must be missing something.

$text = "myname@mydomain.com/token:tokentexthere"
$encoded = [convert]::ToBase64String([text.encoding]::Unicode.GetBytes($text))
$encoded

I went through this article and tried OAuth, api, user/password but just not getting authenticated.  

Any ideas would be welcome!

0


サインインしてコメントを残してください。

アカウントの詳細情報

サインインして詳細を表示

サインインするとアカウントの詳細を一目で確認できます

サインイン