Przewodnik administratora: konfiguracja integracji SharePoint
Ten przewodnik pokazuje, jak administrator organizacji włącza integrację SharePoint w AnyLawyer. Po jej włączeniu AI może przeszukiwać witryny i biblioteki dokumentów SharePoint z uprawnieniami zalogowanego użytkownika i wyłącznie do odczytu — użytkownik widzi w AnyLawyer tylko to, co widziałby w SharePoint.
Konfigurację wykonujesz raz dla całej organizacji. Są dwie drogi: prosta (kilka minut) i pełna (20–30 minut). Poniżej pomagamy wybrać właściwą.
Nie widzisz integracji SharePoint w AnyLawyer? Funkcja jest włączana dla organizacji przez zespół AnyLawyer. Skontaktuj się z nami, zanim zaczniesz konfigurację.
Którą drogę wybrać?
Krótko: jeśli nie macie twardego wymogu rejestrowania aplikacji u siebie — wybierzcie Wariant A. Zakres dostępu do danych jest w obu wariantach identyczny; różni się tylko to, kto jest właścicielem tożsamości aplikacji i kto pilnuje sekretu.
| Wariant A — aplikacja AnyLawyer | Wariant B — własna aplikacja | |
|---|---|---|
| Rejestracja aplikacji w Waszym Entra ID | nie jest potrzebna | wymagana |
| Co wpisujecie w AnyLawyer | Tenant ID | Tenant ID, Client ID, Client Secret, Scope |
| Zarządzanie sekretem i rotacja | po stronie AnyLawyer | po Waszej stronie (sekret wygasa!) |
| Ślad w Waszym katalogu | wpis „aplikacji dla przedsiębiorstw" (można wyłączyć jednym kliknięciem) | pełna rejestracja aplikacji |
| Uprawnienia | delegowane, tylko do odczytu | delegowane, tylko do odczytu |
| Ograniczenie do jednej witryny | tak | tak |
| Narzędzia Agent 365 MCP | nie | tak |
| Czas wdrożenia | ~5 minut | ~20–30 minut |
Wariant można zmienić w dowolnym momencie. Strona ustawień pokazuje oba tryby obok siebie i jednoznacznie oznacza, który jest aktywny. Po zmianie użytkownicy łączą konta ponownie (jednym kliknięciem).
Wariant A: aplikacja AnyLawyer (zalecany)
Korzystacie z gotowej, multi-tenantowej aplikacji AnyLawyer SharePoint utrzymywanej przez nas. W Waszym Microsoft Entra ID nie powstaje żadna rejestracja aplikacji — pojawia się jedynie wpis „aplikacji dla przedsiębiorstw" (enterprise application), taki sam jak przy każdej zaakceptowanej aplikacji SaaS, który administrator może w każdej chwili wyłączyć lub usunąć.
Co jest istotne dla zespołów bezpieczeństwa:
- Aplikacja ma wyłącznie uprawnienia delegowane, tylko do odczytu (
User.Read,Files.Read.All,Sites.Read.All) — żadnych uprawnień aplikacyjnych działających bez kontekstu zalogowanego użytkownika. - Sekret aplikacji przechowuje i rotuje wyłącznie AnyLawyer — nie zarządzacie żadnymi kluczami i nic Wam nie wygaśnie.
- Efektywny dostęp to zawsze część wspólna: uprawnienia połączonego konta ∩ (opcjonalne) ograniczenie do jednej witryny.
Krok A1: Skopiuj Tenant ID
- Otwórz entra.microsoft.com i zaloguj się.
- Przejdź do Entra ID → Overview (Przegląd).
- W sekcji „Basic information" skopiuj Tenant ID — identyfikator w formacie
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx.

Krok A2: Zapisz konfigurację w AnyLawyer
- Zaloguj się do AnyLawyer jako administrator i przejdź do Administracja → Ustawienia organizacji → Integracje → SharePoint (w wersji angielskiej: Admin Tools → Organization Settings → Integrations → SharePoint).
- Zostań na karcie Aplikacja AnyLawyer (zalecane) i wklej Tenant ID.
- Opcjonalnie wypełnij Adres witryny SharePoint, aby od razu ograniczyć integrację do jednej lokalizacji — patrz „Ograniczenie do jednej witryny".
- Kliknij Zapisz ustawienia SharePoint MCP.
Krok A3: Udziel zgody administratora Microsoft
- Po zapisaniu w zielonej ramce pojawi się przycisk „Udziel zgody administratora w Microsoft".
- Kliknij go (lub przekaż adres osobie z rolą Global Administrator w Waszym Microsoft 365). Microsoft pokaże listę uprawnień aplikacji AnyLawyer SharePoint — zatwierdźcie przyciskiem Accept.
- Przeglądarka wróci na stronę ustawień AnyLawyer. Jeśli osoba zatwierdzająca nie ma konta w AnyLawyer, może zobaczyć ekran logowania — to nic nie szkodzi, zgoda jest już zapisana po stronie Microsoft.
Zgody udziela się raz dla całej organizacji. Bez niej użytkownicy zobaczą przy łączeniu komunikat „Need admin approval".
Krok A4: Połącz konto i sprawdź działanie
- Na tej samej stronie kliknij Połącz i zaloguj się kontem Microsoft.
- Po powrocie zobaczysz zielony wskaźnik połączenia.
- Otwórz projekt i zadaj AI pytanie o dokument z SharePointa — powinno go znaleźć i odczytać.
Zalecenie dla organizacji z restrykcyjną polityką: w Microsoft Entra przejdź do Aplikacje dla przedsiębiorstw → AnyLawyer SharePoint → Properties, włącz Assignment required i przypisz wyłącznie dedykowane konto serwisowe (np. anylawyer@twojafirma.pl) mające dostęp tylko do wybranej witryny. Wtedy nikt inny w organizacji nie może użyć tej aplikacji, a integracja łączona jest właśnie tym kontem.
Uwaga techniczna: w Wariancie A integracja korzysta z bezpośredniego dostępu Microsoft Graph — narzędzia Agent 365 MCP wymagają własnej rejestracji aplikacji. Dla użytkowników nie ma to znaczenia: AI tak samo wyszukuje i czyta dokumenty SharePoint w trybie tylko do odczytu.
Wariant B: rejestracja aplikacji w Microsoft Entra
Wybierzcie tę drogę, jeśli Wasza polityka wymaga, by tożsamość aplikacji należała do Was (własny cykl życia sekretu, własne polityki na poziomie rejestracji, audyt w całości po Waszej stronie), albo jeśli chcecie korzystać z narzędzi Agent 365 MCP.
Czego potrzebujesz: roli Administratora w AnyLawyer, dostępu do Microsoft Entra admin center z prawem rejestrowania aplikacji oraz — jednorazowo — osoby z rolą Global Administrator w tenancie i komputera z PowerShell (Krok B2).
Krok B1: Skopiuj Redirect URI z AnyLawyer
- Zaloguj się do AnyLawyer jako administrator.
- Przejdź do Administracja → Ustawienia organizacji → Integracje → SharePoint i otwórz kartę Własna aplikacja Entra.
- Skopiuj adres z ramki SharePoint MCP Redirect URI, np.
https://anylawyer.com/api/sharepoint-mcp/callback— wkleisz go w Kroku B6. Musi być identyczny znak w znak.

Krok B2 (jednorazowy, Global Administrator): Aktywuj Agent 365 Tools
Zanim jakakolwiek aplikacja będzie mogła korzystać z serwera SharePoint MCP, w tenancie musi istnieć service principal usługi Agent 365 Tools. Tworzy go oficjalny skrypt Microsoftu — uruchamiany raz na cały tenant.
- Poproś osobę z rolą Global Administrator o wykonanie tego kroku.
- Pobierz skrypt: New-Agent365ToolsServicePrincipalProdPublic.ps1.
- Uruchom go w PowerShell zgodnie z instrukcją w repozytorium i zaloguj się kontem Global Administratora.
- Po wykonaniu w tenancie pojawi się aplikacja usługowa „Agent 365 Tools" — dzięki temu w Kroku B8 będzie można nadać uprawnienie.
Więcej: dokumentacja Microsoft SharePoint MCP.
Krok B3: Skopiuj Tenant ID
- W Entra przejdź do Entra ID → Overview (Przegląd).
- W sekcji „Basic information" skopiuj Tenant ID.

Krok B4: Utwórz rejestrację aplikacji
- Przejdź do Entra ID → App registrations (Rejestracje aplikacji) i kliknij + New registration.
- W polu Name wpisz np.
AnyLawyer SharePoint. - W Supported account types zostaw Single tenant only („Accounts in this organizational directory only").
- Sekcję Redirect URI (optional) pomiń — dodamy ją w Kroku B6.
- Kliknij Register.
Szczegóły: rejestrowanie aplikacji w Microsoft Entra.

Krok B5: Skopiuj Application (client) ID
- Na stronie Overview aplikacji znajdź Application (client) ID i skopiuj wartość — to będzie SharePoint MCP Client ID.
⚠️ Nie pomyl go z „Object ID", które wygląda podobnie i leży tuż obok.

Krok B6: Dodaj Redirect URI
- W menu aplikacji kliknij Authentication (może mieć dopisek „Preview").
- Na zakładce Redirect URI configuration kliknij Add Redirect URI.
- Wybierz platformę Web (kliknij Select).
- W polu Redirect URI wklej adres skopiowany w Kroku B1, np.:
https://anylawyer.com/api/sharepoint-mcp/callback - Kliknij Configure.
W starszym widoku Authentication ścieżka to: + Add a platform → Web → wklej URI → Configure.
⚠️ Adres musi być identyczny znak w znak z tym z AnyLawyer — to najczęstsze źródło błędów.

Krok B7: Utwórz Client Secret
- W menu aplikacji kliknij Certificates & secrets → Client secrets → + New client secret.
- Wpisz opis (np.
AnyLawyer) i wybierz okres ważności. Zanotuj datę wygaśnięcia — po niej trzeba wygenerować nowy sekret i zaktualizować go w AnyLawyer. - Kliknij Add i skopiuj zawartość kolumny Value.
⚠️ Bardzo ważne:
- Kopiuj kolumnę Value, a nie „Secret ID"! Pomylenie tych dwóch wartości to najczęstszy błąd całej konfiguracji.
- Value jest widoczne w całości tylko bezpośrednio po utworzeniu. Jeśli opuścisz stronę bez skopiowania — usuń sekret i utwórz nowy.
- Traktuj sekret jak hasło; nie wysyłaj go e-mailem ani na czacie.

Krok B8: Nadaj uprawnienia i udziel zgody administratora
-
W menu aplikacji kliknij API permissions → + Add a permission.
-
Wejdź na zakładkę APIs my organization uses i wyszukaj Agent Tools (w niektórych tenantach: „Agent 365 Tools").
- Jeśli nie ma po nazwie, wklej identyfikator:
ea9ffc3e-8a23-4a7d-836d-234d7c7565c1. - Jeśli nadal brak wyników — skrypt z Kroku B2 nie został wykonany w tym tenancie.
- Jeśli nie ma po nazwie, wklej identyfikator:
-
Wybierz Delegated permissions, rozwiń McpServers, zaznacz McpServers.OneDriveSharepoint.All i kliknij Add permissions.
-
Dodaj też uprawnienia Microsoft Graph (potrzebne m.in. do trybu jednej witryny): ponownie + Add a permission → Microsoft Graph → Delegated permissions i zaznacz
User.Read,Files.Read.All,Sites.Read.All. -
Na liście uprawnień kliknij Grant admin consent for [nazwa organizacji] i potwierdź Yes. Przy uprawnieniach powinien pojawić się zielony status „Granted for …". Zrób to nawet, jeśli kolumna „Admin consent required" pokazuje „No".
Nazwy
Files.Read.All/Sites.Read.Allbrzmią szeroko, ale są delegowane — efektywny dostęp zawsze ogranicza się do tego, co widzi połączone konto, a przy ustawionym adresie witryny dodatkowo do tej jednej lokalizacji.
Wartość scope do AnyLawyer (Krok B9) ma postać api://<ID aplikacji Agent 365 Tools>/McpServers.OneDriveSharepoint.All. W AnyLawyer podpowiadamy domyślną:
api://ea9ffc3e-8a23-4a7d-836d-234d7c7565c1/McpServers.OneDriveSharepoint.All
Wskazówka: pełny „Application ID URI" usługi Agent Tools (widoczny w nagłówku panelu „Request API permissions") może mieć postać z prefiksem
api://auth-…. Jeśli łączenie konta zwraca błąd o nieprawidłowym zakresie, użyj pełnego URI z tego nagłówka +/McpServers.OneDriveSharepoint.All.

Krok B9: Wklej dane w AnyLawyer i połącz konto
-
Wróć do Administracja → Ustawienia organizacji → Integracje → SharePoint, karta Własna aplikacja Entra.
-
Wypełnij pola:
Pole w AnyLawyer Skąd wziąć wartość SharePoint MCP Tenant ID Krok B3 — Entra ID → Overview → Tenant ID SharePoint MCP Client ID Krok B5 — Application (client) ID SharePoint MCP Client Secret Krok B7 — kolumna Value SharePoint MCP OAuth Scope Krok B8 — zostaw domyślną, chyba że macie niestandardową instalację Adres witryny SharePoint (opcjonalnie) Ograniczenie do jednej witryny -
Kliknij Zapisz ustawienia SharePoint MCP — status zmieni się na zielony „Aktywne: własna aplikacja Entra".
-
Kliknij Połącz, zaloguj się kontem Microsoft i zaakceptuj uprawnienia. Zielony wskaźnik oznacza gotowość.
-
Otwórz projekt i zadaj AI pytanie o dokument z SharePointa.

Ograniczenie integracji do jednej wskazanej witryny
Działa w obu wariantach. Domyślnie AI może przeszukiwać wszystko, do czego połączony użytkownik ma dostęp w Microsoft 365. Jeśli chcecie, aby AnyLawyer korzystał wyłącznie z jednej witryny SharePoint, wypełnijcie jedno pole:
- W ustawieniach SharePoint wklej pełny adres witryny w polu Adres witryny SharePoint (opcjonalnie), np.:
https://twojafirma.sharepoint.com/sites/BazaWiedzy - Kliknij Zapisz ustawienia SharePoint MCP.
Od tego momentu:
- AI przeszukuje i odczytuje dokumenty wyłącznie z tej witryny — nie sięga do prywatnych dysków OneDrive, innych witryn ani wyszukiwania obejmującego cały tenant.
- O zawartości dostępnej dla AnyLawyer decydują właściciele i użytkownicy witryny — publikując lub usuwając w niej dokumenty, zarządzają na bieżąco bazą wiedzy dostępną dla AI.
- Ograniczenie działa po stronie AnyLawyer niezależnie od uprawnień w Microsoft 365, a uprawnienia użytkownika są nadal w pełni respektowane (podwójna ochrona).
W Wariancie B upewnij się, że aplikacja ma nadane uprawnienia Microsoft Graph z Kroku B8 — bez nich wyszukiwanie w trybie jednej witryny zwróci błąd
AADSTS65001. W Wariancie A uprawnienia są już nadane.
Zalecana konfiguracja dla organizacji z restrykcyjną polityką bezpieczeństwa
Aby zakres był ograniczony także po stronie Microsoft 365 — nie tylko w aplikacji — połączcie ograniczenie witryny z dedykowanym kontem:
- Utwórzcie konto serwisowe (np.
anylawyer@twojafirma.pl) z uprawnieniami tylko do odczytu wybranej witryny — bez skrzynki pocztowej, innych witryn i dysków. - Połączcie integrację SharePoint właśnie tym kontem.
- Wpiszcie adres tej samej witryny w polu Adres witryny SharePoint.
Efektywny dostęp to wtedy część wspólna uprawnień konta i ograniczenia w AnyLawyer. Gdyby jedna warstwa została błędnie skonfigurowana, druga nadal ogranicza dostęp do wskazanej lokalizacji.
A co z OneDrive?
OneDrive to osobna, prostsza integracja (przeszukiwanie prywatnego dysku użytkownika), konfigurowana na własnej stronie: Integracje → OneDrive. Wymaga własnej rejestracji aplikacji — możecie użyć tej samej co w Wariancie B:
- W Authentication dodajcie drugi redirect URI:
https://…/api/onedrive/callback(dokładny adres pokazuje strona OneDrive w AnyLawyer). - W API permissions dodajcie uprawnienia delegowane Microsoft Graph:
Files.Read.AlliUser.Read, a następnie Grant admin consent. - Wklejcie Client ID i Client Secret na stronie OneDrive i zapiszcie.
Rozwiązywanie problemów
Nie widzę integracji SharePoint w ustawieniach. Funkcja jest włączana per organizacja przez zespół AnyLawyer — skontaktuj się z nami.
Komunikat „Need admin approval" albo błąd AADSTS65001.
Nie udzielono zgody administratora. Wariant A: kliknij „Udziel zgody administratora w Microsoft" (Krok A3). Wariant B: wróć do Kroku B8 i kliknij Grant admin consent.
Błąd AADSTS50011 (redirect URI mismatch). (Wariant B)
Adres w Authentication nie jest identyczny z tym w AnyLawyer. Porównaj znak po znaku: https://, pełna ścieżka /api/sharepoint-mcp/callback, brak ukośnika na końcu.
Błąd AADSTS7000215 (invalid client secret). (Wariant B)
Najczęściej skopiowano „Secret ID" zamiast kolumny Value (Krok B7) — utwórz nowy sekret i wklej jego Value. Może też oznaczać, że sekret wygasł.
Błąd AADSTS700016 (application not found). (Wariant B)
W polu Client ID jest wartość, która nie jest Application (client) ID aplikacji (np. Object ID albo Secret ID). Sprawdź Krok B5.
Na liście „APIs my organization uses" nie ma „Agent 365 Tools". (Wariant B)
Usługa bywa widoczna jako Agent Tools — wyszukaj „Agent" lub wklej ea9ffc3e-8a23-4a7d-836d-234d7c7565c1. Jeśli nadal brak, skrypt z Kroku B2 nie został wykonany w tym tenancie.
Sekret wygasł — użytkownicy nagle nie mogą się połączyć. (Wariant B) Utwórz nowy client secret (Krok B7), wklej Value w AnyLawyer i zapisz. Ustaw przypomnienie ~2 tygodnie przed datą wygaśnięcia. (W Wariancie A ten problem nie występuje.)
Po zmianie konfiguracji wyszukiwanie zwraca błąd uwierzytelnienia. Zmiana Tenant ID albo wariantu unieważnia wcześniejsze połączenia użytkowników — kliknij Połącz ponownie.
Bezpieczeństwo
- Integracja działa tylko do odczytu — AI nie modyfikuje ani nie usuwa niczego w SharePoint.
- AI działa z uprawnieniami delegowanymi zalogowanego użytkownika — nikt nie zobaczy dokumentów, do których nie ma dostępu w SharePoint.
- Dostęp można ograniczyć do jednej wskazanej witryny, niezależnie od uprawnień konta.
- Dokumenty nie są kopiowane na serwery AnyLawyer — są odczytywane na żądanie, w momencie konkretnego zapytania.
- Tokeny dostępu przechowywane są po stronie serwera, osobno dla każdego użytkownika, i nigdy nie trafiają do przeglądarki.
- Użytkownik może w każdej chwili kliknąć Rozłącz, co usuwa jego tokeny; administrator może w Entra wyłączyć całą aplikację.