【Auth0 入門】Management APIの実行方法3種
Auth0のManagement APIは、ユーザのCRUD操作やアプリケーションの画面設定、Auth0全体の設定を行うためのツールです。
クライアントからの実行方法は様々な形で提供されているため、今回は3種類抜粋して利用方法を記載していきます。
目次
はじめに
こんにちは。クラウドソリューショングループのyoshida.kです。
冒頭に記載しましたが、今回はAuth0のManagement APIの実行方法を3種類抜粋してご紹介します。
Auth0は、セキュアな認証・認可を手軽にアプリケーションに組み込めるプラットフォームです。
0から構築では煩雑になりがちなID管理・ユーザ管理がコスト少なく構築できます。
Management APIは、ユーザ登録・更新・確認・削除といったユーザ情報のCRUD操作や、
Auth0の画面設定など様々なことができるように提供されています。
https://auth0.com/docs/api/management/v2
上記URLからGUIベースで実行することも可能なのですが、その他にも様々な実行方法があるため、
今回は基本である「ユーザの作成」で実行方法を見ていきましょう。
curlコマンドでの実行
curlコマンドで実行する際の書式は以下です。
curl --request POST \ --url https://AUTH0_DOMAIN/api/v2/users \ --header 'authorization: Bearer ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "email": "YOUR_EMAIL", "blocked": true_OR_false, "email_verified": true_OR_false, "user_id": "YOUR_ID", "connection": "YOUR_CONNECTION", "password": "YOUR_PASSWORD" }'
では、実際に実行してみましょう。(※一部マスクしています)
curl --request POST \ --url https://AUTH0_DOMAIN/api/v2/users \ --header 'authorization: Bearer ACCESS_TOKEN' \ --header 'Content-Type: application/json' \ --data '{ "email": "curl.user@example.com", "blocked": false, "email_verified": true, "user_id": "abc1", "connection": "Username-Password-Authentication", "password": "123456" }'
実行結果。正常にユーザが作成されていますね。
Node.jsでの実行
基本的にHTTPリクエストを飛ばすモジュールであれば、何を利用してもよいのですが、
今回はaxiosを利用していきます。書式は以下です。
async function createUser() { const url = "https://AUTH0_DOMAIN/api/v2/users" const options = { url:url, method:"POST", headers: { authorization: "Bearer ACCESS_TOKEN" }, data:USER_DATA }; await axios(options) .then(res => {console.log(res)}) .catch(err=>{console.error(err)}); }
登録するユーザ情報は以下のように定義しています。
const userData = { email: "node.user@example.com", blocked: false, email_verified: true, user_id: "abc2", connection: "Username-Password-Authentication", password: "123456" };
上記で実行すると、正常にユーザが登録されていることが確認できました。
Auth0 SDK(Node.js)での実行
Auth0から、Node.js環境でAPIを実行できるSDKが提供されているため、
こちらも実行方法を見ていきましょう。
※公式ドキュメント:https://auth0.github.io/node-auth0/index.html
まずは、モジュールをインストールします。
npm install auth0
次に、SDKで利用するAuth0 Management APIのクライアントを定義します。
domain , client_id , client_secret , tokenを定義したJSONが引数ですが、
Keyに対するValueは、ご利用される環境のものを入れてください。
const auth0Client = require('auth0'); const managementClient = new auth0Client.ManagementClient({ domain: AUTH0_DOMAIN, client_id: YOUR_CLIENT_ID, client_secret: YOUR_CLIENT_SECRET, token: ACCESS_TOKEN });
さて、上記の準備を終えたら、実際に実行してみましょう。
SDKを利用するとシンプルに記載できますね。
async function createUser() { await managementClient.createUser(userData); }
ユーザ情報(userData)は次のように定義しています。
const userData = { email: "node-SDK.user@example.com", blocked: false, email_verified: true, user_id: "abc3", connection: "Username-Password-Authentication", password: "123456" };
実行結果。こちらも正常にユーザが作成できていますね。
おわりに
今回は、①curlコマンド、②Node.js、③Auth0 SDK(Node.js)の3種類の方法で、
Auth0のManagement APIを実行してみました。
Auth0からは他にも様々な言語で実行する方法が提供されていますので、
利用している言語や目的に応じて使い分けが可能です。
個人的にはアプリケーションに組み込みやすくて良いなと思います。