Guest User

openstack_keystone_oauth1

a guest
May 2nd, 2017
177
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.05 KB | None | 0 0
  1. import requests
  2. import json
  3. from oauthlib import oauth1
  4.  
  5. project = 'cd412a0a360248898f05ed8c16de9458'
  6. token_url = 'http://192.168.56.101/identity/v3/auth/tokens'
  7. headers = {'content-type': 'application/json', 'Accept': 'application/json'}
  8. token_payload = { "auth": {
  9.     "identity": {
  10.       "methods": ["password"],
  11.       "password": {
  12.         "user": {
  13.           "name": "admin",
  14.           "domain": { "id": "default" },
  15.           "password": "nova"
  16.         }
  17.       }
  18.     },
  19.     "scope": {
  20.       "project": {
  21.         "name": "demo",
  22.         "domain": { "id": "default" }
  23.       }
  24.     }
  25.   }
  26. }
  27.  
  28.  
  29. resp = requests.post(token_url, data=json.dumps(token_payload), headers=headers)
  30. token = resp.headers['X-Subject-Token']
  31.  
  32. consumer_url = 'http://192.168.56.101/identity_admin/v3/OS-OAUTH1/consumers'
  33. consumer_payload = {"consumer": {"description": "Consumer 1"}}
  34. headers['X-Auth-Token'] = token
  35. resp = requests.post(consumer_url, data=json.dumps(consumer_payload), headers=headers)
  36. consumer1 = json.loads(resp.text)
  37.  
  38. oauth_request_token_url = 'http://192.168.56.101/identity_admin/v3/OS-OAUTH1/request_token'
  39. oauth_client = oauth1.Client(consumer1['consumer']['id'],
  40.                              client_secret=consumer1['consumer']['secret'],
  41.                              signature_method=oauth1.SIGNATURE_HMAC,
  42.                              callback_uri='oob')
  43. headers1 = {'Requested-Project-Id': project}
  44. url, headers, body = oauth_client.sign(oauth_request_token_url,
  45.                                        http_method='POST',
  46.                                        headers=headers1)
  47. headers['X-Auth-Token'] = token
  48. oauth_request_token_url = 'http://192.168.56.101/identity_admin/v3/OS-OAUTH1/request_token'
  49. resp = requests.post(oauth_request_token_url, data=None, headers=headers)
  50. print resp.status_code
  51.  
  52. # Status code - 401
  53. # Change oauth_request_token_url to 'http://192.168.56.101/identity/v3/OS-OAUTH1/request_token'
  54. # on line 38 and rerun the script, status code is 201
  55.  
  56. # oauth_token = dict(item.split("=") for item in resp.text.split("&"))
Add Comment
Please, Sign In to add comment