正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLab Duoの認証と認可

GitLab Duo with Amazon Qは、複合IDを使用して認証リクエストを認証します。

プロダクトの他の領域における複合IDのサポートは、issue 511373で提案されています。

認証リクエストを行うトークンは、2つのIDの複合です:

  • プライマリ作成者は、Amazon Qのサービスアカウントです。このサービスアカウントはインスタンス全体に適用され、Amazon Qクイックアクションが使用されたプロジェクトのデベロッパーロールを持っています。このサービスアカウントは、トークンのオーナーです。
  • セカンダリ作成者は、クイックアクションを送信したヒューマンユーザーです。このユーザーのidは、トークンのスコープに含まれています。

この複合IDにより、Amazon Qによって作成されたアクティビティーは、Amazon Qサービスアカウントに正しく帰属することが保証されます。同時に、この複合IDは、ヒューマンユーザーに対する特権エスカレーションがないことを保証します。

この動的スコープは、APIリクエストの認可中に検証されます。認可がリクエストされると、GitLabは、サービスアカウントとクイックアクションを開始したユーザーの両方が十分な権限を持っていることを検証します。

%%{init: { "fontFamily": "GitLab Sans" }}%%
flowchart TD
    accTitle: Authentication flow for GitLab Duo
    accDescr: API requests are checked against user permissions first, then service account permissions, with access denied if either check fails.

    A[API Request] --> B{Human user has access?}
    B -->|No| D[Access denied]
    B -->|Yes| C{Service account has access?}
    C -->|No| D
    C -->|Yes| E[API request succeeds]

    style D fill:#ffcccc
    style E fill:#ccffcc