Żeby asystent mógł czytać pocztę w Microsoft 365 i tworzyć w niej szkice, potrzebuje dostępu przez Microsoft Graph. Są na to dwie drogi i obie opierają się na aplikacji, którą organizacja rejestruje we własnym Microsoft Entra ID. draften nie ma wspólnej aplikacji, której wystarczyłoby udzielić zgody. Dotyczy to zarówno naszej usługi, jak i instalacji na własnym serwerze.
Którą drogę wybrać
| Za całą organizację | Kontem skrzynki | |
|---|---|---|
| W draften | rejestracja aplikacji w Organizacja → Integracje | przycisk Podłącz Outlook przy skrzynce |
| Uprawnienia w Entra | aplikacji (Application) | delegowane (Delegated) |
| Kto musi się zalogować | nikt | właściciel każdej skrzynki, jeden raz |
| Do których skrzynek sięga | do wszystkich skrzynek katalogu (można zawęzić) | tylko do skrzynki, której konto się zalogowało |
| Skrzynki współdzielone (info@, sprzedaz@) | tak | nie – skrzynka współdzielona nie ma własnego logowania |
| Gdy ktoś odejdzie z firmy | nic się nie zmienia | po zablokowaniu jego konta skrzynka się odłącza |
| Logowanie do draften kontem Microsoft | nie, to osobna sprawa | ta sama rejestracja służy też do logowania |
Dla organizacji z wieloma skrzynkami prostsza jest droga za całą organizację: administrator ustawia ją raz, a właściciele skrzynek nic nie robią. Kontem skrzynki przydaje się, gdy nie chcesz dawać aplikacji dostępu do wszystkich skrzynek katalogu albo gdy i tak wprowadzasz logowanie kontem Microsoft.
Obie drogi możesz mieć jednocześnie; każda skrzynka używa jednej z nich.
Aplikacji nigdy nie dawaj uprawnienia Mail.Send. draften niczego nie wysyła, a bez tego uprawnienia nawet nie może – i właśnie o to chodzi.
Droga A: za całą organizację
Potrzebujesz konta z rolą administrator globalny albo administrator ról uprzywilejowanych – tylko ono udzieli zgody na uprawnienia aplikacji Microsoft Graph. Samą rejestrację może utworzyć także administrator aplikacji.
W Microsoft Entra
- Otwórz https://entra.microsoft.com → Identity → Applications → App registrations → New registration.
- Wpisz nazwę, na przykład
draften – poczta, wybierz Accounts in this organizational directory only, Redirect URI zostaw puste i kliknij Register. - Na stronie Overview zanotuj Application (client) ID i Directory (tenant) ID.
- Certificates & secrets → Client secrets → New client secret: opis (na przykład
draften) i ważność, najwyżej 24 miesiące. Po zapisaniu od razu skopiuj kolumnę Value – wyświetla się tylko teraz. Secret ID draften nie potrzebuje. Zanotuj też datę wygaśnięcia. - API permissions → Add a permission → Microsoft Graph → Application permissions. Zaznacz
Mail.ReadWriteiMailboxSettings.ReadWritei kliknij Add permissions.MailboxSettings.ReadWritesłuży tylko do koloru kategorii w Outlooku; bez niego kategoria zostanie dodana bez koloru. Opcjonalnie dodajUser.Read.All– draften sprawdza z nim aliasy skrzynki; bez niego test połączenia napisze przy aliasach, że nie może ich sprawdzić. - Kliknij Grant admin consent for … i potwierdź. Przy wszystkich wierszach musi być zielony znacznik.
W draften
- Otwórz Organizacja → Integracje, kartę Dostęp do poczty dla całej organizacji. Rejestracjami zarządza właściciel lub menedżer organizacji.
- System: Microsoft 365 (Entra). Wypełnij Nazwa, Directory (tenant) ID, Application (client) ID, Client secret (wartość z kroku 4, nie jego ID) i Sekret wygasa. Kliknij Dodaj rejestrację. Sekret jest przechowywany w postaci zaszyfrowanej i już się nie wyświetla.
- Rejestracja sama niczego nie podłącza. Na stronie każdej skrzynki, na karcie Dostęp do poczty, wybierz w polu Użyj tę rejestrację, kliknij Zastosuj, a potem Przetestuj połączenie. Wybór widzi tylko ten, kto jest jednocześnie właścicielem skrzynki oraz właścicielem lub menedżerem organizacji (właściciel organizacji jest właścicielem wszystkich skrzynek). Całe postępowanie ze zrzutami ekranu pokazuje instrukcja Dodanie i podłączenie skrzynki.
Przy włączonej automatycznej skrzynce (Logowanie członków) nowa skrzynka zostaje powiązana z rejestracją sama, jeśli dla Microsoft 365 jest dokładnie jedna aktywna.
Zawężenie do wybranych skrzynek (opcjonalnie)
Uprawnienie aplikacji sięga do wszystkich skrzynek katalogu; strażnikiem jest draften (członek nie może dodać skrzynki, asystent niczego nie wysyła ani nie usuwa). Kto chce mieć także techniczne ogrodzenie, zawęża aplikację do grupy zabezpieczeń zasadą ApplicationAccessPolicy w Exchange Online (PowerShell z modułem ExchangeOnlineManagement):
Connect-ExchangeOnline -UserPrincipalName admin@<tenant>.onmicrosoft.com
New-DistributionGroup -Name "draften - dozwolone skrzynki" -Alias draften-skrzynki -Type Security -Members skrzynka@firma.cz
New-ApplicationAccessPolicy -AppId <Application (client) ID> -PolicyScopeGroupId draften-skrzynki@firma.cz -AccessRight RestrictAccess -Description "draften: tylko dozwolone skrzynki"
Test-ApplicationAccessPolicy -Identity skrzynka@firma.cz -AppId <Application (client) ID>
Każdą kolejną skrzynkę dodaj potem także do grupy, inaczej test połączenia skończy się błędem 403 (AppOnly AccessPolicy). Zasada zaczyna działać zwykle w ciągu godziny; widzieliśmy też cztery godziny. Jako nowszą alternatywę Microsoft oferuje RBAC for Applications w Exchange Online; tego na razie nie opisujemy.
Wymiana sekretu
Sekret ma ograniczoną ważność, a draften nie wysyła żadnego powiadomienia o jego końcu – data na karcie zmienia kolor na żółty 30 dni przed wygaśnięciem, a po nim na czerwony. Ustaw sobie przypomnienie w kalendarzu. Przed wygaśnięciem:
- W Entra przy rejestracji utwórz nowy client secret (krok 4 powyżej).
- W draften przy rejestracji wybierz Nowy sekret, wklej nową wartość i nową datę.
- Stary sekret w Entra usuń.
Gdy sekret wygaśnie wcześniej, skrzynki się odłączą (invalid_client), a asystenci będą je pomijać. Po wymianie sekretu uruchom przy skrzynkach Przetestuj połączenie – udany test znowu włącza skrzynkę.
Droga B: kontem skrzynki (Podłącz Outlook)
Ta rejestracja ma uprawnienia delegowane: aplikacja może tylko to, co może zalogowana osoba, i tylko w jej własnej skrzynce. Ta sama rejestracja służy też do logowania do draften kontem Microsoft. Trzymaj ją oddzielnie od rejestracji dla drogi A.
W Microsoft Entra
- W draften najpierw otwórz Organizacja → Logowanie członków, kartę Logowanie kontem i podłączanie skrzynek. Pokazuje dwa redirect URI dokładnie dla twojego adresu draften – kończą się na
/auth/callbacki/mailboxes/connect/callback. Skopiuj je stamtąd; muszą się zgadzać znak po znaku. - W https://entra.microsoft.com → App registrations → New registration: nazwa na przykład
draften – logowanie, Accounts in this organizational directory only, Redirect URI: platforma Web i pierwszy adres z karty. Kliknij Register. - Authentication → przy platformie Web Add URI → drugi adres z karty → Save.
- Na Overview zanotuj Application (client) ID i Directory (tenant) ID.
- Certificates & secrets → New client secret → skopiuj Value i zanotuj datę wygaśnięcia.
- API permissions → Add a permission → Microsoft Graph → Delegated permissions:
openid,profile,email,offline_access,User.Read,Mail.ReadWriteiMailboxSettings.ReadWrite. Bezoffline_accesspołączenie się nie utrzyma – draften nie dostałby tokenu odświeżania. - Kliknij Grant admin consent for …. Gdyby twoja organizacja zabraniała użytkownikom wyrażania zgody na aplikacje, bez tego kroku podłączenie skończyłoby się komunikatem, że zgoda została odrzucona.
W draften
- Właściciel organizacji na karcie Logowanie kontem i podłączanie skrzynek wypełnia w sekcji Rejestracja Entra dla „Zaloguj się przez Microsoft” i „Podłącz Outlook” pola Application (client) ID i Client secret i klika Zapisz.
- Właściciel skrzynki otwiera stronę skrzynki i na karcie Dostęp do poczty klika Podłącz Outlook. Loguje się kontem tej skrzynki – inne konto draften odrzuci – i zezwala na dostęp. Przycisk widzi tylko właściciel skrzynki i tylko wtedy, gdy organizacja ma rejestrację.
- Potem Przetestuj połączenie.
Logowanie kontem Microsoft włączysz na tej samej stronie: w polu ID katalogu Microsoft (Entra) wpisz Directory (tenant) ID. Gdy organizacja ma rejestrację i ID katalogu, członkowie logują się kontem Microsoft, a ich hasła przestają działać – zobacz Logowanie członków.
Gdy skrzynka się odłączy
- Wygasł sekret rejestracji – utwórz w Entra nowy, zapisz go na karcie Logowanie kontem i podłączanie skrzynek i przy skrzynkach kliknij Podłącz Outlook ponownie.
- Osoba odeszła albo jej konto zostało zablokowane – Microsoft przestaje wydawać tokeny i draften odłącza skrzynkę. Skrzynkę bez własnego logowania podłącz drogą A.
- „Dostawca nie wydał tokenu odświeżania” – rejestracji brakuje uprawnienia
offline_access(krok 6). - „Zalogowało się inne konto niż adres skrzynki” – przy podłączaniu zaloguj się kontem właśnie tej skrzynki; kto ma w przeglądarce kilka kont Microsoft, wybiera właściwe.
Błędy testu połączenia
Test sprawdza trzy kroki: Dostęp, Token i uprawnienie i Odczyt skrzynki odbiorczej. Przy każdym jest znacznik albo krzyżyk z powodem:
| W komunikacie | Co to znaczy | Co zrobić |
|---|---|---|
AADSTS7000215, AADSTS7000222, invalid_client | zły albo wygasły client secret | utwórz nowy sekret i zapisz go w draften |
AADSTS700016, AADSTS90002, unauthorized_client | złe Application ID albo Directory ID | przepisz oba ID ponownie z Overview |
AADSTS65001, AADSTS650057, consent_required | brak zgody administratora | Grant admin consent przy rejestracji |
token bez Mail.ReadWrite | brak uprawnienia albo nie udzielono na nie zgody | dodaj uprawnienie i udziel zgody |
invalid_grant, AADSTS50173, AADSTS700082, AADSTS70008 | połączenie kontem wygasło albo zostało cofnięte | Podłącz Outlook ponownie |
HTTP 403 AppOnly AccessPolicy | skrzynki nie ma w grupie zasady dostępu | dodaj ją do grupy i poczekaj |
| HTTP 404 | taka skrzynka nie istnieje | sprawdź adres; skrzynka musi mieć Exchange Online |
| HTTP 401 | inny katalog albo brak uprawnienia | sprawdź Directory ID i uprawnienia |
Pozostałe błędy opisuje strona Rozwiązywanie problemów.