アクセス・トークンの取得方法

前提条件

アクセス・トークンを取得するには、ユーザ名とパスワードが必要です。これらは、 lets-fiware.sh を実行したディレクトリにある .env ファイルにあります。

IDM_ADMIN_EMAIL 変数にはユーザ名が設定されています。

cat .env | grep IDM_ADMIN_EMAIL
IDM_ADMIN_EMAIL=admin@example.com

IDM_ADMIN_PASS 変数にはパスワードが設定されています。

cat .env | grep IDM_ADMIN_PASS
IDM_ADMIN_PASS=zVBSpufGQpg6eN2h

Tokenproxy からアクセス・トークンを取得

Tokenproxy は、urlencoderd 形式または JSON 形式を使用してアクセス・トークンを取得する方法を サポートしています。Tokenproxy の URL は.envファイルにあります。パスは /token です。

cat .env | grep KEYROCK
KEYROCK=keyrock.example.com

curl で urlencoderd 形式を使用してアクセス・トークンを取得

リクエスト:

curl https://keyrock.example.com/token \
  --data "username=admin@example.com" \
  --data "password=zVBSpufGQpg6eN2h"

レスポンス:

{
  "access_token": "3b7c02f9e8a0b8fb1ca0df27052b6dfc00f32df4",
  "token_type": "bearer",
  "expires_in": 3599,
  "refresh_token": "8b23aeabcb97b2b6b09670c8fa4c448a46ab5268",
  "scope": [
    "bearer"
  ]
}

Python で urlencoderd 形式を使用してアクセス・トークンを取得

import requests
import json

url = 'https://keyrock.example.com/token'
payload = 'username=admin@example.com&password=zVBSpufGQpg6eN2h'
headers = {'Content-Type': 'application/x-www-form-urlencoded'}

res = requests.post(url, data=payload, headers=headers)

if (res.status_code == 200):
  print(res.text)
else:
  print(res.status_code)

curl で JSON 形式を使用してアクセス・トークンを取得

リクエスト:

curl https://keyrock.example.com/token \
  --header 'Content-Type: application/json' \
  --data '{"username":"admin@example.com", "password": "zVBSpufGQpg6eN2h"}'

レスポンス:

{
  "access_token": "d3ea43a2bb9784baaa8b9d79756163bc7f36e6d5",
  "token_type": "bearer",
  "expires_in": 3599,
  "refresh_token": "ebc53954a8905f3e33647fdde06369ce1b4c147d",
  "scope": [
    "bearer"
  ]
}

Python で JSON 形式を使用してアクセス・トークンを取得

import requests
import json

url = 'https://keyrock.example.com/token'
payload = {'username':'admin@example.com', 'password': 'zVBSpufGQpg6eN2h'}
headers = {'Content-Type': 'application/json'}

res = requests.post(url, data=json.dumps(payload), headers=headers)

if (res.status_code == 200):
  print(res.text)
else:
  print(res.status_code)

Get Keyrock からアクセス・トークンを取得

Keyrock から resource owner password credentials grant を使用して、アクセス・トークンを 取得できます。ユーザ名とパスワードに加えて、client id と client secretが必要です。これらは、 .env ファイルにあります。

cat .env | grep TOKENPROXY_CLIENT_ID
TOKENPROXY_CLIENT_ID=c33dc1ca-a9a3-4607-8102-11875e3ee3fc
cat .env | grep TOKENPROXY_CLIENT_SECRET
TOKENPROXY_CLIENT_SECRET=697f517e-d351-47de-83bd-b913b0351d6e

Keyrock の URL は .env ファイルに含まれています。パスは /oauth2/token です。

cat .env | grep KEYROCK
KEYROCK=keyrock.example.com

リクエスト:

curl https://keyrock.example.com/oauth2/token \
  --user c33dc1ca-a9a3-4607-8102-11875e3ee3fc:697f517e-d351-47de-83bd-b913b0351d6e \
  --data "grant_type=password" \
  --data "username=admin@example.com" \
  --data "password=zVBSpufGQpg6eN2h"

レスポンス:

{
  "access_token": "d3ea43a2bb9784baaa8b9d79756163bc7f36e6d5",
  "token_type": "bearer",
  "expires_in": 3599,
  "refresh_token": "ebc53954a8905f3e33647fdde06369ce1b4c147d",
  "scope": [
    "bearer"
  ]
}

NGSI Go でアクセス・トークンを取得

NGSI Go でアクセス・トークンを取得

リクエスト:

ngsi token --host orion.example.com

レスポンス:

73b60e9440a43f503264d4b064f89ea48f55e9f6

アクセス・トークンを環境変数に格納

リクエスト:

export TOKEN=$(ngsi token --host orion.example.com)
echo $TOKEN

レスポンス:

73b60e9440a43f503264d4b064f89ea48f55e9f6

NGSI Go でアクセス・トークンを取得 (詳細)

リクエスト:

ngsi token --host orion.example.com --verbose

レスポンス:

{
  "access_token": "73b60e9440a43f503264d4b064f89ea48f55e9f6",
  "expires_in": 3599,
  "refresh_token": "68ca9efd955d178ea98e833f4920b904a0646d3d",
  "scope": [
    "bearer"
  ],
  "token_type": "bearer"
}

こちら に 例があります。

関連情報

ℹ️ 注意: アクセス・トークンの値は、例を示すためのダミーのため、無効です。