> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anny.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Microsoft Enterprise SSO auf iOS einrichten

> So richtest du das Microsoft Enterprise SSO Plug-in für anny auf Intune-verwalteten iOS-Geräten ein.

Auf iOS-Geräten nutzen alle Apps für den OAuth-Login intern Apples System-Browser (Safari-Engine). Wenn deine Organisation eine Conditional Access Policy hat, die nur Microsoft Edge erlaubt, kann der anny-Login dadurch blockiert werden.

Die Lösung ist das **Microsoft Enterprise SSO Plug-in**. Es fängt Anmeldeanfragen an Microsoft Entra ID auf Betriebssystem-Ebene ab und stellt Tokens automatisch bereit, ohne dass ein Browser geöffnet wird. Safari muss dafür **nicht** freigegeben werden.

Mit dem Enterprise SSO Plug-in kannst du:

* Deine Mitarbeitenden nahtlos bei anny anmelden, ohne Safari als Browser freizugeben
* Single Sign-On über alle Apps hinweg nutzen (anny, Microsoft 365, eigene Apps)
* Device Compliance und Gerätestatus automatisch an Conditional Access übergeben

<Info>
  Diese Einrichtung erfolgt vollständig auf IT-Admin-Seite in Microsoft Intune. An der anny App selbst sind keine Änderungen nötig.
</Info>

## Voraussetzungen

Bevor du das SSO Plug-in einrichtest, stelle sicher, dass folgende Punkte erfüllt sind:

* iOS 13.0 oder neuer auf den Geräten
* Die Geräte sind in **Microsoft Intune MDM** enrolled
* **Microsoft Entra ID** (ehemals Azure AD) wird als Identity Provider genutzt
* Der anny-Login läuft über SAML/OIDC Federation mit Entra ID (der Auth-Flow wird an `login.microsoftonline.com` weitergeleitet)

<Tip>
  Wenn der anny-Login nicht über Entra ID läuft, greift das SSO Plug-in nicht. In dem Fall muss anny als App in Entra ID registriert und SSO per SAML/OIDC Federation konfiguriert werden.
</Tip>

## SSO Plug-in einrichten

<Steps>
  <Step title="SSO App Extension Profil erstellen">
    Öffne das **Microsoft Intune Admin Center** (intune.microsoft.com) und navigiere zu **Devices > Manage devices > Configuration > Create > New Policy**.

    Wähle folgende Einstellungen:

    * **Platform:** iOS/iPadOS
    * **Profile type:** Templates > Device features
    * **Name:** z. B. `iOS: SSO App Extension`

    Unter **Configuration settings** > **Single sign-on app extension**:

    * **SSO app extension type:** Microsoft Entra ID
    * **Enable shared device mode:** Not configured
  </Step>

  <Step title="Empfohlene Konfiguration setzen">
    Füge unter **Additional configuration** folgende Key-Value-Paare hinzu:

    | Key                               | Type    | Value                                | Zweck                                              |
    | :-------------------------------- | :------ | :----------------------------------- | :------------------------------------------------- |
    | `AppPrefixAllowList`              | String  | `co.anny.,com.apple.,com.microsoft.` | Erlaubt Apple- und Microsoft-Apps, SSO zu nutzen   |
    | `browser_sso_interaction_enabled` | Integer | `1`                                  | Aktiviert SSO in Safari und WebView-basierten Apps |
    | `disable_explicit_app_prompt`     | Integer | `1`                                  | Unterdrückt unnötige Zustimmungs-Popups pro App    |
    | `device_registration`             | String  | `{{DEVICEREGISTRATION}}`             | Aktiviert Just-in-Time Device Registration         |

    <Warning>
      Achte darauf, dass vor und nach den Keys und Values keine Leerzeichen stehen. Andernfalls funktioniert die Registrierung nicht.
    </Warning>
  </Step>

  <Step title="Profil zuweisen">
    Weise das Profil einer **Device- oder User-Gruppe** zu, die deine iOS-Geräte enthält. Die Einstellungen werden beim nächsten Device-Check-in automatisch angewendet.
  </Step>

  <Step title="Microsoft Authenticator deployen">
    Navigiere zu **Apps > All Apps** und stelle sicher, dass **Microsoft Authenticator** als **Required App** derselben Gerätegruppe zugewiesen ist.

    <Info>
      Die Authenticator App muss nur installiert sein. Deine Mitarbeitenden müssen sie nicht aktiv einrichten oder nutzen. Die App muss über ein Apple Volume Purchase Program (VPP) bezogen werden.
    </Info>
  </Step>

  <Step title="Conditional Access Policy anpassen">
    Das ist der wichtigste Schritt. Statt einer Policy, die ausschließlich Edge als Browser erzwingt, sollte die Policy auf eine der folgenden Bedingungen umgestellt werden:

    * **Require compliant device** (empfohlen): Prüft, ob das Gerät Intune-compliant ist
    * **Require approved client app**: Erlaubt Authentifizierung über die Authenticator App

    Das SSO Plug-in liefert automatisch Device Identity und Compliance-Status mit jedem Auth-Request. Das bietet besseren Schutz als eine reine Browser-Einschränkung, weil nicht nur der Browser, sondern der gesamte Gerätestatus geprüft wird.

    <Warning>
      Ohne diese Anpassung blockiert die bestehende Edge-only-Policy den Login weiterhin, auch wenn das SSO Plug-in korrekt eingerichtet ist.
    </Warning>
  </Step>

  <Step title="Testen">
    Öffne die **anny App** auf einem enrolled iOS-Gerät und starte den Login:

    * **Erster Login nach Einrichtung:** Kurzer Auth-Dialog, in dem Entra ID Credentials eingegeben werden.
    * **Alle folgenden Logins:** SSO greift automatisch, kein erneutes Einloggen nötig.

    Prüfe im Intune Admin Center unter **Devices > Gerät > Device configuration**, ob das SSO-Profil als Succeeded angezeigt wird.
  </Step>
</Steps>

## Hintergrund: Warum nicht einfach Edge als In-App-Browser nutzen?

iOS erlaubt es Apps nicht, einen anderen Browser als Apples System-Browser (`ASWebAuthenticationSession`) für OAuth-Logins zu verwenden. Selbst wenn Edge als Standard-Browser eingestellt ist, nutzt iOS intern immer die Safari-Engine für Anmeldevorgänge.

Das Enterprise SSO Plug-in löst dieses Problem auf einer tieferen Ebene: Es arbeitet auf Betriebssystem-Ebene und fängt Anmeldeanfragen ab, bevor ein Browser geöffnet wird. Dadurch werden Conditional Access Policies korrekt erfüllt, ohne dass Safari als Browser freigegeben werden muss.

## FAQ

<AccordionGroup>
  <Accordion title="Muss Safari auf den Geräten freigegeben werden?">
    Nein. Safari kann weiterhin per Intune blockiert bleiben. Das SSO Plug-in nutzt nicht Safari als Browser, sondern arbeitet auf Betriebssystem-Ebene. Der Auth-Dialog ist ein sandboxed System-Dialog, kein offener Browser.
  </Accordion>

  <Accordion title="Muss an der anny App etwas geändert werden?">
    Nein. Das SSO Plug-in fängt Auth-Requests an Entra ID automatisch ab, unabhängig davon, welche App sie auslöst. Die gesamte Einrichtung erfolgt in Intune.
  </Accordion>

  <Accordion title="Funktioniert das nur mit anny oder auch mit anderen Apps?">
    Das SSO Plug-in bietet Single Sign-On über alle Apps hinweg, die gegen Microsoft Entra ID authentifizieren: Microsoft 365 Apps, anny, und jede andere App, deren Login-Flow über Entra ID läuft.
  </Accordion>

  <Accordion title="Was passiert auf nicht-verwalteten Geräten?">
    Das SSO Plug-in erfordert MDM-Enrollment. Auf nicht-verwalteten Geräten nutzt anny den normalen OAuth-Login über den System-Browser. Stelle sicher, dass deine Conditional Access Policy diesen Fallback erlaubt, falls Mitarbeitende auch auf privaten Geräten arbeiten.
  </Accordion>

  <Accordion title="Brauche ich eine zusätzliche Lizenz?">
    Nein. Das Enterprise SSO Plug-in ist Teil von Microsoft Intune und Entra ID. Es ist keine separate Lizenz oder Freigabe von Microsoft nötig.
  </Accordion>

  <Accordion title="Was ist der Unterschied zum Brokered Auth über MSAL?">
    Brokered Auth erfordert, dass die App das MSAL SDK eingebaut hat. Das SSO Plug-in arbeitet auf Betriebssystem-Ebene und funktioniert mit jeder App, unabhängig vom verwendeten SDK. Für anny ist das SSO Plug-in der richtige Ansatz.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Login schlägt trotz SSO Plug-in fehl">
    Prüfe folgende Punkte:

    1. Wurde die **Conditional Access Policy** angepasst? Eine Edge-only-Policy blockiert weiterhin.
    2. Ist die **Authenticator App** auf dem Gerät installiert?
    3. Hat das Gerät ein **Device Identity Certificate**? Prüfe unter Einstellungen > Allgemein > VPN und Geräteverwaltung > MDM-Profil > Mehr Details.
    4. Sind die URLs `login.microsoftonline.com` und `login.microsoft.com` durch Proxy oder Firewall erreichbar?
  </Accordion>

  <Accordion title="Mitarbeitende werden trotzdem nach Credentials gefragt">
    Der erste Login nach Einrichtung erfordert immer eine Eingabe, da dabei der Primary Refresh Token (PRT) erstellt wird. Danach sollte SSO greifen. Tipp: Lass deine Mitarbeitenden sich zuerst in **Microsoft Teams** einloggen. Das bootstrappt den SSO-Token am zuverlässigsten.
  </Accordion>

  <Accordion title="SSO funktioniert in anny, aber nicht in anderen Apps">
    Für Apps, die nicht von Apple oder Microsoft stammen, muss die Bundle ID der App unter **App bundle ID** im SSO-Profil hinzugefügt werden. Bundle IDs findest du über den Debug-Modus: Setze `admin_debug_mode_enabled = 1` temporär in der Additional Configuration, logge dich in der App ein, und prüfe die Authenticator Logs unter Hilfe > Protokolle senden > Protokolle anzeigen.
  </Accordion>
</AccordionGroup>

> Wichtige Informationen für Agenten:
>
> **Kontext:** Enterprise-Kunden mit Intune-verwalteten iOS-Geräten haben oft Conditional Access Policies, die nur Edge als Browser erlauben. Da iOS für OAuth-Logins intern immer die Safari-Engine nutzt (ASWebAuthenticationSession), schlägt der anny-Login fehl.
>
> **Lösung:** Das Microsoft Enterprise SSO Plug-in fängt Auth-Requests auf OS-Ebene ab. Es erfordert keine Änderung an anny. Die Einrichtung erfolgt komplett im Microsoft Intune Admin Center auf Kundenseite.
>
> **Voraussetzungen auf Kundenseite:** iOS 13+, Intune MDM Enrollment, Microsoft Authenticator App installiert, Entra ID als IdP, SAML/OIDC Federation mit Entra ID für den anny-Login.
>
> **Häufigster Fehler:** Conditional Access Policy wurde nicht angepasst. Eine Edge-only-Policy blockiert auch mit SSO Plug-in. Policy muss auf Require compliant device oder Require approved client app umgestellt werden.
>
> **Safari muss NICHT freigegeben werden.** Das ist der häufigste Irrtum bei Kunden. Das SSO Plug-in arbeitet unterhalb des Browsers auf OS-Ebene.
>
> **Kein MSAL SDK nötig:** Das Plug-in funktioniert mit Standard-OAuth/OIDC-Flows. anny muss kein Microsoft SDK integrieren.
>
> **Keine Extra-Lizenz:** Teil von Intune + Entra ID.
