Hlavicky X-MS365-* jako obycejne hodnoty, GET /users/{user_id}/calendar
- credentials: sifrovani AES-GCM/HKDF odstraneno, tri hlavicky se berou
tak, jak jsou; bez hlavicek se pouziji hodnoty z prostredi
- zrusena promenna MS365_CREDENTIAL_ENCODING_SECRET a zavislost cryptography
- novy endpoint GET /users/{user_id}/calendar (objekt kalendare schranky,
id a name) pro read-only overeni pristupu pres e-mail schranky
- C# ukazka posila hodnoty primo, CredentialEncoder smazan
- README: sekce o hlavickach vcetne PowerShell ukazky, zaznam zmen
- .gitignore: bin/ a obj/, zaverzovane obj/ soubory ukazky odstraneny z gitu
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
fe3c3a736a
commit
d80193da8b
@@ -3,31 +3,26 @@
|
||||
## ListUsersTop10
|
||||
|
||||
Konzolova aplikace (.NET 8), ktera zavola `GET /users?top=10` a vypise
|
||||
displayName, userPrincipalName, mail a id kazdeho uzivatele.
|
||||
|
||||
Obsahuje tridu `CredentialEncoder`, ktera sifruje hodnoty pro hlavicky
|
||||
`X-MS365-Tenant-Id`, `X-MS365-Client-Id` a `X-MS365-Client-Secret` presne tak,
|
||||
jak je sluzba dekoduje v `app/credentials.py`. Tridu lze zkopirovat do
|
||||
libovolneho projektu, nema zadne externi zavislosti.
|
||||
displayName, userPrincipalName, mail a id kazdeho uzivatele. Credentials
|
||||
posila v hlavickach `X-MS365-Tenant-Id`, `X-MS365-Client-Id`
|
||||
a `X-MS365-Client-Secret` jako obycejne hodnoty. Nema zadne externi zavislosti.
|
||||
|
||||
### Spusteni
|
||||
|
||||
```powershell
|
||||
cd examples/csharp/ListUsersTop10
|
||||
$env:MS365_SERVICE_BASE_URL = "https://services.csbot.cz/apps/microsoft-365-service"
|
||||
$env:MS365_TENANT_ID = "<tenant id>"
|
||||
$env:MS365_CLIENT_ID = "<client id>"
|
||||
$env:MS365_CLIENT_SECRET = "<client secret>"
|
||||
$env:MS365_CREDENTIAL_ENCODING_SECRET = "<sdileny secret, stejny jako na serveru>"
|
||||
$env:MS365_TENANT_ID = "<tenant id klienta>"
|
||||
$env:MS365_CLIENT_ID = "<client id aplikace CSBOT>"
|
||||
$env:MS365_CLIENT_SECRET = "<client secret VALUE, ne secret id>"
|
||||
dotnet run
|
||||
```
|
||||
|
||||
### Co ocekavat
|
||||
|
||||
- `200` a JSON ve tvaru Microsoft Graph: `{ "value": [ ... ], "@odata.nextLink": "..." }`.
|
||||
- `400` kdyz hlavicky chybi, jsou neuplne, prosle nebo je spatny sdileny secret.
|
||||
- `400` kdyz hlavicky chybi nebo jsou neuplne.
|
||||
- `502` kdyz Microsoft Graph nebo prihlaseni k Entra ID selze, detail je v tele odpovedi.
|
||||
- `503` kdyz sluzba nema nastaveny `MS365_CREDENTIAL_ENCODING_SECRET`.
|
||||
- `403 text/plain` kdyz GET neprojde pres reverzni proxy (IP allowlist), tj. problem
|
||||
neni ve sluzbe, ale v sitovem pristupu klienta.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user