Korzystanie z zatwierdzania wielu Administracja za pomocą interfejs interfejs Graph API Microsoft

Zatwierdzanie przez wielu administratorów (MAA) wymusza przepływy pracy zatwierdzania w wywołaniach interfejsu API uwierzytelniania aplikacji (app-auth) za pośrednictwem interfejsu Microsoft Interfejs interfejs Graph API. Jeśli organizacja zarządza zasobami usługi Intune przy użyciu jednostek usługi, skryptów automatyzacji lub aplikacji innych firm, te wywołania są przechwytywane przez usługę MAA, gdy zasób docelowy jest chroniony przez zasady dostępu.

W tym artykule wyjaśniono, jak zaktualizować automatyzację, aby działała z przepływem pracy zatwierdzania MAA, oraz jak wykluczyć określone aplikacje z wymuszania, gdy zmiana kodu nie jest natychmiast możliwa.

Ważna

Licencja MAA jest opcjonalna na obciążenie dla każdej dzierżawy. To wymuszenie ma zastosowanie tylko do dzierżaw, które mają skonfigurowane zasady dostępu MAA. Nie powoduje automatycznego włączenia uwierzytelniania MAA ani nie zmienia dzierżaw, które mają rozszerzenie MAA. Aby uzyskać więcej informacji na temat konfigurowania zasad dostępu, zobacz Wymaganie zatwierdzenia przez wielu administratorów za pomocą zasad dostępu.

Co się zmienia w przypadku wywołań uwierzytelniania aplikacji

Wcześniej tylko interakcyjne (delegowane) akcje administracyjne podlegały przepływom pracy zatwierdzania MAA. Dzięki tej zmianie zautomatyzowane i skryptowe wywołania, które używają tokenów tylko dla aplikacji, są również przechwytywane przez usługę MAA, gdy zasób docelowy jest chroniony przez zasady dostępu.

Jeśli aplikacja wykonuje wywołania interfejsu API do zasobów chronionych przez usługę MAA przy użyciu app-auth i nie zawiera wymaganych nagłówków zatwierdzania, wywołanie zwraca błąd HTTP 400. Treść odpowiedzi wskazuje, że operacja wymaga zatwierdzenia przez wielu administratorów.

Typy zasobów, których to dotyczy

Zasady dostępu MAA mogą chronić następujące typy zasobów. Jeśli wywołania uwierzytelniania aplikacji są przeznaczone dla dowolnego z tych zasobów, a zasady dostępu są aktywne, ma to wpływ na automatyzację:

  • Aplikacje
  • Zasady zgodności
  • Zasady konfiguracji
  • Akcje urządzenia
  • Kontrola dostępu oparta na rolach
  • Skrypty
  • Konfiguracja dzierżawy

Umowa MAA dotyczy tylko operacji, które modyfikują chronione zasoby (POST, PATCH, PUT, DELETE). Nie ma to wpływu na operacje tylko do odczytu (GET).

Wymagania wstępne

  • Rejestracja aplikacji z wymaganymi uprawnieniami aplikacji programu Microsoft Graph dla zasobów usługi Intune, którymi zarządza aplikacja (na przykład DeviceManagementApps.ReadWrite.All).
  • Zasady dostępu MAA skonfigurowane dla odpowiednich obciążeń. Aby uzyskać więcej informacji, zobacz Tworzenie zasad dostępu.
  • Oddzielne konto administratora, które należy do grupy osób zatwierdzających zasady dostępu. Aplikacje nie mogą zatwierdzać ani odrzucać żądań MAA — tylko interakcyjne konta administratorów mogą zatwierdzać żądania.

Krok 1. Prześlij wniosek z nagłówkiem uzasadnienia

Gdy licencja MAA jest włączona, dołącz do żądania nagłówek z uzasadnieniem. Wartość nagłówka x-msft-approval-justification musi być zakodowana w standardzie Base64.

Poniższy przykład tworzy zasób skryptu programu PowerShell w usłudze Intune i zawiera wymagany nagłówek uzasadnienia:

POST https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts
Content-Type: application/json
x-msft-approval-justification: YXBwIG9ubHkgdGVzdA==

{
  "displayName": "My Test Script",
  "description": "Testing MAA with app-only token",
  "scriptContent": "V3JpdGUtT3V0cHV0ICJIZWxsbyBXb3JsZCI=",
  "runAsAccount": "system",
  "fileName": "TestScript.ps1",
  "roleScopeTagIds": ["0"]
}

Porada

Wartość x-msft-approval-justification jest zakodowana w formacie Base64. Na przykład YXBwIG9ubHkgdGVzdA== dekoduje do app only test. Zakoduj własny ciąg uzasadnienia przed wysłaniem.

Bez nagłówka uzasadnienia żądanie kończy się niepowodzeniem z błędem wskazującym, że x-msft-approval-justification nagłówek jest wymagany.

Krok 2. Obsługa odpowiedzi na zatwierdzenie

Żądanie zwraca błąd HTTP 412Precondition Failed() z zewnętrznym kodem błędu programu Microsoft Graph równym BadRequest. Ta odpowiedź jest oczekiwana i nie wskazuje na problem z uprawnieniami — jest to sposób, w jaki usługa MAA sygnalizuje, że żądanie zostało odebrane i oczekuje teraz na zatwierdzenie. Szczegóły wymagane do zatwierdzenia są zagnieżdżone w komunikacie o błędzie.

Odpowiedź zawiera x-msft-approval-code nagłówek potrzebny w pozostałych krokach. Użyj obecności tego nagłówka wraz z HTTP 412 jako sygnału, że MAA zaakceptowała żądanie i utworzyła żądanie zatwierdzenia.

Przykładowa odpowiedź:

HTTP/1.1 412 Precondition Failed
x-msft-approval-code: aabb1234-5678-9012-abcd-ef0123456789
Content-Type: application/json

{
  "error": {
    "code": "BadRequest",
    "message": "{\r\n  \"_version\": 3,\r\n  \"Message\": \"Approval Required. Request Approval using the request ID returned as part of the x-msft-approval-code response header. x-msft-approval-code: aabb1234-5678-9012-abcd-ef0123456789 - Operation ID (for customer support): 00000000-0000-0000-0000-000000000000 - Activity ID: <activity-id> - Url: <service-url>\",\r\n  \"CustomApiErrorPhrase\": \"\",\r\n  \"RetryAfter\": null,\r\n  \"ErrorSourceService\": \"\",\r\n  \"HttpHeaders\": \"{\\\"x-msft-approval-code\\\":\\\"aabb1234-5678-9012-abcd-ef0123456789\\\"}\"\r\n}"
  }
}

Wyodrębnij x-msft-approval-code wartość z odpowiedzi. Zapisz oryginalną metodę HTTP, adres URL i treść żądania z tą wartością, ponieważ to samo żądanie należy przesłać ponownie w kroku 4 po zatwierdzeniu.

Krok 3. Oczekiwanie na zatwierdzenie

W tym momencie żądanie zatwierdzenia musi zostać przejrzane i zatwierdzone przez innego administratora w centrum administracyjnym usługi Microsoft Intune. Aplikacje nie mogą zatwierdzać ani odrzucać żądań MAA — tylko interakcyjne konta administratorów mogą je zatwierdzać.

W dowolnym momencie możesz sprawdzić stan żądania zatwierdzenia, wpisując kod zatwierdzenia:

GET https://graph.microsoft.com/beta/deviceManagement/operationApprovalRequests?$filter=requestId eq 'aabb1234-5678-9012-abcd-ef0123456789'

Pole status wskazuje bieżący stan żądania. Typowe wartości to needsApproval, approved, rejectedi cancelled. Przed kontynuowaniem poczekaj, aż stan zmieni się na approved inny.

Krok 4: Prześlij ponownie z kodem zatwierdzenia

Po zatwierdzeniu wniosku prześlij ponownie pierwotny wniosek. Zastąp nagłówek justowania nagłówkiem x-msft-approval-code i użyj kodu zatwierdzenia z kroku 2:

POST https://graph.microsoft.com/beta/deviceManagement/deviceManagementScripts
Content-Type: application/json
x-msft-approval-code: aabb1234-5678-9012-abcd-ef0123456789

{
  "displayName": "My Test Script",
  "description": "Testing MAA with app-only token",
  "scriptContent": "V3JpdGUtT3V0cHV0ICJIZWxsbyBXb3JsZCI=",
  "runAsAccount": "system",
  "fileName": "TestScript.ps1",
  "roleScopeTagIds": ["0"]
}

Żądanie zostało ukończone pomyślnie i zasób został utworzony.

Wykluczanie aplikacji z wymuszania MAA

Jeśli nie możesz od razu zaktualizować aplikacji, aby uwzględnić przepływ pracy zatwierdzania, możesz wykluczyć ją z wymuszania MAA w zasadach dostępu. Aby skonfigurować wykluczenie, edytuj zasady dostępu dla obciążenia wywoływanego przez aplikację i dodaj aplikację na karcie Wykluczenia . Zanim wykluczenie zacznie obowiązywać, drugi administrator musi zatwierdzić tę zmianę.

Wykluczenia mają zastosowanie tylko do wywołań uwierzytelniania aplikacji (uwierzytelnionych przez aplikację) wykonywanych przez wykluczoną jednostkę usługi. Interakcyjne (delegowane) akcje administracyjne na tych samych chronionych zasobach nadal wymagają zatwierdzenia MAA.

Aby uzyskać więcej informacji o wykluczeniach, w tym o zakresie, limitach i zagadnieniach dotyczących zabezpieczeń, zobacz Tworzenie zasad dostępu.

Monitorowanie aktywności MAA dla wywołań uwierzytelniania aplikacji

Zdarzenia związane z MAA — w tym zatwierdzanie, blokowanie, zaliczenie, dodawanie wykluczenia i usuwanie wykluczenia — są rejestrowane w istniejącym dzienniku inspekcji usługi Intune. Użyj standardowego dziennika inspekcji i eksportu interfejsu Interfejs interfejs Graph API, aby sprawdzić, które wywołania uwierzytelniania aplikacji przechodzą przez usługę MAA i jak są obsługiwane.

Często zadawane pytania

Dlaczego moje skrypty automatyzacji kończą się niepowodzeniem?

Jeśli automatyzacja wywołuje program Microsoft Graph i jest przeznaczona dla zasobów chronionych przez zasady dostępu MAA, te wywołania są przechwytywane przez przepływ pracy zatwierdzania MAA niezależnie od tego, czy skrypt używa uwierzytelniania delegowanego, czy tylko aplikacji. Zaktualizuj swoje skrypty, aby zawierały nagłówki uzasadnienia i zatwierdzenia opisane w tym artykule. Jeśli skrypt używa tokenów tylko dla aplikacji (przepływ poświadczeń klienta), możesz również wykluczyć aplikację z zasad dostępu.

Czy rozszerzenie MAA wpływa na wywołania interfejsu API tylko do odczytu?

L.p. Umowa MAA dotyczy tylko operacji, które modyfikują chronione zasoby (POST, PATCH, PUT, DELETE). Nie wpływa to na żądania GET.

Czy aplikacja może zatwierdzać własne wnioski o pozwolenie na dopuszczenie do spłaty zezwolenia?

L.p. Wnioski nie mogą zatwierdzać ani odrzucać wniosków o MAA. Oddzielne interakcyjne konto administratora, które jest członkiem grupy zatwierdzającej, musi zatwierdzić żądanie w centrum administracyjnym usługi Microsoft Intune.

Jak mogę sprawdzić, czy moja dzierżawa ma włączoną funkcję MAA?

W centrum administracyjnym Microsoft Intune przejdź do pozycji Administracja> dzierżawąZasady dostępuzatwierdzania> przez wiele Administracja. Jeśli na liście są aktywne zasady dostępu, usługa MAA jest włączona dla tych obciążeń.

Czy mogę wyłączyć MAA, aby zatrzymać działanie dyscyplinarne?

Zarządzającymi zasadami dostępu MAA mogą zarządzać administratorzy z odpowiednimi uprawnieniami. Jednak firma Microsoft zdecydowanie zaleca pozostawienie włączonej funkcji MAA jako najlepszej praktyki w zakresie zabezpieczeń.