RESTful Server Configuration With IDRAC RESTful API

2y ago
13 Views
3 Downloads
1.87 MB
53 Pages
Last View : 14d ago
Last Download : 3m ago
Upload by : Elisha Lemon
Transcription

RESTful Server Configuration with iDRACRESTful APIDell EMC Customer Solutions CenterNovember 2017AuthorsTexas Roemer, Sr. Test Engineer (Dell EMC Server Solutions)Paul Rubin, Sr. Product Manager (Dell EMC Server Solutions)Jonas Werner, Sr. Solutions Architect (Dell EMC Customer Solutions Center)A Dell EMC Technical White Paper

RevisionsDateDescriptionJune 2016Initial releaseJune 2017Updated for 14th generation PowerEdge serversOctober 2017Updated for iDRAC7/8 2.50.50.50 firmwareNovember 2017Corrected typos in section 2.7The information in this publication is provided “as is.” Dell Inc. makes no representations or warranties of any kind with respect to the information in thispublication, and specifically disclaims implied warranties of merchantability or fitness for a particular purpose.Use, copying, and distribution of any software described in this publication requires an applicable software license.Copyright 2017 Dell Inc. or its subsidiaries. All Rights Reserved. Dell, EMC, and other trademarks are trademarks of Dell Inc. or its subsidiaries. Othertrademarks may be the property of their respective owners. Published in the USA [11/10/2017] [Technical White Paper]Dell believes the information in this document is accurate as of its publication date. The information is subject to change without notice.2RESTful Server Configuration with iDRAC RESTful API

ContentsRevisions.2Executive summary.41Introduction .51.1DMTF Redfish Standard .51.2iDRAC with Lifecycle Controller RESTful API .61.3Configuring servers with Server Configuration Profiles .71.3.1 New SCP features for iDRAC7 or iDRAC8, and iDRAC9 .82Using iDRAC RESTful API with Server Configuration Profiles .92.1Preparing to use SCP ExportSystemConfiguration method .102.2Executing iDRAC RESTful API SCP export script .112.3Exporting JSON SCP to an HTTP(S) share with iDRAC9 .152.4Exporting SCP to a streamed local file .182.5Previewing SCP imports with iDRAC RESTful API .212.6Importing SCPs with iDRAC RESTful API .252.7Importing SCP with Firmware Repository Update .292.8Importing SCP from an HTTP share with iDRAC .302.9Importing SCP from a streamed local file .332.10 Cloning servers with iDRAC RESTful API .362.11 Creating a source image of an already configured server .362.12 Applying a source configuration image to a target server .392.12.1Modifying the iDRAC IP address to match the clone target .392.12.2Importing the cloned SCP to the target server .402.13 Using partial SCP imports .412.14 Creating SCP files for partial imports .412.15 Keeping order among server configuration files .4133Tips, tricks, and suggestions .424Summary .455Additional Information .46A.1Verifying iDRAC RESTful API with Redfish service is enabled .47A.2iDRAC RESTful API – SCP Export, Preview, and Import APIs .49RESTful Server Configuration with iDRAC RESTful API

Executive summaryThe growing scale of cloud- and web-based data center infrastructure is reshaping the needs of ITadministration worldwide. New approaches to systems management are needed to keep up with a growingand changing market.To accommodate the needs for efficient systems management automation, Dell has developed the integratedDell Remote Access Controller (iDRAC) with Lifecycle Controller RESTful API with support for the DistributedManagement Task Force (DMTF) Redfish standard. Together, the iDRAC RESTful API and Redfish enablethe automation of scalable and secure management. One of the latest enhancements to the iDRAC RESTfulAPI is support for RESTful server configuration with Server Configuration Profiles (SCP). Using the iDRACSCP RESTful API, administrators can obtain the configuration details of 12th, and 13th, and 14th generationDell PowerEdge servers, preview the application of a configuration file to a server, and apply configurationfiles to establish BIOS, iDRAC, PERC RAID controller, NIC, and HBA settings.This document provides an overview of the iDRAC RESTful API, the Redfish Scalable Platforms ManagementAPI standard, and details the use of the iDRAC SCP RESTful API for RESTful configuration management ofPowerEdge servers.4RESTful Server Configuration with iDRAC RESTful API

1IntroductionAs the scale of deployment has grown for x86 servers, IT administrators have seen their scope expand frommanaging a handful of servers to hundreds or even thousands of servers. The deployment scale and the ITmodels have changed – from physical to virtual, from on-premises to cloud to hybrid cloud – leading towholesale changes in the tools and processes of IT management.In response to these changes, Dell and the industry have developed new systems management automationmethods and standards that utilize web and cloud computing technologies. Among these technologies, APIsusing the Representational State Transfer (REST) architecture, such as the Distributed Management TaskForce (DMTF) Redfish standard, are becoming key enablers for efficient automation of server deploymentand update.The heart of embedded management automation in every Dell PowerEdge server—the iDRAC with LifecycleController— provides the ability to generate a human-readable snapshot of server configuration via a ServerConfiguration Profile (SCP). This single file contains all BIOS, iDRAC, Lifecycle Controller, Network, andStorage settings. After capture, this file can be modified as needed, and applied to other servers, includingdifferent server models. The iDRAC has supported export, preview, and import operations for SCP using theWS-Man API and RACADM command line interface since the 12th generation of PowerEdge servers. Withthe version 2.40.40.40 firmware update or later, these operations are also supported using iDRAC RESTfulAPI extensions, enabling RESTful configuration of all settings for 12th, 13th and 14th generation PowerEdgeservers.This whitepaper provides an overview of the iDRAC RESTful API and Redfish standard and illustrates thepractical use of the RESTful Server Configuration Profile features: 1.1Showing how to clone or replace settings from a designated source or “golden” serverPreview applying these settingsImporting the settings to a target server.DMTF Redfish StandardThere are various out-of-band systems management standards available in the industry today. However,there is no single standard that can be easily used within emerging programming standards, readilyimplemented within embedded systems, and meet the demands of today’s evolving IT solution models.Emerging IT solutions models have placed new demands on systems management solutions to supportexpanded scale, higher security, and multi-vendor openness while also aligning with modern DevOps toolsand processes.Recognizing these needs, Dell and other IT solutions leaders within the DMTF undertook the creation of anew management interface standard. After a multi-year effort, the new standard, Redfish v1.0, wasannounced in July, 2015.Its key benefits include: 5Increased simplicity and usabilityEncrypted connections and heightened securityRESTful Server Configuration with iDRAC RESTful API

A programmatic interface that can be easily controlled through scriptsAbility to meet the Open Compute Project’s Remote Machine Management requirementsBased on widely used standards for web APIs and data formatsRedfish has been designed to support the full range of server architectures from monolithic servers toconverged infrastructure and hyper scale architecture. The Redfish data model, which defines the structureand format of data representing server status, inventory, and available operational functions, is vendorneutral. Administrators can then create management automation scripts that can manage any Redfishcompliant server. This is crucial for the efficient operation of a heterogeneous server fleet.Using Redfish also has significant security benefits—unlike legacy management protocols, Redfish utilizesHTTPS encryption for secure and reliable communication. All Redfish network traffic, including eventnotifications, can be sent encrypted across the network.Redfish provides a highly organized and easily accessible method to interact with a server using scriptingtools. The web interface employed by Redfish is supported by many programming languages and its tree-likestructure makes information easier to locate. Data returned from a Redfish query can be turned into asearchable dictionary consisting of key-value-pairs. By looking at the values in the dictionary, it is easy tolocate settings and current status of a system managed by Redfish. These settings can then be updated andactions can be issued to one or multiple systems.Since its July, 2015 introduction, Redfish has continued to grow and evolve with specification updatesreleased in 2016 covering key operations such as BIOS configuration, server firmware update, and detailedserver inventory.1.2iDRAC with Lifecycle Controller RESTful APITo support the DMTF Redfish standard, the iDRAC with Lifecycle Controller has been enhanced to support aRESTful API in addition to the current support for the IPMI, SNMP, and WS-Man standard APIs. The iDRACRESTful API builds upon the Redfish standard to provide a RESTful interface for Dell value-add operationsincluding Information on all iDRAC with Lifecycle Controller out-of-band services—web server, SNMP, virtualmedia, SSH, Telnet, IPMI, and KVMExpanded storage subsystem reporting covering controllers, enclosures, and drivesFor the PowerEdge FX2 modular, detailed chassis information covering power supplies,temperatures, and fansWith the iDRAC Service Module installed under the server OS, the API provides detailed inventoryand status reporting for host network interfaces including such details as IP address, subnet mask,and gateway for the Host OSThe following sections provide details concerning the iDRAC RESTful API interface calls that enable RESTfulconfiguration of PowerEdge servers with Server Configuration Profiles (SCP).6RESTful Server Configuration with iDRAC RESTful API

1.3Configuring servers with Server Configuration ProfilesBeginning with 12th generation PowerEdge servers, iDRAC with Lifecycle Controller has featured the use ofServer Configuration Profiles (SCP) to configure BIOS, iDRAC, PERC RAID controller, and NIC/HBA settingsin a single file. This greatly simplifies bare metal deployments and scale out operations by removingcomplexity from server configuration. Rather than manually interacting with BIOS F2/F10 screens or writingcomplex scripts, administrators can set up an initial “gold” configuration server, capture the settings into anSCP file, modify the profile as needed, and apply the profile across a pool of target servers. Beginning withiDRAC7/8 firmware version 2.50.50.50 and iDRAC9 firmware version 3.00.00.00, SCP files can be expressedin either XML or JSON format. Figure 1 illustrates an SCP XML format file:Viewing an SCP XML fileiDRAC with Lifecycle Controller supports a range of mechanisms for SCP file operations. These mechanismsinclude: 7iDRAC USB Direct: Imports an SCP file from a USB memory key attached to the iDRAC USB portZero Touch Auto Config: Imports an SCP file from a network share when the server is attached to thenetworkiDRAC RESTful and WS-Man APIs: Provide application calls for exporting, previewing import andimporting SCP files from a network shareRESTful Server Configuration with iDRAC RESTful API

PowerEdge PowerShell cmdlets: Support WS-Man SCP operations via PowerShell scriptingRACADM CLI: Provides SCP export, preview, and import operations via local SCP files in addition tonetwork share-based SCP filesFor details on these features, see the Additional Information section.1.3.1New SCP features for iDRAC7 or iDRAC8, and iDRAC9The introduction of 14th generation PowerEdge servers with iDRAC9 firmware 3.00.00.00 includesenhancements to SCP operations including: SCP operations via HTTP, HTTPS, and via local file streaming in addition to CIFS and NFSServer firmware update from repository as part of SCP importSCP export and import in JSON format in addition to XMLiDRAC9 GUI SCP page for interactive SCP export and importAuto Config support via HTTP and HTTPS in addition to CIFS and NFS and support for JSON formatin addition to XMLNote: when performing HTTPS-based SCP operations with the iDRAC RESTful API with Redfish, certificatewarnings will be ignored; there is not currently an option to force certificate checking.iDRAC7/iDRAC8 with firmware version 2.50.50.50 or later includes these SCP feature enhancements: SCP operations by using local file streaming in addition to CIFS and NFSServer firmware update from repository as part of the SCP import processSCP export and import in JSON format in addition to the XML file formatDetails are included below on these enhancements for RESTful server configuration.8RESTful Server Configuration with iDRAC RESTful API

2Using iDRAC RESTful API with Server Configuration ProfilesTo create a Server Configuration Profile file for import to a new or to-be-reprovisioned server, create a“golden configuration” on a PowerEdge server. After the server is configured as needed, it can act as atemplate for other servers that need to use the same or similar server settings. To use these settings, an SCPfile must be created by exporting the current server settings to a file. The exported SCP file can be edited, asneeded, and used to either preview an import to a target server or be actually imported to configure a targetserver.Note: Ensure that the RESTful API is enabled for the iDRAC with Lifecycle Controller before you perform anyof the actions provided in the below scripts. For help in verifying and enabling the RESTful API, seeAppendix 1.Let us now see how the iDRAC RESTful API SCP operations can be automated with the use of the Pythonscripting language. Before explaining the SCP RESTful APIs, review the RACADM Command Line InterfaceSCP operations. Following are examples of RACADM commands to export an SCP file from a server andplace the results into a CIFS or NFS network share:# racadm get –f serverscp –t xml –u CIFSuser -p CIFSpassword -l CIFS Share path # racadm get –f serverscp –t xml –l NFS Share path For 14th generation PowerEdge servers, additional RACADM options include:# racadm –get –f serverscp –t JSON –u HTTP/S user -p HTTP/S password -l HTTP/S Share path In addition to the required parameters—SCP file name, network share pathname, and for CIFS share access,a valid CIFS username and password—you can specify a few more optional parameters. These parametersinclude: Selectors to include specific server component configuration information such as BIOS onlyOption to hash encode exported passwordsOption to produce an SCP file in a form that clones the source server by not duplicating settings thatuniquely identify the server such as server service tag, or to produce an SCP file that can replace thesource server by duplicating all settings, including identifying settings.Appendix 2 illustrates the available SCP export, preview, and import options available using the iDRAC SCPRESTful API. This JSON-formatted output is produced using any iDRAC-supported web browser to accessthe following URL:https:// iDRAC IP /redfish/v1/Managers/iDRAC.Embedded.1In the Appendix 2 JSON output, under the “OEM” section, are the supported methods for SCP operationsincluding ExportSystemConfiguration, ImportSystemConfiguration andImportSystemConfigurationPreview. The required and optional parameters are detailed within eachmethod.9RESTful Server Configuration with iDRAC RESTful API

2.1Preparing to use SCP ExportSystemConfiguration methodThis section provides details about the creation of Python scripts for exporting a system configuration to aCIFS share by using a RESTful POST command. Before creating the Python script, two specific Pythonmodules are needed: requests and json. If your version of Python does not have these modules installed,use “make-install” to install them.To begin the script, compile the URL for the POST command. From Appendix 2, view the JSON output forURL “https:// iDRAC IP /redfish/v1/Managers/iDRAC.Embedded.1”, look within the OEMExportSystemConfiguration method and find “Target”. This URL is assigned to the variable “url” for thePOST command. For example:url https:// iDRACIP EID 674 Manager.ExportSystemConfigurationCreate a header that acts as a dictionary that specifies that the content type of the POST operation will beJSON:headers {'content-type': 'application/json'}Next, compile a payload dictionary for the parameters that will be provided for theExportSystemConfiguration method. ShareParameters must be a nested dictionary within a dictionary; thisnesting is visible within the JSON output in Appendix 2:payload s share","ShareType":"CIFS","UserName":" cifsusername ","Password":" cifs password ","FileName":"R740xd SCP.xml"}}This payload indicates that: The SCP will be exported in XML formatAll possible server configuration components—BIOS, iDRAC, PERC, NIC, and HBA—will be exportedSpecifies the address of the source server iDRACProvides the CIFS share pathname, file name, and credentials to access the CIFS shareCompile the POST command by passing in the URL, payload, and header. Assign this command to a variablewhich will be used to parse the data, check the status code, and get the job ID for the SCP export job. Thisscript uses Basic Authentication and passes the required iDRAC administrator credentials:response requests.post(url, data json.dumps(payload), headers headers,verify False, auth (‘username’,’password’))Using the above, here is an example Python script to export the SCP file to a CIFS share:10RESTful Server Configuration with iDRAC RESTful API

Script – redfish SCP export cifs.v1.py: Version 1## Version 1 - Python iDRAC RESTful API script to export#server configuration profile#import requests, jsonurl mbedded.1/Actions/Oem/EID 674 Manager.ExportSystemConfiguration'payload s ord":"password","FileName":"R740xd SCP.xml"}}headers {'content-type': 'application/json'}response requests.post(url, data json.dumps(payload), headers headers, verify False,auth ('username','password'))print '- Response status code is: %s' % response.status coderesponse output response. dictprint response output2.2Executing iDRAC RESTful API SCP export scriptWe will now execute the SCP export Python script and parse the data returned. The key information neededfrom the output are the “status code” returned by the export request and the “Job ID” – when an SCP export isrequested, the iDRAC will create an asynchronous job to gather all of the requested settings from the servercomponents, assemble the results into a file, and write the file to the target network share. The job will bemonitored to determine its successful completion. python ./redfish SCP export cifs.v1.py- Response status code is: 202{'cookies': class 'requests.cookies.RequestsCookieJar' [] , ' content': '','headers': {'Content-Length': '0', 'Keep-Alive': 'timeout 60, max 100','Server': 'Apache/2.4', 'Connection': 'Keep-Alive', 'Location':'/redfish/v1/TaskService/Tasks/JID 967978014801', 'Cache-Control': 'no-cache','Date': 'Wed, 07 Jun 2017 01:10:01 GMT', 'OData-Version': '4.0', 'AccessControl-Allow-Origin': '*', 'Content-Type':'application/json;odata.metadata minimal;charset utf-8', 'X-Frame-Options':'DENY'}, iDRAC.Embedded.1/Actions/Oem/EID 674Manager.ExportSystemConfiguration', 'status code': 202, ' content consumed':True, 'encoding': 'utf-8', 'request': PreparedRequest [POST] , 'connection': requests.adapters.HTTPAdapter object at 0x7ffa89d5f290 , 'elapsed':datetime.timedelta(0, 1, 102737), 'raw': requests.packages.urllib3.response.HTTPResponse object at 0x7ffa89d8f290 ,'reason': 'Accepted', 'history': []} A status code return of “202” indicates the SCP export request was successful. For more information onpossible returned status code values, consult the Dell Redfish API Reference Guide.11RESTful Server Configuration with iDRAC RESTful API

Notice that Job ID is a value nested within a dictionary of a dictionary. We will now modify the script to accessthe dictionary and then parse the value using regular expressions to obtain the Job ID. The added code forthis purpose is highlighted in the following script:Script – redfish SCP export cifs.v2.py version 2:## Version 2 - Python iDRAC RESTful API script to export#server configuration profile#import requests, json, reurl mbedded.1/Actions/Oem/EID 674 Manager.ExportSystemConfiguration'payload s ord":"password","FileName": "R730 SCP.xml"}}headers {'content-type': 'application/json'}response requests.post(url, data json.dumps(payload), headers headers, verify False,auth ('username','password'))print '- Response status code is: %s' % response.status coderesponse output response. dictjob id response output["headers"]["Location"]job id re.search("JID . ",job id).group()print "- Job ID is: %s" % job idNow, execute version 2 and view the returned status code and Job ID: python ./redfish SCP export cifs.v2.py- Response status code is: 202- Job ID is: JID 967983367454 After a successful export request operation, wait till the export job is complete. This is performed by queryingthe RESTful API Task Service until the job completes successfully or indicates an error. We will create ascript to check the job status and then run the script with the Job ID as an input parameter:Script: rest SCP get job status.pyimport requests, sysjob id sys.argv[1]req kService/Tasks/%s' % (job id),auth ("username", "password"), verify False)statusCode req.status codeprint "- Status code is: %s" % statusCodedata req.json()message string data[u"Messages"]print "- Job ID " data[u"Id"]print "- Name " data[u"Name"]print "- Message " message string[0][u"Message"]print "- JobStatus " data[u"TaskState"]12RESTful Server Configuration with iDRAC RESTful API

python ./redfish SCP get job status.py JID 967983367454Status code is: 200Job ID JID 967983367454Name Export: Server Configuration ProfileMessage Successfully exported Server Configuration ProfileJobStatus CompletedNow we combine and enhance the scripts to perform the SCP export and await completion of the export job:Script – redfish SCP export cifs.v3.py version 3:# Python script using Redfish API to perform iDRAC feature# Server Configuration Profile (SCP) for export onlyimport requests, json, sys, re, timefrom datetime import datetimetry:idrac ip sys.argv[1]idrac username sys.argv[2]idrac password sys.argv[3]file sys.argv[4]except:print "\n- FAIL, you must pass in script name along with iDRAC IP/iDRAC username/iDRAC paassword/file name"sys.exit()url ctions/Oem/EID 674 Manager.ExportSystemConfiguration' % idrac ip# For payload dictionary supported parameters, refer to schema# "https://'iDRAC IP'/redfish/v1/Managers/iDRAC.Embedded.1/"payload ress":"192.168.0.130","ShareName":"smb e":"username","Password":"password"}}headers {'content-type': 'application/json'}response requests.post(url, data json.dumps(payload), headers headers, verify False, auth (idracusername,idrac password))d str(response. dict )try:z re.search("JID . ?,",d).group()except:print "\n- FAIL: detailed error message: {0}".format(response. dict [' content'])sys.exit()job id re.sub("[,']","",z)if response.status code ! 202:print "\n##### Command Failed, status code not 202\n, code is: %s" % response.status codesys.exit()else:13RESTful Server Configuration with iDRAC RESTful API

print "\n- %s successfully created for ExportSystemConfiguration method\n" % (job id)response output response. dictjob id response output["headers"]["Location"]job id re.search("JID . ",job id).group()start time datetime.now()while True:req sks/%s' % (idrac ip, job id), auth (idrac username, idrac password), verify False)statusCode req.status codedata req.json()message string data[u"Messages"]current time (datetime.now()-start time)if statusCode 202 or statusCode 200:print "\n- Query job ID command passed"time.sleep(10)else:print "Query job ID command failed, error code is: %s" % statusCodesys.exit()if "failed" in data[u"Messages"] or "completed with errors" in data[u"Messages"]:print "Job failed, current message is: %s" % data[u"Messages"]sys.exit()elif data[u"TaskState"] "Completed":print "\nJob ID " data[u"Id"]print "Name " data[u"Name"]try:print "Message " message string[0][u"Message"]except:print data[u"Messages"][0][u"Message"]print "JobStatus " data[u"TaskState"]print "\n%s completed in: %s" % (job id, str(current time)[0:7])sys.exit()elif data[u"TaskState"] "Completed with Errors" or data[u"TaskState"] "Failed":print "\nJob ID " data[u"Id"]print "Name " data[u"Name"]try:print "Message " message string[0][u"Message"]except:print data[u"Messages"][0][u"Message"]print "JobStatus " data[u"TaskState"]print "\n%s completed in: %s" % (job id, str(current time)[0:7])sys.exit()else:print "- Job not marked completed, current status is: %s" % data[u"TaskState"]print "- Message: %s\n" % message string[0][u"Message"]time.sleep(1)continuedata req.json()print "Job ID " data[u"Id"]print "Name " data[u"Name"]print "Message " data[u"Messages"]print "JobStatus " data[u"TaskState"]14RESTful Server Configuration with iDRAC RESTful API

python ./redfish SCP export cifs.v3.py 192.168.0.120 root calvinjwr rf exp.v3 02.xml- JID 967992694673 successfully created for ExportSystemConfiguration method- Query job ID command passed- Job not marked completed, current status is: Running- Message: Exporting Server Configuration Profile.- Query job ID command passedJob ID JID 967992694673Name Export: Server Configuration ProfileMessage Successfully exported Server Configuration ProfileJobStatus CompletedJID 967992694673 completed in: 0:00:13 2.3Exporting JSON SCP to an HTTP(S) share with iDRAC9Serving SCP files from a web server can be a useful way to provide easy-

A Dell EMC Technical White Paper RESTful Server Configuration with iDRAC RESTful API Dell EMC Customer Solutions Center November 2017 Authors Texas Roemer, Sr. Test Engineer (Dell EMC Server Solutions) Paul Rubin, Sr. Product Manager (Dell EMC Server Solutions) Jonas Werner, Sr. Solutions Archit

Related Documents:

Testing RESTful Web Services. Monitoring RESTful Web Services and Clients. About Monitoring RESTful Web Services7-1. Monitoring RESTful Web Services Using the Administration Console7-2. Monitoring RESTful Web Services Using WLST7-2. Enabling the Tracing Feature7-5. Disabling RESTful Web Service Application Monitoring7-6

Sathish Ponnusamy . 2 No Restrictions iDRAC Access via Host Operating System Revisions Date Description July 2016 Initial release December 2016 Revised for iDRAC Service Module release 2.4.0 THIS WHITE PAPER IS FOR INFORMATIONA

Providing RESTful Web Services MiServer 3.0 Page 1 of 8 A MiSite can be configured to provide RESTful web services. This document describes the steps necessary to do so. While we will cover some RESTful concepts, this is not tutorial on RESTful web services themselves - for a good overview of RESTful web services, please see

NOTE: By default (enabled), a console session to a given blade will be available to both the iDRAC interf ace and a iKVM (user connected to a blade's console via iDRAC and the iKVM will see the same video and be able to type commands). The iDRAC

A. RESTful API and RESTful API Deprecation REST is the most popular architectural design for building web services on top of HTTP [2]. To access a resource (service) provided by a RESTful API, API consumers need to send an HTTP request, which is represented using a Uniform Resource Identifier (URI), to the server at API provider side

RESTful Web Services for use by applications which reside outside the Database Cloud. In addition, the next release of SQL Developer will include the ability to create RESTful Web Services from SQL Developer worksheets. Please be aware that the RESTful capabilities described in this white paper are available through the APEX

Secure Web Services!18 Secure Web Services Clearly, there has to be a way to secure a web service so that only authorized users can access it -And access those which are secured Server-Side -How to create a RESTful web service secured with OAuth Client-Side -How to consume a RESTful web service with secured with OAuth!19 Server!20

BAR and BAN List – Topeka Housing Authority – March 8, 2021 A. Abbey, Shanetta Allen, Sherri A. Ackward, Antonio D. Alejos, Evan Ackward, Word D. Jr. Adams .