Important Update: Archer Community Scheduled Maintenance on November 23–24 - New Community Launching Soon! Learn More..
2018-08-20 12:25 PM
Greetings API community,
I am new to the Archer API so please forgive the simple questions.
Using PowerShell and the REST API sample calls I was able to complete the basics such as set the Instance information, login and obtain a session token. The “All Applications” call lists the applications in my instance but starts the output with a 401 error. The API account being used is local with system admin rights.
ERROR AT BEGINNING OF OUTPUT:
Invoke-RestMethod : The remote server returned an error: (401) Unauthorized.
At C:\Users\JohCh001\Documents\All Applications.ps1:5 char:12
+ $results = Invoke-RestMethod -Method POST -Uri $api_url -Headers $headersGET -Co ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
QUESTIONS:
1. Reading the instructions the header requires the session token but how is the token request incorporated into the command?
2. Does the session request begin before or after the GET header command?
3. I searched for other postings similar to mine but none found. Any guidance is greatly appreciated!!!
EXAMPLE FROM SAMPLE CALLS DOCUMENT
$headersGET = @{}
$headersGET.Add("Authorization", "Archer session-id=" + $session_token)
$headersGET.Add("X-Http-Method-Override", "GET")
$headers = @{}
$headers.Add("Authorization", "Archer session-id=" + $session_token)
Thank you
cj
2018-08-20 04:32 PM
SiteMinder could still be the problem for many reasons...it has not excluded the /api path from requiring authentication...or not allowing certain VERBS...etc. Either turn off SiteMinder temporarily or have SiteMinder Team enable info logging to see if it doesn't like something you are doing.
2018-08-20 03:39 PM
The 401 may indicate the /api path in IIS Manager is not set to Anonymous authentication.
The headers are passed when making the REST API call. For example, to get the Archer version, the $headersGET variable is passed to the -Headers parameter.
$api_url = $base_url + "/api/core/system/applicationinfo/version"
$results = Invoke-RestMethod -Method POST -Uri $api_url -Headers $headersGET -ContentType "application/json" -WebSession $sess
$results.RequestedObject
$version = $results.RequestedObject.Version
2018-08-20 04:29 PM
Hi Jeff,
Thank you for the fast reply. I confirmed the required folders (API, WS, etc) are set to Anonymous authentication. Turns out all the folders under the web server are set to Anonymous. This environment runs SiteMinder but that should not interfere with API commands?
As a troubleshooting step I changed the Default Web Site to Windows and no change. I flipped it back to Anonymous, reset IIS and able to obtain a session token. Attempted to run the “All Applications” and now receive an error message no results
I will compare the IIS settings to another environment and make sure they match.
Invoke-RestMethod : The remote server returned an error: (401) Unauthorized.
At C:\Users\JohCh001\Documents\All Applications.ps1:5 char:12
+ $results = Invoke-RestMethod -Method POST -Uri $api_url -Headers $headersGET -Co ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) , WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand
Christopher Johnson
Staples Cyber Security
T: 913.449.0782
christopher.johnson@staples.com<mailto:donald.assalone@staples.com>
2018-08-20 04:32 PM
SiteMinder could still be the problem for many reasons...it has not excluded the /api path from requiring authentication...or not allowing certain VERBS...etc. Either turn off SiteMinder temporarily or have SiteMinder Team enable info logging to see if it doesn't like something you are doing.
2018-08-20 04:51 PM
Good call.
Christopher Johnson
Staples Cyber Security
T: 913.449.0782
christopher.johnson@staples.com<mailto:donald.assalone@staples.com>
2018-11-28 09:15 AM
Hi,
Anything similar to retrieve the version in SOAP API?