エッジのOAuth2クライアントクレデンシャルを使う
intdashにおけるエッジは、OAuth 2.0(RFC 6749 、以下OAuth2)の仕様に沿ったクライアントでもあります。 そのため、エッジは、自身が持つクライアントクレデンシャル(クライアントIDとクライアントシークレット)を使って、intdashの認可サーバーでアクセストークンを取得し、intdash APIのリソースにアクセスすることができます。
なお、intdashにおいて、認可サーバーとリソースサーバーは同一です。
1. アクセストークンを取得する
エッジが持つクライアントID(エッジUUID)とクライアントシークレットを使ってアクセストークンをリクエストします。
重要
エッジのUUIDをクライアントIDとして使用します。
$ curl -X POST https://example.intdash.jp/api/auth/oauth2/token \
-d "grant_type=client_credentials&client_id=3cdf....&client_secret=2akq...."
これにより、アクセストークンを含むレスポンスが返ります。
レスポンス例:
{
"access_token": "eyJh....",
"expires_in": 3599,
"scope": ".....",
"token_type": "bearer"
}
リフレッシュトークンは発行されませんので、有効期限が切れた後はもう一度同じようにアクセストークンをリクエストしてください。
2. OAuth2アクセストークンを使用してリソースサーバーにアクセスする
上記の方法で得たOAuth2アクセストークンを使用して、intdashが管理するリソースにアクセスするには、以下のいずれかのようにします。
アクセストークンをAuthorizationヘッダーにセットしてリクエストする。
$ curl -X GET https://example.intdash.jp/api/v1/measurements \ -H "Authorization: Bearer ${ACCESS_TOKEN}"
アクセストークンをCookieにセットした状態でリクエストする。
$ curl -X GET https://example.intdash.jp/api/v1/measurements \ -H "Cookie: _bearer_token=${ACCESS_TOKEN}"