DrupalでOAuth/アクセストークン認証を設定する
この Drupal API認証 この方式は、OAuth 2.0プロトコルを使用して安全なアクセストークンを生成します。このトークンは、DrupalサイトのAPIへの認証とリクエストに使用されます。OAuth方式は強力な暗号化により、APIを不正アクセスから確実に保護します。 Drupal RESTおよびJSON:APIエンドポイントを保護するための最も安全な方法の一つとして広く認められています。このモジュールはDrupal 8、9、10、11と完全に互換性があります。
- コンポーザの使用
- ドラッシュを使用する
- 手動インストール
前提条件:
- REST UI: このモジュールは、REST モジュールを構成するためのユーザーフレンドリーなインターフェースを提供します。
- 次のWebサービスモジュールを有効にします。 延長 Drupal サイトのセクション (/admin/modules) :
- JSON:API
- REST UI
- RESTful Web サービス
- 連載
API を有効にしてメソッドを割り当てます。
- 最初のステップは、APIを有効にし、そのAPIで許可されるメソッドと操作を割り当てることです。これは、 REST UI モジュールを使用するか、Drupal 構成を直接変更します。
- 以下を行うには、 APIを有効にする
- REST UIモジュールを使用してAPIを有効にするには、 構成 ボタン(下記参照)をクリックします。
- この例では、 /エンティティ/ユーザー API を有効にします。これを行うには、その前に表示されている [有効にする] オプションをクリックします。
- 私たちの目標は Drupal でユーザーを作成することなので、次の構成を選択します。
- 方法: POST
- フォーマット: JSONの
- 認証プロバイダー: REST API 認証
- これにより、miniOrange API認証モジュールがAPIを認証できるようになります。 設定を保存 続行するにはボタンを押します。
構成手順
1. OAuth/アクセストークン認証方法の設定:
- このステップでは、API認証方法としてOAuth/アクセストークンを設定します。これを行うには、 API認証 モジュールのタブ (/admin/config/people/rest_api_authentication/auth_settings)。
- 基本構成、有効にする 認証を有効にする トグル。
- 入力する アプリケーション名 をクリックして OAuth/アクセストークン 認証方法 のセクションから無料でダウンロードできます。
- 下にスクロールして OAuth 構成 同じタブのセクション。
- オプション: 「トークンの有効期限」に希望する有効期限 (分単位) を入力します。
- 生成されたアクセストークンを使用する:
- REST API 認証: クリック 新しいクライアントIDとシークレットを生成する ボタンをクリックします。(クライアント ID とシークレットを手元に保管してください。後でユーザー作成 API を認証するときに必要になります。)
- OAuth サーバー: アクセストークンは、 OAuthサーバー モジュール(SSO を実行した後)を作成し、認証に使用します。
- クリック 構成の保存
- OAuth/アクセス トークン認証方法が正常に構成されました。
注意: API を認証するときに、アプリケーション固有の一意のヘッダーを使用します。
ユーザーを作成するためのロール権限を付与する
- 必要に応じて、管理者以外のDrupalロールにユーザーの作成を許可できます。これを行うには、Drupalサイトの権限ページ(/admin/people/permissions)で、必要なロールに「ユーザー管理」権限を割り当てます。
2. REST APIモジュールからトークンを取得します。
- API呼び出しを行ってアクセストークンを取得します。このトークンを使用してDrupal APIを認証し、ユーザーを作成します。
- miniOrange API 認証モジュールは、アクセス トークンを取得するための 2 つの付与タイプをサポートしています。
- パスワード付与では、ユーザーの Drupal ユーザー名とパスワード、および REST API 認証モジュールによって発行されたクライアント ID を含む POST リクエストを行うことで、アクセス トークンを取得できます。
パスワードの付与:
HTMLリクエストフォーマット - リクエスト: POST /rest_api/access_token 本文: grant_type = パスワード ユーザー名 =パスワード =クライアントID = CURL 形式でのリクエスト - curl --location --request POST ' /rest_api/access_token' \ --header 'Accept: application/json' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=password' \ --data-urlencode 'client_id= ' \ --data-urlencode 'ユーザー名= \ --data-urlencode 'パスワード= '
- 以下の Postman リクエスト画像も参照してください。
クライアント資格情報の付与:
- クライアント資格情報の付与では、API 認証モジュールによって発行されたクライアント ID とクライアント シークレット、およびユーザーの Drupal ユーザー名を含む POST リクエストを実行することで、アクセス トークンを取得できます。
HTMLリクエストフォーマット - リクエスト: POST /rest_api/access_token 本文: grant_type = client_credentials client_id =クライアントシークレット =ユーザー名 = CURL リクエスト形式 - curl --location --request POST '/rest_api/access_token' \ --header 'Accept: application/json' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id= ' \ --data-urlencode 'ユーザー名= >' \ --data-urlencode 'クライアントシークレット= '
- 成功した応答は、トークンの有効期限とトークンの種類とともにアクセス トークンを返します (下の画像を参照してください)。
3。 例:
- ここで、認証に OAuth/アクセス トークンを使用して API 呼び出しでユーザーを作成しましょう。
- 理解を深めるために、Drupal のユーザー作成 API に OAuth/アクセス トークン ベースの認証を追加する例を見てみましょう。
- 受信したアクセス トークンを使用して Drupal REST API を承認します。
- アクセス トークンを使用して認証するには、リクエストの Authorization ヘッダーにトークンを Bearer トークンとして追加します。
- トークンベースの認証を使用してユーザーを作成するサンプルリクエスト:
注意: Drupal の /entity/user API は、新しいユーザーを作成するために使用されます。
注意: API 認証モジュールまたは OAuth サーバー モジュールによって生成されたアクセス トークンはどれでも使用できます。
HTMLリクエストフォーマット - リクエスト: POST /entity/user?_format=json ヘッダー: AUTH-METHOD: application_id Accept: application/json Content-Type: application/json Authorization: Bearer本文: { "名前": { "値": " " }, "メール": { "値": " " }, "pass": { "value": " " }, "status": { "value": "1" } } CURLリクエストフォーマット - curl --location --request POST ' /entity/user?_format=json' \ --header 'AUTH-METHOD: application_id' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer ' \ --data-raw ' { "name": [ { "value": "ユーザー名" } ], "mail": [ { "value": "メールアドレス" } ], "pass": [ { "value": "パスワード" } ], "status": [ { "value": "1" } ] }
- 成功した場合、作成したユーザーの詳細が返されます (下の画像を参照)。
おめでとうございます!Drupal API 認証モジュールを使用して、OAuth/アクセス トークン認証方式を正常に設定しました。
設定が成功しなかった場合は、 drupalsupport@xecurify.comエラーウィンドウのスクリーンショットを添付していただければ、問題の解決をお手伝いし、セットアップ手順をご案内いたします。
