M2Mでユーザ操作系のAPIを実行する – 【Auth0】

M2Mでユーザ操作系のAPIを実行する – 【Auth0】

前提

  • Auth0アカウント作成済
  • M2Mアプリケーション作成済
  • Domainはdev-xxxx1xxxx111xxxx.jp.auth0.com

M2Mでアクセストークン取得(client secret(post))

API使用するためにアクセストークンを取得します。

$ curl --request POST \
  --url 'https://dev-xxxx1xxxx111xxxx.jp.auth0.com/oauth/token' \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=client_credentials \
  --data client_id=mu9UwdImFvafUpX5c81xFoqiCXVlsHnN \
  --data client_secret=1K5jBMQbJhMII6RhILfJSKKdzUdiNTJ_KWzW7tE1gBGjHYwUDfczJjQ8yd0WC38d \
  --data audience=https://dev-xxxx1xxxx111xxxx.jp.auth0.com/api/v2/

レスポンスが返ってきます。

{
    "access_token": "xxx...",
    "scope": "read:client_grants create:client_grants delete:client_grants...",
    "expires_in": 86400,
    "token_type": "Bearer"
}
Get Access Tokens
Learn how to request Access Tokens using the Authorize endpoint when authenticating users and include the target audienc...
Authentication API Explorer
Get started using Auth0. Implement authentication for any kind of application in minutes.
Client Credentials Flow
Learn how the Client Credentials flow works and why you should use it for machine-to-machine (M2M) applications.

APIを使用してユーザ作成

取得したアクセストークンをBearerトークンに指定してユーザ作成します。

$ curl -L -X POST 'https://dev-xxxx1xxxx111xxxx.jp.auth0.com/api/v2/users' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer xxx...' \
-d @- <<EOF
{
    "email": "takahashi@example.com",
    "user_metadata": {},
    "blocked": false,
    "email_verified": false,
    "app_metadata": {},
    "given_name": "k-taro",
    "family_name": "takahashi",
    "name": "takahashi",
    "nickname": "tk",
    "picture": "sample.png",
    "user_id": "zzzzz",
    "connection": "Username-Password-Authentication",
    "password": "1234abcd!",
    "verify_email": true
}
EOF

verify_emailをtrueにすると認証の為にE-Mailが送信されます。

connectionで指定するのは、DatabaseConnection名(ここではUsername-Password-Authentication)です。

ユーザが作成されました。

Auth0 Docs: API

APIを使用してユーザ情報取得

取得したアクセストークンをBearerトークンに指定してユーザ情報を取得します。ユーザIDはauth0|zzzzzです。

curl -L -X GET 'https://dev-xxxx1xxxx111xxxx.jp.auth0.com/api/v2/users/auth0|zzzzz' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer xxx...'

以下のようなレスポンスが返ってきます。

{
    "blocked": false,
    "created_at": "2023-07-04T12:50:45.945Z",
    "email": "takahashi@example.com",
    "email_verified": false,
    "family_name": "takahashi",
    "given_name": "k-taro",
    "identities": [
        {
            "user_id": "zzzzz",
            "connection": "Username-Password-Authentication",
            "provider": "auth0",
            "isSocial": false
        }
    ],
    "name": "takahashi",
    "nickname": "taka",
    "picture": "sample.png",
    "updated_at": "2023-07-04T12:50:45.945Z",
    "user_id": "auth0|zzzzz",
    "user_metadata": {}
}
Auth0 Docs: API

APIを使用してユーザ一覧取得

ユーザ一覧を取得します。

curl -L -X GET 'https://dev-xxxx1xxxx111xxxx.jp.auth0.com/api/v2/users \
-H 'Accept: application/json' \
-H 'Authorization: Bearer xxx...'

以下のようなレスポンスが返ってきます。配列で返ってくるようです。

[
  {
    "blocked": false,
    "created_at": "2023-07-04T12:50:45.945Z",
    "email": "takahashi@example.com",
    "email_verified": false,
    "family_name": "takahashi",
    "given_name": "k-taro",
    "identities": [
      {
        "user_id": "zzzzz",
        "connection": "Username-Password-Authentication",
        "provider": "auth0",
        "isSocial": false
      }
    ],
    "name": "takahashi",
    "nickname": "taka",
    "picture": "sample.png",
    "updated_at": "2023-07-04T12:50:45.945Z",
    "user_id": "auth0|zzzzz",
    "user_metadata": {}
  },
  {
    "blocked": false,
    "created_at": "2023-07-04T12:50:45.945Z",
    "email": "takahashi@example.com",
    "email_verified": false,
    "family_name": "takahashi",
    "given_name": "k-taro",
    "identities": [
      {
        "user_id": "zzzzz",
        "connection": "Username-Password-Authentication",
        "provider": "auth0",
        "isSocial": false
      }
    ],
    "name": "takahashi",
    "nickname": "taka",
    "picture": "sample.png",
    "updated_at": "2023-07-04T12:50:45.945Z",
    "user_id": "auth0|zzzzz",
    "user_metadata": {}
  }
]

qパラメータを使用するとフィルターすることができます。

user_metadataでフィルターする例です。

https://dev-xxxx1xxxx111xxxx.jp.auth0.com/api/v2/users?q=user_metadata.xxx:12345678 &search_engine=v2

curl -i -X GET \
-H 'Accept: application/json' \
-H 'Authorization: Bearer xxx...' \
https://dev-xxxx1xxxx111xxxx.jp.auth0.com/api/v2/users?q=user_metadata.xxx:12345678&search_engine=v2'

ANDを使用して2つの条件でフィルターする例です。

https://dev-xxxx1xxxx111xxxx.jp.auth0.com/api/v2/users?q=user_metadata.corporationId:12345678 AND identities.connection:”Username-Password-Authentication”&search_engine=v2

curl -i -X GET \
-H 'Accept: application/json' \
-H 'Authorization: Bearer xxx...' \
https://dev-xxxx1xxxx111xxxx.jp.auth0.com/api/v2/users?q=user_metadata.xxx:12345678%20AND%20identities.connection:"Username-Password-Authentication"&search_engine=v2'
Auth0 Management API v2
User Search Query Syntax
Describes Auth0's user search query string syntax.
Migrate from Search v2 to v3
Learn how to migrate from Auth0 Search v2 to v3.

APIを使用してユーザ削除

取得したアクセストークンをBearerトークンに指定してユーザを削除します。ユーザIDはauth0|zzzzzです。

curl -L -X DELETE 'https://dev-xxxx1xxxx111xxxx.jp.auth0.com/api/v2/users/auth0:zzzzz' \
-H 'Authorization: Bearer xxx...'

HTTP/2 204が返ってきたらユーザ削除できています。

Auth0 Docs: API

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました