> For the complete documentation index, see [llms.txt](https://helpcenter.xopero.com/xopero-one-en/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://helpcenter.xopero.com/xopero-one-en/pl/kopia-zapasowa-i-przywracanie/devops/azure-devops-i-devops-server/integracja/wymagane-uprawnienia.md).

# Wymagane uprawnienia

#### Wymagane uprawnienia dla Azure DevOps oraz Azure DevOps Server określają poziomy dostępu, których Xopero ONE potrzebuje, aby bezpiecznie wykonywać backup oraz przywracać dane.

***

## Uprawnienia Azure DevOps

### <mark style="background-color:blue;">Poziomy dostępu użytkownika</mark>

Konto użyte do integracji musi mieć przypisany odpowiedni poziom dostępu w ramach **Azure DevOps**:

* **Basic**.
* **Visual Studio Subscriber** — poziom professional lub enterprise.
* **GitHub Enterprise** — poziom zbliżony do Basic.
* **Stakeholder** (niezalecany) — ten poziom posiada ograniczony dostęp i nie pozwala na prawidłowe zabezpieczenie repozytoriów.

{% hint style="warning" %}
**Xopero ONE** może zabezpieczać wyłącznie te projekty, do których zintegrowane konto użytkownika ma wyraźny dostęp.
{% endhint %}

### <mark style="background-color:blue;">Integracja OAuth</mark>

{% hint style="warning" %}
**Xopero** obsługuje wyłącznie konta organizacyjne (**Microsoft Entra ID**) — konta osobiste <mark style="color:red;">**nie są wspierane**</mark>. W przypadku kont prywatnych należy użyć metody **PAT**.
{% endhint %}

Aby zintegrować **Azure DevOps** z **Xopero ONE** przy użyciu **OAuth**, upewnij się, że konto posiada rolę administratora. W przeciwnym razie możesz napotkać błędy uprawnień lub przycisk zatwierdzania może być nieaktywny.

Podczas integracji Azure DevOps przez OAuth wymagane są następujące zakresy (scopes):

* [x] Build: <mark style="color:$success;">**read and execute**</mark> (vso.build\_execute)
* [x] Code: <mark style="color:$success;">**read, write and manage**</mark> (vso.code\_manage)
* [x] Environment: <mark style="color:$success;">**read and manage**</mark> (vso.environment\_manage)
* [x] Projects and Teams: <mark style="color:$success;">**read, write and manage**</mark> (vso.project\_manage)
* [x] Variable Groups: <mark style="color:$success;">**read and create**</mark> (vso.variablegroups\_write)
* [x] Wiki: <mark style="color:$success;">**read and write**</mark> (vso.wiki\_write)
* [x] Work Items: <mark style="color:$success;">**read and write**</mark> (vso.work\_write)
* [x] Packaging: <mark style="color:$success;">**read, write and manage**</mark> (vso.packaging\_manage)
* [x] Artifacts: user\_impersonation
* [x] Login and read the profile

#### <mark style="background-color:blue;">Uprawnienia do instalacji przy użyciu OAuth</mark>

Możliwość autoryzacji aplikacji **OAuth Xopero ONE** zależy od ustawień zgody użytkownika (**User consent settings**) w organizacji **Azure DevOps.** Dostępne są następujące opcje:

<table><thead><tr><th width="242">Consent Policy</th><th>Wymagania autoryzacji</th></tr></thead><tbody><tr><td>Allow user consent for apps from verified publishers, for selected permissions</td><td>Każdy użytkownik może autoryzować aplikację, pod warunkiem, że wszystkie wymagane uprawnienia zostały sklasyfikowane przez administratora jako uprawnienia o niskim wpływie (low impact).</td></tr><tr><td>Do not allow user consent</td><td>Tylko użytkownicy z rolą <strong>Application Administrator</strong> lub <strong>Global Administrator</strong> mogą autoryzować integrację.</td></tr><tr><td>Let Microsoft manage your consent settings</td><td>Autoryzacja podlega aktualnym wytycznym bezpieczeństwa firmy <strong>Microsoft</strong>. Choć obecnie pozwala to na integrację z <strong>Xopero ONE</strong>, dostępność ta może ulec zmianie w zależności od ewoluujących zasad firmy <strong>Microsoft</strong>.</td></tr></tbody></table>

<figure><img src="/files/d5nKrQ7PoGlE8hFg1vZz" alt=""><figcaption></figcaption></figure>

### <mark style="background-color:blue;">Integracja przez Personal Access Token (PAT)</mark>

#### Wymagania wstępne:

* [x] **Organization** — podczas generowania tokenu PAT <mark style="color:red;">**musisz**</mark> zaznaczyć opcję **All accessible organizations** w polu **Organization**.

#### Wymagane zakresy (scopes):&#x20;

* [x] Build: <mark style="color:$success;">**read and execute**</mark>&#x20;
* [x] Code: <mark style="color:$success;">**read, write and manage**</mark>
* [x] Environment: <mark style="color:$success;">**read and manage**</mark>
* [x] Extensions: <mark style="color:$success;">**read**</mark>
* [x] Project and Team: <mark style="color:$success;">**read, write and manage**</mark>
* [x] Test Management: <mark style="color:$success;">**read and write**</mark>
* [x] Variable Groups: <mark style="color:$success;">**read and create**</mark>
* [x] Wiki: <mark style="color:$success;">**read and write**</mark>
* [x] Work Items: <mark style="color:$success;">**read and write**</mark>
* [x] Packaging: <mark style="color:$success;">**read, write and manage**</mark>

{% hint style="danger" %}
Podczas wykonywania backupu z minimalnymi uprawnieniami niektóre metadane mogą zostać pominięte. Aby zapewnić pełną ochronę, dobierz uprawnienia zgodnie ze swoimi potrzebami w zakresie ochrony danych. Pamiętaj, że przy uprawnieniach wyłącznie do odczytu (read-only) można tworzyć kopie zapasowe, **ale** **przywracanie wymaga nowego tokenu lub hasła z dostępem do zapisu**.
{% endhint %}

### <mark style="background-color:blue;">Szczegółowe ustawienia uprawnień</mark>

Aby operacje backupu i przywracania zakończyły się sukcesem wymagane są następujące uprawnienia:

1. **Poziom organizacji:**
   1. **General**:
      1. Create new projects (przywracanie)
   2. **Boards**:
      1. Create process (przywracanie)
      2. Edit process (przywracanie)
2. **Poziom projektu:**
   1. **General**:
      1. View project-level information (backup)
3. **Poziom repozytoriów:**
   1. Create branch (przywracanie)
   2. Create repository (przywracanie)
   3. Read (backup)

***

## Uprawnienia Azure DevOps Server

### <mark style="background-color:blue;">Personal Access Token (PAT)</mark>

Dla instalacji on-premise, wykorzystaj metodę integracji za pomocą personal access token (PAT).

#### Wymagania wstępne:

* [x] **Organization** — podczas generowania tokenu PAT **musisz** zaznaczyć opcję **All accessible organizations** w polu **Organization**.

#### Wymagane zakresy (scopes):&#x20;

* [x] Build: <mark style="color:$success;">**read and execute**</mark>&#x20;
* [x] Code: <mark style="color:$success;">**read, write and manage**</mark>
* [x] Environment: <mark style="color:$success;">**read and manage**</mark>
* [x] Extensions: <mark style="color:$success;">**read**</mark>
* [x] Project and Team: <mark style="color:$success;">**read, write and manage**</mark>
* [x] Test Management: <mark style="color:$success;">**read and write**</mark>
* [x] Variable Groups: <mark style="color:$success;">**read and create**</mark>
* [x] Wiki: <mark style="color:$success;">**read and write**</mark>
* [x] Work Items: <mark style="color:$success;">**read and write**</mark>
* [x] Packaging: <mark style="color:$success;">**read, write and manage**</mark>

{% hint style="danger" %}
Podczas wykonywania backupu z minimalnymi uprawnieniami niektóre metadane mogą zostać pominięte. Aby zapewnić pełną ochronę, dobierz uprawnienia zgodnie ze swoimi potrzebami w zakresie ochrony danych. Pamiętaj, że przy uprawnieniach wyłącznie do odczytu (read-only) można tworzyć kopie zapasowe, **ale** **przywracanie wymaga nowego tokenu lub hasła z dostępem do zapisu**.
{% endhint %}
