エッジの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}"