パーソナルアクセストークン
发布时间:2026-09-22 | 浏览:2
プラン : Free、Premium、Ultimate
提供形態 : GitLab.com、GitLab Self-Managed、GitLab Dedicated
パーソナルアクセストークンは、GitLabへの認証済みアクセストークンを提供します。これらは OAuth2トークン の代替であり、グループアクセストークンおよびプロジェクトアクセストークンと似ていますが、グループまたはプロジェクトではなくユーザーに紐付けられます。
パーソナルアクセストークンを使用して、以下を認証することができます:
GitLab API で認証。
HTTPSを介したGitの場合。使用方法: 任意の空白以外の値をユーザー名として使用します。 パーソナルアクセストークンをパスワードとして使用します。
任意の空白以外の値をユーザー名として使用します。
パーソナルアクセストークンをパスワードとして使用します。
2要素認証 または SAML が有効になっている場合は、パーソナルアクセストークンで認証する必要があります。
GitLabマネージドTerraformステートバックエンド や コンテナレジストリ など、ユーザー名を必要とする一部のGitLab機能では、GitLabユーザー名とパーソナルアクセストークンを使用します。これらのケースでは、ユーザー名は必須ですが、認証の一部として評価されません。詳細については、 イシュー212953 を参照してください。
GitLab Self-ManagedおよびGitLab Dedicatedインスタンスでは、管理者は ユーザートークンAPI を使用して、特定のユーザーとして認証するための代理トークンを作成できます。
パーソナルアクセストークンを作成する
buffered_token_expiration_limit という名前の 機能フラグ により、GitLab 17.6で最大許容ライフタイム制限が 400日に延長されました 。デフォルトでは無効になっています。
パーソナルアクセストークンの説明は、GitLab 17.7で 導入 されました。
延長された最大許容ライフタイム制限の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
パーソナルアクセストークンを作成するには:
右上隅で、アバターを選択します。
プロファイルを編集 を選択します。
左サイドバーで、 アクセス > パーソナルアクセストークン を選択します。
トークンを生成 ドロップダウンリストから、 レガシートークン を選択します。
トークン名 に、トークンの名前を入力します。
オプション。 トークンの説明 に、トークンの説明を入力します。
有効期限 に、トークンの有効期限を入力します。 トークンは、その日のUTC深夜に期限が切れます。 日付を入力しない場合、有効期限は今日から365日後に設定されます。 デフォルトでは、有効期限は今日から365日を超えることはできません。GitLab 17.6以降では、管理者は アクセストークンの最大ライフタイムを変更 できます。
トークンは、その日のUTC深夜に期限が切れます。
日付を入力しない場合、有効期限は今日から365日後に設定されます。
デフォルトでは、有効期限は今日から365日を超えることはできません。GitLab 17.6以降では、管理者は アクセストークンの最大ライフタイムを変更 できます。
1つまたは複数の パーソナルアクセストークンのスコープ を選択します。
トークンを生成 を選択します。
パーソナルアクセストークンが表示されます。パーソナルアクセストークンを安全な場所に保存します。ページを離れるか更新すると、再度表示することはできません。
すべてのアクセストークンは、パーソナルアクセストークン用に設定された デフォルトプレフィックス設定 を継承します。
パーソナルアクセストークンの詳細を事前に入力する
名前、説明、およびスコープのリストをURLに付加することで、パーソナルアクセストークンの詳細を事前に入力できます。例:
パーソナルアクセストークンは慎重に取り扱う必要があります。パーソナルアクセストークンの管理に関するガイダンスについては、 トークンのセキュリティに関する考慮事項 を参照してください。
アクセストークンを使用して、GitLab REST API、HTTPS経由のGit、およびGitLabと統合するサードパーティツールで認証します。
あなたのトークンを PRIVATE-TOKEN ヘッダーに渡します:
詳細については、 REST API認証 を参照してください。
HTTPS経由でGitを使用する
Gitが認証情報を要求したときに、あなたのトークンをパスワードとして使用します:
ユーザー名: 空でない任意の文字列(GitLabはこの値を検証しません)。
パスワード: あなたのパーソナルアクセストークン。
サードパーティツールとIDE拡張機能を使用する
GitLabと統合するIDE拡張機能、CI/CDツール、自動化スクリプトなどのツールは、認証のためにパーソナルアクセストークンを受け入れます。各ツールに関するドキュメントを参照してください:
GitLab CLI( glab )
VS Code用GitLab Workflow拡張機能
JetBrains IDE用のGitLabプラグイン
CI/CDパイプラインには、代わりに CI/CDジョブトークン が推奨されます。
パーソナルアクセストークンのセキュリティガイダンスについては、 トークンのセキュリティに関する考慮事項 を参照してください。
トークンの使用状況情報を表示する
pat_ip という名前の 機能フラグ により、IPアドレスを表示する機能がGitLab 17.8で 導入されました 。17.9ではデフォルトで有効になっています。
IPアドレスを表示する機能は、GitLab 17.10で 一般提供 になりました。機能フラグ pat_ip は削除されました。
パーソナルアクセストークンページには、アクセストークンに関する情報が表示されます。
このページから、以下の操作を実行できます:
パーソナルアクセストークンの作成、ローテーション、および失効。
アクティブおよび非アクティブなすべてのパーソナルアクセストークンを表示します。
トークン情報(スコープ、割り当てられたロール、有効期限を含む)を表示します。
使用状況の情報(使用日、および最後の5つの異なる接続IPアドレスを含む)を表示します。 GitLabは、トークンがGit操作を実行したり、 REST または GraphQL APIで操作を認証するときに、トークンの使用状況情報を定期的に更新します。トークンの使用時間は10分ごとに、トークン使用IPアドレスは1分ごとに更新されます。
GitLabは、トークンがGit操作を実行したり、 REST または GraphQL APIで操作を認証するときに、トークンの使用状況情報を定期的に更新します。トークンの使用時間は10分ごとに、トークン使用IPアドレスは1分ごとに更新されます。
パーソナルアクセストークンを表示するには:
右上隅で、アバターを選択します。
プロファイルを編集 を選択します。
左サイドバーで、 アクセス > パーソナルアクセストークン を選択します。
詳細パネルを開くには、トークンの名前を選択します。デフォルトでは、アクティブなトークンのみが表示されます。検索バーを使用して、アクセストークンのリストをフィルタリングします。
パーソナルアクセストークンをローテーションする
UIを使用してパーソナルアクセストークンをローテーションする機能は、GitLab 17.7で 導入 されました。
GitLab 18.1で UI を更新しました。
トークンをローテーションして、元のトークンと同じ権限とスコープを持つ新しいトークンを作成します。元のトークンは直ちに無効になり、GitLabは監査目的で両方のバージョンを保持します。
この操作は元に戻せません。ローテーションされたアクセストークンに依存するツールは、新しいトークンを参照するまで機能しなくなります。
パーソナルアクセストークンをローテーションするには:
右上隅で、アバターを選択します。
プロファイルを編集 を選択します。
左サイドバーで、 アクセス > パーソナルアクセストークン を選択します。
アクティブなトークンの横にある縦方向の省略記号( )を選択します。
ローテーション ( )を選択します。
確認ダイアログで、 ローテーション を選択します。
パーソナルアクセストークンを失効させる
GitLab 18.1で UI を更新しました。
トークンを失効すると、直ちに無効になり、それ以降の使用が防止されます。GitLabは監査目的でトークンを保持します。トークンを完全に削除することはできませんが、トークンリストをフィルタリングしてアクティブなトークンのみを表示できます。
この操作は元に戻せません。失効したアクセストークンに依存するツールは、新しいトークンを追加するまで機能しなくなります。
パーソナルアクセストークンを失効するには:
右上隅で、アバターを選択します。
プロファイルを編集 を選択します。
左サイドバーで、 アクセス > パーソナルアクセストークン を選択します。
アクティブなトークンの横にある縦方向の省略記号( )を選択します。
取り消し ( )を選択します。
確認ダイアログで、 取り消し を選択します。
パーソナルアクセストークン、グループアクセストークン、およびプロジェクトアクセストークンは、有効期限のUTC深夜に期限が切れます。期限切れになると、それらはリクエストを認証するために使用できなくなります。
新しいアクセストークンには、有効期限を設定する必要があります。有効期限がトークン作成時に明示的に設定されていない場合、今日から365日間の有効期限が適用されます。Ultimateでは、管理者はアクセストークンの 最大許容ライフタイム を設定できます。
あなたのGitLabバージョンと提供内容によっては、GitLabバージョンのアップグレード時に既存のアクセストークンに有効期限が自動的に適用される場合があります。詳細については、 期限切れにならないアクセストークン を参照してください。
パーソナルアクセストークンの有効期限に関するメール
expiring_pats_30d_60d_notifications という名前の 機能フラグ により、GitLab 17.6で60日および30日間の有効期限通知が 導入されました 。デフォルトでは無効になっています。
60日前と30日前の通知は、GitLab 17.7で 一般提供 になりました。機能フラグ expiring_pats_30d_60d_notifications は削除されました。
GitLabは、まもなく有効期限が切れるパーソナルアクセストークンを特定するために、毎日UTC午前1:00にチェックを実行します。トークンの有効期限が切れる7日前に、ユーザーにメールで通知されます。GitLab 17.6以降では、トークンの期限が切れる30日前と60日前にも通知が送信されます。
パーソナルアクセストークンの有効期限カレンダー
各トークンの有効期限にイベントが設定されたiCalendarエンドポイントをサブスクライブできます。サインイン後、このエンドポイントは /-/user_settings/personal_access_tokens.ics で利用できます。
有効期限のないサービスアカウントのパーソナルアクセストークンを作成する
有効期限のない サービスアカウントのパーソナルアクセストークンを作成 できます。これらのパーソナルアクセストークンは、通常のアカウントのパーソナルアクセストークンとは異なり、有効期限切れになることはありません。
有効期限なしでサービスアカウント用のパーソナルアクセストークンを作成できるようにすることは、この設定を変更した後に作成されたトークンにのみ影響します。既存のトークンには影響しません。
トップレベルグループのオーナーロールが必要です。
上部のバーで、 検索または移動先 を選択して、グループを見つけます。
左側のサイドバーで、 設定 > 一般 を選択します。
権限とグループ機能 を展開します。
パーソナルアクセストークン の下で、 サービスアカウントに有効期限を設定する チェックボックスをオフにします。
これで、有効期限のないサービスアカウントユーザーのパーソナルアクセストークンを作成できます。
GitLab Self-Managed
GitLab Self-Managedインスタンスの管理者である必要があります。
右上隅で、 管理者 を選択します。
左側のサイドバーで、 設定 > 一般 を選択します。
アカウントと制限 を展開します。
サービスアカウントトークンの有効期限 チェックボックスをオフにします。
これで、有効期限のないサービスアカウントユーザーのパーソナルアクセストークンを作成できます。
パーソナルアクセストークンを使用してリポジトリをクローンする
SSHが無効になっている場合にリポジトリをクローンするには、次のコマンドを実行してパーソナルアクセストークンを使用してクローンします。
この方法では、パーソナルアクセストークンがbashの履歴に保存されます。これを回避するには、次のコマンドを実行します。
https://gitlab.com のパスワードを求められたら、パーソナルアクセストークンを入力します。
clone コマンドの username は、次の条件を満たす必要があります。
認証に依存する自動化パイプラインを設定する場合は、この条件を必ず守ってください。
プラン : Premium、Ultimate
提供形態 : GitLab Self-Managed、GitLab Dedicated
GitLab 17.3で 導入された Disable access tokens 設定。
GitLabインスタンス全体で、ユーザーがアクセストークンで認証するのを防ぐことができます。この設定は、パーソナルアクセストークン、グループアクセストークン、プロジェクトアクセストークン、および代理トークンに影響します。この設定は、サービスアカウントのパーソナルアクセストークンにも適用されます。
アクセストークンを無効にすると、次のルールが適用されます:
ユーザーはパーソナルアクセストークンを使用してGitLabにサインインできません。
パーソナルアクセストークンページは、 404 Not Found エラーを返します。
RSS、Atom、およびカレンダーフィードのフィードトークンは機能しなくなります。
パーソナルアクセストークンで認証されたAPIリクエストは拒否されます。
インスタンスのアクセストークンを無効にするには:
右上隅で、 管理者 を選択します。
左側のサイドバーで、 設定 > 一般 を選択します。
アカウントと制限 を展開します。
アクセストークンを無効にする チェックボックスを選択します。
アプリケーション設定APIで disable_personal_access_tokens 属性 を使用することもできます。
エンタープライズユーザーのパーソナルアクセストークンを無効にする
プラン : Premium、Ultimate
提供形態 : GitLab.com
GitLab 16.11で enterprise_disable_personal_access_tokens 機能フラグ とともに 導入 されました。デフォルトでは無効になっています。
GitLab 17.2の GitLab.comで有効 になりました。
GitLab 17.3で 一般提供 になりました。機能フラグ enterprise_disable_personal_access_tokens は削除されました。
エンタープライズユーザーが所属するグループのオーナーロール。
グループの エンタープライズユーザー のパーソナルアクセストークンを無効にすると、次のようになります。
エンタープライズユーザーは新しいパーソナルアクセストークンを作成できなくなります。この動作は、エンタープライズユーザーがグループ管理者である場合でも適用されます。
エンタープライズユーザーの既存のパーソナルアクセストークンが無効になります。
エンタープライズユーザーのパーソナルアクセストークンを無効にしても、 サービスアカウント のパーソナルアクセストークンは無効になりません。
エンタープライズユーザーのパーソナルアクセストークンは、次の手順で無効にできます。
上部のバーで、 検索または移動先 を選択して、グループを見つけます。
左側のサイドバーで、 設定 > 一般 を選択します。
権限とグループ機能 を展開します。
エンタープライズのユーザー で、 パーソナルアクセストークンを無効にする を選択します。
エンタープライズユーザーアカウントを削除またはブロックすると、そのユーザーのパーソナルアクセストークンは自動的に取り消されます。
プログラムを利用してパーソナルアクセストークンを作成する
提供形態 : GitLab Self-Managed、GitLab Dedicated
テストまたは自動化の一環として、事前に決定されたパーソナルアクセストークンを作成できます。
GitLabインスタンスで Railsコンソールセッション を実行するための十分なアクセス権が必要です。
プログラムを利用してパーソナルアクセストークンを作成する手順は次のとおりです。
Railsコンソールを開きます。 sudo gitlab-rails console
Railsコンソールを開きます。
次のコマンドを実行して、ユーザー名、トークン、スコープを参照します。 トークンは20文字の長さでなければなりません。スコープは有効である必要があり、 ソースコード で表示できます。 たとえば、ユーザー名が automation-bot のユーザーに属し、1年後に期限切れになるトークンは、次のコマンドで作成できます。 user = User . find_by_username ( 'automation-bot' ) token = user . personal_access_tokens . create ( scopes : [ 'read_user' , 'read_repository' ] , name : 'Automation token' , expires_at : 365 . days . from_now ) token . set_token ( 'token-string-here123' ) token . save!
次のコマンドを実行して、ユーザー名、トークン、スコープを参照します。
トークンは20文字の長さでなければなりません。スコープは有効である必要があり、 ソースコード で表示できます。
たとえば、ユーザー名が automation-bot のユーザーに属し、1年後に期限切れになるトークンは、次のコマンドで作成できます。
このコードは、 Rails runner を使用して、単一行のシェルコマンドに短縮できます。
プログラムを利用してパーソナルアクセストークンを取り消す
提供形態 : GitLab Self-Managed、GitLab Dedicated
テストまたは自動化の一環として、プログラムを利用してパーソナルアクセストークンを取り消すことができます。
GitLabインスタンスで Railsコンソールセッション を実行するための十分なアクセス権が必要です。
プログラムを利用してトークンを取り消す手順は次のとおりです。
Railsコンソールを開きます。 sudo gitlab-rails console
Railsコンソールを開きます。
次のコマンドを実行して、 token-string-here123 のトークンを取り消します。 token = PersonalAccessToken . find_by_token ( 'token-string-here123' ) token . revoke!
次のコマンドを実行して、 token-string-here123 のトークンを取り消します。
このコードは、 Rails runner を使用して、単一行のシェルコマンドに短縮できます。
パーソナルアクセストークンでDPoPを使用する
提供形態 : GitLab.com、GitLab Self-Managed
dpop_authentication という名前の 機能フラグ により、GitLab 17.10で 導入されました 。デフォルトでは無効になっています。
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。この機能はテストには利用できますが、本番環境での使用には適していません。
Demonstrating Proof of Possession(DPoP、所有証明の実証)は、パーソナルアクセストークンのセキュリティを強化し、意図しないトークンの漏洩の影響を最小限に抑えます。アカウントでこの機能を有効にすると、PATを含むすべてのRESTおよびGraphQL APIリクエストで、署名付きDPoPヘッダーも提供する必要が生じます。署名付きDPoPヘッダーを作成するには、対応する秘密SSHキーが必要です。
この機能を有効にすると、有効なDPoPヘッダーを持たないすべてのAPIリクエストは DpopValidationError エラーを返します。
アクセストークンを含むHTTPS経由のGitオペレーションでは、DPoPヘッダーは必須ではありません。
少なくとも1つの公開SSHキーをアカウントに追加 します。 署名 、または 認証と署名 の 使用タイプ を設定する必要があります。 SSHキータイプはRSAである必要があります。
SSHキータイプはRSAである必要があります。
GitLabアカウント用に GitLab CLI をインストールして設定する必要があります。
RESTおよびGraphQL APIへのすべての呼び出しで、DPoPを要求するには:
右上隅で、アバターを選択します。
右上隅で、アバターを選択します。
プロファイルを編集 を選択します。
プロファイルを編集 を選択します。
左サイドバーで、 アクセス > パーソナルアクセストークン を選択します。
左サイドバーで、 アクセス > パーソナルアクセストークン を選択します。
Demonstrating Proof of Possession(DPoP)の使用 セクションに移動し、 DPoPを有効にする を選択します。
Demonstrating Proof of Possession(DPoP)の使用 セクションに移動し、 DPoPを有効にする を選択します。
ターミナルで次のコマンドを実行して、 GitLab CLI でDPoPヘッダーを生成します。 <your_access_token> をアクセストークンに、 ~/.ssh/id_rsa を秘密キーの場所に置き換えます。 glab auth dpop-gen --pat "<your_access_token>" --private-key ~/.ssh/id_rsa
ターミナルで次のコマンドを実行して、 GitLab CLI でDPoPヘッダーを生成します。 <your_access_token> をアクセストークンに、 ~/.ssh/id_rsa を秘密キーの場所に置き換えます。
CLIで生成したDPoPヘッダーは、以下のように使用できます。
REST APIでの使用: curl --header "PRIVATE-TOKEN: <your_access_token>" \ --header "DPoP: <dpop-from-glab>" \ "https://gitlab.example.com/api/v4/projects"
GraphQLでの使用: curl --request POST \ --header "Content-Type: application/json" \ --header "PRIVATE-TOKEN: <your_access_token>" \ --header "DPoP: <dpop-from-glab>" \ --data '{ "query": "query { currentUser { id } }" }' \ "https://gitlab.example.com/api/graphql"
DPoPの詳細については、ブループリント 送信者制約パーソナルアクセストークン を参照してください。
パーソナルアクセストークンの代替
HTTPS経由のGitの場合、パーソナルアクセストークンの代替として、OAuth認証ヘルパーを使用できます。
CI/CDジョブでの認証には、以下を考慮してください:
パイプライン認証のための、 CI/CDジョブトークン と きめ細かい権限 。
プロジェクト固有の自動化のための、最小限の必要な権限を持つ プロジェクトアクセストークン 。
パーソナルアクセストークンAPI
詳細権限パーソナルアクセストークン
Permissions Assistant (GitLab Duoのエージェント)は、トークン作成時にきめ細やかな権限を選択するのに役立ちます。