The Zurich release has arrived! Interested in new features and functionalities? Click here for more

OAuth with inbound REST - grant_type=password error

Colleen
Tera Expert

I am trying to implement OAuth to authenticate external clients who access our custom scripted REST API .

 

I followed the instructions in the ServiceNow docs > OAuth with inbound REST article to set the OAuth endpoint for external clients, as shown in the screenshot below:

OAuth.png

I am using this PowerShell script to make a grant_type=password request to get the access token.

 

$client_id = '<client id>'

$client_secret = '<client secret>'

$rest_user = '<user name>'

$rest_pw = '<user password>'

$token_url = 'https://<server url>/oauth_token.do'

$content_type = 'application/x-www-form-urlencoded'

$body = "grant_type=password&client_id=$($client_id)&client_secret=$($client_secret)&username=$($rest_user)&password=$($rest_pw)"

$response = Invoke-RestMethod -Method Post -Uri $token_url -ContentType $content_type -Body $body

 

The Invoke-RestMethod returns the following error:

{"error_description":"access_denied","error":"server_error"}

 

I have confirmed the username and password credentials by successfully using them with Basic Authentication.

 

We are currently on Xanadu. I remember previously using the same PowerShell code to successfully get an OAuth access token on an earlier release.

 

What am I doing wrong? Is there another way to get the OAuth access token?

 

 

1 REPLY 1

M Iftikhar
Mega Sage

Hi @Colleen ,

Please refer to the following community post:
Solved: OAuth 2.0 error access_denied - ServiceNow Community

They were having the same issue, and it was resolved by recreating a new application registry.
You can try this as well. It may resolve your issue as well.

Thanks & Regards,
Muhammad Iftikhar
If my response helped, please mark it as the accepted solution so others can benefit as well.