"cc7f0481ff60662d36220e25d5260d71" . . . . . "VirtuosoOAuthServer" . . "VirtuosoOAuthServer" . . "2017-06-13T05:42:17Z" . . . "VirtuosoOAuthServer" . "%VOSWARNING%\n\n\n%META:TOPICPARENT{name=\"OAuth\"}%\n%TOC%\n\n---+ OAuth server\n\n---++ General\n\nThe [[OAuth]] protocol enables web services consumers to access protected resources \nvia an API without requiring users to supply the service credentials to the consumers. \nIt's a generic methodology for unobtrusive, wire protocol level authenticated data access over HTTP.\n\n---++ API\n\nVirtuoso implements the OAuth Core 1.0 specification, and exposes the following API \nendpoints:\n\n---+++ Request token \n\nEndpoint: http://server-cname/OAuth/request_token\n\n\nParameters\n * oauth_consumer_key — The Consumer Key. \n * oauth_signature_method — The signature method the Consumer used to \nsign the request. \n * oauth_signature — The signature as defined in Signing Requests \n(Signing Requests). \n * oauth_timestamp — As defined in Nonce and Timestamp (Nonce and \nTimestamp). \n * oauth_nonce — As defined in Nonce and Timestamp (Nonce and \nTimestamp). \n * oauth_version — OPTIONAL. If present, value MUST be 1.0 . \n\n---++++ Example\n\nRequest:\n\nhttp://localhost:8890/OAuth/request_token?oauth_version=1.0&oauth_nonce\n=dad4cb071e2169cbcaa051d404ac61a3&oauth_timestamp=1201873644&oauth_cons\numer_key=f756023be5ff1f20881cf8fe398069f3976b2304&oauth_signature_metho\nd=HMAC-SHA1&oauth_signature=z76k5fQ0msFsQzCmhO%2FJZ329ZUE%3D\n\n\nNote: all long lines in example texts are split, i.e., the GET request is single line.\n\nResponse:\n\noauth_token=b4e22daa117b0bebf60ab6ba6e401edc7addd78c&oauth_token_secret\n=4de6e3ab17553a0a385ebf6a3b4dd30f\n\n\n---+++ Authorization \n\nEndpoint: http://server-cname/OAuth/authorize\n\n\nParameters:\n * oauth_token — The Request Token obtained in the previous step. The current implementation \nof the Service Provider declare this parameter as REQUIRED.\n * oauth_callback — OPTIONAL. The Consumer MAY specify a URL the Service Provider will use \nto redirect the User back to the Consumer when Obtaining User Authorization (Obtaining User \nAuthorization) is complete.\n\n---++++ Example\n\nRequest:\n\nhttp://localhost:8890/OAuth/authorize?oauth_token=b4e22daa117b0bebf60ab\n6ba6e401edc7addd78c&oauth_callback=http%3A%2F%2Flocalhost%3A8890%2Foaut\nh%2Fexample%2Fclient.php%3Fkey%3Df756023be5ff1f20881cf8fe398069f3976b23\n04%26secret%3Dcc249bfb732039d8ecba9e4f94fdead7%26token%3Db4e22daa117b0b\nebf60ab6ba6e401edc7addd78c%26token_secret%3D4de6e3ab17553a0a385ebf6a3b4\ndd30f%26endpoint%3Dhttp%253A%252F%252Flocalhost%253A8890%252FOAuth%252F\nauthorize\n\n\nThe User will be asked via web page to accept or decline the token.\n\n---+++ Access token\n\nEndpoint: http://server-cname/OAuth/access_token\n\n\nParameters:\n * oauth_consumer_key — The Consumer Key. \n * oauth_token — The Request Token obtained previously. \n * oauth_signature_method — The signature method the Consumer used \nto sign the request. \n * oauth_signature — The signature as defined in Signing Requests \n(Signing Requests). \n * oauth_timestamp — As defined in Nonce and Timestamp (Nonce and \nTimestamp). \n * oauth_nonce — As defined in Nonce and Timestamp (Nonce and \nTimestamp). \n * oauth_version — OPTIONAL. If present, value MUST be 1.0 . \n\n---++++ Example\n\nRequest:\n\nhttp://localhost:8890/OAuth/access_token?oauth_version=1.0&oauth_nonce=\n8ad75091a66bdd741472be42149c828e&oauth_timestamp=1201873800&oauth_consu\nmer_key=f756023be5ff1f20881cf8fe398069f3976b2304&oauth_token=b4e22daa11\n7b0bebf60ab6ba6e401edc7addd78c&oauth_signature_method=HMAC-SHA1&oauth_s\nignature=tCxy0Lod4%2Bp%2FCBPV7Ph7RrsHXe4%3D\n\n\nResponse:\n\noauth_token=8c03b3da93480ca4728cc1194d6d03962f3bb5bb&oauth_token_secret\n=854fd29c00adcedff4fbeaeb96584911\n\n\nIn addition to the endpoints, it defines an API for PL applications to check authentication:\n\n---+++ Authentication verification\n\n\nOAUTH.DBA.check_authentication (in params any, in lines any)\n\n\nParameters:\n * params — an array of strings representing the HTTP parameters \n * lines — an array of HTTP request headers\n\nResult:\n * on success, it returns integer 1.\n * on failure, it signals an SQL error.\n\n\n---++++Sample code\n\nA sample service (oauth.vsp):\n\n\n\n\nAn OAuth testing page\n\n\n\n\n---++++Sample request\n\n\nhttp://localhost:8890/admin/oauth.vsp?oauth_version=1.0&oauth_nonce=d57\n640869b994b2d51bf9800229c4997&oauth_timestamp=1201873935&oauth_consumer\n_key=f756023be5ff1f20881cf8fe398069f3976b2304&oauth_token=8c03b3da93480\nca4728cc1194d6d03962f3bb5bb&oauth_signature_method=HMAC-SHA1&oauth_sign\nature=X3K4lr9bJVz5YLnnyJDkykQZivY%3D\n\n\n---++++Sample response\n\n\n\n\nAn OAuth testing page\n\n\n\n\n---++References\n\n * [[OAuth][OpenLink's explanation of OAuth]]\n * [[http://ods.openlinksw.com/dataspace/dav/wiki/ODS/VirtOAuthControllers][Using OAuth with ODS]]\n * [[http://ods.openlinksw.com/dataspace/dav/wiki/ODS/VirtuosoOdsUbiquity][ODS Ubiquity Commands]]\n * [[VirtOAuth][Virtuoso OAuth Implementation]]\n * [[http://ods.openlinksw.com/dataspace/dav/wiki/ODS/VirtuosoOdsControllers][ODS Controllers]] \n * [[http://ods.openlinksw.com/dataspace/dav/wiki/ODS/VirtODSOAuthQA][Testing Virtuoso OAuth with 3rd Party OAuth Clients]]\n * [[http://ods.openlinksw.com/dataspace/dav/wiki/ODS/VirtuosoOdsUbiquityTutorialsOAuth][OAuth Ubiquity Tutorial]]\n * [[http://ods.openlinksw.com/dataspace/dav/wiki/ODS/VirtOAuthTestTool][Virtuoso OAuth Test Tool for ODS Controllers]]\n * [[VirtOAuthSPARQL][Virtuoso SPARQL OAuth Tutorial]]\n * [[http://ods.openlinksw.com/dataspace/dav/wiki/ODS/VirtuosoOdsUbiquityTutorials][ODS Ubiquity Tutorials]]\n * [[http://ods.openlinksw.com/dataspace/dav/wiki/ODS/VirtOAuthExamples][OAuth Applications Authentication examples]]\n * [[http://oauth.net/core/1.0/][OAuth API]]\n * [[VirtAuthServerUI][Virtuoso Authentication Server UI]]\n\nCategoryVirtuoso CategoryODS CategoryOAuth CategoryVOS CategoryDocumentation" . . . . . . . . . . . . . . . . "2017-06-13T05:42:17.247141"^^ . . "2017-06-13T05:42:17.247141"^^ . . . . "2017-06-13T05:42:17Z" . . . . .