4.2. トークンの追加


OAuth Applications の詳細ページで Tokens タブを選択すると、アプリケーションにアクセスするためのトークンを持つユーザーのリストを表示できます。

注記

作成できるのは、自分のユーザー用の OAuth 2 トークンだけです。つまり、トークンを設定または表示するには、自分のユーザープロファイルから行う必要があります。

認証トークンが設定されている場合、トークンを関連付けるアプリケーションとトークンのアクセスレベルを選択できます。

手順

  1. ナビゲーションパネルから、Access Management Users を選択します。
  2. OAuth 2 トークンを設定するユーザープロファイルのユーザー名を選択します。
  3. Tokens タブを選択します。

    トークンがない場合は、Tokens 画面でトークンを追加するように求められます。

  4. Create token をクリックして、Token ウィンドウを開きます。
  5. 以下の詳細を入力します。

    アプリケーション

    トークンを関連付けるアプリケーションの名前を入力します。または、Browse をクリックして検索することもできます。これにより、別のウィンドウが開き、利用可能なオプションから選択できるようになります。リストが大きい場合は、フィルターリストから Name を選択して名前でフィルタリングします。

    注記

    どのアプリケーションにもリンクされていない Personal Access Token (PAT) を作成するには、Application フィールドを空白のままにします。

    Description
    (任意) トークンの簡単な説明を入力します。
    Scope

    (必須) このトークンに付与するアクセスレベルを指定します。OAuth 2 トークンのスコープは、次のいずれかに設定できます。

    • Write: このトークンを使用して送信された要求に、システム内のリソースを追加、編集、削除することを許可します。
    • Read: アクションを読み取り専用に制限します。Read スコープは Write スコープに包含されることに注意してください。
  6. Create token をクリックするか、Cancel をクリックして変更を破棄します。

    Token 情報に、TokenRefresh Token の情報、およびトークンの有効期限が表示されます。トークンとリフレッシュトークンが表示されるのはこのときだけです。リストビューから、トークンの関連付けとトークン情報を表示できます。

  7. コピーアイコンをクリックし、トークンとリフレッシュトークンを後で使用するために保存します。

検証

アプリケーションの詳細ページの Tokens タブを使用して、アプリケーションに適切なトークンを持つユーザーが表示されることを確認できます。

  1. ナビゲーションパネルから、Access Management OAuth Applications を選択します。
  2. Applications リストビューから検証するアプリケーションを選択します。
  3. Tokens タブを選択します。

    選択したアプリケーションに関連付けられたトークンのリストにトークンが表示されます。

関連情報

システム管理者であり、他のユーザーのトークンを作成または削除する必要がある場合は、トークンとセッションの管理 の revoke コマンドと create コマンドを参照してください。

4.2.1. アプリケーショントークンの機能

/o/ エンドポイントのトークンに関連付けられた refresh 機能および revoke 機能を実行するには、現在、アプリケーショントークンが必要です。

4.2.1.1. 既存のアクセストークンの更新

次の例は、リフレッシュトークンが指定された既存のアクセストークンを示しています。

{
    "id": 35,
    "type": "access_token",
    ...
    "user": 1,
    "token": "omMFLk7UKpB36WN2Qma9H3gbwEBSOc",
    "refresh_token": "AL0NK9TTpv0qp54dGbC4VUZtsZ9r8z",
    "application": 6,
    "expires": "2017-12-06T03:46:17.087022Z",
    "scope": "read write"
}
Copy to Clipboard

/o/token/ エンドポイントは、アクセストークンを更新するために使用されます。

curl -X POST \
    -d "grant_type=refresh_token&refresh_token=AL0NK9TTpv0qp54dGbC4VUZtsZ9r8z" \
    -u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
    http://<gateway>/o/token/ -i
Copy to Clipboard

ここで、refresh_token は、前述のアクセストークンの refresh_token フィールドで指定されます。

認証情報の形式は、<client_id>:<client_secret> です。client_idclient_secret は、アクセストークンの基盤となる関連アプリケーションの対応するフィールドに置き換えます。

注記

特別な OAuth 2 エンドポイントは、x-www-form-urlencoded という Content-type の使用のみをサポートしています。そのため、application/json を受け入れる /o/* エンドポイントはありません。

成功すると、以前のものと同じスコープ情報を持つ新しい (更新された) アクセストークンを含む応答が、JSON 形式で表示されます。

HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Tue, 05 Dec 2017 17:54:06 GMT
Content-Type: application/json
Content-Length: 169
Connection: keep-alive
Content-Language: en
Vary: Accept-Language, Cookie
Pragma: no-cache
Cache-Control: no-store
Strict-Transport-Security: max-age=15768000

{"access_token": "NDInWxGJI4iZgqpsreujjbvzCfJqgR", "token_type": "Bearer", "expires_in": 315360000000, "refresh_token": "DqOrmz8bx3srlHkZNKmDpqA86bnQkT", "scope": "read write"}
Copy to Clipboard

更新操作では、元のトークンを削除した直後に、元のトークンと同じスコープと関連アプリケーションを持つ新しいトークンを作成することで、既存のトークンを置き換えます。

api/gateway/v1/tokens/ エンドポイントで新しいトークンが存在し、古いトークンが削除されていることを確認します。

4.2.1.2. アクセストークンの取り消し

アクセストークンを取り消すには、プラットフォームの UI でトークンを削除するか、/o/revoke-token/ エンドポイントを使用します。

この方法によるアクセストークンの取り消しは、トークンリソースオブジェクトの削除と同じです。ただしこの方法では、トークン値と、関連付けられた client_id (アプリケーションが confidential の場合は加えて client_secret) を指定することで、トークンを削除できます。以下に例を示します。

curl -X POST -d "token=rQONsve372fQwuc2pn76k3IHDCYpi7" \
-u "gwSPoasWSdNkMDtBN3Hu2WYQpPWCO9SwUEsKK22l:fI6ZpfocHYBGfm1tP92r0yIgCyfRdDQt0Tos9L8a4fNsJjQQMwp9569eIaUBsaVDgt2eiwOGe0bg5m5vCSstClZmtdy359RVx2rQK5YlIWyPlrolpt2LEpVeKXWaiybo" \
http://<gateway>/o/revoke_token/ -i
Copy to Clipboard
注記
  • 特別な OAuth 2 エンドポイントは、x-www-form-urlencoded という Content-type の使用のみをサポートしています。そのため、application/json を受け入れる /o/* エンドポイントはありません。
  • Allow External Users to Create Oauth2 Tokens (API の ALLOW_OAUTH2_FOR_EXTERNAL_USERS) の設定は、デフォルトでは無効になっています。外部ユーザーとは、LDAP などのサービスやその他の SSO サービスにより、外部で認証されたユーザーを指します。この設定により、外部ユーザーは独自のトークンを作成できなくなります。有効にしてから無効にすると、その間に外部ユーザーが作成したトークンは残り、自動的には取り消されません。この設定は、Settings Platform gateway メニューから設定できます。

あるいは、OAuth2 トークンを取り消すために、manage ユーティリティーを使用できます。oauth2 トークンの取り消し を参照してください。

成功すると、200 OK という応答が表示されます。トークンが api/gateway/v1/tokens/ エンドポイントに存在するかどうかを確認して、削除されていることを確認します。

4.2.2. トークンとセッションの管理

Ansible Automation Platform は、OAuth2 トークン管理用の次のコマンドをサポートしています。

4.2.2.1. create_oauth2_token

次のコマンドを使用して OAuth2 トークンを作成します (example_user にはユーザー名を指定します)。

$ aap-gateway-manage create_oauth2_token --user example_user

New OAuth2 token for example_user: j89ia8OO79te6IAZ97L7E8bMgXCON2
Copy to Clipboard

トークンを作成するときは、必ず有効なユーザーを指定してください。そうしなければ、ユーザーを指定せずにコマンドを発行しようとしたことを示すエラーメッセージか、存在しないユーザー名を指定したことを示すエラーメッセージが表示されます。

4.2.2.2. revoke_oauth2_tokens

このコマンドは、OAuth2 トークン (アプリケーショントークンと Personal Access Token (PAT) の両方) を取り消すために使用します。すべてのアプリケーショントークン (関連付けられているリフレッシュトークンは除く) を取り消し、すべての Personal Access Token を取り消します。ただし、すべてのトークンを取り消すユーザーを指定することもできます。

既存の OAuth2 トークンをすべて取り消すには、次のコマンドを使用します。

$ aap-gateway-manage revoke_oauth2_tokens
Copy to Clipboard

すべての OAuth2 トークンとそのリフレッシュトークンを取り消すには、次のコマンドを使用します。

$ aap-gateway-manage revoke_oauth2_tokens --revoke_refresh
Copy to Clipboard

id=example_user が指定されたユーザーの OAuth2 トークンをすべて取り消すには、以下を実行します (example_user にユーザー名を指定します)。

$ aap-gateway-manage revoke_oauth2_tokens --user example_user
Copy to Clipboard

id=example_user のユーザーのすべての OAuth2 トークンとリフレッシュトークンを取り消すには、次のコマンドを実行します。

$ aap-gateway-manage revoke_oauth2_tokens --user example_user --revoke_refresh
Copy to Clipboard

4.2.2.3. cleartokens

このコマンドを使用して、すでに取り消されたトークンを消去します。

詳細は、Django の Oauth Toolkit ドキュメントの cleartokens を参照してください。

4.2.2.4. clearsessions

このコマンドを使用して、期限切れになったすべてのセッションを削除します。

詳細は、Django の Oauth Toolkit ドキュメントの Clearing the session store を参照してください。

UI での OAuth2 トークン管理の詳細は、アプリケーション を参照してください。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat