Authentication API を使用すると、FIWARE IoT Stack APIs を使用するためにログインしてトークンを取得できます。
Device APIは、観測値を送信するためにAuthentication APIからのトークンを必要としないことに注意してください。
ログイン¶
トークンを取得するために、資格情報 (ユーザ名とパスワード) を使用してログインすることができます。どのサービス(またはサービスとサブサービス)を使用すべきかを指示するために、スコープが示されていることを確認してください。
POST /v3/auth/tokens HTTP/1.1
Host: test.ttcloud.net:5001
Content-Type: application/json
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"domain": {
"name": "{{Fiware-Service}}"
},
"name": "{{user-name}}",
"password": "{{user-pass}}"
}
}
},
"scope": {
"domain": {
"name": "{{Fiware-Service}}"
}
}
}
}
ユーザがサブサービスでロールしか持たない場合は、サブ・サービススコープのトークンを要求する必要があります :
POST /v3/auth/tokens HTTP/1.1
Host: test.ttcloud.net:5001
Content-Type: application/json
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"domain": {
"name": "{{Fiware-Service}}"
},
"name": "{{user-name}}",
"password": "{{user-pass}}"
}
}
},
"scope": {
"project": {
"domain": {
"name": "{{Fiware-Service}}"
},
"name": "/{{Fiware-ServicePath}}"
}
}
}
}
いずれの場合も、X-Subject-Token
と呼ばれるヘッダを持つ HTTP 201 Created レスポンスを受け取ります。これが {{user-token}} です :
HTTP 201 Created
Content-Type : application/json
Vary : X-Auth-Token
X-Subject-Token : {{user-token}}
{
"token": {
"domain": {
"id": "63e0201c733343bb85e275f32b891be2",
"name": "{{Fiware-Service}}"
},
"methods": [
"password"
],
"roles": [
{
"id": "eb4f224ca3ee4e829790765c30adfbf3",
"name": "admin"
}
],
"expires_at": "2018-08-26T08:14:59.632237Z",
"catalog": [],
"extras": {},
"user": {
"domain": {
"id": "63e0201c733343bb85e275f32b891be2",
"name": "{{Fiware-Service}}"
},
"id": "f44ae6ecb4ea4310810273b042946505",
"name": "{{user-name}}"
},
"issued_at": "2015-08-27T08:14:59.632260Z"
}
}
次の手順で {{user-token}} を正しく貼り付けるように注意してください。これはAPI トークンであり、一定の期間有効です(ほとんどの場合、1時間)。
指定された別のトークンから新しいトークンを取得¶
トークンを取得すると、同じ効果を持つ別のトークンを取得できます :
POST /v3/auth/tokens HTTP/1.1
Host: test.ttcloud.net:5001
Content-Type: application/json
X-Auth-Token: {{user-token}}
{
"auth": {
"identity": {
"methods": [
"token"
],
"token": {
"id": "{{user-token}}"
}
}
}
}
トークンのステータスを取得¶
トークンを取得したら、いつでもその有効性をチェックし、次のような情報を得ることができます :
GET /v3/auth/tokens HTTP/1.1
Host: test.ttcloud.net:5001
Content-Type: application/json
X-Auth-Token: {{user-token}}
X-Subject-Token: {{token-to-analize}}
トークンが発行された日時とレスポンス・ボディで期限切れになる時期を確認できます :
{
"token": {
"issued_at": "2015-08-27T08:22:39.688387Z",
"extras": {},
"methods": [
"token",
"password"
],
"expires_at": "2018-08-25T08:30:37.131450Z",
"user": {
"domain": {
"id": "63e0201c733343bb85e275f32b891be2",
"name": "{{Fiware-Service}}"
},
"id": "f44ae6ecb4ea4310810273b042946505",
"name": "{{user-token}}"
}
}
}
トークンの有効期限を延長することはできませんが、いつでも新しいトークンを要求することができます。以前に取得したトークンは有効です。
トークンの有効性をチェック¶
トークンを取得すると、次のようにいつでも有効性を確認できます :
HEAD /v3/auth/tokens HTTP/1.1
Host: test.ttcloud.net:5001
Content-Type: application/json
X-Auth-Token: {{user-token}}
X-Subject-Token: {{token-to-analize}}
x-subject-token
で提供されたトークンが有効な場合、200応答が返されます。
追加の詳細情報¶
セキュリティ・コンポーネント(IDM, PEP, AC) で、この機能および、リファレンス API ドキュメント、ソースコードを提供する FIWAREコンポーネント に関する詳細情報を入手できます。